The Discord bot that's changing the world.
Shmames is a multi-purpose Discord chatbot that takes nothing seriously, giving your Discord server a little more flavor. Get things done by creating polls, automating responses, and tracking tallies, or have some fun with playing hangman, minesweeper, and rolling dice. Shmames can send random GIFs for you, or let you create shortcuts to your own. It even keeps track of which custom emoji get used the most on your server, making it easier to know which ones you can get rid of.
Shmames is feature-rich, quirky, and a fun new way to interact with your Discord server, and it's 100% free.
- Create polls with up to 9 different options
- Customize random responses based on keywords
- Track custom tallies
- Create shortcuts to URL links, and send them in a snap
- Send a random GIF based on search keywords
- Play a game of Hangman or Minesweeper
- View usage stats on your custom Emoji
- Let your users pin messages to a specialized channel
- Add reactions to messages that spell out words
- Roll dice, up to a d999
- Have the bot repeat after you
- Start timers
- Use fun (sometimes ridiculous) chat commands
- Create families of servers to share data
- ... and much more
To add the official, hosted version of Shmames to your Discord server, click this link.
If you'd like to build and run your own version of Shmames, keep reading.
Shmames comes with a lot of chat commands, a list too long to keep here. To view a list of these commands and how to use
them, be sure to run shmames help [command]
on your Discord server.
Shmames' commands follow a particular pattern. When a piece of information is required for the command,
it will be marked with <angle brackets>
. If it is an optional command argument, it will be marked
with [square brackets]
. Certain commands are more complex than others, so this rule can help you
understand how to use them!
The default command to summon Shmames is shmames
, or whichever name you've given your custom implementation if you
are hosting Shmames yourself.
Shmames can send a random response based on a message trigger. Valid triggers are:
Love
: For when Shmames should say something nice.
Hate
: For when Shmames isn't too happy about something.
Hello
: For when Shmames wants to say hi.
Goodbye
: For when Shmames wants to say goodbye.
Random
: For any other type of response. Shmames might occasionally send one of these messages, if he's feeling like it.
Command
: Use this trigger to customize how you summon the bot.
To build and run Shmames yourself, use the following steps. If you'd like to use a pre-assembled binary from the Releases page, skip to Step 4.
Clone the repository by using git clone https://github.com/hwdotexe/Shmames.git
Import Shmames as a Maven project in your favorite IDE.
Build Shmames by using mvn clean package assembly:single
Create a .bat
/.sh
file to launch the Shmames binary .jar
:
java -jar name_of_shmames_file.jar
After launching, the application will generate some first-time setup files.
You'll need to create a new Discord application by visiting the Discord Developer Portal. Choose
a name for your custom Shmames, and follow Discord's online prompts. When finished, you can find the bot's Token (needed later) by clicking on
your app, going to "Bot" on the side, and clicking Click to Reveal Token
.
Where you launched Shmames, there is a new file in /brains
called motherBrain.json
. Open this file, and replace the value
for botAPIKey
with the token you created in the last step. You may notice that there is another option, botAPIKeySecondary
. This is
used for when you launch the bot in debug mode, in case you'd like to debug with a different Discord application. You can ignore
this item for now.
Launch the bot again, and it should finish the startup process and be ready to roll. You can now invite your bot to your Discord server using the Discord Developer Portal - simply create an OAuth2 authorization URL for your bot, and use it to join the bot to a server you have permission to change.
Once the bot joins your server, it should send a welcome message if possible. Should this not happen, you can still attempt to summon
the bot by using its name - for example, shmames help
. Have fun!