About Discord RCON
Discord RCON works by utilizing the RCON Protocol, removing the need for any plugins on the server(s). Easily view the FPS, Entity Count, Player Count on your server(s). View the plethora of logs quickly & easily and execute Commands or Actions with a few quick movements.
Discord RCON Features
- Overall overview of your servers (Player Count, Uptime, Entity Count, FPS)
- Easily Stop or Restart your servers
- Send RCON Commands
- Mute & Unmute Players (Utilizes BetterChatMute or the Native Rust Mute system)
- All Actions can have permissions set under the configuration so only specific Roles or Users can use them
- Mute System which allows you to automatically mute any players through specified settings
- Can provide mute length, reason, include team-chat
- Easily setup filters with Regex and other methods
- Plethora of Logs (Connections, Kills, Suspicious Players, F7 Reports, F1 Spawning, Server & RCON ONLINE/OFFLINE, Global/Team CHAT)
- Suspicious Player Logs can detect VAC Bans, Temporary Rust Bans or Private Profiles
- All other Logs sent through RCON can also be logged easily and Ignored as needed through the config (Regex, Includes, Equals)
- All Logs can have different Embed Colors and different channels they send the logs to
- Set your bots status on Discord to whatever you like using custom variables
- Variables hold values for Player Count, Max Player Count, Joining Players, Queued Players, Server Count & More
- Have as many servers as you like, there is no limit.
- Almost everything is customizable, almost everything can be turned off or on.
Information
If you have ANY questions just hop in the Discord and send me a DM.
Join the Discord for Support - https://discord.gg/YbkvZWs3a4
(All suggestions are welcome for new features or changes)
Setup
1 - Install Node and NPM (Node v16.17.1 & NPM v8.15.0)
- You don't have to install the versions I was using but it would most likely make it easier for you
2 - Unzip Discord-RCON.zip
3 - Open a terminal under the Discord-RCON folder and execute the command:
npm install
4 - Open config.json and fill in all the required information
- ERROR_WEBHOOK_URL is not required but recommended incase errors occur
- DISCORD_BOT_TOKEN (https://discord.com/developers/applications) - Applications -> New Application -> Bot -> Create New Bot -> Token (Reset if not shown instantly)
- STEAM_API_KEY (https://steamcommunity.com/dev/apikey)
- RUSTBANNED_API_KEY (https://rustbanned.com/api-eac-ban/) - Only needed if using the Suspicious Player Logs TEMP_BAN & VAC_BAN
- AMOUNT_OF_CONNECTIONS_TO_QUEUE_BEFORE_QUERYING_RUSTBANNED - Recommended to set this higher than 1 (MAX 50,000 QUERIES A DAY)
- Servers IP, PORT (RCON_PORT), RCON_PASSWORD
- Enable and Disable the logs and systems you need, make sure to fill in all the information if setting them to enabled
- IGNORE_MESSAGES_THAT_INCLUDE under SERVER_LOGS means to IGNORE ALL Messages that include the string of characters you insert
- IGNORE_MESSAGES_THAT_EQUAL under SERVER_LOGS means to IGNORE ALL Messages that equal the string of characters you insert
- IGNORE_MESSAGES_THAT_MATCH_REGEX under SERVER_LOGS takes in a Regex and if it matches then the Message will not be sent
- WORD_EQUALS under AUTOMATIC_MUTE_SYSTEM means if a Message has a FULL word in it that matches the one set then it will Mute the Player
- MESSAGE_INCLUDES under AUTOMATIC_MUTE_SYSTEM means if a Message includes that string of letters AT ALL then it will Mute the Player
- MESSAGE_REGEX_MATCH under AUTOMATIC_MUTE_SYSTEM takes in a Regex and if it matches then it will Mute the Player
5 - Run the Bot (Recommend using PM2 for this)
Configuration File
{ "ERROR_WEBHOOK_URL": "", "DISCORD_BOT_TOKEN": "", "STEAM_API_KEY": "", "RUSTBANNED_API_KEY": "", "AMOUNT_OF_CONNECTIONS_TO_QUEUE_BEFORE_QUERYING_RUSTBANNED": 1, "DISCORD": { "INFORMATION1": "STATUS_TYPE CAN BE online, idle, invisible or dnd", "INFORMATION2": "STATUS_MESSAGE CAN HAVE SPECIAL VARIABLES", "INFORMATION3": "STATUS_ACTIVITY CAN BE playing, streaming, listening or watching", "VARIABLES1": "{GLOBAL_PLAYERS} {GLOBAL_MAX_PLAYERS} {GLOBAL_JOINING} {GLOBAL_QUEUED} {GLOBAL_JOINING_AND_QUEUED}", "VARIABLES2": "{SERVER_COUNT}", "STATUS_TYPE": "online", "STATUS_MESSAGE": "", "STATUS_ACTIVITY": "" }, "Servers": [ { "IP": "", "RCON_PORT": "", "RCON_PASSWORD": "", "DISCORD_CHANNEL_ID": "", "AUTOMATIC_MUTE_SYSTEM": { "ENABLED": true, "LOGS": { "ENABLED": true, "DISCORD_CHANNEL_ID": "", "EMBED_COLOR_IN_HEX": "72A0C1", "INCLUDE_SERVER_IN_EMBED": true }, "SETTINGS": [ { "REASON": "Extreme Racism", "MUTE_LENGTH (m/h/d/y/perm/permanent)": "12h", "INCLUDE_TEAM_CHAT": false, "WORD_EQUALS": [], "MESSAGE_INCLUDES": [], "MESSAGE_REGEX_MATCH": [] } ] }, "SUSPECT_PLAYER_LOGS": { "INFORMATION": "YOU MUST HAVE AN API KEY FROM https://rustbanned.com FILLED IN", "INFORMATION1": "DONT NEED ONE IF ONLY PRIVATE_PROFILE IS TRUE", "ENABLED": true, "LOGS": { "DISCORD_CHANNEL_ID": "", "EMBED_COLOR_IN_HEX": "AF002A", "INCLUDE_SERVER_IN_EMBED": true }, "LOGGED_TYPES": { "PRIVATE_PROFILE": true, "VAC_BAN": false, "TEMP_BAN": false } }, "RCON_COMMAND_BUTTON": { "ENABLED": true, "LOGS": { "ENABLED": true, "DISCORD_CHANNEL_ID": "", "EMBED_COLOR_IN_HEX": "4F545C", "INCLUDE_SERVER_IN_EMBED": true }, "ROLE_IDs": [], "USER_IDs": [] }, "MUTE_BUTTON": { "INFORMATION": "THIS WILL UTILIZE THE NATIVE RUST MUTE SYSTEM IF BETTER CHAT MUTE IS NOT INSTALLED", "ENABLED": true, "LOGS": { "ENABLED": true, "DISCORD_CHANNEL_ID": "", "EMBED_COLOR_IN_HEX": "72A0C1", "INCLUDE_SERVER_IN_EMBED": true }, "ROLE_IDs": [], "USER_IDs": [] }, "UNMUTE_BUTTON": { "INFORMATION": "THIS WILL UTILIZE THE NATIVE RUST MUTE SYSTEM IF BETTER CHAT MUTE IS NOT INSTALLED", "ENABLED": true, "LOGS": { "ENABLED": true, "DISCORD_CHANNEL_ID": "", "EMBED_COLOR_IN_HEX": "72A0C1", "INCLUDE_SERVER_IN_EMBED": true }, "ROLE_IDs": [], "USER_IDs": [] }, "RESTART_BUTTON": { "ENABLED": true, "LOGS": { "ENABLED": true, "DISCORD_CHANNEL_ID": "", "EMBED_COLOR_IN_HEX": "66B447", "INCLUDE_SERVER_IN_EMBED": true }, "ROLE_IDs": [], "USER_IDs": [] }, "STOP_BUTTON": { "ENABLED": true, "LOGS": { "ENABLED": true, "DISCORD_CHANNEL_ID": "", "EMBED_COLOR_IN_HEX": "D3212D", "INCLUDE_SERVER_IN_EMBED": true }, "ROLE_IDs": [], "USER_IDs": [] }, "SERVER_LOGS": { "ENABLED": true, "DISCORD_CHANNEL_ID": "", "EMBED_COLOR_IN_HEX": "252321", "INCLUDE_SERVER_IN_EMBED": true, "GROUP_AMOUNT_UNTIL_SENT": 1, "IGNORE_SAVING": true, "IGNORE_MESSAGES_THAT_INCLUDE": [], "IGNORE_MESSAGES_THAT_EQUAL": [], "IGNORE_MESSAGES_THAT_MATCH_REGEX": [] }, "SERVER_ONLINE_LOGS": { "ENABLED": true, "DISCORD_CHANNEL_ID": "", "EMBED_COLOR_IN_HEX": "008000", "INCLUDE_SERVER_IN_EMBED": true }, "SERVER_OFFLINE_LOGS": { "ENABLED": true, "DISCORD_CHANNEL_ID": "", "EMBED_COLOR_IN_HEX": "FF0000", "INCLUDE_SERVER_IN_EMBED": true }, "RCON_ONLINE_LOGS": { "ENABLED": true, "DISCORD_CHANNEL_ID": "", "EMBED_COLOR_IN_HEX": "008000", "INCLUDE_SERVER_IN_EMBED": true }, "RCON_OFFLINE_LOGS": { "ENABLED": true, "DISCORD_CHANNEL_ID": "", "EMBED_COLOR_IN_HEX": "FF0000", "INCLUDE_SERVER_IN_EMBED": true }, "SPAWN_LOGS": { "ENABLED": true, "DISCORD_CHANNEL_ID": "", "EMBED_COLOR_IN_HEX": "FFA500", "INCLUDE_SERVER_IN_EMBED": true }, "KILL_LOGS": { "ENABLED": true, "DISCORD_CHANNEL_ID": "", "EMBED_COLOR_IN_HEX": "0000FF", "INCLUDE_SERVER_IN_EMBED": true, "INCLUDE_KILL_COORDINATES": true }, "REPORT_LOGS": { "ENABLED": true, "DISCORD_CHANNEL_ID": "", "EMBED_COLOR_IN_HEX": "808080", "INCLUDE_OFFLINE_PLAYER_REPORT": true, "INCLUDE_SERVER_IN_EMBED": true, "INCLUDE_COMBAT_LOG": true }, "CONNECTION_LOGS": { "ENABLED": true, "DISCORD_CHANNEL_ID": "", "EMBED_COLOR_IN_HEX": "008000", "INCLUDE_SERVER_IN_EMBED": true }, "DISCONNECT_LOGS": { "ENABLED": true, "DISCORD_CHANNEL_ID": "", "EMBED_COLOR_IN_HEX": "FF0000", "INCLUDE_SERVER_IN_EMBED": true }, "CHAT_LOGS": { "INFORMATION": "IF YOUR SERVER IS RUNNING HARDCORE MODE THIS WILL LOG LOCAL CHAT LOGS", "ENABLED": true, "DISCORD_CHANNEL_ID": "", "EMBED_COLOR_IN_HEX": "FFFFFF", "INCLUDE_SERVER_IN_EMBED": true }, "TEAM_CHAT_LOGS": { "ENABLED": true, "DISCORD_CHANNEL_ID": "", "EMBED_COLOR_IN_HEX": "004225", "INCLUDE_SERVER_IN_EMBED": true } } ] }