{"id":19773446,"url":"https://github.com/Ferdyverse/Ficsit2Discord","last_synced_at":"2025-09-17T21:33:22.740Z","repository":{"id":257883082,"uuid":"872042270","full_name":"Ferdyverse/Ficsit2Discord","owner":"Ferdyverse","description":"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.","archived":false,"fork":false,"pushed_at":"2024-10-27T10:20:22.000Z","size":2086,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-01T15:58:43.808Z","etag":null,"topics":["discord-bot","python3","satisfactory"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ferdyverse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-13T16:25:43.000Z","updated_at":"2024-11-01T17:28:14.000Z","dependencies_parsed_at":"2024-10-25T12:11:46.669Z","dependency_job_id":"43eaa288-7096-42fe-8f67-f9a217e81ad5","html_url":"https://github.com/Ferdyverse/Ficsit2Discord","commit_stats":null,"previous_names":["brazier85/ficsit2discord","ferdyverse/ficsit2discord"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/Ferdyverse/Ficsit2Discord","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ferdyverse%2FFicsit2Discord","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ferdyverse%2FFicsit2Discord/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ferdyverse%2FFicsit2Discord/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ferdyverse%2FFicsit2Discord/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ferdyverse","download_url":"https://codeload.github.com/Ferdyverse/Ficsit2Discord/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ferdyverse%2FFicsit2Discord/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275667728,"owners_count":25506394,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-17T02:00:09.119Z","response_time":84,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["discord-bot","python3","satisfactory"],"created_at":"2024-11-12T05:09:41.447Z","updated_at":"2025-09-17T21:33:22.217Z","avatar_url":"https://github.com/Ferdyverse.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ficsit2Discord Bot\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/Brazier85/Ficsit2Discord/refs/heads/main/files/f2d_logo.webp\" width=\"300\" height=\"300\"\u003e\n\u003c/p\u003e\n\n## Overview\nFicsit2Discord 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.\n\n## Features\n- **Save Game**: Saves the game and sends the save file to Discord.\n- **Restart Server**: Safely restarts the Satisfactory server.\n- **Server State**: Displays the current state of the server, including player count, average tick rate, and server health.\n- **Settings**: Shows the current server settings.\n\n## Prerequisites\n- Python 3.8+\n- A running Satisfactory game server\n- Discord API credentials (Bot Token)\n- Required Python libraries:\n  - `discord.py`\n  - `python-dotenv`\n  - `PyFactoryBridge`\n\n## Installation\n\n1. **Clone the repository**:\n   ```bash\n   git clone https://github.com/your-username/ficit2discord.git\n   cd ficit2discord\n   ```\n\n2. **Create a virtual environment** (highly recommended):\n   ```bash\n   python3 -m venv venv\n   source venv/bin/activate  # On Windows use `venv\\Scripts\\activate`\n   ```\n\n3. **Install dependencies**:\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n4. **Set up environment variables**:\n   Create a `.env` file in the root directory and define the following variables:\n   ```\n   DISCORD_TOKEN=your_discord_bot_token\n   SF_IP=your_satisfactory_server_ip\n   SF_PORT=your_satisfactory_server_port\n   SF_TOKEN=your_satisfactory_server_token\n   SF_SERVER_NAME=your_server_name\n   ```\n\n## Configuration\n\n- **Bot Prefix**: The bot responds to commands starting with `!sf`. You can modify the prefix by adjusting the `prefix` in the `Satisfactory` cog.\n  \n- **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`\n\n## Commands\n\n| Command         | Description                                                                 |\n|-----------------|-----------------------------------------------------------------------------|\n| `!sf save`      | Saves the game and sends the save file to Discord.                          |\n| `!sf restart`   | Saves the game and restarts the server.                                     |\n| `!sf state`     | Displays the current server status, including players, ticks, and health.   |\n| `!sf settings`  | Shows the current settings of the Satisfactory server.                      |\n\n### Example Command Usage\n\n- To save the game and get the save file in Discord:\n  ```\n  !sf save\n  ```\n\n- To restart the server:\n  ```\n  !sf restart\n  ```\n\n## Code Structure\n\n- **bot.py**: The main entry point for the bot. It initializes the bot, loads environment variables, and handles cog loading.\n- **cogs/satisfactory.py**: Contains all the Satisfactory-related commands and functions, such as saving the game, restarting, and checking server status.\n- **files/savegames/**: Directory where game save files are stored after download from the server.\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch: `git checkout -b feature/your-feature`\n3. Commit your changes: `git commit -m 'Add your feature'`\n4. Push to the branch: `git push origin feature/your-feature`\n5. Open a pull request\n\n## Acknowledgements\n\nA special thanks to the maintainers of the libraries used in this project:\n- **[`discord.py`](https://github.com/Rapptz/discord.py)**: For enabling Discord bot functionality. Maintained by [Rapptz](https://github.com/Rapptz).\n- **[`PyFactoryBridge`](https://github.com/Jayy001/PyFactoryBridge)**: For enabling smooth communication with the Satisfactory server. Maintained by [Jayy001](https://github.com/Jayy001).\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFerdyverse%2FFicsit2Discord","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FFerdyverse%2FFicsit2Discord","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFerdyverse%2FFicsit2Discord/lists"}