Additional Content Schemas Reference
Field references for additional content types in the extracted 5etools data format.
Optional Features
File Location
- Path:
{book}/optionalfeatures/{source}.json
JSON Structure
{
"optionalfeature": [
{
// optional feature objects
}
]
}
Core Fields
name(string) - Feature name (e.g., “Archery”, “Agonizing Blast”)source(string) - Source book abbreviationpage(number) - Page numberfeatureType(array) - Feature categories (e.g., [“FS:F”] for Fighting Style: Fighter)entries(array) - Feature descriptionprerequisite(array) - Requirements
Feature Types
Common feature type codes:
"FS:F"- Fighting Style (Fighter)"FS:R"- Fighting Style (Ranger)"FS:P"- Fighting Style (Paladin)"EI"- Eldritch Invocation"MM"- Metamagic"MV"- Maneuver (Battle Master)"AS"- Arcane Shot"PB"- Pact Boon"AI"- Artificer Infusion
Example Entry
{
"name": "Defense",
"source": "PHB",
"page": 72,
"featureType": ["FS:F", "FS:P", "FS:R"],
"entries": [
"While you are wearing armor, you gain a +1 bonus to AC."
]
}
Actions
File Location
- Path:
{book}/actions/{source}.json
JSON Structure
{
"action": [
{
// action objects
}
]
}
Core Fields
name(string) - Action name (e.g., “Attack”, “Dash”, “Dodge”)source(string) - Source bookpage(number) - Page referenceentries(array) - Action descriptiontime(array) - Action timing (action, bonus action, reaction)srd(boolean) - In SRDbasicRules(boolean) - In basic rules
Action Types
{
"name": "Grapple",
"source": "PHB",
"page": 195,
"srd": true,
"basicRules": true,
"time": [
"Action"
],
"entries": [
"When you want to grab a creature or wrestle with it...",
{
"type": "entries",
"name": "Grappling Rules",
"entries": [
"The target must be no more than one size larger...",
"Using at least one free hand, you try to seize the target..."
]
}
]
}
Deities
File Location
- Path:
{book}/deities/{source}.json
JSON Structure
{
"deity": [
{
// deity objects
}
]
}
Core Fields
name(string) - Deity namesource(string) - Source bookpage(number) - Page referencealignment(array) - Deity alignment(s)domains(array) - Cleric domainssymbol(string) - Holy symbol descriptionpantheon(string) - Pantheon membershiptitle(string) - Deity titlescategory(string) - Deity category
Example Deity
{
"name": "Bahamut",
"source": "PHB",
"page": 293,
"alignment": ["L", "G"],
"title": "god of good dragons",
"domains": ["Life", "War"],
"symbol": "Dragon's head in profile",
"pantheon": "Draconic"
}
Languages
File Location
- Path:
{book}/languages/{source}.json - Fluff:
{book}/languages/fluff-{source}.json
JSON Structure
{
"language": [
{
// language objects
}
]
}
Core Fields
name(string) - Language namesource(string) - Source bookpage(number) - Page referencetype(string) - Language type (“standard”, “exotic”, “secret”)typicalSpeakers(array) - Common speakersscript(string) - Writing system usedentries(array) - Description
Example Language
{
"name": "Dwarvish",
"source": "PHB",
"page": 123,
"type": "standard",
"typicalSpeakers": ["Dwarves"],
"script": "Dwarvish",
"entries": [
"Dwarvish is full of hard consonants and guttural sounds..."
]
}
Tables
File Location
- Path:
{book}/tables/{source}.json
JSON Structure
{
"table": [
{
// table objects
}
]
}
Core Fields
name(string) - Table namesource(string) - Source bookpage(number) - Page referencecaption(string) - Table captioncolLabels(array) - Column headerscolStyles(array) - Column CSS stylesrows(array) - Table data rowstype(string) - Table type
Example Table
{
"name": "Character Advancement",
"source": "PHB",
"page": 15,
"caption": "Character Advancement",
"colLabels": [
"Level",
"Experience Points",
"Proficiency Bonus"
],
"colStyles": [
"col-2 text-center",
"col-5 text-center",
"col-5 text-center"
],
"rows": [
["1", "0", "+2"],
["2", "300", "+2"],
["3", "900", "+2"],
["4", "2,700", "+2"],
["5", "6,500", "+3"]
]
}
Variant Rules
File Location
- Path:
{book}/variantrules/{source}.json
JSON Structure
{
"variantrule": [
{
// variant rule objects
}
]
}
Core Fields
name(string) - Rule namesource(string) - Source bookpage(number) - Page referenceruleType(string) - Type of rule (“variant”, “optional”)entries(array) - Rule description
Example Variant Rule
{
"name": "Feats",
"source": "PHB",
"page": 165,
"ruleType": "variant",
"entries": [
"A feat represents a talent or an area of expertise...",
{
"type": "entries",
"name": "Prerequisites",
"entries": [
"You must meet any prerequisite specified in a feat..."
]
},
{
"type": "entries",
"name": "Using Feats",
"entries": [
"At certain levels, your class gives you the Ability Score Improvement feature..."
]
}
]
}
Book Metadata
File Location
- Path:
{book}/metadata.json
JSON Structure
{
"name": "Player's Handbook",
"id": "PHB",
"source": "PHB",
"group": "core",
"published": "2014-08-19",
"author": "Wizards of the Coast",
"contents": [
{
"name": "Introduction",
"headers": ["Introduction"]
},
{
"name": "Part 1: Creating a Character",
"headers": ["Chapter 1: Step-by-Step Characters", "Chapter 2: Races", ...]
}
]
}
Book Content
File Location
- Path:
{book}/book/book-{source}.json
JSON Structure
{
"book": [
{
"name": "Player's Handbook",
"id": "PHB",
"source": "PHB",
"contents": [
{
"name": "Introduction",
"headers": [],
"ordinal": {
"type": "chapter",
"identifier": 0
}
}
]
}
]
}
Content Types
Book content includes:
- Chapters with headers
- Sections and subsections
- Tables of contents
- Appendices
- Indices
Data Type Filtering
All content types support source filtering in the splitter:
- Primary source matching (
sourcefield) - Additional sources (
otherSourcesarray) - Copy references (
_copyhandling) - Variant inclusion
Cross-References
Content frequently includes cross-references:
{@spell spell name}- Spell reference{@item item name}- Item reference{@creature creature name}- Creature reference{@condition condition name}- Condition reference{@skill skill name}- Skill reference{@action action name}- Action reference{@background background name}- Background reference{@feat feat name}- Feat reference{@race race name}- Race reference{@class class name}- Class reference{@table table name}- Table reference{@book book id}- Book reference
Entry Types
Common entry types across all schemas:
"entries"- Standard text entries"list"- Bulleted or numbered lists"table"- Tabular data"quote"- Quote blocks"inset"- Sidebar/inset boxes"insetReadaloud"- Read-aloud text boxes"image"- Image references"gallery"- Image galleries"flowchart"- Decision flowcharts"section"- Document sections