This slack bot will run an RPG inside your slack instance.
<!-- TOC depthFrom:2 depthTo:6 withLinks:1 updateOnSave:1 orderedList:0 -->
- Non-Player characters
- Interacting with Bot
<!-- /TOC -->
- Each Channel the bot is invited to will become a new location in the game.
- Each Location can have non-playable characters (NPC) and/or monsters
- Players can join game and build a character
- Players can interact with Locations, NPCs and monsters
- Players can gain experience interacting with certain things and accomplishing quests
- Players can search for and find equip-able items
- Players can challenge other players to become rulers of a location
When your GM is invited to a new channel, it will generate a new Location and link it to the channel. Locations will have any number of Points of Interest. When a location is first generated, it will have a NPC ruler of a certain class/level. When a player reaches that level, they can challenge the NPC to a battle. If they win they become the new ruler of the location. Other players can challenge that player to become the new ruler.
Location can be of various types:
- Tavern: Usually contains NPCs and a quest board
- Adventure: An area of danger and intrigue
- Shop: An area to buy and sell items
Non-Player Characters (NPCs) are characters controlled by the Dungeon Master. They could give out quests, rule locations, or just be regular hang about's. NPCs are usually friendly toward players unless provoked.
Monsters are NPCs that are hostile toward players. They can be defeated for experience during battles.
Add-ons are packs of Monsters, Locations, Weapons, Names etc that can be included to enhance your game. See slack-rpg/addon-official for more details.
Interacting with Bot
You can interact with the both through Direct Message or mentioning it in a channel.
Direct messages are used to have a private conversation with the bot, such as creating a character.
You can give the bot a command by mentioning it:
@bot roll 1d6
The bot will respond to the following commands:
- roll <dice>: The bot will randomly roll the dice you specify and respond with the result.
npm install(make sure your NODE_ENV !=
The config file should be filled out as follows:
- addons: string, a comma separated list of addons to load (defaults to 'slack-rpg/addon-official')
- general: boolean, Include the general channel as a location or not
- token: string, Your slack token
- autoReconnect: boolean, Reconnect on disconnect
Build an image using
docker build -t your_image:tag
Official Image slackrpg/slack-rpg
Configuration Environment Variables
You can set the configuration of the bot by using environment variables. _ENVIRONMENTVARIABLE=Default Value
- _APPADDONS='slack-rpg/addon-official', a comma separated list of add-ons to load
- _APP_INCLUDEGENERAL=false, Include the general channel as a location
- _SLACKTOKEN=xoxb-foo, Your Slack Token
- _SLACK_AUTORECONNECT=true, Reconnect on disconnect
Set them using the
-e flag while running docker:
docker run -it \ -e SLACK_TOKEN=xobo-blarty-blar-blar \ slackrpg/slack-rpg:latest
- Create a new branch, please don't work in master directly.
- Add failing tests for the change you want to make (if appliciable). Run
npm testto see the tests fail.
- Fix stuff.
npm testto see if the tests pass. Repeat steps 2-4 until done.
- Check code coverage
npm run coverageand add test paths as needed.
- Update the documentation to reflect any changes.
- Push to your fork and submit a pull request.