This project is deprecated and no longer maintained.
This is the original bot project for the Spanish room of Pokemon Showdown, based on TalkTakesTime's bot. However it was replaced in 2016 by a rework: Showdown-ChatBot.
If you are still interested in a Pokemon Showdown Bot, you can try the following options:
This repository is being archived.
This is a Pokemon Showdown bot written in JavaScript for Node
This bot is based on commands and features, which are explained here. This is intended to ease bot configuration and customization, separating commands in multiple files, multiple features in different folders and merging functions in Global Objects like Bot, CommandParser or Settings. This bot also works in multiple languages at the same time, useful for language rooms.
Features included in this package:
Pokémon Showdown Bot requires node.js to run. Install the last stable version if you do not have it.
The first step is cloning this repo, install Git if you have not it and use the following command on shell console:
$ git clone --branch=master git://github.com/Ecuacion/Pokemon-Showdown-Node-Bot.git Pokemon-Showdown-Node-Bot
You can also download a Zip of this repo and decompress it.
Then open a shell console, use cd
to reach the directory of the bot and install dependencies:
$ npm install --production
If you want to use npm test
for developement, install all dependencies with npm install
To configure your bot, copy config-example.js
to config.js
and edit that file. You can specify bot login credentials among other things. If you don't specify credentials, the bot will log in a random username started by 'Bot'. Read the Configuration Guide for more information
Now, to start the bot use:
$ node bot
if you have an old version of Pokemon Showdown Node Bot
and you want to update it, you can use:
git pull https://github.com/Ecuacion/Pokemon-Showdown-Node-Bot.git
Don't forget to use npm install --production
after each update to re-install the outdated dependencies.
Check the configuration guide for more information.
Connection Details
Config.server
: Server url, for example main server url is sim.smogon.com
Config.port
: Connection port, Pokemon Showdown default port is 8000
Config.serverid
: Server id, main server id is showdown
for exampleConfig.autoReconnectDelay
: If connection gets closed, how much time it is waiting before reconnectConfig.connectionTimeout
: If connection hang up, the time to check for reconnectCrashguard
Config.crashguard
: If true, write errors to console instead of crashingWatchconfig
Config.watchconfig
: If true, config.js is automatically reloaded when it is changedLogin Details
Config.nick
: Bot Nickname, if you don't specify a nickname, it will log in a random nicknameConfig.pass
: Password, if neededConfig.autoReloginDelay
: If it can't login because of server issues, how much time it is waiting before reloginRooms
Config.rooms
: Array of rooms to join after login. You can specify a string value: all
for joining all rooms, official
for official rooms and public
for not official rooms Config.privateRooms
: Specify which rooms are privateConfig.initCmds
: Array of commands to send after loginAuth Config
Config.exceptions
: Specify rank exceptions. Use userid: true
for full permissionsConfig.ranks
: Array of user groups ordered from lowest to highest authConfig.globalPermissions
: Global permissions that cannot be changed with set
Commands Config
Config.commandTokens
: Array of valid command characters. A command character, for example, .
means .command
usageConfig.defaultPermission
: Default permision set for this.can
in commands permissionsConfig.permissionExceptions
: Exceptions for commands permissionsConfig.botguide
: Bot commands guide linkConfig.pmhelp
: Help message said when users pm the bot with no commandsConfig.ignoreRooms:
Room that will be ignored by CommandParser you you can use commands on those rooms. For example if you want to log the room without interfering with other bots commands. Language Config
Config.language
: Set default languageConsole Config
Config.debug
: Specify which console messages are shownContributors:
Part of this code is imported from other developments, so credits to: