Pokemon Showdown bot written for Node JS with a ton of features often useful for chat rooms like automated moderation, blacklist, customizable help / information commands, games, tournament tools and chat logs. All of those features can be configured with a web control panel that does not require any programming knowledge to be used.
- Control Panel: You can configure your bot using a web control panel. You do not need to edit any file manually.
- Modular design: You can create and install add-ons in order to add new features (for example new commands or new options for the control panel). You can also enable and disable modules depending of your requires.
- Multi-Language: Bot commands and modules can operate in multiple languages at the same time (for example for language rooms). Currently only English and Spanish are implemented. However, you can create new languages and translate the language files via your bot's control panel.
- Dynamic commands: You can create custom text commands (the bot replies with a plain text) and html commands (the bot replies with an /htmlbox if it has permission). You can do this using commands or using the control panel.
- Logs: You can log chat rooms and bot's private messages. You also have a security log for important events and crash reports.
- Backups: You can save backups and restore them later (only configuration files, not logs or seen data). You can find this option in your bot's control panel,
Tools
option,Backups
sub-option. - Automated Moderation: Filters like capitals, stretching, spoiler or banned words, with automated detection and punishment.
- Blacklist: Permanent banning for chat rooms.
- Automated Battle Bot: This bot can play Pokemon battles itself. It is not an artificial intelligence, but the algorithm is good enough to be a threat for less skilled players, specially in formats with random generated teams. It can participate in scripted tournaments, ladder and accept battles from users. You can give it teams via the control panel and configure it in the
Battle Bot
option. - Tournaments Tools: Tournament command (to create, start and set the auto-dq in a single command) and tournament leaderboards, with automated top 100 tables generation and customizable points system.
- Chat Games: Hangman, anagrams, mini-blackjack, pass the bomb, trivia and kunc.
- Pokemon Commands: Useful Pokemon related commands not implemented in Pokemon Showdown, like Smogon usage stats and translation commands.
- Auto-Invite: Automated
/invite
message sent to the staff (for private rooms). - Players-Auction: You can create and play players auctions using commands (for team tournaments).
- Finding Users Tools: Automatically saves the last time an user did something in a room where the bot was (this data is stored in hard disk, so it is permanent). Also tracks alts from name changes. Users can use
seen
andalts
commands to easily find other users. - Groupchat Tools: Automatically maintains groupchats (temporal rooms) and promotes users.
- Others: Quotes and jokes, join-phrases, commands like
helix
, etc.
Showdown ChatBot requires node.js to run. It is recommended to install the latest stable version to avoid bugs.
Install Git if you do not have it.
Open a terminal / console and clone this repository with the following command:
git clone https://github.com/AgustinSRG/Showdown-ChatBot.git Showdown-ChatBot
If you have an old version of Showdown-ChatBot and you want to update it, use cd
to reach the directory of the bot and run:
git pull https://github.com/AgustinSRG/Showdown-ChatBot.git
You also can download the last release of Showdown-ChatBot and decompress it if you prefer not using git
Use cd
to reach the directory of the bot and run the following command to install dependencies:
npm install
To start the bot, use the following command:
npm start
Configure your bot using the control panel. You can use the Basic Configuration Guide as help.
If you want to stop your bot, use Ctrl + C
or kill the process by other way.
You can find the docker image for this project available in Docker Hub: https://hub.docker.com/r/asanrom/showdown-chatbot
To pull it type:
docker pull asanrom/showdown-chatbot
Example compose file:
version: '3.9'
services:
bot:
image: asanrom/showdown-chatbot
ports:
- '8080:8080'
- '443:443'
volumes:
- ./config:/bot/config
- ./data:/bot/data
- ./logs:/bot/logs
- ./instances:/bot/instances
command: -p 8080 -b 0.0.0.0
For more guides and documentation, check the Showdown-ChatBot Wiki
Add-ons are like optional modules you can install for your bot. They are rather limited and have no translation feature but they can be used to add custom commands and very specific features to your bot. Some public add-ons here.