Files
TheriapolisV3/Content/Data/npc_templates.json
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

405 lines
14 KiB
JSON

{
"templates": [
{
"id": "brigand_footpad",
"name": "Brigand Footpad",
"size": "medium",
"ability_scores": { "STR": 11, "DEX": 14, "CON": 12, "INT": 10, "WIS": 10, "CHA": 9 },
"hp": 11,
"ac": 12,
"speed_ft": 30,
"attacks": [
{ "name": "Scruff-knife", "to_hit": 4, "damage": "1d4+2", "damage_type": "slashing", "reach_tiles": 1 }
],
"behavior": "brigand",
"default_allegiance": "hostile",
"loot_table": "loot_brigand_low",
"xp_award": 25
},
{
"id": "brigand_marauder",
"name": "Brigand Marauder",
"size": "medium",
"ability_scores": { "STR": 14, "DEX": 12, "CON": 13, "INT": 10, "WIS": 11, "CHA": 10 },
"hp": 22,
"ac": 14,
"speed_ft": 30,
"attacks": [
{ "name": "Rend-sword", "to_hit": 4, "damage": "1d8+2", "damage_type": "slashing", "reach_tiles": 1 },
{ "name": "Short Bow", "to_hit": 3, "damage": "1d6+1", "damage_type": "piercing", "range_short_tiles": 16, "range_long_tiles": 64 }
],
"behavior": "brigand",
"default_allegiance": "hostile",
"loot_table": "loot_brigand_mid",
"xp_award": 100
},
{
"id": "brigand_captain",
"name": "Brigand Captain",
"size": "medium",
"ability_scores": { "STR": 15, "DEX": 14, "CON": 14, "INT": 12, "WIS": 12, "CHA": 13 },
"hp": 38,
"ac": 16,
"speed_ft": 30,
"attacks": [
{ "name": "Paw-axe", "to_hit": 5, "damage": "1d8+3", "damage_type": "slashing", "reach_tiles": 1 },
{ "name": "Claw-bow", "to_hit": 4, "damage": "1d6+2", "damage_type": "piercing", "range_short_tiles": 16, "range_long_tiles": 64 }
],
"behavior": "brigand",
"default_allegiance": "hostile",
"loot_table": "loot_brigand_high",
"xp_award": 250
},
{
"id": "wolf_pup",
"name": "Wolf Pup",
"size": "small",
"ability_scores": { "STR": 8, "DEX": 13, "CON": 10, "INT": 3, "WIS": 12, "CHA": 6 },
"hp": 5,
"ac": 12,
"speed_ft": 35,
"attacks": [
{ "name": "Bite", "to_hit": 3, "damage": "1d4+1", "damage_type": "piercing", "reach_tiles": 1 }
],
"behavior": "wild_animal",
"default_allegiance": "hostile",
"loot_table": "loot_wild_low",
"xp_award": 10
},
{
"id": "wolf",
"name": "Wolf",
"size": "medium",
"ability_scores": { "STR": 12, "DEX": 15, "CON": 12, "INT": 3, "WIS": 12, "CHA": 6 },
"hp": 11,
"ac": 13,
"speed_ft": 40,
"attacks": [
{ "name": "Bite", "to_hit": 4, "damage": "2d4+2", "damage_type": "piercing", "reach_tiles": 1 }
],
"behavior": "wild_animal",
"default_allegiance": "hostile",
"loot_table": "loot_wild_mid",
"xp_award": 50
},
{
"id": "dire_wolf",
"name": "Dire Wolf",
"size": "large",
"ability_scores": { "STR": 17, "DEX": 15, "CON": 15, "INT": 3, "WIS": 12, "CHA": 7 },
"hp": 37,
"ac": 14,
"speed_ft": 50,
"attacks": [
{ "name": "Bite", "to_hit": 5, "damage": "2d6+3", "damage_type": "piercing", "reach_tiles": 1 }
],
"behavior": "wild_animal",
"default_allegiance": "hostile",
"loot_table": "loot_wild_high",
"xp_award": 200
},
{
"id": "bear_brown",
"name": "Brown Bear",
"size": "large",
"ability_scores": { "STR": 19, "DEX": 10, "CON": 16, "INT": 2, "WIS": 13, "CHA": 7 },
"hp": 50,
"ac": 11,
"speed_ft": 40,
"attacks": [
{ "name": "Bite", "to_hit": 6, "damage": "1d8+4", "damage_type": "piercing", "reach_tiles": 1 },
{ "name": "Claws", "to_hit": 6, "damage": "2d6+4", "damage_type": "slashing", "reach_tiles": 1 }
],
"behavior": "wild_animal",
"default_allegiance": "hostile",
"loot_table": "loot_wild_high",
"xp_award": 450
},
{
"id": "wolverine_wild",
"name": "Wolverine",
"size": "medium_large",
"ability_scores": { "STR": 14, "DEX": 13, "CON": 15, "INT": 3, "WIS": 12, "CHA": 6 },
"hp": 26,
"ac": 13,
"speed_ft": 30,
"attacks": [
{ "name": "Bite", "to_hit": 4, "damage": "1d8+2", "damage_type": "piercing", "reach_tiles": 1 },
{ "name": "Claws", "to_hit": 4, "damage": "1d6+2", "damage_type": "slashing", "reach_tiles": 1 }
],
"behavior": "wild_animal",
"default_allegiance": "hostile",
"loot_table": "loot_wild_mid",
"xp_award": 100
},
{
"id": "militia_patrol",
"name": "Militia Patroller",
"size": "medium",
"ability_scores": { "STR": 12, "DEX": 12, "CON": 12, "INT": 10, "WIS": 11, "CHA": 10 },
"hp": 13,
"ac": 14,
"speed_ft": 30,
"attacks": [
{ "name": "Antler-staff", "to_hit": 3, "damage": "1d8+1", "damage_type": "bludgeoning", "reach_tiles": 1 }
],
"behavior": "patrol",
"default_allegiance": "neutral",
"faction": "covenant_enforcers",
"loot_table": "",
"xp_award": 0
},
{
"id": "merchant_traveler",
"name": "Travelling Merchant",
"size": "medium",
"ability_scores": { "STR": 9, "DEX": 11, "CON": 10, "INT": 14, "WIS": 12, "CHA": 14 },
"hp": 6,
"ac": 10,
"speed_ft": 30,
"attacks": [
{ "name": "Fang-knife", "to_hit": 0, "damage": "1d4", "damage_type": "piercing", "reach_tiles": 1 }
],
"behavior": "patrol",
"default_allegiance": "friendly",
"faction": "merchant_guilds",
"loot_table": "",
"xp_award": 0
},
{
"id": "poi_guard_decayed",
"name": "Decayed Sentinel",
"size": "medium",
"ability_scores": { "STR": 13, "DEX": 8, "CON": 14, "INT": 3, "WIS": 6, "CHA": 5 },
"hp": 13,
"ac": 11,
"speed_ft": 25,
"attacks": [
{ "name": "Rusted Blade", "to_hit": 3, "damage": "1d6+1", "damage_type": "slashing", "reach_tiles": 1 }
],
"behavior": "poi_guard",
"default_allegiance": "hostile",
"loot_table": "loot_poi_low",
"xp_award": 50
},
{
"id": "poi_guard_skeletal",
"name": "Skeletal Sentinel",
"size": "medium",
"ability_scores": { "STR": 14, "DEX": 12, "CON": 14, "INT": 4, "WIS": 8, "CHA": 5 },
"hp": 22,
"ac": 13,
"speed_ft": 30,
"attacks": [
{ "name": "Bone Spear", "to_hit": 4, "damage": "1d8+2", "damage_type": "piercing", "reach_tiles": 1 }
],
"behavior": "poi_guard",
"default_allegiance": "hostile",
"loot_table": "loot_poi_mid",
"xp_award": 150
},
{
"id": "poi_guard_corrupted",
"name": "Corrupted Sentinel",
"size": "medium_large",
"ability_scores": { "STR": 16, "DEX": 13, "CON": 16, "INT": 5, "WIS": 10, "CHA": 6 },
"hp": 38,
"ac": 15,
"speed_ft": 30,
"attacks": [
{ "name": "Rotting Maul", "to_hit": 5, "damage": "2d6+3", "damage_type": "bludgeoning", "reach_tiles": 1 }
],
"behavior": "poi_guard",
"default_allegiance": "hostile",
"loot_table": "loot_poi_high",
"xp_award": 350
},
{
"id": "imperium_feral_canid",
"name": "Feral Canid (ruin)",
"size": "medium",
"ability_scores": { "STR": 13, "DEX": 14, "CON": 12, "INT": 4, "WIS": 11, "CHA": 5 },
"hp": 16,
"ac": 13,
"speed_ft": 35,
"attacks": [
{ "name": "Bite", "to_hit": 4, "damage": "1d6+2", "damage_type": "piercing", "reach_tiles": 1 }
],
"behavior": "wild_animal",
"default_allegiance": "hostile",
"loot_table": "",
"xp_award": 75
},
{
"id": "imperium_feral_felid",
"name": "Feral Felid (ruin)",
"size": "medium",
"ability_scores": { "STR": 12, "DEX": 16, "CON": 11, "INT": 4, "WIS": 12, "CHA": 5 },
"hp": 14,
"ac": 14,
"speed_ft": 40,
"attacks": [
{ "name": "Pounce-claws", "to_hit": 5, "damage": "1d6+3", "damage_type": "slashing", "reach_tiles": 1 }
],
"behavior": "wild_animal",
"default_allegiance": "hostile",
"loot_table": "",
"xp_award": 90
},
{
"id": "imperium_undead_thrall",
"name": "Sworn Thrall",
"size": "medium",
"ability_scores": { "STR": 14, "DEX": 10, "CON": 14, "INT": 3, "WIS": 6, "CHA": 4 },
"hp": 22,
"ac": 13,
"speed_ft": 25,
"attacks": [
{ "name": "Imperium Spear", "to_hit": 4, "damage": "1d8+2", "damage_type": "piercing", "reach_tiles": 1 }
],
"behavior": "poi_guard",
"default_allegiance": "hostile",
"loot_table": "loot_dungeon_imperium_t1",
"xp_award": 150
},
{
"id": "imperium_undead_overseer",
"name": "The Overseer",
"size": "medium_large",
"ability_scores": { "STR": 17, "DEX": 12, "CON": 17, "INT": 9, "WIS": 12, "CHA": 8 },
"hp": 60,
"ac": 17,
"speed_ft": 30,
"attacks": [
{ "name": "Black-Stone Halberd", "to_hit": 7, "damage": "2d10+4", "damage_type": "slashing", "reach_tiles": 2 },
{ "name": "Death's Whisper", "to_hit": 6, "damage": "2d6+2", "damage_type": "piercing", "reach_tiles": 1 }
],
"behavior": "poi_guard",
"default_allegiance": "hostile",
"loot_table": "loot_dungeon_imperium_t3",
"xp_award": 600
},
{
"id": "mine_collapsed_brigand",
"name": "Mine-Holed Brigand",
"size": "medium",
"ability_scores": { "STR": 13, "DEX": 13, "CON": 13, "INT": 9, "WIS": 9, "CHA": 8 },
"hp": 18,
"ac": 13,
"speed_ft": 30,
"attacks": [
{ "name": "Claw-pick", "to_hit": 4, "damage": "1d6+2", "damage_type": "piercing", "reach_tiles": 1 }
],
"behavior": "brigand",
"default_allegiance": "hostile",
"loot_table": "loot_dungeon_mine_t1",
"xp_award": 60
},
{
"id": "cult_thorn_acolyte",
"name": "Thorn Acolyte",
"size": "medium",
"ability_scores": { "STR": 12, "DEX": 13, "CON": 13, "INT": 12, "WIS": 14, "CHA": 11 },
"hp": 24,
"ac": 14,
"speed_ft": 30,
"attacks": [
{ "name": "Thorn-blade", "to_hit": 4, "damage": "1d8+1", "damage_type": "slashing", "reach_tiles": 1 }
],
"behavior": "brigand",
"default_allegiance": "hostile",
"faction": "thorn_council",
"loot_table": "loot_brigand_mid",
"xp_award": 175
},
{
"id": "cult_inheritor_initiate",
"name": "Inheritor Initiate",
"size": "medium",
"ability_scores": { "STR": 14, "DEX": 12, "CON": 14, "INT": 11, "WIS": 12, "CHA": 13 },
"hp": 30,
"ac": 15,
"speed_ft": 30,
"attacks": [
{ "name": "Sigil-blade", "to_hit": 5, "damage": "1d8+3", "damage_type": "slashing", "reach_tiles": 1 }
],
"behavior": "brigand",
"default_allegiance": "hostile",
"faction": "inheritors",
"loot_table": "loot_brigand_mid",
"xp_award": 225
},
{
"id": "cave_giant_centipede",
"name": "Giant Centipede",
"size": "small",
"ability_scores": { "STR": 8, "DEX": 16, "CON": 11, "INT": 1, "WIS": 7, "CHA": 2 },
"hp": 9,
"ac": 13,
"speed_ft": 30,
"attacks": [
{ "name": "Venomous Bite", "to_hit": 5, "damage": "1d4+3", "damage_type": "piercing", "reach_tiles": 1 }
],
"behavior": "wild_animal",
"default_allegiance": "hostile",
"loot_table": "",
"xp_award": 50
},
{
"id": "overgrown_revenant",
"name": "Settlement Revenant",
"size": "medium",
"ability_scores": { "STR": 14, "DEX": 9, "CON": 15, "INT": 4, "WIS": 7, "CHA": 5 },
"hp": 28,
"ac": 12,
"speed_ft": 25,
"attacks": [
{ "name": "Strangling Grasp", "to_hit": 4, "damage": "1d8+2", "damage_type": "bludgeoning", "reach_tiles": 1 }
],
"behavior": "poi_guard",
"default_allegiance": "hostile",
"loot_table": "loot_poi_mid",
"xp_award": 200
}
],
"spawn_kind_to_template_by_zone": {
"Brigand": ["brigand_footpad", "brigand_footpad", "brigand_marauder", "brigand_marauder", "brigand_captain"],
"WildAnimal": ["wolf_pup", "wolf", "wolf", "dire_wolf", "bear_brown"],
"Merchant": ["merchant_traveler","merchant_traveler","merchant_traveler","merchant_traveler","merchant_traveler"],
"Patrol": ["militia_patrol", "militia_patrol", "militia_patrol", "militia_patrol", "militia_patrol"],
"PoiGuard": ["poi_guard_decayed","poi_guard_skeletal","poi_guard_skeletal","poi_guard_corrupted","poi_guard_corrupted"]
},
"spawn_kind_to_template_by_dungeon_type": {
"ImperiumRuin": {
"PoiGuard": "imperium_undead_thrall",
"WildAnimal": "imperium_feral_canid",
"Brigand": "brigand_marauder",
"Boss": "imperium_undead_overseer"
},
"AbandonedMine": {
"PoiGuard": "mine_collapsed_brigand",
"WildAnimal": "dire_wolf",
"Brigand": "mine_collapsed_brigand",
"Boss": "brigand_captain"
},
"CultDen": {
"PoiGuard": "cult_thorn_acolyte",
"WildAnimal": "wolf",
"Brigand": "cult_inheritor_initiate",
"Boss": "cult_inheritor_initiate"
},
"NaturalCave": {
"PoiGuard": "dire_wolf",
"WildAnimal": "cave_giant_centipede",
"Brigand": "brigand_footpad",
"Boss": "bear_brown"
},
"OvergrownSettlement": {
"PoiGuard": "overgrown_revenant",
"WildAnimal": "wolf",
"Brigand": "brigand_marauder",
"Boss": "overgrown_revenant"
}
}
}