Official add-on pack for Slack RPG
Add-on packs are folders containing JSON files with new locations names, monsters, etc. Each folder acts as a namespace, with the name of the user/repo as the top level namespace.
If you want to create your own add-on to include in Slack RPG, the fastest way is to for this repository and either add a new folder or modify the files in the default folder.
We have provided a script to validate your add-on to be sure it follows the format expected.
- Install required modules using
npm install
- Run
npm run validate
to validate your add-on:
$ npm run validate
default:
- locations.json is OK!
- monsters.json is OK!
- weapons.json is OK!
- names.json is OK!
All add-ons follow the same top level format:
- type: The type of add-on this file is for
- version: The version of the schema this file follows
- data: The actual data of your add-on
Locations contain three types of items:
Names consist of three arrays: pre, name, sur
Names are generated by selecting one item from each array randomly. It is then combined to form the full name. Empty strings are acceptable in pre and sur if you want the name to be short and unaltered.
Roll | pre | name | sur |
---|---|---|---|
1 | rio | ||
2 | main | shire | |
3 | dire | capital | town |
4 | mme | shanty | ville |
Given a roll of 1, 3, 4 on the table above, you would end up with a name of Capitalville
Descriptions is an array of short descriptions of an area. Adding the string {{adj}}
to the description will have it replaced with a random adjective when it is built.
Adjectives is an array of adjectives to be used in a description.
Roll | adj |
---|---|
1 | funny |
2 | hairy |
3 | silly |
Given a roll of 1 and a short description of This is quite the {{adj}} town! you would end up with This is quite the silly town!
Monsters contains an array of one item type: Monsters!
A monster is an NPC that is hostile toward players and will attack them. They usually provide experience if they are defeated. A monster item consists of the following information:
- id: string, A unique id for the monster. It must be unique in the namespace.
- name: string, A human readable name of the monster.
- difficulty: integer, What level the player should be to fight monster. If a monster is a higher level than the player it will get bonuses for damage and attack rate. If a monster is a lower level, it will get penalties for damage and attack rate.
- experience: integer, The amount of experience a player gets for killing it
- hitbonus: integer, the bonus to hit for the monster. Positive gives greater chance to hit.
- hitpoints: string, (dice format) the amount of hit points the monster gets
- damage: string, (dice format) the amount of damage its attack does
- attacks: string[], A list of verbs that describe its attack
Names are used to generate names of NPCs and consists of three arrays: pre, name, sur
Names are generated by selecting one item from each array randomly. It is then combined to form the full name. Empty strings are acceptable in pre and sur if you want the name to be short and unaltered.
Roll | pre | name | sur |
---|---|---|---|
1 | bob | ||
2 | jim | todd | |
3 | sir | mary | frank |
4 | mme | billy | muffins |
Given a roll of 1, 3, 4 on the table above, you would end up with a name of Marymuffins
Weapons are used by characters to attack.
Types is an array of Weapon Types. Weapon types are generic types of weapons and provides verbs for actions.
- id: string, A unique id for the weapon type. It must be unique in the namespace.
- phrases: object
- attack: string[], an array of verbs that describe how weapons of that type attack
- break: string[], an array of verbs that describe how weapons of that type break
Weapons is an array of Weapons.
- id: string, A unique id for the weapon. It must be unique in the namespace.
- name: string, A human readable name of the weapon.
- type: string, The ID of weapon type
- hands: integer, (1,2) The number of hands needed to wield the weapon
- damage: string, (dice format) the amount of damage the weapon does
- rarity: integer, How rare the item is, calculate as the ratio of 1:N
- fragility: integer, How likely the weapon is to break.
- wear: integer, how many uses before it gets a wear point.