Ruskbot Documentation
Information on Ruskbot and how to use her commands!
Ruskbot is a discord bot programmed in Kotlin. Ruskbot helps me manage mod posts, and speeds up community tasks.
Ruskbot uses Kotlin Serialization to parse local data, and will automatically manage server resources as needed.
Notice: The original "Rusk" avatar was made by Komado, and can be found in its original form here.
Komado does not endorse this bot. In this case, "Rusk" is just being used as a mascot for the bot in an unofficial capacity.
Some concepts to understand in how Ruskbot works on some features:
- Ruskbot runs on 1 minute ticks.
- During these ticks, ruskbot will check for outdated information, and perform maintenance tasks.
- Every 30 ticks, if the Deep Rock Galactic (DRG) information is out of date (based on when the deep dives reset), then Ruskbot will automatically query for more information on the tick.
- Game servers will be checked to see if they're past due to reboot every tick, and if they are, they will begin a reboot sequence.
- Servers used to be tiered, but are no longer. Instead, each server comes with an estimated RAM usage based on observed max values, and game servers can be denied from being started if the estimated RAM the game server would use could max out the server's capacity.
Commands anyone can use:
These are general commands that don't necessarily have a theme, and have no strong bearing on the operations of ruskbot.
- /listservers - sends a list of valid game server ids and their descriptions.
- /checkserver (id) - sends detailed information about the server on the server id provided.
- /serverstatus - sends information about the currently running servers, and available server slots.
- /checkleaderboard - sends the user a leaderboard of a running tally, if one exists. (Mostly used for Masquerade game nights.)
- /rusk - sends a rusk photo to the user.
- /announcementoptin - Opts a given channel into having embeds about mod updates posted. REQUIRES USER TO HAVE THE MANAGE CHANNEL PERMISSION IN THE CHANNEL IT IS RAN IN.
- /announcementoptout - Opts a given channel out of having embeds about mod updates posted. REQUIRES USER TO HAVE THE MANAGE CHANNEL PERMISSION IN THE CHANNEL IT IS RAN IN.
Deep Rock Galactic Commands:
These commands can be used by anyone, but are more dedicated to the steam game Deep Rock Galactic. Information for these commands are gathered from the DRG API.
- /drgdives - sends information about the current deep dives. This information posts as a message everyone can see, and you only ever need one. If your information is out of date, cycling the message should update it. If it doesn't, contact Mari!
- /rockandstone - Ruskbot salutes you in deep rock fashion.
- /drgtriva - sends a random trivia fact about DRG.
Limited Permission Commands
These commands can be used by a select few discord users. Permissions for these are distributed on a need-to-use basis.
- /startserver (id) - starts a game server based on the server ID, as defined in /listservers, if resources are available to do so. If the selected server is already started then a reboot prompt will appear. This is only to be used when the server is flagged as online, but is inaccessible.
- /stopserver (id) - stops a game server based on the server ID, as defined in /listservers.
- /serverlistener (id) - Sets up a listener message in the current channel, that displays the status of the selected server. Only one status message can be tracked at a time per game server.
- /setuptally - sets up a tally to keep score, reading from a seshbot post to do so.
- channelid - The id of the channel the seshbot post to read from is in.
- messageid - The id of the message seshbot made that you want ruskbot to read.
- usercategory1 - The name of the first sign up role you want ruskbot to read from.
- usercategory2 - The name of the second sign up role you want ruskbot to read from.
- usercategory3 - The name of the third sign up role you want ruskbot to read from.
- winningtext - describes what the tally is for. Defaults to "MONARCH OF MADNESS" for Masquerade gamenights.
- channel - A discord channel to announce the start of the tally to.
- /completetally - ends a tally count, and declares winners or ties for winning.
- /addreactvote (messageid) - adds a "yes", "no", and "idk" reaction vote to the given message.
- /announcelobby - allows for preconfigured announcements of lobbies for events being opened for events through a dropdown menu.
- /say (message) (channel) - makes Ruskbot say something in your current channel, or if optionally defined, the channel listed.
- /drgquery - manually queries the DRGAPI for updated information.