OuTSMoKE
Complete Discord server monitoring for Rust

Supported Games

Rustcord is a complete server monitoring system made by Kirollos that links your Rust server with your Discord server. This was ported over to Discord from, and is a replacement for Rust:IRC, which is no longer being developed.

Official Rustcord Guide Click Here

Note: We recommend using Discord's Compact Mode for a cleaner output to Discord.

Condensed Video Guide By srtbull: https://www.youtube.com/watch?v=WFp_8siBRO0

Features

  • Game server joins/quits relayed to Discord.
  • Discord death messages.
  • 2 way chatting between game & Discord.
  • PM logging.
  • Mute logging.
  • Clan chat logging.
  • Various backend server logging.
  • Moderator !mute and !unmute Discord commands.
  • Discord !players command to show players in game.
  • Moderator !kick, !ban & !unban Discord command for your lower staff.
  • Full support for Discord to game console commands for admins.
  • Initialized message lets players know when server is ready to rejoin (wipes/restarts).
  • Admin channel with players' Name/IP/Steam ID.
  • Fully customizable channel output types.
  • In-game /report & /bug commands for reporting issues to admins on Discord.
  • Single bot can handle multiple servers.
  • Built-in chat filter.

Configuration

The config below is a sample of setting up for a main channel that displays joins, quits, deaths, and chat; an admin channel that displays admin connect info; and a report channel.

Config Log true/false determines which channel flags are active. Example: If you have a channel using the msg_chat channel flag, it won't work unless "LogChat" is set to true in the config. If LogChat is set to false, Rustcord will not monitor the associated hook, and therefore wouldn't send anything to your msg_chat channel. You can find a full list of which flags go with with settings in the Official Guide.

Note: Sample config may vary from settings in the public release. Do NOT copy paste this to your config, it is just a formatting example.

{
  "General Settings": {
    "API Key (Bot Token)": "BotToken",
    "Auto Reload Plugin": false,
    "Auto Reload Time (Seconds)": 901,
    "Enable Bot Status": false,
    "In-Game Report Command": "report",
    "Discord Extension Log Level (Verbose/Debug/Info/Warning/Error/Exception/Off)": "Info"
  },
  "Discord to Game Settings": {
    "Discord Command Prefix": "!",
    "Discord to Game Chat: Icon (Steam ID)": 76561199066612103,
    "Discord to Game Chat: Tag": "[RUSTCORD]",
    "Discord to Game Chat: Tag Color (Hex)": "#7289DA",
    "Discord to Game Chat: Player Name Color (Hex)": "#55aaff",
    "Discord to Game Chat: Message Color (Hex)": "#ffffff"
  },
  "Rust Logging Settings": {
    "Enable Logging: Player Chat": true,
    "Enable Logging: Joins & Quits": true,
    "Enable Logging: Deaths": false,
    "Enable Logging: Vehicle Spawns (Heli/APC/Plane/Ship)": false,
    "Enable Logging: Crate Drops (Hackable/Supply)": false,
    "Enable Logging: Usergroup Changes": false,
    "Enable Logging: Permission Changes": false,
    "Enable Logging: Kicks & Bans": true,
    "Enable Logging: Player Name Changes": false,
    "Enable Logging: Server Commands (Gestures/Note Edits)": false,
    "Enable Logging: Server Messages (Give/Item Spawns)": false,
    "Enable Logging: Player F7 Reports": false,
    "Enable Logging: Team Changes": false,
    "Enable Logging: RCON Connections": false,
    "Enable Logging: Spectates": false,
    "Enable Custom Logging": false
  },
  "Plugin Logging Settings": {
    "Enable Logging: AdminHammer": false,
    "Enable Logging: Admin Radar": false,
    "Enable Logging: Better Chat Mute": false,
    "Enable Logging: Clans": false,
    "Enable Logging: Discord Auth": false,
    "Enable Logging: Private Messages": false,
    "Enable Logging: Raidable Bases": false,
    "Enable Logging: Sign Artist": false,
    "Enable Logging: Vanish": false
  },
  "Discord Output Formatting": {
    "Output Type: Bans (Simple/Embed)": "Simple",
    "Output Type: Bug Report (Simple/Embed)": "Simple",
    "Output Type: Deaths (Simple/Embed/DeathNotes)": "Simple",
    "Output Type: F7 Reports (Simple/Embed)": "Simple",
    "Output Type: Join/Quit (Simple/Embed)": "Simple",
    "Output Type: Join Player Info (Admin Channel) (Simple/Embed)": "Simple",
    "Output Type: Kicks (Simple/Embed)": "Simple",
    "Output Type: Note Logging (Simple/Embed)": "Simple",
    "Output Type: Player Name Change (Simple/Embed)": "Simple",
    "Output Type: /Report (Simple/Embed)": "Simple",
    "Output Type: Teams (Simple/Embed)": "Simple",
    "Output Type (Plugin): Admin Hammer (Simple/Embed)": "Simple",
    "Output Type (Plugin): Admin Radar (Simple/Embed)": "Simple",
    "Output Type (Plugin): Better Chat Mute (Simple/Embed)": "Simple",
    "Output Type (Plugin): Clans (Simple/Embed)": "Simple",
    "Output Type (Plugin): Private Messages (Simple/Embed)": "Simple",
    "Output Type (Plugin): Raidable Bases (Simple/Embed)": "Simple",
    "Output Type (Plugin): Vanish (Simple/Embed)": "Simple"
  },
  "Logging Exclusions": {
    "Exclude Listed Groups From log_groups": [
      "default"
    ],
    "Exclude Listed Permissions From log_perms": [
      "example.permission1",
      "example.permission2"
    ]
  },
  "Filter Settings": {
    "Chat Filter: Replacement Word": "<censored>",
    "Chat Filter: Words to Filter": [
      "badword1",
      "badword2"
    ]
  },
  "Discord Logging Channels": [
    {
      "Discord Channel ID #": "",
      "Channel Flags": [
        "cmd_allow",
        "cmd_players",
        "cmd_kick",
        "cmd_com",
        "cmd_mute",
        "cmd_unmute",
        "msg_join",
        "msg_joinlog",
        "msg_quit",
        "death_pvp",
        "msg_chat",
        "msg_teamchat",
        "game_report",
        "game_bug",
        "msg_serverinit"
      ],
      "Custom: Words/Phrases to Log": [
        "keyword1",
        "keyword2"
      ]
    },
    {
      "Discord Channel ID #": "",
      "Channel Flags": [
        "msg_joinlog",
        "game_report",
        "game_bug"
      ],
      "Custom: Words/Phrases to Log": [
        "keyword1",
        "keyword2"
      ]
    }
  ],
  "Discord Command Role Assignment (Empty = All roles can use command.)": {
    "ban": [
      "DiscordRoleName",
      "DiscordRoleName2"
    ],
    "com": [
      "DiscordRoleName",
      "DiscordRoleName2"
    ],
    "kick": [
      "DiscordRoleName",
      "DiscordRoleName2"
    ],
    "mute": [
      "DiscordRoleName",
      "DiscordRoleName2"
    ],
    "players": [
      "DiscordRoleName",
      "DiscordRoleName2"
    ],
    "timeban": [
      "DiscordRoleName",
      "DiscordRoleName2"
    ],
    "unban": [
      "DiscordRoleName",
      "DiscordRoleName2"
    ],
    "unmute": [
      "DiscordRoleName",
      "DiscordRoleName2"
    ]
  }
}

FAQ

Q: How do I set up Discord for this?
A: You can find instructions on making a Discord bot HERE.

Q: How do I get a channel ID for the config?
A: Enable Developer Mode in Discord (User Settings > Appearance > Advanced). Then in Discord, right click your channel in the left hand side channel list and chose Copy ID (last option in drop down).

Q: Death OutputeType: DeathNotes - Death messages aren't in the lang file, how do I customize them?
A: The death messages are taken from your DeathNotes plugin config, and will mirror whatever is set there.

Q: The plugin failed to compile on server start/restart.
A: Check to make sure you're not running other Discord plugins. Rustcord will still work with them installed, but will need to be reloaded after server load (TimedExecute could do this). If you go that route, the initialized message wont work on restarts and wipes, as the plugin isn't loaded on startup.

Q: How does 2 way chat work?
A: Anything typed by anyone in a channel with the msg_chat flag will automatically be sent into the game chat with a [Discord] chat tag. It's automatic and doesn't require a command. We recommend servers with higher populations to restrict it to staff only able to type, but everyone able to view.

Q: How does custom logging work?
A: Custom logging logs any console lines that contain the items in your CustomFilter settings for that channel into said channel. For example, Rustcord doesn't have built in support for the Timed Execute plugin, but Timed Execute logs everything it does to the server console with the tag [Timed Execute], so you could put "[Timed Execute]" in your CustomFilter list to have Rustcord log the plugin to that channel.

Credits

Plugin Creator: Kirollos      Maintainer: OuTSMoKE

Your contributions, big or small, were appreciated! Special thanks to those that helped along the way:

Mughisi, LaserHydra, SLUT, mspeedie, birthdates, MrPoundSign, MisterPixie, Tricky, DylanSMR, nivex, MJSU, Mr. Blue, srtbull

MIT License


Copyright (c) 2019 OuTSMoKE


Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:


The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.


THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


Donate
34.0K downloads
579 watchers

discordintegration
Collaborators
  • Kirollos
    Developer
  • MJSU
    Contributor