Manual · Content and homebrew
Troubleshooting
The symptoms a real file produces, each with its cause and the one-line fix.
Every row is something a real file has done. If yours is not here, run the probe in Structured content first.
| Symptom | Cause | Fix |
|---|---|---|
| The feature is on the card, nothing on the sheet changed | entries is text; nothing produced an effect | Add a _sheetling block with the matching effect kind |
| The wizard offered a pick and then rejected it, or a pick offers nothing | A species' ability choice written as choose.weighted, the background shape | Write { "choose": { "from": [...], "amount": 1, "count": 1 } } |
| My subclass attached to the shipped class, not mine | className matches a shipped class by bare name, and a default classSource takes the shipped one | Give the subclass a classSource naming your file, or name the class something no shipped class uses |
| My species vanished after import | A block on a trait the file shares across subraces mints one id per copy; duplicates are dropped, and the species with them | Put the block on each subrace's own trait |
| My spell is not offered in Prepare | classes.fromClassList decides whose dialog lists it | Add the class there, or grant the spell through additionalSpells or a block |
| Level-up asks for an Ability Score Improvement I did not author | Any classFeature named "Ability Score Improvement" is read as the level's own | Rename it, or leave it out |
| My magic item does nothing | Item effects apply only while equipped, or attuned once reqAttune is set | Equip or attune it; then check the preview for a "detail dropped" row |
| The preview says "not supported" | variantrule and a free-standing table produce nothing, on purpose | A rule variant is a house rule; a table inside a feature's entries still renders on its card |
| Spell slots never appear on my class | The slot table sits under rows | Move it to rowsSpellProgression |
| A grant spends a pool that does not exist, and the entry is gone | costTrackerId names no grants_resource in the same ruleset | Declare the tracker beside it |
| An effect never turns on, or never off | toggleActive names the wrong toggle id; a missing id is caught, a wrong one is not | Check it against the grants_toggle.id, exactly |
| A toggle switches off after every rest | A toggle is a stance by default | Add "persists": true for a state the story sets |
| A pick's pool is wider than I meant | A {@filter} key the importer cannot hold | Say it in the card text; the pick keeps its level and class filter |
| My homebrew condition imposes nothing | A condition entry is text only | Add a block with the effects it should impose |
| Two files define the same name | The first registered wins; a shipped name always wins | Rename yours |