# Spiffo A multi-purpose Discord integration bot for Project Zomboid. ## Features - Interact with the remote console via slash commands in Discord. - A live count of all online players as the bot's activity status. - Views of complicated player data through direct access to the players.db file. - Automated mod update management including: restart warnings, saving and exiting, restarting the server. - Player connect and disconnect alerts in a specified Discord channel. - Ability to read directly from the server console log for accurate up-to-date info. - Super easy deployment via docker with environment variables for configuration. ## Setup ### Environment Variables Despite being isolated to a docker container in deployment, the environment variables are prefixed with the application name (`SPIFFO__`). This should make the environment variables used be more clear and pronounced when you choose to use them or otherwise. |Variable|Description|Required|Default Value| |-|-|:-:|-| |`SPIFFO__BOT_TOKEN`|Credential to allow the application to authenticate as the bot.|✔|| |`SPIFFO__RCON_HOST`|Host of the server's remote console.|✔|| |`SPIFFO__RCON_PORT`|Port of the server's remote console.|✔|| |`SPIFFO__RCON_PASSWORD`|Password of the server's remote console.|✔|| |`SPIFFO__DISCORD_CHANNEL_ID`|Snowflake ID of the channel where join alerts and other server related messages should appear.|✔|| |`SPIFFO__STEAM_API_KEY`|Web API key granted by steam, allows for the user's steam profile info to be shown in the join alerts.||| |`SPIFFO__ZOMBOID_FOLDER_PATH`|Absolute path to the 'Zomboid' folder that contains the `server-console.txt` file.|✔|| |`SPIFFO__DATA_FOLDER_PATH`|Custom path of where the bot will create and store data.|✔|| |`SPIFFO__SERVER_NAME`|Name of the server instance, don't change unless you know what you are doing!||servertest| |`SPIFFO__DEBUG`|Whether to run in debug mode, which will reveal debug logs.||False| |`SPIFFO__ZOMBOID_LOG_TIMESTAMP_FORMAT`|The format used for timestamps in Zomboid's logs - do not change this!|✔|%d-%m-%y %H:%M:%S.%f| ## Why Am I Making This? All existing bots are poorly coded, slow and/or lack certain features. They usually fall into a couple of categories; single purpose and great or multi-purpose and bad. I wanted to make a clean, beautiful and functional bot with ALL of the features!