To start, copy the following code block and fill the empty ""
values.
"race": [
{
"name": "",
"source": "",
"page": "",
"ability": [],
"size": [],
"speed": 0,
"entries": [
{
"type": "entries",
"name": "",
"entries": [
""
]
},
{
"type": "entries",
"name": "",
"entries": [
""
]
}
]
}
]
The two fields that expect a particular structure of data are the following ones:
"ability"
- The abreviation of the characteristic (str
, dex
, con
, int
, wis
, cha
) followed by the ammount of points. For example:"ability": [
{
"str": 2,
"con": 1
}
]
"size"
- Enter each size the race can be into the array. For example, set "size": ["M"]
for a Medium race, "size": ["S"]
for a Small race, or "size": ["S", "M"]
for a “Small or Medium” race."L"
for Large, "T"
for Tiny, etc. You can also use ["V"]
for “size varies”.Make sure you are adding these blocks in the same level as the "name"
, "source"
, etc.
To choose from 2 or more defined sets, simply add new objects as you please.
"ability": [
{
"str": 2,
"con": 1
},
{
"dex": 2,
"wis": 1
}
]
You can let your players choose a "count"
of characteristics to be incremented a defined "amount"
.
"ability": [
{
"choose": {
"from": [
"str",
"dex",
"con",
"int",
"wis",
"cha"
],
"count": 3,
"amount": 1
}
}
]
And if you want even more control over the options, you can have different "weights"
in the scores.
"ability": [
{
"choose": {
"weighted": {
"from": [
"str",
"dex",
"con",
"wis"
],
"weights": [
2,
1,
-1,
-2
]
}
}
}
]
Note that all these options can be mixed and matched.
This lets you give extra names to a creature that will direct to it if searched on the search bar.
"alias": [
"The Forgotten Ones"
]
A sound file associated with the race. Used for name pronunciation in official items, but you can experiment with other uses.
"soundClip": "www.exampleURL.com/exampleFile.mp3"
The structure of subraces is similar to the races one, the subrace data will always overwrite the same one in the race. In the code example the "overwrite"
functionality is described, which will allow you to completely overwrite a property from the race, such as language proficiencies.
"subraces": [
{
"name": "",
"source": "",
"overwrite": {
"languageProficiencies": true
}
}
]
This is one way of building subraces, inside the race itself. You can also put them in it’s own “subraces” block (add link someday).
Write the amount of feet the race has of darkvision.
"darkvision": 30
This section will not add visible info, only improves the filtering compatibility.
Here you’ll see all the currently avaliable options. Use the apppropiate ones for your race.
"traitTags": [
"Amphibious",
"Armor Proficiency",
"Blindsight",
"Damage Immunity",
"Damage Resistance",
"Dragonmark",
"Improved Resting",
"Magic Resistance",
"Monstrous Race",
"Natural Armor",
"NPC Race",
"Powerful Build",
"Skill Proficiency",
"Spellcasting",
"Tool Proficiency",
"Unarmed Strike",
"Uncommon Race",
"Weapon Proficiency"
]
This section will not add visible info, only improves the filtering compatibility.
To be able to choose from any of the existing languages (or restrict it to only standard ones), use the following followed by the number of languages.
"languageProficiencies": [
{
"any": 2,
"anyStandard": 1
}
]
To restrict it to certain languages, write the name followed by "true"
.
"languageProficiencies": [
{
"abbysal": true,
"celestial": true,
"deep speech": true,
"draconic": true,
"infernal": true,
"primordial": true,
"sylvan": true,
"undercommon": true,
"dwarvish": true,
"elvish": true,
"giant": true,
"common": true,
"other": true
}
]
To choose a number ("count"
) of languages from a list:
"languageProficiencies": [
{
"choose": {
"from": [
"abyssal",
"celestial",
"undercommon"
],
"count": 2
}
}
]
Write the name of the skill the race is proficient with followed by "true"
.
"skillProficiencies": [
{
"history": true,
"survival": true
}
]
To choose from different options:
"skillProficiencies": [
{
"choose": {
"from": [
"deception",
"insight",
"intimidation",
"persuasion"
],
"count": 2
}
}
]
"count"
— the total number of skills you can chooseThe simplest way to add fluff to a race is to write it directly inside the race itself, at the same level as the other properties.
The code example also adds an image to the race. If you do not want to, make sure you delete that part.
"fluff": {
"entries": [
{
"type": "entries",
"name": "Some interesting fluff",
"entries": [
"This is such a cool race!"
]
}
],
"images": [
{
"type": "image",
"href": {
"type": "external",
"url": "www.example.com/image.png"
}
}
]
}
You can also write the fluff in a separate "raceFluff"
block, and reference it inside the race. This is useful when you want to have the same fluff for different races.
"fluff": {
"_raceFluff": {
"name": "",
"source": ""
}
}
You can also append the fluff after some text you have written. This way you can have a general fluff that appears in several races, and only a small part that changes (like the official subraces)
"fluff": {
"entries": [
"Example fluff. This race is very cool!"
],
"_appendRaceFluff": {
"name": "",
"source": ""
}
}
The base Height should be in inches, the Weight in pounds. The modifiers should be in dice format (xdy)
"heightAndWeight": {
"baseHeight": ,
"heightMod": "",
"baseWeight": ,
"weightMod": ""
}
How to link to a Race within strings:
{@race <name_of_race>|<json_source>|<optional_text_information>}
Example:
{@race Aarakocra|eepc}
{@race Aarakocra|eepc|and optional link text added with another pipe}