The official bot used in the Suroi Discord server. Written with Bun and discord.js.
- Leaderboard: Compete with your fellow users for the top spot! Every 5 seconds, the first message you send will grant you 5 XP (50% chance of 1 XP for the counting channel).
- Music: Play music from YouTube in voice channels!
- Fun: Various fun commands and activities to keep you entertained.
- Counting: Count as high as you can! Each message in this channel must be a number one larger than the previous, and each user can only send one message at a time.
- Starboard: Messages that get at least 5 of a specific reaction will be sent here.
- Suroi: Check the status of the Suroi servers with a command. Handles in-game moderation.
- Advanced Moderation: Extensive case and logging system helps keep track of the following:
- Warnings, timeouts, kicks, and bans
- Edited and deleted messages and attachments
- Members joining and leaving
- Profile picture and nickname changes
Commands marked with a
/rank - View a user's XP and their position on the leaderboard
/leaderboard - View the top 10 users on the leaderboard
/levelnotifs on - Enable notifications for leveling up
/levelnotifs off - Disable notifications for leveling up
/legacyleaderboard - Display the top 10 users on the first ever leaderboard
/setxp - Manually set a user's XP
/song play - Add the first YouTube result for a query to the queue
/song search - Get the first 5 YouTube results for a query and add one to the queue
/song queue - List the songs currently in the queue
/song nowplaying - Show details about the song currently playing
/song pause - Pause the current song
/song unpause - Unpause the current song
/song skip - Skip the current song
/song remove - Remove a song from the queue at the given index. Determine the index using /song queue
/embed - Create a custom embed
/emoji random - Display a random emoji combination
/emoji combine - Combine two emoji. If a 2nd emoji isn't given, a random one will be picked
/emoji list - Get a list of supported emoji
/fact - Get a random fun fact
/image random - Show a random out of context image
/image search - Search for an out of context image
/image upload - Upload an image to the list of out of context images
/say - Make the bot say something, optionally replying to another message
/servers - Check the status of the Suroi servers and their player counts
/report info - Get information about a report ID
/report warn - Warn a player
/report tempban - Temporarily ban a player
/report permaban - Permanently ban a player
/report unban - Remove all punishments matching the given report ID and the associated IP address
/case view - List a user's moderation cases, optionally a specific page
/case info - Get information about a specific case
/case delete - Delete a case
/warn - Warn a user
/timeout add - Timeout a user
/timeout remove - Remove a timeout from a user
/kick - Kick a user
/ban add - Ban a user
/ban remove - Unban a user
/purge - Purge messages from the current channel
/ping - Test the bot and API latency
/restart - Restart the bot
Start by cloning the repo using this command:
git clone https://github.com/HasangerGames/suroi-bot.gitEnter the newly created suroi-bot directory:
cd suroi-botCreate a config.json file, using config.schema.json as a guide.
Install dependencies:
bun installInitialize the database:
bunx prisma migrate devFinally, run this command to start the bot:
bun startOr, to start a dev server (restarting the bot whenever a file changes):
bun dev