https://github.com/ferdyverse/ficsit2discord
Ficit2Discord is a custom Discord bot that interacts with a dedicated Satisfactory game server. The bot allows server administrators to manage the server directly from Discord, including saving the game, restarting the server, and viewing server stats.
https://github.com/ferdyverse/ficsit2discord
discord-bot python3 satisfactory
Last synced: 2 months ago
JSON representation
Ficit2Discord is a custom Discord bot that interacts with a dedicated Satisfactory game server. The bot allows server administrators to manage the server directly from Discord, including saving the game, restarting the server, and viewing server stats.
- Host: GitHub
- URL: https://github.com/ferdyverse/ficsit2discord
- Owner: Ferdyverse
- License: mit
- Created: 2024-10-13T16:25:43.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-27T10:20:22.000Z (over 1 year ago)
- Last Synced: 2025-01-11T14:34:34.242Z (over 1 year ago)
- Topics: discord-bot, python3, satisfactory
- Language: Python
- Homepage:
- Size: 1.99 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Ficsit2Discord Bot
## Overview
Ficsit2Discord is a custom Discord bot that interacts with a dedicated Satisfactory game server. The bot allows server administrators to manage the server directly from Discord, including saving the game, restarting the server, and viewing server stats.
## Features
- **Save Game**: Saves the game and sends the save file to Discord.
- **Restart Server**: Safely restarts the Satisfactory server.
- **Server State**: Displays the current state of the server, including player count, average tick rate, and server health.
- **Settings**: Shows the current server settings.
## Prerequisites
- Python 3.8+
- A running Satisfactory game server
- Discord API credentials (Bot Token)
- Required Python libraries:
- `discord.py`
- `python-dotenv`
- `PyFactoryBridge`
## Installation
1. **Clone the repository**:
```bash
git clone https://github.com/your-username/ficit2discord.git
cd ficit2discord
```
2. **Create a virtual environment** (highly recommended):
```bash
python3 -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`
```
3. **Install dependencies**:
```bash
pip install -r requirements.txt
```
4. **Set up environment variables**:
Create a `.env` file in the root directory and define the following variables:
```
DISCORD_TOKEN=your_discord_bot_token
SF_IP=your_satisfactory_server_ip
SF_PORT=your_satisfactory_server_port
SF_TOKEN=your_satisfactory_server_token
SF_SERVER_NAME=your_server_name
```
## Configuration
- **Bot Prefix**: The bot responds to commands starting with `!sf`. You can modify the prefix by adjusting the `prefix` in the `Satisfactory` cog.
- **Environment Variables**: Ensure the `.env` file contains the correct details for your Discord bot and Satisfactory server. You can get the api token via the ingame server manager console: `server.GenerateAPIToken`
## Commands
| Command | Description |
|-----------------|-----------------------------------------------------------------------------|
| `!sf save` | Saves the game and sends the save file to Discord. |
| `!sf restart` | Saves the game and restarts the server. |
| `!sf state` | Displays the current server status, including players, ticks, and health. |
| `!sf settings` | Shows the current settings of the Satisfactory server. |
### Example Command Usage
- To save the game and get the save file in Discord:
```
!sf save
```
- To restart the server:
```
!sf restart
```
## Code Structure
- **bot.py**: The main entry point for the bot. It initializes the bot, loads environment variables, and handles cog loading.
- **cogs/satisfactory.py**: Contains all the Satisfactory-related commands and functions, such as saving the game, restarting, and checking server status.
- **files/savegames/**: Directory where game save files are stored after download from the server.
## Contributing
1. Fork the repository
2. Create your feature branch: `git checkout -b feature/your-feature`
3. Commit your changes: `git commit -m 'Add your feature'`
4. Push to the branch: `git push origin feature/your-feature`
5. Open a pull request
## Acknowledgements
A special thanks to the maintainers of the libraries used in this project:
- **[`discord.py`](https://github.com/Rapptz/discord.py)**: For enabling Discord bot functionality. Maintained by [Rapptz](https://github.com/Rapptz).
- **[`PyFactoryBridge`](https://github.com/Jayy001/PyFactoryBridge)**: For enabling smooth communication with the Satisfactory server. Maintained by [Jayy001](https://github.com/Jayy001).
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.