Files
TheriapolisV3/Content/Data/classes.json
T
Christopher Wiebe b451f83174 Initial commit: Theriapolis baseline at port/godot branch point
Captures the pre-Godot-port state of the codebase. This is the rollback
anchor for the Godot port (M0 of theriapolis-rpg-implementation-plan-godot-port.md).
All Phase 0 through Phase 6.5 work is included; Phase 7 is in flight.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-30 20:40:51 -07:00

487 lines
41 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[
{
"id": "fangsworn",
"name": "Fangsworn",
"hit_die": 10,
"primary_ability": ["STR", "DEX"],
"saves": ["STR", "CON"],
"armor_proficiencies": ["light", "medium", "heavy", "shields"],
"weapon_proficiencies": ["simple", "martial", "natural"],
"tool_proficiencies": [],
"skills_choose": 2,
"skill_options": ["athletics", "intimidation", "perception", "survival", "animal_handling"],
"subclass_ids": ["pack_forged", "lone_fang"],
"starting_kit": [
{ "item_id": "rend_sword", "qty": 1, "auto_equip": true, "equip_slot": "main_hand" },
{ "item_id": "chain_shirt", "qty": 1, "auto_equip": true, "equip_slot": "body" },
{ "item_id": "buckler", "qty": 1, "auto_equip": true, "equip_slot": "off_hand" },
{ "item_id": "healers_kit", "qty": 1, "auto_equip": false },
{ "item_id": "rations_predator", "qty": 5, "auto_equip": false }
],
"level_table": [
{ "level": 1, "prof": 2, "features": ["fighting_style", "claw_and_steel"] },
{ "level": 2, "prof": 2, "features": ["action_surge_1"] },
{ "level": 3, "prof": 2, "features": ["subclass_select"] },
{ "level": 4, "prof": 2, "features": ["asi"] },
{ "level": 5, "prof": 3, "features": ["extra_attack_2"] },
{ "level": 6, "prof": 3, "features": ["asi"] },
{ "level": 7, "prof": 3, "features": ["subclass_feature"] },
{ "level": 8, "prof": 3, "features": ["asi"] },
{ "level": 9, "prof": 4, "features": ["indomitable_1"] },
{ "level": 10, "prof": 4, "features": ["subclass_feature"] },
{ "level": 11, "prof": 4, "features": ["extra_attack_3"] },
{ "level": 12, "prof": 4, "features": ["asi"] },
{ "level": 13, "prof": 5, "features": ["indomitable_2"] },
{ "level": 14, "prof": 5, "features": ["asi"] },
{ "level": 15, "prof": 5, "features": ["subclass_feature"] },
{ "level": 16, "prof": 5, "features": ["asi"] },
{ "level": 17, "prof": 6, "features": ["action_surge_2", "indomitable_3"] },
{ "level": 18, "prof": 6, "features": ["subclass_feature"] },
{ "level": 19, "prof": 6, "features": ["asi"] },
{ "level": 20, "prof": 6, "features": ["extra_attack_4"] }
],
"feature_definitions": {
"fighting_style": { "name": "Fighting Style", "kind": "choice", "description": "Pick one combat style. Each gives a passive combat bonus.", "options": ["fang_and_blade", "shieldwall", "duelist", "great_weapon", "natural_predator"] },
"claw_and_steel": { "name": "Claw & Steel", "kind": "passive", "description": "Combine natural-weapon and manufactured-weapon attacks freely within a single Attack action — no other class can do this without specific permission." },
"action_surge_1": { "name": "Action Surge", "kind": "active", "uses_per_short_rest": 1, "description": "Once per short rest, take one additional action on your turn." },
"action_surge_2": { "name": "Action Surge (2/rest)", "kind": "active", "uses_per_short_rest": 2, "description": "Use Action Surge twice per short rest." },
"subclass_select": { "name": "Subclass Selection", "kind": "stub", "description": "Choose a Fangsworn subclass: Pack-Forged or Lone Fang. (Phase 5: subclass mechanics deferred.)" },
"subclass_feature": { "name": "Subclass Feature", "kind": "stub", "description": "Subclass-specific feature granted at this level. (Phase 5: deferred.)" },
"asi": { "name": "Ability Score Improvement", "kind": "stub", "description": "Increase one ability score by 2, or two by 1 each. (Phase 5: deferred — character is locked at level 1.)" },
"extra_attack_2": { "name": "Extra Attack (2)", "kind": "passive", "description": "Two attacks per Attack action." },
"extra_attack_3": { "name": "Extra Attack (3)", "kind": "passive", "description": "Three attacks per Attack action." },
"extra_attack_4": { "name": "Extra Attack (4)", "kind": "passive", "description": "Four attacks per Attack action." },
"indomitable_1": { "name": "Indomitable", "kind": "active", "uses_per_long_rest": 1, "description": "Reroll a failed saving throw, once per long rest." },
"indomitable_2": { "name": "Indomitable (2/rest)", "kind": "active", "uses_per_long_rest": 2, "description": "Reroll a failed saving throw, twice per long rest." },
"indomitable_3": { "name": "Indomitable (3/rest)", "kind": "active", "uses_per_long_rest": 3, "description": "Reroll a failed saving throw, three times per long rest." }
}
},
{
"id": "bulwark",
"name": "Bulwark",
"hit_die": 12,
"primary_ability": ["CON"],
"saves": ["CON", "CHA"],
"armor_proficiencies": ["light", "medium", "heavy", "shields"],
"weapon_proficiencies": ["simple", "martial", "natural"],
"tool_proficiencies": [],
"skills_choose": 2,
"skill_options": ["athletics", "insight", "intimidation", "medicine", "perception"],
"subclass_ids": ["herd_wall", "antler_guard"],
"starting_kit": [
{ "item_id": "hoof_club", "qty": 1, "auto_equip": true, "equip_slot": "main_hand" },
{ "item_id": "chain_mail", "qty": 1, "auto_equip": true, "equip_slot": "body" },
{ "item_id": "standard_shield", "qty": 1, "auto_equip": true, "equip_slot": "off_hand" },
{ "item_id": "healers_kit", "qty": 1, "auto_equip": false },
{ "item_id": "rations_predator", "qty": 5, "auto_equip": false }
],
"level_table": [
{ "level": 1, "prof": 2, "features": ["sentinel_stance", "guardians_mark"] },
{ "level": 2, "prof": 2, "features": ["shield_of_the_herd"] },
{ "level": 3, "prof": 2, "features": ["subclass_select"] },
{ "level": 4, "prof": 2, "features": ["asi"] },
{ "level": 5, "prof": 3, "features": ["extra_attack", "immovable_1"] },
{ "level": 6, "prof": 3, "features": ["subclass_feature"] },
{ "level": 7, "prof": 3, "features": ["guardians_aura_10"] },
{ "level": 8, "prof": 3, "features": ["asi"] },
{ "level": 9, "prof": 4, "features": ["unbreakable_will"] },
{ "level": 10, "prof": 4, "features": ["subclass_feature"] },
{ "level": 11, "prof": 4, "features": ["improved_guardians_mark"] },
{ "level": 12, "prof": 4, "features": ["asi"] },
{ "level": 13, "prof": 5, "features": ["guardians_aura_15"] },
{ "level": 14, "prof": 5, "features": ["asi"] },
{ "level": 15, "prof": 5, "features": ["subclass_feature"] },
{ "level": 16, "prof": 5, "features": ["asi"] },
{ "level": 17, "prof": 6, "features": ["immovable_2"] },
{ "level": 18, "prof": 6, "features": ["guardians_aura_20"] },
{ "level": 19, "prof": 6, "features": ["asi"] },
{ "level": 20, "prof": 6, "features": ["subclass_feature", "last_one_standing"] }
],
"feature_definitions": {
"sentinel_stance": { "name": "Sentinel Stance", "kind": "bonus_action", "description": "Bonus action: enter defensive stance. Speed halved, +2 AC, opportunity attacks at advantage. Ends if you move more than half speed or as a free action." },
"guardians_mark": { "name": "Guardian's Mark", "kind": "bonus_action", "description": "Bonus action: mark a creature within 30 ft. While marked, if it attacks anyone other than you, you may make a melee attack against it as a reaction (if in range)." },
"shield_of_the_herd": { "name": "Shield of the Herd", "kind": "reaction", "description": "Reaction: when an adjacent ally is targeted by an attack, become the target instead." },
"extra_attack": { "name": "Extra Attack", "kind": "passive", "description": "Two attacks per Attack action." },
"immovable_1": { "name": "Immovable", "kind": "reaction", "uses_per_long_rest": 1, "description": "Reaction: reduce incoming damage by 1d12 + CON. Once per long rest." },
"immovable_2": { "name": "Immovable (2/rest)", "kind": "reaction", "uses_per_long_rest": 2, "description": "Reaction: reduce incoming damage by 2d12 + CON. Twice per long rest." },
"guardians_aura_10": { "name": "Guardian's Aura (10 ft.)", "kind": "passive", "description": "Allies within 10 ft. gain +1 to all saves while you are conscious." },
"guardians_aura_15": { "name": "Guardian's Aura (15 ft.)", "kind": "passive", "description": "Aura range increases to 15 ft." },
"guardians_aura_20": { "name": "Guardian's Aura (20 ft.)", "kind": "passive", "description": "Aura range increases to 20 ft." },
"unbreakable_will": { "name": "Unbreakable Will", "kind": "passive", "description": "Immune to the frightened condition." },
"improved_guardians_mark":{ "name": "Improved Guardian's Mark", "kind": "passive", "description": "Marked creatures also have disadvantage on attacks against creatures other than you." },
"last_one_standing": { "name": "Last One Standing", "kind": "active", "uses_per_long_rest": 1, "description": "When every other allied creature within 60 ft. is at 0 HP or has fled: resistance to all damage, advantage on all attacks and saves, Mark applies to all hostile creatures simultaneously. 1 minute." },
"subclass_select": { "name": "Subclass Selection", "kind": "stub", "description": "Choose a Bulwark subclass: Herd-Wall or Antler-Guard. (Phase 5: deferred.)" },
"subclass_feature": { "name": "Subclass Feature", "kind": "stub", "description": "Subclass-specific feature granted at this level. (Phase 5: deferred.)" },
"asi": { "name": "Ability Score Improvement", "kind": "stub", "description": "Increase ability scores. (Phase 5: deferred.)" }
}
},
{
"id": "feral",
"name": "Feral",
"hit_die": 12,
"primary_ability": ["STR", "CON"],
"saves": ["STR", "CON"],
"armor_proficiencies": ["light", "medium"],
"weapon_proficiencies": ["simple", "natural"],
"tool_proficiencies": [],
"skills_choose": 2,
"skill_options": ["athletics", "intimidation", "nature", "perception", "survival"],
"subclass_ids": ["blood_memory", "stampede_heart"],
"starting_kit": [
{ "item_id": "paw_axe", "qty": 1, "auto_equip": true, "equip_slot": "main_hand" },
{ "item_id": "hide_vest", "qty": 1, "auto_equip": true, "equip_slot": "body" },
{ "item_id": "healers_kit", "qty": 1, "auto_equip": false },
{ "item_id": "rations_predator", "qty": 5, "auto_equip": false }
],
"level_table": [
{ "level": 1, "prof": 2, "features": ["feral_rage_2", "unarmored_defense"] },
{ "level": 2, "prof": 2, "features": ["ancestral_sense", "reckless_attack"] },
{ "level": 3, "prof": 2, "features": ["subclass_select"] },
{ "level": 4, "prof": 2, "features": ["asi"] },
{ "level": 5, "prof": 3, "features": ["extra_attack", "fast_movement"] },
{ "level": 6, "prof": 3, "features": ["subclass_feature"] },
{ "level": 7, "prof": 3, "features": ["instinct_awareness"] },
{ "level": 8, "prof": 3, "features": ["asi"] },
{ "level": 9, "prof": 4, "features": ["feral_rage_3", "brutal_critical_1"] },
{ "level": 10, "prof": 4, "features": ["subclass_feature"] },
{ "level": 11, "prof": 4, "features": ["relentless_rage"] },
{ "level": 12, "prof": 4, "features": ["asi"] },
{ "level": 13, "prof": 5, "features": ["brutal_critical_2"] },
{ "level": 14, "prof": 5, "features": ["subclass_feature"] },
{ "level": 15, "prof": 5, "features": ["persistent_rage"] },
{ "level": 16, "prof": 5, "features": ["asi"] },
{ "level": 17, "prof": 6, "features": ["feral_rage_4", "brutal_critical_3"] },
{ "level": 18, "prof": 6, "features": ["indomitable_instinct"] },
{ "level": 19, "prof": 6, "features": ["asi"] },
{ "level": 20, "prof": 6, "features": ["apex"] }
],
"feature_definitions": {
"feral_rage_2": { "name": "Feral Rage", "kind": "bonus_action", "uses_per_long_rest": 2, "description": "Bonus action to enter rage. Advantage on STR checks/saves, +2 melee damage (scales), resistance to bludgeoning/piercing/slashing, no concentration. 1 minute or until you choose to end it." },
"feral_rage_3": { "name": "Feral Rage (3/rest)", "kind": "bonus_action", "uses_per_long_rest": 3, "description": "Same as Feral Rage; +3 damage. Three uses per long rest." },
"feral_rage_4": { "name": "Feral Rage (4/rest)", "kind": "bonus_action", "uses_per_long_rest": 4, "description": "Same as Feral Rage; +4 damage. Four uses per long rest." },
"unarmored_defense": { "name": "Unarmored Defense", "kind": "passive", "description": "When wearing no armor, AC = 10 + DEX + CON." },
"ancestral_sense": { "name": "Ancestral Sense", "kind": "passive", "description": "While raging: advantage on Perception, cannot be surprised, scent-blindsight 10 ft." },
"reckless_attack": { "name": "Reckless Attack", "kind": "active", "description": "On your turn: advantage on melee attacks, but all attacks against you have advantage until your next turn." },
"extra_attack": { "name": "Extra Attack", "kind": "passive", "description": "Two attacks per Attack action." },
"fast_movement": { "name": "Fast Movement", "kind": "passive", "description": "+10 ft. movement while not wearing heavy armor." },
"instinct_awareness": { "name": "Instinct Awareness", "kind": "passive", "description": "Add WIS modifier to initiative rolls." },
"brutal_critical_1": { "name": "Brutal Critical (1 die)", "kind": "passive", "description": "Roll one additional damage die on critical hits." },
"brutal_critical_2": { "name": "Brutal Critical (2 dice)", "kind": "passive", "description": "Roll two additional damage dice on critical hits." },
"brutal_critical_3": { "name": "Brutal Critical (3 dice)", "kind": "passive", "description": "Roll three additional damage dice on critical hits." },
"relentless_rage": { "name": "Relentless Rage", "kind": "active", "description": "If you drop to 0 HP while raging, CON save (DC 10, increasing by 5 each time per rage). On success, drop to 1 HP." },
"persistent_rage": { "name": "Persistent Rage", "kind": "passive", "description": "Rage only ends when you choose or are unconscious. Nothing else stops it." },
"indomitable_instinct":{ "name": "Indomitable Instinct", "kind": "passive", "description": "If your total for a STR or CON check is less than your ability score, use the ability score instead." },
"apex": { "name": "Apex Predator / Apex Prey", "kind": "passive", "description": "Capstone — variant by predator/prey clade." },
"subclass_select": { "name": "Subclass Selection", "kind": "stub", "description": "Choose Blood Memory or Stampede Heart. (Phase 5: deferred.)" },
"subclass_feature": { "name": "Subclass Feature", "kind": "stub", "description": "Subclass-specific feature. (Phase 5: deferred.)" },
"asi": { "name": "Ability Score Improvement", "kind": "stub", "description": "Increase ability scores. (Phase 5: deferred.)" }
}
},
{
"id": "shadow_pelt",
"name": "Shadow-Pelt",
"hit_die": 8,
"primary_ability": ["DEX"],
"saves": ["DEX", "INT"],
"armor_proficiencies": ["light"],
"weapon_proficiencies": ["simple", "hand_crossbow", "short_sword", "rapier", "natural"],
"tool_proficiencies": ["thieves_tools"],
"skills_choose": 4,
"skill_options": ["acrobatics", "athletics", "deception", "insight", "intimidation", "investigation", "perception", "persuasion", "sleight_of_hand", "stealth"],
"subclass_ids": ["noseblind", "ambush_artist"],
"starting_kit": [
{ "item_id": "thorn_blade", "qty": 1, "auto_equip": true, "equip_slot": "main_hand" },
{ "item_id": "studded_leather", "qty": 1, "auto_equip": true, "equip_slot": "body" },
{ "item_id": "claw_bow", "qty": 1, "auto_equip": false },
{ "item_id": "poultice_universal","qty": 2, "auto_equip": false },
{ "item_id": "scent_mask_basic", "qty": 1, "auto_equip": false },
{ "item_id": "rations_predator", "qty": 5, "auto_equip": false }
],
"level_table": [
{ "level": 1, "prof": 2, "features": ["expertise_2", "sneak_attack_1d6", "scent_discipline"] },
{ "level": 2, "prof": 2, "features": ["cunning_action"] },
{ "level": 3, "prof": 2, "features": ["subclass_select"] },
{ "level": 4, "prof": 2, "features": ["asi"] },
{ "level": 5, "prof": 3, "features": ["sneak_attack_3d6", "uncanny_dodge"] },
{ "level": 6, "prof": 3, "features": ["expertise_2_more"] },
{ "level": 7, "prof": 3, "features": ["evasion", "subclass_feature"] },
{ "level": 8, "prof": 3, "features": ["asi"] },
{ "level": 9, "prof": 4, "features": ["sneak_attack_5d6"] },
{ "level": 10, "prof": 4, "features": ["asi"] },
{ "level": 11, "prof": 4, "features": ["reliable_talent", "subclass_feature"] },
{ "level": 12, "prof": 4, "features": ["asi"] },
{ "level": 13, "prof": 5, "features": ["sneak_attack_7d6"] },
{ "level": 14, "prof": 5, "features": ["scent_ghost"] },
{ "level": 15, "prof": 5, "features": ["subclass_feature"] },
{ "level": 16, "prof": 5, "features": ["asi"] },
{ "level": 17, "prof": 6, "features": ["sneak_attack_9d6"] },
{ "level": 18, "prof": 6, "features": ["elusive"] },
{ "level": 19, "prof": 6, "features": ["asi"] },
{ "level": 20, "prof": 6, "features": ["kill_shot"] }
],
"feature_definitions": {
"expertise_2": { "name": "Expertise (2)", "kind": "passive", "description": "Double proficiency bonus for 2 proficient skills." },
"expertise_2_more": { "name": "Expertise (2 more)", "kind": "passive", "description": "Choose 2 more proficient skills to gain expertise." },
"sneak_attack_1d6": { "name": "Sneak Attack (1d6)", "kind": "passive", "description": "Once per turn, +1d6 damage on an attack with advantage or when an ally is within 5 ft. of the target." },
"sneak_attack_3d6": { "name": "Sneak Attack (3d6)", "kind": "passive", "description": "Sneak Attack damage scales to 3d6." },
"sneak_attack_5d6": { "name": "Sneak Attack (5d6)", "kind": "passive", "description": "Sneak Attack damage scales to 5d6." },
"sneak_attack_7d6": { "name": "Sneak Attack (7d6)", "kind": "passive", "description": "Sneak Attack damage scales to 7d6." },
"sneak_attack_9d6": { "name": "Sneak Attack (9d6)", "kind": "passive", "description": "Sneak Attack damage scales to 9d6." },
"scent_discipline": { "name": "Scent Discipline", "kind": "passive", "description": "Advantage on checks to suppress emotional scent leakage. Creatures with scent abilities must beat your DEX (Stealth) with their WIS (Perception) to read your emotional state." },
"cunning_action": { "name": "Cunning Action", "kind": "bonus_action", "description": "Bonus action: Dash, Disengage, or Hide." },
"uncanny_dodge": { "name": "Uncanny Dodge", "kind": "reaction", "description": "Reaction: halve damage from an attack you can see." },
"evasion": { "name": "Evasion", "kind": "passive", "description": "DEX saves for half damage become no damage on success, half on failure." },
"reliable_talent": { "name": "Reliable Talent", "kind": "passive", "description": "Skill rolls below 10 with proficiency are treated as 10." },
"scent_ghost": { "name": "Scent Ghost", "kind": "active", "uses_per_long_rest": 1, "description": "Suppress natural scent for 1 hour or project a false clade scent. Once per long rest." },
"elusive": { "name": "Elusive", "kind": "passive", "description": "No attack roll has advantage against you while you're conscious." },
"kill_shot": { "name": "Kill Shot", "kind": "active", "uses_per_short_rest": 1, "description": "When Sneak Attack hits, force CON save (DC = 8 + prof + DEX). On failure, double the damage." },
"subclass_select": { "name": "Subclass Selection", "kind": "stub", "description": "Choose Noseblind or Ambush Artist. (Phase 5: deferred.)" },
"subclass_feature": { "name": "Subclass Feature", "kind": "stub", "description": "Subclass-specific feature. (Phase 5: deferred.)" },
"asi": { "name": "Ability Score Improvement", "kind": "stub", "description": "Increase ability scores. (Phase 5: deferred.)" }
}
},
{
"id": "scent_broker",
"name": "Scent-Broker",
"hit_die": 8,
"primary_ability": ["WIS"],
"saves": ["WIS", "CHA"],
"armor_proficiencies": ["light"],
"weapon_proficiencies": ["simple", "natural"],
"tool_proficiencies": ["alchemists_supplies", "perfumers_kit"],
"skills_choose": 3,
"skill_options": ["deception", "insight", "investigation", "medicine", "perception", "persuasion", "stealth"],
"subclass_ids": ["perfumer", "tracker"],
"starting_kit": [
{ "item_id": "fang_knife", "qty": 1, "auto_equip": true, "equip_slot": "main_hand" },
{ "item_id": "leather_harness", "qty": 1, "auto_equip": true, "equip_slot": "body" },
{ "item_id": "pheromone_vial_calm", "qty": 2, "auto_equip": false },
{ "item_id": "pheromone_vial_fear", "qty": 2, "auto_equip": false },
{ "item_id": "scent_mask_basic", "qty": 2, "auto_equip": false },
{ "item_id": "rations_prey", "qty": 5, "auto_equip": false }
],
"level_table": [
{ "level": 1, "prof": 2, "features": ["scent_literacy", "nose_for_lies"] },
{ "level": 2, "prof": 2, "features": ["pheromone_craft_2"] },
{ "level": 3, "prof": 2, "features": ["subclass_select"] },
{ "level": 4, "prof": 2, "features": ["asi"] },
{ "level": 5, "prof": 3, "features": ["deep_reading", "pheromone_craft_3"] },
{ "level": 6, "prof": 3, "features": ["subclass_feature"] },
{ "level": 7, "prof": 3, "features": ["scent_ward"] },
{ "level": 8, "prof": 3, "features": ["asi"] },
{ "level": 9, "prof": 4, "features": ["pheromone_craft_4"] },
{ "level": 10, "prof": 4, "features": ["subclass_feature"] },
{ "level": 11, "prof": 4, "features": ["master_nose"] },
{ "level": 12, "prof": 4, "features": ["asi"] },
{ "level": 13, "prof": 5, "features": ["pheromone_craft_5"] },
{ "level": 14, "prof": 5, "features": ["subclass_feature"] },
{ "level": 15, "prof": 5, "features": ["scent_immunity"] },
{ "level": 16, "prof": 5, "features": ["asi"] },
{ "level": 17, "prof": 6, "features": ["grand_synthesis"] },
{ "level": 18, "prof": 6, "features": ["subclass_feature"] },
{ "level": 19, "prof": 6, "features": ["asi"] },
{ "level": 20, "prof": 6, "features": ["olfactory_omniscience"] }
],
"feature_definitions": {
"scent_literacy": { "name": "Scent Literacy", "kind": "active", "description": "Action: read clade, emotional state, general health, and scent-mask presence on a creature within 30 ft. Detailed reads need a WIS check." },
"nose_for_lies": { "name": "Nose for Lies", "kind": "passive", "description": "When a creature within 15 ft. lies, you detect the scent shift automatically (no check). Doesn't work on creatures without mammalian scent biology." },
"pheromone_craft_2": { "name": "Pheromone Craft (2/rest)", "kind": "active", "uses_per_short_rest": 2, "description": "During a short rest, craft pheromone compounds (calm, fear, trust, mask, alert, desire). 2 uses per rest." },
"pheromone_craft_3": { "name": "Pheromone Craft (3/rest)", "kind": "active", "uses_per_short_rest": 3, "description": "3 compounds per rest." },
"pheromone_craft_4": { "name": "Pheromone Craft (4/rest)", "kind": "active", "uses_per_short_rest": 4, "description": "4 compounds per rest." },
"pheromone_craft_5": { "name": "Pheromone Craft (5/rest)", "kind": "active", "uses_per_short_rest": 5, "description": "5 compounds per rest." },
"deep_reading": { "name": "Deep Reading", "kind": "passive", "description": "Scent Literacy range extends to 60 ft. Detect recent locations, recent contacts, and substances consumed." },
"scent_ward": { "name": "Scent Ward", "kind": "active", "description": "Mask scent profiles of self + 5 allies for 8 hours (10 minutes prep)." },
"master_nose": { "name": "Master Nose", "kind": "passive", "description": "Scent range 120 ft. Track by scent (advantage on Survival). Detect invisible creatures within 30 ft. by scent." },
"scent_immunity": { "name": "Scent Immunity", "kind": "passive", "description": "Immune to scent-based effects (pheromone attacks, fear-scent, arousal-scent)." },
"grand_synthesis": { "name": "Grand Synthesis", "kind": "passive", "description": "Combine two Pheromone Craft effects into a single compound. Compound DCs +2." },
"olfactory_omniscience":{ "name": "Olfactory Omniscience", "kind": "passive", "description": "Cannot be surprised. Know exact location, clade, emotion, and health of every creature within 120 ft. Permanent ID after one encounter." },
"subclass_select": { "name": "Subclass Selection", "kind": "stub", "description": "Choose Perfumer or Tracker. (Phase 5: deferred.)" },
"subclass_feature": { "name": "Subclass Feature", "kind": "stub", "description": "Subclass-specific feature. (Phase 5: deferred.)" },
"asi": { "name": "Ability Score Improvement", "kind": "stub", "description": "Increase ability scores. (Phase 5: deferred.)" }
}
},
{
"id": "covenant_keeper",
"name": "Covenant-Keeper",
"hit_die": 10,
"primary_ability": ["CHA"],
"saves": ["WIS", "CHA"],
"armor_proficiencies": ["light", "medium", "heavy", "shields"],
"weapon_proficiencies": ["simple", "martial", "natural"],
"tool_proficiencies": [],
"skills_choose": 2,
"skill_options": ["athletics", "insight", "intimidation", "medicine", "persuasion", "religion"],
"subclass_ids": ["the_warden", "the_bridge"],
"starting_kit": [
{ "item_id": "rend_sword", "qty": 1, "auto_equip": true, "equip_slot": "main_hand" },
{ "item_id": "chain_shirt", "qty": 1, "auto_equip": true, "equip_slot": "body" },
{ "item_id": "standard_shield", "qty": 1, "auto_equip": true, "equip_slot": "off_hand" },
{ "item_id": "healers_kit", "qty": 1, "auto_equip": false },
{ "item_id": "rations_predator", "qty": 5, "auto_equip": false }
],
"level_table": [
{ "level": 1, "prof": 2, "features": ["covenant_sense", "lay_on_paws"] },
{ "level": 2, "prof": 2, "features": ["fighting_style", "covenants_authority_2"] },
{ "level": 3, "prof": 2, "features": ["subclass_select"] },
{ "level": 4, "prof": 2, "features": ["asi"] },
{ "level": 5, "prof": 3, "features": ["extra_attack"] },
{ "level": 6, "prof": 3, "features": ["aura_of_the_covenant_10"] },
{ "level": 7, "prof": 3, "features": ["subclass_feature"] },
{ "level": 8, "prof": 3, "features": ["asi"] },
{ "level": 9, "prof": 4, "features": ["covenants_authority_3"] },
{ "level": 10, "prof": 4, "features": ["aura_of_courage_10"] },
{ "level": 11, "prof": 4, "features": ["improved_covenant_strike"] },
{ "level": 12, "prof": 4, "features": ["asi"] },
{ "level": 13, "prof": 5, "features": ["covenants_authority_4"] },
{ "level": 14, "prof": 5, "features": ["cleansing_touch"] },
{ "level": 15, "prof": 5, "features": ["subclass_feature"] },
{ "level": 16, "prof": 5, "features": ["asi"] },
{ "level": 17, "prof": 6, "features": ["covenants_authority_5"] },
{ "level": 18, "prof": 6, "features": ["aura_30"] },
{ "level": 19, "prof": 6, "features": ["asi"] },
{ "level": 20, "prof": 6, "features": ["subclass_feature"] }
],
"feature_definitions": {
"covenant_sense": { "name": "Covenant Sense", "kind": "passive", "description": "Detect Covenant violations within 60 ft. — active predation, consumption of sentient flesh, rawfang activity." },
"lay_on_paws": { "name": "Lay on Paws", "kind": "active", "description": "Pool of healing equal to CHA × 5. Action: touch a creature and restore HP from the pool. 5 points cures one disease or neutralizes one poison. Replenishes on long rest." },
"fighting_style": { "name": "Fighting Style", "kind": "choice", "description": "Pick a combat style.", "options": ["defense", "protection", "great_weapon"] },
"covenants_authority_2":{ "name": "Covenant's Authority (2/rest)", "kind": "active", "uses_per_long_rest": 2, "description": "Action: present authority. Compel Truth, Rebuke Predation, or Shield the Innocent. 2 uses per long rest." },
"covenants_authority_3":{ "name": "Covenant's Authority (3/rest)", "kind": "active", "uses_per_long_rest": 3, "description": "3 uses per long rest." },
"covenants_authority_4":{ "name": "Covenant's Authority (4/rest)", "kind": "active", "uses_per_long_rest": 4, "description": "4 uses per long rest." },
"covenants_authority_5":{ "name": "Covenant's Authority (5/rest)", "kind": "active", "uses_per_long_rest": 5, "description": "5 uses per long rest." },
"extra_attack": { "name": "Extra Attack", "kind": "passive", "description": "Two attacks per Attack action." },
"aura_of_the_covenant_10":{ "name": "Aura of the Covenant (10 ft.)", "kind": "passive", "description": "You and friendly creatures within 10 ft. add CHA mod to saving throws." },
"aura_of_courage_10": { "name": "Aura of Courage (10 ft.)", "kind": "passive", "description": "You and friendly creatures within 10 ft. are immune to frightened." },
"aura_30": { "name": "Aura Improvements (30 ft.)", "kind": "passive", "description": "All auras extend to 30 ft." },
"improved_covenant_strike":{ "name": "Improved Covenant Strike", "kind": "passive", "description": "Melee attacks deal +1d8 damage against creatures actively violating the Covenant." },
"cleansing_touch": { "name": "Cleansing Touch", "kind": "active", "description": "Action: end one negative condition or effect on a creature you touch. Uses equal to CHA mod per long rest." },
"subclass_select": { "name": "Oath Selection", "kind": "stub", "description": "Choose The Warden or The Bridge. (Phase 5: deferred.)" },
"subclass_feature": { "name": "Oath Feature", "kind": "stub", "description": "Oath-specific feature. (Phase 5: deferred.)" },
"asi": { "name": "Ability Score Improvement", "kind": "stub", "description": "Increase ability scores. (Phase 5: deferred.)" }
}
},
{
"id": "muzzle_speaker",
"name": "Muzzle-Speaker",
"hit_die": 8,
"primary_ability": ["CHA"],
"saves": ["DEX", "CHA"],
"armor_proficiencies": ["light"],
"weapon_proficiencies": ["simple", "natural"],
"tool_proficiencies": ["musical_instrument", "musical_instrument_2", "musical_instrument_3"],
"skills_choose": 3,
"skill_options": ["acrobatics", "animal_handling", "arcana", "athletics", "deception", "history", "insight", "intimidation", "investigation", "medicine", "nature", "perception", "performance", "persuasion", "religion", "sleight_of_hand", "stealth", "survival"],
"subclass_ids": ["warhorn", "whisperfur"],
"starting_kit": [
{ "item_id": "fang_knife", "qty": 1, "auto_equip": true, "equip_slot": "main_hand" },
{ "item_id": "studded_leather", "qty": 1, "auto_equip": true, "equip_slot": "body" },
{ "item_id": "poultice_universal","qty": 2, "auto_equip": false },
{ "item_id": "rations_predator", "qty": 5, "auto_equip": false }
],
"level_table": [
{ "level": 1, "prof": 2, "features": ["vocalization_dice_d6", "polyglot"] },
{ "level": 2, "prof": 2, "features": ["jack_of_all_trades", "song_of_rest_d6"] },
{ "level": 3, "prof": 2, "features": ["subclass_select", "expertise_2"] },
{ "level": 4, "prof": 2, "features": ["asi"] },
{ "level": 5, "prof": 3, "features": ["vocalization_dice_d8", "font_of_inspiration"] },
{ "level": 6, "prof": 3, "features": ["subclass_feature", "counter_vocalization"] },
{ "level": 7, "prof": 3, "features": ["song_of_rest_d8"] },
{ "level": 8, "prof": 3, "features": ["asi"] },
{ "level": 9, "prof": 4, "features": ["vocalization_dice_d10"] },
{ "level": 10, "prof": 4, "features": ["expertise_2_more"] },
{ "level": 11, "prof": 4, "features": ["subclass_feature"] },
{ "level": 12, "prof": 4, "features": ["asi"] },
{ "level": 13, "prof": 5, "features": ["song_of_rest_d10"] },
{ "level": 14, "prof": 5, "features": ["subclass_feature"] },
{ "level": 15, "prof": 5, "features": ["vocalization_dice_d12"] },
{ "level": 16, "prof": 5, "features": ["asi"] },
{ "level": 17, "prof": 6, "features": ["song_of_rest_d12"] },
{ "level": 18, "prof": 6, "features": ["superior_inspiration"] },
{ "level": 19, "prof": 6, "features": ["asi"] },
{ "level": 20, "prof": 6, "features": ["voice_of_the_world"] }
],
"feature_definitions": {
"vocalization_dice_d6": { "name": "Vocalization Dice (d6, 4/rest)", "kind": "bonus_action", "uses_per_long_rest": 4, "description": "Bonus action: expend a die to aid an ally within 60 ft.; they add the result to one attack/check/save within 10 minutes. d6 at level 1." },
"vocalization_dice_d8": { "name": "Vocalization Dice (d8)", "kind": "bonus_action", "description": "Vocalization Dice scale to d8." },
"vocalization_dice_d10": { "name": "Vocalization Dice (d10)", "kind": "bonus_action", "description": "Vocalization Dice scale to d10." },
"vocalization_dice_d12": { "name": "Vocalization Dice (d12)", "kind": "bonus_action", "description": "Vocalization Dice scale to d12." },
"polyglot": { "name": "Polyglot", "kind": "passive", "description": "Speak, read, write Common plus all Clade languages. Approximate subsonic and ultrasonic components imperfectly." },
"jack_of_all_trades": { "name": "Jack of All Trades", "kind": "passive", "description": "Add half proficiency to checks you're not proficient in." },
"song_of_rest_d6": { "name": "Song of Rest (d6)", "kind": "passive", "description": "During short rest, allies who hear you regain additional HP (d6 at level 2)." },
"song_of_rest_d8": { "name": "Song of Rest (d8)", "kind": "passive", "description": "Song of Rest scales to d8." },
"song_of_rest_d10": { "name": "Song of Rest (d10)", "kind": "passive", "description": "Song of Rest scales to d10." },
"song_of_rest_d12": { "name": "Song of Rest (d12)", "kind": "passive", "description": "Song of Rest scales to d12." },
"expertise_2": { "name": "Expertise (2)", "kind": "passive", "description": "Double proficiency bonus for 2 chosen proficient skills." },
"expertise_2_more": { "name": "Expertise (2 more)", "kind": "passive", "description": "Choose 2 more proficient skills for expertise." },
"font_of_inspiration": { "name": "Font of Inspiration", "kind": "passive", "description": "Vocalization Dice recharge on short rest." },
"counter_vocalization": { "name": "Counter-Vocalization", "kind": "reaction", "description": "Reaction: when a creature within 60 ft. uses a vocalization-based ability, expend a die to attempt to counter (CHA check vs. theirs)." },
"superior_inspiration": { "name": "Superior Inspiration", "kind": "passive", "description": "When you roll initiative with no dice remaining, regain one." },
"voice_of_the_world": { "name": "Voice of the World", "kind": "active", "uses_per_long_rest": 1, "description": "Speak one sentence understood perfectly by every sentient creature within 300 ft., regardless of language or deafness. Once per long rest." },
"subclass_select": { "name": "Subclass Selection", "kind": "stub", "description": "Choose Warhorn or Whisperfur. (Phase 5: deferred.)" },
"subclass_feature": { "name": "Subclass Feature", "kind": "stub", "description": "Subclass-specific feature. (Phase 5: deferred.)" },
"asi": { "name": "Ability Score Improvement", "kind": "stub", "description": "Increase ability scores. (Phase 5: deferred.)" }
}
},
{
"id": "claw_wright",
"name": "Claw-Wright",
"hit_die": 8,
"primary_ability": ["INT"],
"saves": ["INT", "CON"],
"armor_proficiencies": ["light", "medium", "shields"],
"weapon_proficiencies": ["simple", "natural", "firearms"],
"tool_proficiencies": ["tinkers_tools", "artisans_tools", "artisans_tools_2"],
"skills_choose": 3,
"skill_options": ["arcana", "investigation", "medicine", "nature", "perception", "sleight_of_hand"],
"subclass_ids": ["combat_engineer", "body_wright"],
"starting_kit": [
{ "item_id": "hoof_club", "qty": 1, "auto_equip": true, "equip_slot": "main_hand" },
{ "item_id": "studded_leather", "qty": 1, "auto_equip": true, "equip_slot": "body" },
{ "item_id": "buckler", "qty": 1, "auto_equip": true, "equip_slot": "off_hand" },
{ "item_id": "healers_kit", "qty": 1, "auto_equip": false },
{ "item_id": "rope_claw_braid", "qty": 1, "auto_equip": false },
{ "item_id": "rations_prey", "qty": 5, "auto_equip": false }
],
"level_table": [
{ "level": 1, "prof": 2, "features": ["adaptive_crafting", "field_repair"] },
{ "level": 2, "prof": 2, "features": ["gadget_pool_2"] },
{ "level": 3, "prof": 2, "features": ["subclass_select"] },
{ "level": 4, "prof": 2, "features": ["asi"] },
{ "level": 5, "prof": 3, "features": ["extra_attack", "gadget_pool_3"] },
{ "level": 6, "prof": 3, "features": ["subclass_feature", "tool_expertise"] },
{ "level": 7, "prof": 3, "features": ["flash_of_genius"] },
{ "level": 8, "prof": 3, "features": ["asi"] },
{ "level": 9, "prof": 4, "features": ["gadget_pool_4"] },
{ "level": 10, "prof": 4, "features": ["subclass_feature"] },
{ "level": 11, "prof": 4, "features": ["reliable_engineering"] },
{ "level": 12, "prof": 4, "features": ["asi"] },
{ "level": 13, "prof": 5, "features": ["gadget_pool_5"] },
{ "level": 14, "prof": 5, "features": ["subclass_feature"] },
{ "level": 15, "prof": 5, "features": ["superior_gadgets"] },
{ "level": 16, "prof": 5, "features": ["asi"] },
{ "level": 17, "prof": 6, "features": ["gadget_pool_6"] },
{ "level": 18, "prof": 6, "features": ["subclass_feature"] },
{ "level": 19, "prof": 6, "features": ["asi"] },
{ "level": 20, "prof": 6, "features": ["master_wright"] }
],
"feature_definitions": {
"adaptive_crafting": { "name": "Adaptive Crafting", "kind": "passive", "description": "Modify any tool, weapon, or equipment to function for a different Clade's body type during a short rest. Modified items grant +1 to relevant checks for the intended species." },
"field_repair": { "name": "Field Repair", "kind": "active", "description": "Action: restore 1d8 + INT HP to a construct or repair a broken object/mechanism. On creatures: emergency medical treatment — stabilize, splint, suture." },
"gadget_pool_2": { "name": "Gadget Pool (2)", "kind": "passive", "description": "Long rest: create gadgets. 2 active at a time at level 2." },
"gadget_pool_3": { "name": "Gadget Pool (3)", "kind": "passive", "description": "3 active gadgets." },
"gadget_pool_4": { "name": "Gadget Pool (4)", "kind": "passive", "description": "4 active gadgets." },
"gadget_pool_5": { "name": "Gadget Pool (5)", "kind": "passive", "description": "5 active gadgets." },
"gadget_pool_6": { "name": "Gadget Pool (6)", "kind": "passive", "description": "6 active gadgets." },
"extra_attack": { "name": "Extra Attack", "kind": "passive", "description": "Two attacks per Attack action." },
"tool_expertise": { "name": "Tool Expertise", "kind": "passive", "description": "Double proficiency with all tools you're proficient in." },
"flash_of_genius": { "name": "Flash of Genius", "kind": "reaction", "description": "Reaction: when you or a creature within 30 ft. makes a check or save, add INT mod to the roll. Uses equal to INT mod per long rest." },
"reliable_engineering":{ "name": "Reliable Engineering", "kind": "passive", "description": "Gadget save DCs +2. Damaging gadgets add INT mod." },
"superior_gadgets": { "name": "Superior Gadgets", "kind": "passive", "description": "Unlock advanced gadget tier; existing gadgets gain enhanced effects." },
"master_wright": { "name": "Master Wright", "kind": "active", "description": "Long rest: create one Masterwork item. Permanent, fits any Clade, +3 to relevant checks. Maintain up to 3." },
"subclass_select": { "name": "Subclass Selection", "kind": "stub", "description": "Choose Combat Engineer or Body-Wright. (Phase 5: deferred.)" },
"subclass_feature": { "name": "Subclass Feature", "kind": "stub", "description": "Subclass-specific feature. (Phase 5: deferred.)" },
"asi": { "name": "Ability Score Improvement", "kind": "stub", "description": "Increase ability scores. (Phase 5: deferred.)" }
}
}
]