To start, copy the following code block and fill the empty ""
values.
"optionalfeature": [
{
"name": "",
"source": "",
"page": 0,
"featureType": [
""
],
"entries": [
""
]
}
]
"name"
— the name of the feat."source"
— make sure it is the same as the "json"
key in the _meta."page"
— page of the document the hazard appears at (leave at 0 if not applicable)."featureType"
— the type of optional feature. To see all the different options, see the table at the bottom of this section. To have several types, add strings separated by comma."entries"
— consists of text strings (""
) separated by commas.The following is a list of all the available featureType
tags. Be aware that a single Optional Feature can have more than one tag at the same time.
Type | Meaning |
---|---|
"ED" |
Elemental Discipline |
"EI" |
Eldritch Invocation |
"MM" |
Metamagic |
"MV" |
Maneuver |
"MV:B" |
Maneuver, Battle Master |
"OTH" |
Other |
"FS:F" |
Fighting Style, Fighter |
"FS:B" |
Fighting Style, Bard |
"FS:R" |
Fighting Style, Ranger |
"FS:P" |
Fighting Style, Paladin |
"MV:C2-UA" |
Maneuver, Cavalier V2 (UA) |
"AS:V1-UA" |
Arcane Shot, V1 (UA) |
"AS:V2-UA" |
Arcane Shot, V2 (UA) |
"AS" |
Arcane Shot |
"PB" |
Pact Boon |
"AI" |
Artificer Infusion |
"SHP:H" |
Ship Upgrade, Hull |
"SHP:M" |
Ship Upgrade, Movement |
"SHP:W" |
Ship Upgrade, Weapon |
"SHP:F" |
Ship Upgrade, Figurehead |
"SHP:O" |
Ship Upgrade, Miscellaneous |
"IWM:W" |
Infernal War Machine Variant, Weapon |
"IWM:A" |
Infernal War Machine Upgrade, Armor |
"IWM:G" |
Infernal War Machine Upgrade, Gadget |
"OR" |
Onomancy Resonant |
"RN" |
Rune Knight Rune |
"AF" |
Alchemical Formula |
Additional
optionalFeatureTypes
can be defined in the _meta, which help with categorizing and filtering.
See its page for info on how to.
Make sure you are adding these blocks in the same level as the "name"
, "source"
, etc.
Some options will have a prerequisite, something that the player needs to fulfill if they want to be able to pick it, such as being a member of a certain race or having a high ability score. This is a very flexible category, so it is divided in several blocks.
The simplest way to restrict by level is by Player Character level.
"prerequisite": [
{
"level": 10
}
]
It is also possible to restrict by class/subclass level
"prerequisite": [
{
"level": {
"level": 5,
"class":{
"name": "Fighter",
"source":"PHB",
"visible": true
}
}
}
]
"visible"
— Governs whether or not the class name is visible in the list display/prerequisite line. Not recommended for features which implicitly carry a class restriction, such as Eldritch Invocations.To restrict by subclass, simply change
"class"
for"subclass"
while using the same structure. Note that the subclass short name is to be used, and that you need to have both class and subclass prerequisites for the latter to show.
"prerequisite": [
{
"race": [
{
"name": "Elf",
"subrace": "drow",
"displayEntry": "Tel-quessir"
}
]
}
]
"name"
— the name of the race"subrace"
— optional, name of the subrace"displayEntry"
— optional long-form name to be used in the rendered entity.Write the first 3 letters of the ability, followed by the minimum score.
"prerequisite": [
{
"ability": [
{
"dex": 13
}
]
}
]
Some features require the ability of casting spells
"prerequisite": [
{
"spellcasting": true
}
]
Warlock pacts, like "Chain"
, "Tome"
, "Blade"
or "Talisman"
.
"prerequisite": [
{
"pact": "Chain"
}
]
Warlock patrons
"prerequisite": [
{
"patron": "The Archfey"
}
]
The knowledge of a specific spell.
"prerequisite": [
{
"spell": [
"eldritch blast"
]
}
]
|
e.g. "Absorb Elements|XGE"
.#c
at the end, it will render as "Eldritch Blast cantrip".Sometimes a feature is an advanced version of a previous one, which is required to be able to choose the new one.
"prerequisite": [
{
"feature": [
"Alert"
]
}
]
Mostly used for Artificer Infusions.
"prerequisite": [
{
"item": [
"A suit of armor or a shield"
]
}
]
The ability to cast Psionic Powers.
"prerequisite": [
{
"psionics": true
}
]
Proficiency with different categories of weapons or armor.
"prerequisite": [
{
"proficiency": [
{
"weapon": "martial"
},
{
"armor": "heavy"
}
]
}
]
"simple"
, "martial"
or the name of the weapon."light"
, "medium"
, "heavy"
or the name of the armor.A free text prerequisite. Will render as "Special" in the features list, with the text in the entry.
"prerequisite": [
{
"other": "Two eyes"
}
]
To have a specific test in the list, use this format:
"prerequisite": [
{
"otherSummary": {
"entry": "The full description",
"entrySummary": "Short desc."
}
}
]
"entrySummary"
— used in short/list displays.If your homebrew feature is a modification of an existing one, you can point to the original one. This will automatically render a link at the end of the text entry.
"previousVersion": {
"name": "Aspect of the Moon",
"source": "UAWarlockAndWizard"
}
How to link to an Optional Feature within strings:
{@optfeature <optional_feature_name>|<json_source>|<optional_text_information>}
Example:
{@optfeature Aspect of the Moon|XGE}
{@optfeature Aspect of the Moon|XGE|and optional link text added with another pipe}