{"npcs":[{"tags":[],"abilities":[{"id":"attack","name":"Longbow Shot","damage":6}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The archer looses an arrow at {target}! {dmg} damage!","Bowstring snaps — {target} takes {dmg} damage!"]},{"action":"death","messages":["The archer crumples, quiver spilling broken shafts."]}],"id":"01KSAVZ000000000000000ARCH","ref":"archer","name":"Archer","title":"Archer","description":"Player ranged humanoid. Hooded leather, back quiver. Lower HP than Soldier; trades durability for reach. Used by Barracks recruitment + initial spawn cluster.\n","type_flags":1,"rarity":0,"personality":2,"rank":0,"family":5,"level":2,"stats":{"hp":50,"max_hp":50,"attack":6,"defense":1,"speed":4,"armor":1},"behavior":{"first_strike":true,"movement_type":2},"faction":{"faction_id":"player"}},{"tags":[],"abilities":[{"id":"attack","name":"Heavy Club","damage":5}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The bandit smashes {target} with a heavy club! {dmg} damage!","A jeering laugh — and {target} takes {dmg} damage from the blow!"]},{"action":"death","messages":["The bandit drops their club and crumples, coin spilling from their belt."]}],"id":"01KSAV7YC1CT201N51YJ15V1PK","ref":"bandit","name":"Bandit","title":"Bandit","description":"Hostile humanoid raider. Tougher and slower than the Goblin, prefers smashing buildings over chasing units. Spawns from Bandit Camps; drops Coin so the Looter job has reason to follow raids around.\n","type_flags":1,"rarity":0,"personality":1,"rank":0,"family":5,"level":2,"stats":{"hp":55,"max_hp":55,"attack":5,"defense":2,"speed":4,"armor":1},"behavior":{"first_strike":false,"movement_type":2},"faction":{"faction_id":"hostile"},"equipment":{"equipped":[{"slot":1,"item_ref":"hood"}]}},{"tags":[],"abilities":[{"id":"attack","name":"Desperate Jab","damage":2}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"flee","messages":["The bandit scout sprints back toward camp the moment things turn south!"]},{"action":"death","messages":["The bandit scout drops mid-stride, intel never delivered."]}],"id":"01KSAVTYT9RBX566KHNYHGEREA","ref":"bandit-scout","name":"Bandit Scout","title":"Bandit Scout","description":"Hostile recon unit dispatched by Bandit Camps every 90s. Wanders far from the camp, marks discovered Player buildings into KnownPlayerHexesSingleton so HuntJob can divert raid waves to outposts beyond the camp's local TargetingRadius. No weapon — flees combat.\n","type_flags":1,"rarity":1,"personality":3,"rank":0,"family":5,"level":2,"stats":{"hp":45,"max_hp":45,"attack":2,"defense":1,"speed":6,"armor":0},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"hostile"},"equipment":{"equipped":[{"slot":1,"item_ref":"hood"},{"slot":2,"item_ref":"leather"}]}},{"tags":["cryptothrone","merchant","cloud-city"],"abilities":[],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[{"trigger":"greeting","lines":["Welcome to the tavern, traveler! What can I get you today?","Pull up a stool — the cloud winds are cold tonight."]},{"trigger":"trade","lines":["I've got potions, fresh fish, and the occasional rare item.","Check back often — my stock changes with the tides."]}],"quest_refs":[],"extensions":[],"flavor_text":[],"id":"01KSAVZ000000000000000BARK","ref":"barkeep","name":"Evee The BarKeep","title":"Evee The BarKeep","description":"Cloud City tavern keeper. Pours drinks, trades goods, and knows every rumor that drifts through the floating district. The first friendly face most travelers meet.\n","type_flags":1,"rarity":1,"personality":7,"rank":0,"family":5,"img":"/assets/npc/barkeep.webp","sprite_atlas":{"atlas_ref":"monks","columns":8,"rows":1,"cell_width":52,"cell_height":72,"row_front":0,"row_side":0,"row_back":0,"world_width":24,"world_height":33,"clips":[{"anim":"idle","row":0,"start_frame":1,"frame_count":1,"fps":1}]},"level":1,"stats":{"hp":30,"max_hp":30,"attack":1,"defense":1,"speed":2,"armor":0},"behavior":{"first_strike":false,"movement_type":0},"faction":{"faction_id":"player"},"role":"Tavern Keeper"},{"tags":[],"abilities":[{"id":"attack","name":"Bone Arrow","damage":7}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The Bone Archer fires with shaking hands — the arrow finds {target} anyway! {dmg} damage!","A bony finger releases the bowstring with a snap. {target} takes an arrow! {dmg} damage!","The archer flinches as it shoots, but the arrow still strikes {target}! {dmg} damage!"]},{"action":"flee","messages":["The Bone Archer drops its bow and scrambles away, jawbone chattering in panic!","It fumbles an arrow, looks at you, and bolts — bones rattling with every step!"]},{"action":"death","messages":["The Bone Archer's bow clatters to the ground. Its skeleton follows, finally free from the fear.","With a last trembling shot that goes wide, the archer crumbles into a pile of relieved bones."]},{"action":"wounded","messages":["*The Bone Archer's hands shake even worse now. Its next shot might go anywhere.*"]},{"action":"near_death","messages":["*The archer is barely holding together. It nocks an arrow with one remaining arm.*"]}],"id":"01KKR5QWTA6KARZ9EQB9Y476S4","ref":"bone-archer","name":"Bone Archer","title":"Bone Archer","description":"A skeletal figure that draws a creaking bow with trembling, bony fingers.\n","lore":"In life they were conscript archers, and in death their muscle memory persists — though their aim wavers with fear.\n","type_flags":1,"rarity":1,"personality":3,"rank":2,"family":2,"level":2,"stats":{"hp":22,"max_hp":22,"attack":7,"defense":1,"speed":4,"armor":1},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"deep-wardens"},"loot":{"entries":[{"item_ref":"bandage","min_quantity":1,"max_quantity":1,"drop_rate":0.27},{"item_ref":"bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.13},{"item_ref":"fire-flask","min_quantity":1,"max_quantity":1,"drop_rate":0.13},{"item_ref":"iron-skin-potion","min_quantity":1,"max_quantity":1,"drop_rate":0.07},{"item_ref":"trap-kit","min_quantity":1,"max_quantity":1,"drop_rate":0.07},{"item_ref":"whetstone","min_quantity":1,"max_quantity":1,"drop_rate":0.13}],"max_drops":1,"gold_min":5,"gold_max":12,"xp_reward":30},"credits":"Ported from KBVE DiscordSH dungeon crawler.\n"},{"tags":[],"abilities":[{"id":"attack","name":"Charge","damage":7}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The cavalry charges {target} at full gallop! {dmg} damage!","Hooves thunder — {target} is bowled over for {dmg} damage!"]},{"action":"death","messages":["Horse and rider fall together in a final, defiant rear."]}],"id":"01KSAVJQSG83RSRAN9W8B27VTT","ref":"cavalry","name":"Cavalry","title":"Cavalry","description":"Player mounted melee — fast charger, mid HP, club loadout. Recruited from Stables (Barracks T1 variant 1) for 10 Coin + 4 Timber + 2 Carrot. Damage scales with MovementModifier.SpeedMul via the cavalry charge bonus, capped at 2.0× under stacked Stables auras.\n","type_flags":1,"rarity":1,"personality":10,"rank":2,"family":5,"level":3,"stats":{"hp":85,"max_hp":85,"attack":7,"defense":2,"speed":5,"armor":2},"behavior":{"first_strike":true,"movement_type":2},"faction":{"faction_id":"player"},"equipment":{"equipped":[{"slot":6,"item_ref":"iron-sword"},{"slot":2,"item_ref":"chain-mail"}]}},{"tags":[],"abilities":[{"id":"poison","name":"Venomous Bite","damage":3,"cooldown_turns":2}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The Cave Spider drops from above and sinks its fangs into {target}! {dmg} damage!","Pale legs wrap around {target}'s arm as mandibles find flesh! {dmg} damage!","The spider strikes from the shadows — two puncture wounds on {target}! {dmg} damage!"]},{"action":"debuff","messages":["Venom drips from the Cave Spider's fangs as it bites deep! {target} feels {effect} spreading!","The spider's bite burns cold. {effect} courses through {target}'s veins!"]},{"action":"defend","messages":["The Cave Spider retreats into its web, watching with eight unblinking eyes. (+{armor} armor)"]},{"action":"death","messages":["The Cave Spider curls inward, legs folding like a closing fist. Still at last.","It lets out a thin hiss and collapses, venom pooling beneath its body."]},{"action":"wounded","messages":["*Ichor leaks from a crack in the spider's carapace. It backs away, hissing.*"]},{"action":"near_death","messages":["*The Cave Spider drags itself on its remaining legs, trailing a line of silk behind it.*"]}],"id":"01KKR5QWTARVPDS4ENXBK4MBD2","ref":"cave-spider","name":"Cave Spider","title":"Cave Spider","description":"A pale spider that lurks in dungeon shadows, striking first with venomous fangs.\n","lore":"Cave Spiders weave nearly invisible webs across dungeon passages, paralyzing prey with a single bite.\n","type_flags":1,"rarity":1,"personality":5,"element":4,"rank":2,"family":1,"level":1,"stats":{"hp":14,"max_hp":14,"attack":3,"defense":0,"speed":7,"armor":0},"behavior":{"first_strike":true,"movement_type":1},"loot":{"entries":[{"item_ref":"potion","min_quantity":1,"max_quantity":1,"drop_rate":0.3},{"item_ref":"rations","min_quantity":1,"max_quantity":1,"drop_rate":0.18},{"item_ref":"vitality-potion","min_quantity":1,"max_quantity":1,"drop_rate":0.06},{"item_ref":"whetstone","min_quantity":1,"max_quantity":1,"drop_rate":0.06}],"max_drops":1,"gold_min":3,"gold_max":8,"xp_reward":15},"credits":"Ported from KBVE DiscordSH dungeon crawler.\n"},{"tags":[],"abilities":[{"id":"attack","name":"Peck","damage":1}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The chicken pecks at {target}'s ankle! {dmg} damage!"]},{"action":"death","messages":["The chicken keels over with a final, indignant cluck."]}],"id":"01KSAVKEYE51RE3HX4T4G1BNRV","ref":"chicken","name":"Chicken","title":"Chicken","description":"Passive farm fowl. Tiny HP pool, no needs, ambient grass-biome wildlife. Drops nothing meaningful — atmospheric.\n","type_flags":1,"rarity":0,"personality":3,"rank":0,"family":1,"level":1,"stats":{"hp":5,"max_hp":5,"attack":1,"defense":0,"speed":3,"armor":0},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"wildlife"}},{"tags":[],"abilities":[{"id":"attack","name":"Sanctified Blow","damage":3},{"id":"heal","name":"Mend","damage":0}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The cleric strikes with a glowing mace — {target} takes {dmg} damage!"]},{"action":"death","messages":["The cleric falls, holy symbol fading to grey."]}],"id":"01KSAVZ000000000000000CLRC","ref":"cleric","name":"Cleric","title":"Cleric","description":"Player support humanoid. Pale robe, gold trim, holy symbol. Heals nearby allies; reserved for higher-tier Barracks / temple recruitment once healing AI lands.\n","type_flags":1,"rarity":1,"personality":10,"rank":0,"family":5,"level":3,"stats":{"hp":60,"max_hp":60,"attack":3,"defense":2,"speed":4,"armor":1},"behavior":{"first_strike":false,"movement_type":2},"faction":{"faction_id":"player"}},{"tags":[],"abilities":[{"id":"charge","name":"Warden's Fury"}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["\"NONE SHALL PASS!\" The Corrupted Warden brings its halberd down on {target}! {dmg} damage!","Shadow tendrils erupt from the warden's armor and lash {target}! {dmg} damage!","The warden grabs {target} by the throat and slams them into the wall! {dmg} damage!"]},{"action":"charge","messages":["The Corrupted Warden slams its halberd into the ground. Dark energy spirals up its body. \"I WILL PROTECT THIS PLACE!\"","The warden's eyes blaze with corrupted light. The dungeon itself seems to empower it."]},{"action":"defend","messages":["The warden raises a barrier of pure shadow. \"THIS IS MY DOMAIN!\" (+{armor} armor)","Dark armor plates materialize over the warden's already formidable defenses. (+{armor} armor)"]},{"action":"aoe","messages":["The Corrupted Warden releases a shockwave of dark energy! \"ALL OF YOU WILL FALL!\" {dmg} damage to all!"]},{"action":"death","messages":["The corruption drains away. For one lucid moment, the warden looks at its hands. \"What... what have I become?\" It falls.","\"I was supposed to... protect...\" The warden's voice fades as the shadow leaves its body. It collapses, finally at peace."]},{"action":"wounded","messages":["*The corruption flares where the warden is struck. Its attacks grow wilder, less controlled.*","*\"YOU DARE?!\" The warden's voice echoes with both rage and pain.*"]},{"action":"near_death","messages":["*The corruption is consuming the warden faster than it can fight. Beneath the shadow, something human pleads for release.*"]}],"id":"01KKR5QWTB3TXCY87HZXFHYFYG","ref":"corrupted-warden","name":"Corrupted Warden","title":"Corrupted Warden","description":"Once a noble guardian, now twisted by dark energy into a relentless engine of destruction.\n","lore":"The Corrupted Warden was the dungeon's most loyal protector until dark magic seeped into its very soul, turning devotion into obsession.\n","type_flags":33,"rarity":3,"personality":1,"element":5,"rank":3,"family":5,"level":5,"stats":{"hp":50,"max_hp":50,"attack":8,"defense":10,"speed":4,"armor":10},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"deep-wardens"},"loot":{"entries":[{"item_ref":"ward","min_quantity":1,"max_quantity":1,"drop_rate":0.3},{"item_ref":"potion","min_quantity":1,"max_quantity":2,"drop_rate":0.45},{"item_ref":"bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.3},{"item_ref":"teleport-rune","min_quantity":1,"max_quantity":1,"drop_rate":0.15},{"item_ref":"campfire-kit","min_quantity":1,"max_quantity":1,"drop_rate":0.15},{"item_ref":"phoenix-feather","min_quantity":1,"max_quantity":1,"drop_rate":0.15},{"item_ref":"elixir","min_quantity":1,"max_quantity":1,"drop_rate":0.15},{"item_ref":"smoke-bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.15}],"max_drops":2,"gold_min":15,"gold_max":30,"xp_reward":100},"credits":"Ported from KBVE DiscordSH dungeon crawler.\n"},{"tags":[],"abilities":[{"id":"attack","name":"Headbutt","damage":2}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"death","messages":["The cow lows softly and lies down for the last time."]}],"id":"01KSAV880T75RMTKD004K83GDQ","ref":"cow","name":"Cow","title":"Cow","description":"Largest passive livestock. Slowest move speed, biggest HP pool of the farm trio. Drops Meat in bulk when killed; herd into Farms for steady food production.\n","type_flags":1,"rarity":0,"personality":3,"rank":0,"family":1,"level":1,"stats":{"hp":40,"max_hp":40,"attack":2,"defense":1,"speed":2,"armor":0},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"wildlife"}},{"tags":[],"abilities":[{"id":"defend","name":"Stone Shell","damage":3}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The statue swings a weathered stone fist at {target}. {dmg} damage.","Grinding forward on cracked legs, the statue brings its arm down on {target}. {dmg} damage."]},{"action":"defend","messages":["The Crumbling Statue crosses its stone arms and braces. Dust falls, but it holds. (+{armor} armor)","Ancient runes flicker briefly across its surface as it fortifies. (+{armor} armor)"]},{"action":"death","messages":["The statue freezes mid-swing. A long crack splits it from crown to base, and it crumbles.","Its eyes go dark. The Crumbling Statue returns to what it always was — rubble.","It collapses with a heavy thud, and for a moment you hear something like a sigh in the settling dust."]},{"action":"wounded","messages":["*Chunks of stone fall from the statue's shoulder. It doesn't seem to notice.*"]},{"action":"near_death","messages":["*The statue is more rubble than guardian now. Only its duty holds it together.*"]}],"id":"01KKR5QWTADGEX9BC9H29E0YB9","ref":"crumbling-statue","name":"Crumbling Statue","title":"Crumbling Statue","description":"An ancient stone figure that stirs to life when intruders approach, defending its post with weathered resolve.\n","lore":"Once proud guardians of a forgotten temple, these statues continue their vigil long after their creators turned to dust.\n","type_flags":1,"rarity":1,"personality":4,"element":8,"rank":2,"family":11,"level":1,"stats":{"hp":22,"max_hp":22,"attack":4,"defense":3,"speed":1,"armor":2},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"crystal-order"},"loot":{"entries":[{"item_ref":"potion","min_quantity":1,"max_quantity":1,"drop_rate":0.3},{"item_ref":"rations","min_quantity":1,"max_quantity":1,"drop_rate":0.18},{"item_ref":"vitality-potion","min_quantity":1,"max_quantity":1,"drop_rate":0.06},{"item_ref":"whetstone","min_quantity":1,"max_quantity":1,"drop_rate":0.06}],"max_drops":1,"gold_min":3,"gold_max":8,"xp_reward":15},"credits":"Ported from KBVE DiscordSH dungeon crawler.\n"},{"tags":[],"abilities":[{"id":"attack","name":"Screech","damage":4}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The Crystal Bat dive-bombs {target}, raking with gemstone talons! {dmg} damage!","A high-pitched screech precedes a blur of crystalline wings slashing {target}! {dmg} damage!","The bat swoops low, dragging razor-sharp wing edges across {target}! {dmg} damage!"]},{"action":"flee","messages":["The Crystal Bat shrieks and spirals upward into the darkness!","With a panicked flutter of gem-studded wings, the bat vanishes into a crack in the ceiling."]},{"action":"death","messages":["The Crystal Bat spirals down and shatters on impact like a thrown ornament.","Its wings fold and it drops, crystalline feathers scattering like confetti."]},{"action":"wounded","messages":["*A crack runs along one of the bat's wings. Its flight becomes erratic.*"]},{"action":"near_death","messages":["*The Crystal Bat can barely stay aloft, dragging one shattered wing.*"]}],"id":"01KKR5QWTAMADFK3GY8Q47GQ6N","ref":"crystal-bat","name":"Crystal Bat","title":"Crystal Bat","description":"A small bat with crystalline wings that catch the light, darting through dark caverns.\n","lore":"Crystal Bats roost in mineral-rich caves, their wings slowly encrusted with gemstone formations.\n","type_flags":1,"rarity":1,"personality":5,"rank":2,"family":1,"animation_set":"bird","sprite_atlas":{"atlas_ref":"monster_bird","columns":4,"rows":1,"cell_width":61,"cell_height":57,"row_front":0,"row_side":0,"row_back":0,"world_width":28,"world_height":26,"clips":[{"anim":"idle","row":0,"start_frame":0,"frame_count":4,"fps":8,"loop":true}]},"level":1,"stats":{"hp":15,"max_hp":15,"attack":4,"defense":0,"speed":6,"armor":0},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"hostile"},"loot":{"entries":[{"item_ref":"potion","min_quantity":1,"max_quantity":1,"drop_rate":0.3},{"item_ref":"rations","min_quantity":1,"max_quantity":1,"drop_rate":0.18},{"item_ref":"vitality-potion","min_quantity":1,"max_quantity":1,"drop_rate":0.06},{"item_ref":"whetstone","min_quantity":1,"max_quantity":1,"drop_rate":0.06}],"max_drops":1,"gold_min":3,"gold_max":8,"xp_reward":15},"credits":"Ported from KBVE DiscordSH dungeon crawler.\n"},{"tags":[],"abilities":[{"id":"charge","name":"Crystal Charge"}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The Crystal Golem swings a prismatic arm at {target}. The impact sends rainbows scattering. {dmg} damage.","Light concentrates into a beam from the golem's core, scorching {target}. {dmg} damage."]},{"action":"charge","messages":["The Crystal Golem plants its feet. Every facet of its body begins to glow brighter and brighter...","A low hum builds as the golem draws energy from the earth itself. The air crackles with static."]},{"action":"defend","messages":["The Crystal Golem's surface shifts, angling its facets to deflect incoming blows. (+{armor} armor)","It stands immovable. Striking it feels like punching a diamond. (+{armor} armor)"]},{"action":"death","messages":["The Crystal Golem's core dims. Fracture lines race across its body, and it topples — a falling cathedral of light.","It reaches out as if to steady itself, then shatters. Crystal shards ring like bells as they scatter."]},{"action":"wounded","messages":["*A facet cracks. Prismatic light leaks from the wound like blood.*"]},{"action":"near_death","messages":["*The golem's core pulses erratically. Its body is more crack than crystal now.*"]}],"id":"01KKR5QWTBC89E1XJHM3CZ5SRK","ref":"crystal-golem","name":"Crystal Golem","title":"Crystal Golem","description":"A towering construct of living crystal that charges through obstacles, its body refracting light into blinding rainbows.\n","lore":"Crystal Golems were forged in the heart of a dying star, their bodies nearly indestructible and infused with raw magical energy.\n","type_flags":1,"rarity":3,"personality":4,"element":7,"rank":2,"family":11,"level":3,"stats":{"hp":45,"max_hp":45,"attack":8,"defense":8,"speed":2,"armor":8},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"crystal-order"},"loot":{"entries":[{"item_ref":"ward","min_quantity":1,"max_quantity":1,"drop_rate":0.25},{"item_ref":"bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.25},{"item_ref":"campfire-kit","min_quantity":1,"max_quantity":1,"drop_rate":0.08},{"item_ref":"rage-draught","min_quantity":1,"max_quantity":1,"drop_rate":0.08},{"item_ref":"phoenix-feather","min_quantity":1,"max_quantity":1,"drop_rate":0.08},{"item_ref":"antidote","min_quantity":1,"max_quantity":1,"drop_rate":0.17},{"item_ref":"smoke-bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.08}],"max_drops":2,"gold_min":8,"gold_max":18,"xp_reward":50},"credits":"Ported from KBVE DiscordSH dungeon crawler.\n"},{"tags":[],"abilities":[{"id":"defend","name":"Cursed Shield","damage":5}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The Cursed Knight swings its blackened greatsword with unbridled fury! {dmg} damage to {target}!","\"KNEEL!\" the knight bellows, bringing its blade down on {target}! {dmg} damage!","Dark energy crackles along the knight's sword as it slashes {target}! {dmg} damage!"]},{"action":"defend","messages":["The Cursed Knight slams its tower shield into the ground. \"You cannot break me!\" (+{armor} armor)","Shadow coils around the knight's armor, reinforcing it. (+{armor} armor)"]},{"action":"charge","messages":["The Cursed Knight raises its sword overhead, dark flames licking along the blade! Something terrible is coming!","\"YOUR END APPROACHES!\" The knight's eyes blaze with cursed fire as power builds!"]},{"action":"death","messages":["The Cursed Knight drops to one knee. \"Free... at last...\" The curse unravels and the armor falls empty.","Dark energy erupts from the knight's visor as it collapses, the curse finally spent."]},{"action":"wounded","messages":["*The knight's rage intensifies. Cracks in its armor leak shadow like blood.*","*\"Is that... all?\" The Cursed Knight's voice drips with contempt and pain.*"]},{"action":"near_death","messages":["*The curse flickers. For a moment you see the face of the knight it used to be — terrified.*"]}],"id":"01KKR5QWTBV72R8B4V4JBNG308","ref":"cursed-knight","name":"Cursed Knight","title":"Cursed Knight","description":"A heavily armored undead warrior consumed by rage, cursed to fight for eternity.\n","lore":"Once noble champions, these knights fell to a dark curse that twisted their valor into unending fury.\n","type_flags":1,"rarity":2,"personality":1,"element":5,"rank":2,"family":2,"level":2,"stats":{"hp":35,"max_hp":35,"attack":6,"defense":5,"speed":3,"armor":5},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"deep-wardens"},"loot":{"entries":[{"item_ref":"bandage","min_quantity":1,"max_quantity":1,"drop_rate":0.27},{"item_ref":"bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.13},{"item_ref":"fire-flask","min_quantity":1,"max_quantity":1,"drop_rate":0.13},{"item_ref":"iron-skin-potion","min_quantity":1,"max_quantity":1,"drop_rate":0.07},{"item_ref":"trap-kit","min_quantity":1,"max_quantity":1,"drop_rate":0.07},{"item_ref":"whetstone","min_quantity":1,"max_quantity":1,"drop_rate":0.13}],"max_drops":1,"gold_min":5,"gold_max":12,"xp_reward":30},"credits":"Ported from KBVE DiscordSH dungeon crawler.\n"},{"tags":[],"abilities":[{"id":"attack","name":"Gnaw","damage":6}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["You barely see it — the Dust Mite darts in and bites {target}! {dmg} damage!","A tiny blur zips across {target}'s face, leaving a stinging cut! {dmg} damage!","The Dust Mite burrows into {target}'s sleeve and bites viciously! {dmg} damage!","Something impossibly small and impossibly angry stabs {target}! {dmg} damage!"]},{"action":"flee","messages":["The Dust Mite vanishes into a crack so small you didn't know it existed.","One moment it's there, the next — just dust."]},{"action":"death","messages":["You squish it. There's a tiny, unsatisfying crunch.","The Dust Mite curls up and stops moving. You almost feel bad."]},{"action":"wounded","messages":["*The mite's movements become frantic, buzzing in tight circles.*"]},{"action":"near_death","messages":["*The Dust Mite limps on three legs, dragging itself forward with desperate clicks.*"]}],"id":"01KKR5QWTA8JDZGRMHM21CR2J1","ref":"dust-mite","name":"Dust Mite","title":"Dust Mite","description":"A near-invisible arthropod that strikes with surprising ferocity for its minuscule size.\n","lore":"Dust Mites thrive in forgotten ruins, feeding on magical residue left behind by ancient civilizations.\n","type_flags":1,"rarity":1,"personality":5,"rank":2,"family":1,"level":1,"stats":{"hp":12,"max_hp":12,"attack":6,"defense":0,"speed":8,"armor":0},"behavior":{"first_strike":false,"movement_type":1},"loot":{"entries":[{"item_ref":"potion","min_quantity":1,"max_quantity":1,"drop_rate":0.3},{"item_ref":"rations","min_quantity":1,"max_quantity":1,"drop_rate":0.18},{"item_ref":"vitality-potion","min_quantity":1,"max_quantity":1,"drop_rate":0.06},{"item_ref":"whetstone","min_quantity":1,"max_quantity":1,"drop_rate":0.06}],"max_drops":1,"gold_min":3,"gold_max":8,"xp_reward":15},"credits":"Ported from KBVE DiscordSH dungeon crawler.\n"},{"tags":[],"abilities":[{"id":"burn","name":"Ignite","damage":4,"cooldown_turns":3}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The Ember Wisp darts at {target} and scorches exposed skin! {dmg} damage!","A tendril of pale flame lashes out from the wisp and singes {target}! {dmg} damage!"]},{"action":"debuff","messages":["The Ember Wisp flares in panic, showering {target} with burning embers! {effect} takes hold!","Desperate heat radiates from the wisp. {target} can feel {effect} seeping in!"]},{"action":"flee","messages":["The Ember Wisp flickers rapidly and zips away like a frightened firefly!","It dims almost to nothing and drifts away, too scared to maintain its own flame."]},{"action":"death","messages":["The Ember Wisp gutters once, twice, and goes out. A tiny curl of smoke is all that remains.","The light fades. The wisp dies the way all fires do — quietly, when there's nothing left to burn."]},{"action":"wounded","messages":["*The wisp's flame shifts to a sickly blue. It bobs erratically, looking for an escape.*"]},{"action":"near_death","messages":["*The Ember Wisp is barely a spark now, flickering between being and not-being.*"]}],"id":"01KKR5QWTBPWP2WD71838AMPZB","ref":"ember-wisp","name":"Ember Wisp","title":"Ember Wisp","description":"A floating orb of pale fire that drifts through corridors, leaving trails of burning air.\n","lore":"Ember Wisps are fragments of dying fire elementals, flickering between existence and oblivion.\n","type_flags":1,"rarity":1,"personality":3,"element":1,"rank":2,"family":4,"level":2,"stats":{"hp":16,"max_hp":16,"attack":4,"defense":0,"speed":5,"armor":0},"behavior":{"first_strike":false,"movement_type":1},"loot":{"entries":[{"item_ref":"bandage","min_quantity":1,"max_quantity":1,"drop_rate":0.27},{"item_ref":"bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.13},{"item_ref":"fire-flask","min_quantity":1,"max_quantity":1,"drop_rate":0.13},{"item_ref":"iron-skin-potion","min_quantity":1,"max_quantity":1,"drop_rate":0.07},{"item_ref":"trap-kit","min_quantity":1,"max_quantity":1,"drop_rate":0.07},{"item_ref":"whetstone","min_quantity":1,"max_quantity":1,"drop_rate":0.13}],"max_drops":1,"gold_min":5,"gold_max":12,"xp_reward":30},"credits":"Ported from KBVE DiscordSH dungeon crawler.\n"},{"tags":[],"abilities":[{"id":"attack","name":"Fireball","damage":8}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The Fire Imp hurls a sputtering fireball at {target}! It cackles as it connects! {dmg} damage!","\"Hee hee hee!\" The imp snaps its fingers and {target} catches fire! {dmg} damage!","The imp does a little jig and flings a flame bolt at {target}! {dmg} damage!"]},{"action":"debuff","messages":["The Fire Imp panics and sneezes fire everywhere! {target} is caught in the {effect}!","Frantic flames spiral out of the imp's hands! {target} suffers {effect}!"]},{"action":"flee","messages":["The Fire Imp shrieks \"NOPE NOPE NOPE!\" and rockets away on a jet of flame!","The imp squeaks in terror and dives headfirst into a torch sconce, vanishing!"]},{"action":"death","messages":["The Fire Imp's flame gutters out. It lets out one tiny \"oh\" and turns to ash.","With a final pop and a puff of sulfurous smoke, the imp is gone."]},{"action":"wounded","messages":["*The imp's flame dims to a nervous flicker. It keeps glancing at the exits.*"]},{"action":"near_death","messages":["*The Fire Imp is barely a candle flame now, whimpering and clutching its own tail.*"]}],"id":"01KKR5QWTBNKBVAN8J4168AFRW","ref":"fire-imp","name":"Fire Imp","title":"Fire Imp","description":"A small demonic creature wreathed in flame, cackling as it hurls fireballs at anything that moves.\n","lore":"Fire Imps are summoned servants that outlived their masters, now running wild in the dungeon depths.\n","type_flags":1,"rarity":1,"personality":3,"element":1,"rank":2,"family":3,"level":2,"stats":{"hp":18,"max_hp":18,"attack":8,"defense":0,"speed":6,"armor":0},"behavior":{"first_strike":false,"movement_type":1},"loot":{"entries":[{"item_ref":"bandage","min_quantity":1,"max_quantity":1,"drop_rate":0.27},{"item_ref":"bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.13},{"item_ref":"fire-flask","min_quantity":1,"max_quantity":1,"drop_rate":0.13},{"item_ref":"iron-skin-potion","min_quantity":1,"max_quantity":1,"drop_rate":0.07},{"item_ref":"trap-kit","min_quantity":1,"max_quantity":1,"drop_rate":0.07},{"item_ref":"whetstone","min_quantity":1,"max_quantity":1,"drop_rate":0.13}],"max_drops":1,"gold_min":5,"gold_max":12,"xp_reward":30},"credits":"Ported from KBVE DiscordSH dungeon crawler.\n"},{"tags":[],"abilities":[{"id":"attack","name":"Harpoon","damage":4}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The fishing boat's harpoon plunges into {target}! {dmg} damage!","A whaling line whips through the water — {target} takes {dmg} damage!"]},{"action":"death","messages":["The fishing boat splinters apart and slips beneath the waves."]}],"id":"01KSAVJR1ASDVMRD9B29PHBXWV","ref":"fishing-boat","name":"Fishing Boat","title":"Fishing Boat","description":"Craftsman-built water-locked vessel. Slow, mid HP, harpoon-tipped ranged attack against Whales + Beasts. Spawned by Docks; lives in river / ocean tiles only.\n","type_flags":1,"rarity":0,"personality":4,"rank":0,"family":5,"level":3,"stats":{"hp":80,"max_hp":80,"attack":4,"defense":2,"speed":3,"armor":1},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"player"}},{"tags":[],"abilities":[{"id":"heavy-attack","name":"Fungal Slam","damage":10}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The Fungal Brute swings a massive arm like a tree trunk into {target}! {dmg} damage!","Spore clouds burst from the brute's fist as it hammers {target} into the ground! {dmg} damage!","The ground shakes as the brute stomps toward {target} and delivers a crushing blow! {dmg} damage!"]},{"action":"heavy_attack","messages":["The Fungal Brute roars — a wet, echoing bellow — and bodyslams {target}! {dmg} damage!","Mushrooms burst from the walls as the brute channels its full mass into {target}! {dmg} damage!"]},{"action":"defend","messages":["The Fungal Brute's skin hardens into bark-like armor. Spores cloud the air. (+{armor} armor)"]},{"action":"death","messages":["The Fungal Brute topples like a felled tree, releasing a final cloud of spores as it decomposes.","It groans — a sound like creaking wood — and collapses. Mushrooms begin sprouting from the corpse immediately."]},{"action":"wounded","messages":["*Chunks of fungal matter slough off the brute. New growth is already filling the gaps.*"]},{"action":"near_death","messages":["*The brute is rotting faster than it can regenerate. Its movements are sluggish and desperate.*"]}],"id":"01KKR5QWTB7S5FY2HNXJN5Y4NY","ref":"fungal-brute","name":"Fungal Brute","title":"Fungal Brute","description":"A massive fungal creature that lumbers forward with devastating force, its body thick with toxic spores.\n","lore":"Fungal Brutes grow in the deepest caverns, their bodies an amalgamation of countless smaller fungi merged into one hulking mass.\n","type_flags":1,"rarity":1,"personality":5,"element":4,"rank":2,"family":9,"level":2,"stats":{"hp":38,"max_hp":38,"attack":10,"defense":2,"speed":2,"armor":2},"behavior":{"first_strike":false,"movement_type":1},"loot":{"entries":[{"item_ref":"bandage","min_quantity":1,"max_quantity":1,"drop_rate":0.27},{"item_ref":"bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.13},{"item_ref":"fire-flask","min_quantity":1,"max_quantity":1,"drop_rate":0.13},{"item_ref":"iron-skin-potion","min_quantity":1,"max_quantity":1,"drop_rate":0.07},{"item_ref":"trap-kit","min_quantity":1,"max_quantity":1,"drop_rate":0.07},{"item_ref":"whetstone","min_quantity":1,"max_quantity":1,"drop_rate":0.13}],"max_drops":1,"gold_min":5,"gold_max":12,"xp_reward":30},"credits":"Ported from KBVE DiscordSH dungeon crawler.\n"},{"tags":[],"abilities":[{"id":"attack","name":"Arrow Volley","damage":7}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The galley looses an arrow volley at {target}! {dmg} damage!","Twin bow archers strike {target}! {dmg} damage!"]},{"action":"death","messages":["The galley founders, oars dragging into the depths."]}],"id":"01KSAV4D81ZJNBH8W8MS410ZX4","ref":"galley","name":"Galley","title":"Galley","description":"Player warship — Shipyard-built (Dock T1+). Water-locked, ranged arrow loadout, decent HP. Sister combat boat to the FishingBoat economy hull; kept on cadence by ShipyardGalleyProductionSystem.\n","type_flags":1,"rarity":1,"personality":4,"rank":2,"family":5,"level":4,"stats":{"hp":140,"max_hp":140,"attack":7,"defense":3,"speed":4,"armor":2},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"player"}},{"tags":[],"abilities":[{"id":"attack","name":"Crystal Blade","damage":10}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["You see the blade a heartbeat too late — the Glass Assassin is already withdrawing it from {target}! {dmg} damage!","A shimmer in the air is the only warning before {target} is slashed! {dmg} damage!","The assassin's arm extends into a crystal blade and pierces {target}'s defense! {dmg} damage!","Light bends around the assassin. {target} doesn't see the cut coming. {dmg} damage."]},{"action":"defend","messages":["The Glass Assassin goes completely still. It becomes nearly invisible against the stone walls. (+{armor} armor)"]},{"action":"flee","messages":["The Glass Assassin refracts the light around itself and simply... disappears.","One moment it's there. Then just empty air and a faint tinkling sound."]},{"action":"death","messages":["The Glass Assassin shatters into a thousand razor fragments. Each one catches the light one final time.","A web of cracks spreads across its body. It looks down at itself, then breaks apart in silence."]},{"action":"wounded","messages":["*A fracture line appears across the assassin's torso. Its movements remain precise.*"]},{"action":"near_death","messages":["*The Glass Assassin is riddled with cracks. Light bleeds through it from every angle.*"]}],"id":"01KKR5QWTBH0QF9K030QMZFQWC","ref":"glass-assassin","name":"Glass Assassin","title":"Glass Assassin","description":"A humanoid figure made of living glass that strikes with lethal precision, its transparent body nearly invisible.\n","lore":"Glass Assassins were created as perfect killers — transparent, silent, and razor-sharp.\n","type_flags":1,"rarity":2,"personality":2,"rank":2,"family":11,"level":3,"stats":{"hp":22,"max_hp":22,"attack":10,"defense":1,"speed":9,"armor":1},"behavior":{"first_strike":true,"movement_type":1},"faction":{"faction_id":"crystal-order"},"loot":{"entries":[{"item_ref":"ward","min_quantity":1,"max_quantity":1,"drop_rate":0.25},{"item_ref":"bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.25},{"item_ref":"campfire-kit","min_quantity":1,"max_quantity":1,"drop_rate":0.08},{"item_ref":"rage-draught","min_quantity":1,"max_quantity":1,"drop_rate":0.08},{"item_ref":"phoenix-feather","min_quantity":1,"max_quantity":1,"drop_rate":0.08},{"item_ref":"antidote","min_quantity":1,"max_quantity":1,"drop_rate":0.17},{"item_ref":"smoke-bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.08}],"max_drops":2,"gold_min":8,"gold_max":18,"xp_reward":50},"credits":"Ported from KBVE DiscordSH dungeon crawler.\n"},{"tags":[],"abilities":[{"id":"charge","name":"Glass Rampage"}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The Glass Golem drives a massive crystalline fist into {target}. The impact echoes through the chamber. {dmg} damage.","Razor edges along the golem's arm open a deep gash in {target} as it sweeps past. {dmg} damage.","The golem stamps the ground and a shard of glass erupts beneath {target}! {dmg} damage."]},{"action":"charge","messages":["The Glass Golem's body begins to resonate. A deep hum fills the chamber as every facet ignites with light.","It lowers its head and the room goes dark — all light is being drawn into the golem's core."]},{"action":"defend","messages":["The golem rearranges its glass plates into an interlocking shield wall. Light bounces everywhere. (+{armor} armor)","It becomes a fortress. Your reflection stares back at you from a hundred mirrored surfaces. (+{armor} armor)"]},{"action":"aoe","messages":["The Glass Golem detonates its outer shell! Razor shards fly in every direction! {dmg} damage to all!","A blinding flash erupts from the golem's core. When you can see again, everything hurts. {dmg} damage to all."]},{"action":"death","messages":["The golem's core fractures with a sound like a cathedral bell. It collapses in slow motion, a cascade of glittering ruin.","Silence. Then the Glass Golem simply falls apart — not with fury, but with the quiet acceptance of stone returning to sand."]},{"action":"wounded","messages":["*Deep fractures web across the golem's torso. Light bleeds from every crack.*","*A massive glass plate falls from the golem's shoulder and shatters on the ground. It does not look down.*"]},{"action":"near_death","messages":["*The golem is more hole than wall now. Its core pulses weakly, visible through the ruin of its body.*"]}],"id":"01KKR5QWTBJ3ZFEHR24YGT6VYX","ref":"glass-golem","name":"Glass Golem","title":"Glass Golem","description":"An enormous golem of fused glass that towers over all challengers, its body a maze of razor-sharp edges.\n","lore":"The Glass Golem was created as a final guardian, its body forged from the crystallized tears of a dying god.\n","type_flags":33,"rarity":3,"personality":4,"element":7,"rank":3,"family":11,"level":5,"stats":{"hp":60,"max_hp":60,"attack":10,"defense":8,"speed":3,"armor":8},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"crystal-order"},"loot":{"entries":[{"item_ref":"ward","min_quantity":1,"max_quantity":1,"drop_rate":0.3},{"item_ref":"potion","min_quantity":1,"max_quantity":2,"drop_rate":0.45},{"item_ref":"bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.3},{"item_ref":"teleport-rune","min_quantity":1,"max_quantity":1,"drop_rate":0.15},{"item_ref":"campfire-kit","min_quantity":1,"max_quantity":1,"drop_rate":0.15},{"item_ref":"phoenix-feather","min_quantity":1,"max_quantity":1,"drop_rate":0.15},{"item_ref":"elixir","min_quantity":1,"max_quantity":1,"drop_rate":0.15},{"item_ref":"smoke-bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.15}],"max_drops":2,"gold_min":15,"gold_max":30,"xp_reward":100},"credits":"Ported from KBVE DiscordSH dungeon crawler.\n"},{"tags":[],"abilities":[{"id":"attack","name":"Engulf","damage":5}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The Glass Slime squelches forward and engulfs {target}'s arm! {dmg} damage!","A razor-thin pseudopod lashes out from the slime's body! {dmg} damage to {target}!","The slime launches a glob of molten glass at {target}! {dmg} damage!","Shards of crystal churn inside the slime as it slams into {target}! {dmg} damage!"]},{"action":"defend","messages":["The Glass Slime compresses into a dense, glittering sphere. (+{armor} armor)","Light refracts wildly as the slime hardens its outer membrane. (+{armor} armor)"]},{"action":"death","messages":["The Glass Slime shudders and bursts into a thousand glittering fragments.","With a wet pop, the slime collapses into a puddle of liquid crystal.","The slime's glow dims and it melts into the stone floor, leaving only glass dust."]},{"action":"wounded","messages":["*Cracks spider-web across the slime's translucent body. It pulses angrily.*","*The slime's color shifts from clear to a murky, agitated crimson.*"]},{"action":"near_death","messages":["*The Glass Slime is barely holding its shape, fragments sloughing off with each movement.*"]}],"id":"01KKR5QWT9998CCD18XN2B3726","ref":"glass-slime","name":"Glass Slime","title":"Glass Slime","description":"A translucent blob of living glass that oozes through dungeon corridors, absorbing anything it touches.\n","lore":"Born from shattered crystal and ambient mana, Glass Slimes are among the first threats dungeon delvers encounter.\n","type_flags":1,"rarity":1,"personality":5,"rank":2,"family":8,"sprite_atlas":{"atlas_ref":"/Game/NPC/Slime/T_Slime_Crawl","columns":5,"rows":3,"cell_width":64,"cell_height":64,"row_front":0,"row_side":1,"row_back":2,"mirror_right_from_side":true,"world_width":128,"world_height":128,"pivot_z":0,"clips":[{"anim":"crawl","row":0,"start_frame":0,"frame_count":5,"fps":10,"loop":true}]},"level":1,"stats":{"hp":20,"max_hp":20,"attack":5,"defense":0,"speed":3,"armor":0},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"crystal-order"},"loot":{"entries":[{"item_ref":"potion","min_quantity":1,"max_quantity":1,"drop_rate":0.3},{"item_ref":"rations","min_quantity":1,"max_quantity":1,"drop_rate":0.18},{"item_ref":"vitality-potion","min_quantity":1,"max_quantity":1,"drop_rate":0.06},{"item_ref":"whetstone","min_quantity":1,"max_quantity":1,"drop_rate":0.06}],"max_drops":1,"gold_min":3,"gold_max":8,"xp_reward":15},"credits":"Ported from KBVE DiscordSH dungeon crawler.\n"},{"tags":[],"abilities":[{"id":"attack","name":"Club Swing","damage":4}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The goblin lunges at {target} with a rusty club! {dmg} damage!","A wild swing connects with {target}! {dmg} damage!"]},{"action":"death","messages":["The goblin crumples with a final snarl."]}],"id":"01KSAVBCDKGE0N89F6ZPH846Z8","ref":"goblin","name":"Goblin","title":"Goblin","description":"Wiry humanoid raider — fast, frail, swings a club. The default Hostile-faction footsoldier of the Rareicon empire-builder; also recruitable as a Player goblin worker via Lost Goblin Band events.\n","type_flags":1,"rarity":0,"personality":1,"rank":0,"family":5,"level":1,"stats":{"hp":30,"max_hp":30,"attack":4,"defense":1,"speed":4,"armor":0},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"hostile"}},{"tags":[],"abilities":[{"id":"attack","name":"Warlord Cleave","damage":11}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The goblin general roars — {target} takes {dmg} crushing damage!","Spiked crown gleaming, the warlord cleaves into {target} for {dmg}!"]},{"action":"death","messages":["The goblin general topples, warpaint streaked with blood."]}],"id":"01KSAVZ00000000000000GGNRL","ref":"goblin-general","name":"Goblin General","title":"Goblin General","description":"Hostile warlord goblin. Chestplate, spiked crown, warpaint. Tougher than a regular Goblin, anchors larger raid waves and elite hostile garrisons.\n","type_flags":1,"rarity":2,"personality":1,"rank":2,"family":5,"level":5,"stats":{"hp":140,"max_hp":140,"attack":11,"defense":3,"speed":4,"armor":3},"behavior":{"first_strike":false,"movement_type":2},"faction":{"faction_id":"hostile"}},{"tags":[],"abilities":[],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[{"zone":"grassland","spawn_weight":1}],"phase_rules":[{"time_start":700,"time_end":1800}],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[],"id":"01KKWBVKEN10357T9ZZ4BNJCG9","ref":"green-toad","name":"Green Toad","title":"Green Toad","description":"A small amphibian that sits idle in the grass, croaks occasionally, and hops to nearby spots during the day.\n","lore":"Green Toads are common grassland amphibians known for their rhythmic croaking and sudden, arcing hops.\nThey use a sprite-sheet animation with idle, croak emote, and hop cycles across a 9x5 frame grid.\nOccasionally they pause to puff up their throat in a charming display before launching to a new spot.\n","type_flags":1,"rarity":0,"personality":11,"element":10,"rank":1,"family":1,"level":1,"stats":{"hp":3,"max_hp":3,"attack":0,"defense":0,"speed":1,"armor":0},"behavior":{"first_strike":false,"movement_type":1},"spatial":{"walk_speed":2,"can_fly":false},"credits":"KBVE Isometric ambient creature system.\n","creature_config":{"render_kind":"sprite","pool_size":8,"chunk_size":16,"per_chunk":1,"spawn_chance":0.35,"schedule":"day"}},{"tags":[],"abilities":[{"id":"attack","name":"Crossbow Volley","damage":10}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The King looses a crossbow bolt! {target} reels for {dmg} damage!","A snapped quarrel arcs through the air. {target} takes {dmg} damage!"]},{"action":"death","messages":["The King falls. The crown rolls free across the field — the run ends here."]}],"id":"01KSAV57D0DKQNWXJ8AC01V8PQ","ref":"king","name":"King","title":"King","description":"Player avatar. Crowned warrior — high HP, ranged crossbow loadout, drives the empire-builder loop. Rarely seen on the front line by mid-game; lose him and the run ends.\n","type_flags":1,"rarity":4,"personality":10,"rank":4,"family":5,"level":8,"stats":{"hp":200,"max_hp":200,"attack":10,"defense":4,"speed":4,"armor":3},"behavior":{"first_strike":false,"movement_type":3},"faction":{"faction_id":"player"},"equipment":{"equipped":[{"slot":7,"item_ref":"gold-plated-shield"},{"slot":6,"item_ref":"iron-sword"},{"slot":2,"item_ref":"iron-armor"}]}},{"tags":[],"abilities":[{"id":"attack","name":"Steel Cleave","damage":8}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The knight crashes into {target} with a steel-shod blow! {dmg} damage!","Plate clanks as the knight cleaves {target}! {dmg} damage!"]},{"action":"death","messages":["The knight falls heavily, plate ringing against the stone."]}],"id":"01KSAVJ4TXAMCXS00X0F0H2W1E","ref":"knight","name":"Knight","title":"Knight","description":"Heavy-armoured Player melee. Slow, hard-hitting, soaks damage for the army line.\n","type_flags":1,"rarity":1,"personality":10,"rank":2,"family":5,"level":4,"stats":{"hp":120,"max_hp":120,"attack":8,"defense":3,"speed":3,"armor":4},"behavior":{"first_strike":false,"movement_type":2},"faction":{"faction_id":"player"},"equipment":{"equipped":[{"slot":7,"item_ref":"iron-shield"},{"slot":6,"item_ref":"iron-sword"},{"slot":2,"item_ref":"iron-armor"}]}},{"tags":["kbve-factorio","dispatcher"],"abilities":[],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[{"trigger":"greeting","lines":["Fleet ready. Where are we sending them?","Every chassis on the board, captain. Your call.","Wheels lubed, fuel topped, drivers alert."]},{"trigger":"mining","lines":["Miners en route. They will fan out on arrival.","Drill bits warm. Ore is borrowed time anyway."]},{"trigger":"defense","lines":["Defenders deployed. They hold or they fall back.","Turrets up. Biters will think twice."]},{"trigger":"combat","lines":["Strike package away. Make it count.","No survivors at the target. Acknowledged."]},{"trigger":"sync","lines":["New chassis registered with the grid.","Headcount updated. The roster is clean."]},{"trigger":"unregistered","lines":["Some vehicles are still off-grid. Run a sync.","I count more cars than transponders. Sync them."]}],"quest_refs":[],"extensions":[],"flavor_text":[],"id":"01KSAVZ00000000000000KRESS","ref":"kress","name":"Kress","title":"Kress","description":"Sci-fi fleet dispatcher. Runs the colony's autonomous vehicle grid from a console hub — registration, dispatch, retreat orders. Calm voice, fast hands.\n","type_flags":1,"rarity":1,"personality":10,"rank":0,"family":5,"img":"/assets/npc/kress.png","level":1,"stats":{"hp":30,"max_hp":30,"attack":1,"defense":0,"speed":3,"armor":0},"behavior":{"first_strike":false,"movement_type":0},"faction":{"faction_id":"player"},"role":"Fleet Dispatcher"},{"tags":[],"abilities":[{"id":"attack","name":"Arcane Bolt","damage":9}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The mage hurls a glowing bolt at {target}! {dmg} damage!","Arcane sigils flare — {target} reels for {dmg} damage!"]},{"action":"death","messages":["The mage's robes burn out as the spellfire flickers and dies."]}],"id":"01KSAVAEF2667PTP0HAG228QA5","ref":"mage","name":"Mage","title":"Mage","description":"Cloth-armoured spellcaster. Light HP, big mana pool, flings ranged spells from the back line.\n","type_flags":1,"rarity":2,"personality":2,"rank":2,"family":5,"level":4,"stats":{"hp":45,"max_hp":45,"attack":9,"defense":4,"speed":4,"armor":0},"behavior":{"first_strike":true,"movement_type":2},"faction":{"faction_id":"player"}},{"tags":[],"abilities":[],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[{"zone":"grassland","spawn_weight":0.55}],"phase_rules":[{"time_start":1900,"time_end":530}],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[],"id":"01KKWBVKEK4SR70NMKE1SST5H4","ref":"meadow-firefly","name":"Meadow Firefly","title":"Meadow Firefly","description":"A tiny luminescent spirit that drifts through grasslands at night, pulsing with a soft green glow.\n","lore":"Meadow Fireflies are gentle spirits of fading starlight, drawn to open grasslands after dusk.\nTheir synchronized double-pulse glow has inspired countless folk tales about fairy lanterns\nguiding lost travelers home.\n","type_flags":1,"rarity":0,"personality":11,"element":11,"rank":1,"family":10,"level":1,"stats":{"hp":1,"max_hp":1,"attack":0,"defense":0,"speed":3,"armor":0},"behavior":{"first_strike":false,"movement_type":1},"spatial":{"walk_speed":0.7,"can_fly":true},"credits":"KBVE Isometric ambient creature system.\n","creature_config":{"render_kind":"emissive","pool_size":80,"chunk_size":12,"per_chunk":3,"spawn_chance":0.55,"schedule":"night"}},{"tags":[],"abilities":[{"id":"tackle","name":"Tackle","description":"A reckless full-body charge.","damage":12,"hit_chance":1,"category":"physical","power":12,"pp":35,"max_pp":35,"priority":0,"target":"enemy"},{"id":"static-bite","name":"Static Bite","description":"Chomps down with electrified jaws; may paralyze.","element":3,"damage":15,"hit_chance":0.95,"status_effect":"paralyze","category":"physical","power":15,"pp":25,"max_pp":25,"status_chance":0.2,"high_crit":true,"target":"enemy"},{"id":"spark-bark","name":"Spark Bark","description":"A cone of crackling sound and sparks.","element":3,"mp_cost":5,"hit_chance":1,"status_effect":"paralyze","category":"special","power":18,"pp":20,"max_pp":20,"status_chance":0.3,"target":"enemy"},{"id":"overclock","name":"Overclock","description":"Floods the servos with current, spiking speed.","category":"status","pp":10,"max_pp":10,"target":"self","stat_changes":[{"stat":"speed","stages":2,"target":"self"},{"stat":"attack","stages":1,"target":"self"}]},{"id":"plate-up","name":"Plate Up","description":"Clamps scavenged plating over vital servos.","heal_amount":8,"category":"status","pp":15,"max_pp":15,"target":"self","stat_changes":[{"stat":"defense","stages":1,"target":"self"},{"stat":"special_defense","stages":1,"target":"self"}]}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["Mechamutt lunges with a joyful electric yip — {target} takes {dmg} damage!","Servos whir as Mechamutt slams into {target} for {dmg} damage!"]},{"action":"flee","messages":["Mechamutt's antenna droops, and it skitters off on clattering paws!"]},{"action":"wounded","messages":["*Sparks leak from Mechamutt's seams, but its tail keeps wagging.*"]},{"action":"near_death","messages":["*Mechamutt's optics flicker red. One more hit and the lights go out.*"]},{"action":"caught","messages":["Mechamutt powers down with a contented chirp — caught!"]}],"id":"01KME8R5PG7Z9QB3T6VX2H4N01","ref":"mechamutt","name":"Mechamutt","title":"Mechamutt","description":"A scrappy salvage-built robot dog with a wagging antenna tail and a bark that crackles with static.\n","lore":"Nobody built Mechamutt on purpose. It assembled itself out of a junkyard's worth of broken drones, decided a passing scavenger was its owner, and has followed the scent of fresh scrap ever since. Loyal to a fault, terrified of magnets.\n","type_flags":16,"rarity":1,"personality":7,"element":3,"rank":0,"family":6,"img":"/assets/npc/mechamutt.png","level":5,"stats":{"hp":45,"max_hp":45,"attack":9,"defense":7,"speed":11,"mp":20,"max_mp":20,"special_attack":12,"special_defense":8,"accuracy":100,"evasion":100,"crit_rate":5,"crit_damage":1.5},"behavior":{"first_strike":false,"can_flee":true,"aggro_range":0,"wander_radius":6,"movement_type":1},"loot":{"entries":[{"item_ref":"scrap-metal","min_quantity":1,"max_quantity":3,"drop_rate":0.4},{"item_ref":"spare-battery","min_quantity":1,"max_quantity":1,"drop_rate":0.15}],"max_drops":2,"gold_min":3,"gold_max":9,"xp_reward":40},"spatial":{"walk_speed":3.2,"run_speed":5,"can_swim":false,"can_fly":false},"interaction":{"is_interactable":true,"is_attackable":true,"is_targetable":true},"pet":{"catchable":true,"capture_rate":120,"growth_rate":"medium_fast","base_xp_yield":64,"base_friendship":70,"gender_ratio":0.5,"movepool":[{"level":1,"ability_id":"tackle"},{"level":1,"ability_id":"spark-bark"},{"level":8,"ability_id":"static-bite"},{"level":12,"ability_id":"plate-up"},{"level":16,"ability_id":"overclock"}],"egg_groups":["mineral","field"],"evolutions":[{"evolves_to_ref":"cyber-hound","level":18}],"base_stat_total":92},"credits":"By Screen Smith\n"},{"tags":[],"abilities":[{"id":"attack","name":"Pouch Swing","damage":1}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The merchant swings a coin-laden purse at {target}! {dmg} damage!"]},{"action":"death","messages":["Coins clatter across the cobbles as the merchant falls."]}],"id":"01KSAVZ000000000000000MRCH","ref":"merchant","name":"Merchant","title":"Merchant","description":"Civilian humanoid trader. Flat cap, coin pouch. No combat role; used as the visual base for Innkeepers (one per Inn, swapped per tier). Future Caravan/Bazaar AI will reuse this body.\n","type_flags":1,"rarity":0,"personality":10,"rank":0,"family":5,"level":1,"stats":{"hp":30,"max_hp":30,"attack":1,"defense":0,"speed":3,"armor":0},"behavior":{"first_strike":false,"movement_type":2},"faction":{"faction_id":"player"},"shop_items":["potion","elixir","swift-tonic","iron-sword","iron-shield"]},{"tags":["kbve-factorio","logistics"],"abilities":[],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[{"trigger":"greeting","lines":["Convoys rolling, manifests clean. How can I help?","Routes are short today — fewer biters on the south road.","Pickup, dropoff, repeat. Easy job. Mostly."]},{"trigger":"deposit","lines":["Manifest closed. Numbers match.","Trunk empty. Next run on the board."]}],"quest_refs":[],"extensions":[],"flavor_text":[],"id":"01KSAVZ000000000000000MIRA","ref":"mira","name":"Mira","title":"Mira","description":"Sci-fi logistics officer. Runs the hauler ring — what loads where, when, and in what order. Has a soft spot for clean spreadsheets and full cargo holds.\n","type_flags":1,"rarity":1,"personality":7,"rank":0,"family":5,"img":"/assets/npc/mira.png","level":1,"stats":{"hp":30,"max_hp":30,"attack":1,"defense":1,"speed":3,"armor":0},"behavior":{"first_strike":false,"movement_type":0},"faction":{"faction_id":"player"},"role":"Logistics Officer"},{"tags":["cryptothrone","cloud-city"],"abilities":[],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[{"trigger":"greeting","lines":["Peace, traveler. The path to the throne is long.","Patience and wisdom will serve you well."]}],"quest_refs":[],"extensions":[],"flavor_text":[],"id":"01KSAVZ000000000000000MONK","ref":"monk","name":"Elder Monk","title":"Elder Monk","description":"A serene keeper of the old ways. Meditates near the plaza shrine and offers travelers patience, wisdom, and the occasional cryptic hint about the road to the throne.\n","type_flags":1,"rarity":0,"personality":4,"rank":0,"family":5,"img":"/assets/entity/monks.png","sprite_atlas":{"atlas_ref":"monks","columns":8,"rows":1,"cell_width":52,"cell_height":72,"row_front":0,"row_side":0,"row_back":0,"world_width":24,"world_height":33,"clips":[{"anim":"idle","row":0,"start_frame":0,"frame_count":1,"fps":1}]},"level":1,"stats":{"hp":30,"max_hp":30,"attack":1,"defense":2,"speed":1,"armor":1},"behavior":{"first_strike":false,"movement_type":0},"faction":{"faction_id":"player"},"role":"Shrine Keeper"},{"tags":[],"abilities":[{"id":"attack","name":"Spore Burst","damage":4}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The Mushroom Sprite bounces off a wall and headbutts {target}! {dmg} damage!","A puff of toxic spores erupts as the sprite slams into {target}! {dmg} damage!","The sprite giggles — a wet, gurgling sound — and body-checks {target}! {dmg} damage!"]},{"action":"debuff","messages":["The Mushroom Sprite releases a thick cloud of glowing spores! {target} chokes on {effect}!","Tiny mushrooms sprout where the sprite touches {target}. {effect} takes hold!"]},{"action":"death","messages":["The Mushroom Sprite pops like a cork, releasing one final cloud of harmless spores.","It deflates with a sad little wheeze and crumbles into compost."]},{"action":"wounded","messages":["*The sprite's cap is dented. Spore dust leaks from the cracks.*"]},{"action":"near_death","messages":["*The Mushroom Sprite wobbles drunkenly, its cap nearly split in half.*"]}],"id":"01KKR5QWTAJEKFBFF31JNDW8Q9","ref":"mushroom-sprite","name":"Mushroom Sprite","title":"Mushroom Sprite","description":"A tiny fungal creature that bounces erratically, releasing clouds of irritating spores.\n","lore":"Mushroom Sprites are animated by deep earth magic, tending underground fungal gardens when not disturbed.\n","type_flags":1,"rarity":1,"personality":5,"element":4,"rank":2,"family":9,"level":1,"stats":{"hp":18,"max_hp":18,"attack":4,"defense":0,"speed":4,"armor":0},"behavior":{"first_strike":false,"movement_type":1},"loot":{"entries":[{"item_ref":"potion","min_quantity":1,"max_quantity":1,"drop_rate":0.3},{"item_ref":"rations","min_quantity":1,"max_quantity":1,"drop_rate":0.18},{"item_ref":"vitality-potion","min_quantity":1,"max_quantity":1,"drop_rate":0.06},{"item_ref":"whetstone","min_quantity":1,"max_quantity":1,"drop_rate":0.06}],"max_drops":1,"gold_min":3,"gold_max":8,"xp_reward":15},"credits":"Ported from KBVE DiscordSH dungeon crawler.\n"},{"tags":[],"abilities":[],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[],"id":"01KSR8C4R81VPD7J5CH6VEGTJP","ref":"nd-enemy-runner","name":"Runner","title":"Nexus Defense — Runner","description":"Fast, fragile basic enemy for Nexus Defense. Walks the lane from the spawn point toward the player's Nexus and dies in a couple of tower volleys. Drops a flat gold bounty on death.\n","type_flags":1,"rarity":0,"personality":1,"rank":0,"family":5,"level":1,"stats":{"hp":50,"max_hp":50,"attack":1,"defense":0,"speed":60,"armor":0},"faction":{"faction_id":"daemoncorps"},"loot":{"gold_min":8,"gold_max":8},"drafted":false},{"tags":[],"abilities":[{"id":"charge","name":"Phantom Charge"}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The Phantom Knight charges through a pillar and swings at {target}! {dmg} damage!","\"FOR THE FALLEN!\" The knight's spectral blade cleaves through {target}! {dmg} damage!","Ghostly hooves thunder as the knight rides down {target}! {dmg} damage!"]},{"action":"charge","messages":["The Phantom Knight raises its banner high. The air crackles with ghostly war drums!","\"STEEL YOURSELVES!\" The knight's form blazes with spectral fire as it prepares to charge!"]},{"action":"defend","messages":["The Phantom Knight plants a ghostly shield. The emblem on it glows with forgotten honor. (+{armor} armor)"]},{"action":"death","messages":["The Phantom Knight salutes — a reflex from a life long ended — and fades like morning mist.","Its spectral armor clatters to the ground, piece by piece, until nothing remains.","\"The battle... is finally over...\" The knight kneels, and is gone."]},{"action":"wounded","messages":["*The knight's spectral form wavers. Through the gaps you glimpse the battlefield where it died.*"]},{"action":"near_death","messages":["*\"I will NOT retreat again!\" The Phantom Knight's voice cracks with ancient grief.*"]}],"id":"01KKR5QWTB1TRDD9W2D6MFNME5","ref":"phantom-knight","name":"Phantom Knight","title":"Phantom Knight","description":"The ghost of a fallen knight that charges through the battlefield, armor clanking with otherworldly echoes.\n","lore":"Phantom Knights died in battles they believed unjust, and now fight an eternal war against all who cross their path.\n","type_flags":1,"rarity":2,"personality":1,"element":5,"rank":2,"family":10,"level":3,"stats":{"hp":28,"max_hp":28,"attack":8,"defense":4,"speed":5,"armor":4},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"shadow-court"},"loot":{"entries":[{"item_ref":"ward","min_quantity":1,"max_quantity":1,"drop_rate":0.25},{"item_ref":"bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.25},{"item_ref":"campfire-kit","min_quantity":1,"max_quantity":1,"drop_rate":0.08},{"item_ref":"rage-draught","min_quantity":1,"max_quantity":1,"drop_rate":0.08},{"item_ref":"phoenix-feather","min_quantity":1,"max_quantity":1,"drop_rate":0.08},{"item_ref":"antidote","min_quantity":1,"max_quantity":1,"drop_rate":0.17},{"item_ref":"smoke-bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.08}],"max_drops":2,"gold_min":8,"gold_max":18,"xp_reward":50},"credits":"Ported from KBVE DiscordSH dungeon crawler.\n"},{"tags":[],"abilities":[{"id":"attack","name":"Cannon Volley","damage":6}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The pirate ship looses a ragged volley! {target} takes {dmg} damage!","A jeering crew fires from the deck — {target} reels for {dmg} damage!"]},{"action":"death","messages":["The pirate ship lists badly, then slips beneath the waves with its haul."]}],"id":"01KSAVQR3VN6ZE4AVMV0V4Z6BV","ref":"pirate-ship","name":"Pirate Ship","title":"Pirate Ship","description":"Hostile coastal raider. PirateCove-spawned via PirateCoveRaidSystem; water-locked, arrow attack, slightly weaker than the player Galley but spawned in waves. The ocean sister to the Bandit raid line.\n","type_flags":1,"rarity":1,"personality":1,"rank":2,"family":5,"level":4,"stats":{"hp":120,"max_hp":120,"attack":6,"defense":3,"speed":4,"armor":1},"behavior":{"first_strike":false,"movement_type":2},"faction":{"faction_id":"hostile"}},{"tags":["kbve-factorio","combat"],"abilities":[],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[{"trigger":"greeting","lines":["Reno. What is dying today?","Lieutenant on station. Awaiting orders.","Walls hold or we move outward. Your call."]},{"trigger":"rally","lines":["On me. Tight wedge. Move.","Hold the line — fall back on my mark, not before."]}],"quest_refs":[],"extensions":[],"flavor_text":[],"id":"01KSAVZ000000000000000RENO","ref":"reno","name":"Reno","title":"Reno","description":"Sci-fi combat lieutenant. Coordinates the colony's response force when biters breach the wall. Loud, blunt, and effective. Treats every alarm like the last one.\n","type_flags":1,"rarity":1,"personality":1,"rank":2,"family":5,"img":"/assets/npc/reno.png","level":2,"stats":{"hp":60,"max_hp":60,"attack":8,"defense":3,"speed":4,"armor":2},"behavior":{"first_strike":true,"movement_type":2},"faction":{"faction_id":"player"},"role":"Combat Lieutenant"},{"tags":[],"abilities":[{"id":"attack","name":"Twin Strike","damage":9}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The rogue slips behind {target} — twin daggers flash! {dmg} damage!","{target} catches a blade between the ribs — {dmg} damage!"]},{"action":"death","messages":["The rogue staggers, cloak settling over the still form."]}],"id":"01KSAVZ000000000000000ROGE","ref":"rogue","name":"Rogue","title":"Rogue","description":"Player melee skirmisher. Dual-dagger, dark cloak, face scarf. Fast and high-attack but glassy — picks off stragglers, dies fast in line combat.\n","type_flags":1,"rarity":1,"personality":2,"rank":0,"family":5,"level":3,"stats":{"hp":45,"max_hp":45,"attack":9,"defense":1,"speed":6,"armor":0},"behavior":{"first_strike":true,"movement_type":4},"faction":{"faction_id":"player"}},{"tags":[],"abilities":[{"id":"attack","name":"Quick Strike","damage":3}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The scout darts in with a quick jab! {target} takes {dmg} damage!"]},{"action":"death","messages":["The scout falls quietly, mapping notes scattering on the wind."]}],"id":"01KSAVJ63XB5GY5MNA969VNW61","ref":"scout","name":"Scout","title":"Scout","description":"Player recon unit. Fast, light, no weapon — vision radius 3 (vs default 1) feeds FogBakeSystem so the player explores fog of war faster. Recruited from Barracks for 5 Coin + 2 Timber.\n","type_flags":1,"rarity":0,"personality":2,"rank":0,"family":5,"level":1,"stats":{"hp":35,"max_hp":35,"attack":3,"defense":2,"speed":6,"armor":0},"behavior":{"first_strike":false,"movement_type":2},"faction":{"faction_id":"player"},"equipment":{"equipped":[{"slot":1,"item_ref":"hood"},{"slot":2,"item_ref":"leather"}]}},{"tags":[],"abilities":[{"id":"attack","name":"Shadow Strike","damage":8}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The Shade Stalker materializes behind {target} and drives a spectral blade home! {dmg} damage!","\"You never saw me.\" A cold slash opens across {target}'s back. {dmg} damage.","Shadows ripple and {target} staggers — the Stalker struck from nowhere. {dmg} damage."]},{"action":"defend","messages":["The Shade Stalker dissolves into the shadows, watching and waiting. (+{armor} armor)"]},{"action":"flee","messages":["The Shade Stalker melts into the darkness. You hear a whisper: \"Next time.\"","It was there. Now it isn't. Only the chill remains."]},{"action":"death","messages":["The Shade Stalker's form unravels like smoke. Its last words: \"The hunt... ends...\"","Shadow pours from its wounds like ink. The Stalker fades, finally at rest."]},{"action":"wounded","messages":["*The Stalker's form flickers. For the first time, it looks uncertain.*"]},{"action":"near_death","messages":["*The Shade Stalker can barely hold its shape. It phases in and out, desperate.*"]}],"id":"01KKR5QWTBAF71Q1NJTD7RZKEW","ref":"shade-stalker","name":"Shade Stalker","title":"Shade Stalker","description":"A dark figure that moves between shadows, striking before its prey even knows it is there.\n","lore":"Shade Stalkers are remnants of assassins who died mid-hunt, their killing intent crystallized into spectral form.\n","type_flags":1,"rarity":2,"personality":2,"element":5,"rank":2,"family":10,"level":2,"stats":{"hp":20,"max_hp":20,"attack":8,"defense":1,"speed":8,"armor":1},"behavior":{"first_strike":true,"movement_type":1},"faction":{"faction_id":"shadow-court"},"loot":{"entries":[{"item_ref":"bandage","min_quantity":1,"max_quantity":1,"drop_rate":0.27},{"item_ref":"bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.13},{"item_ref":"fire-flask","min_quantity":1,"max_quantity":1,"drop_rate":0.13},{"item_ref":"iron-skin-potion","min_quantity":1,"max_quantity":1,"drop_rate":0.07},{"item_ref":"trap-kit","min_quantity":1,"max_quantity":1,"drop_rate":0.07},{"item_ref":"whetstone","min_quantity":1,"max_quantity":1,"drop_rate":0.13}],"max_drops":1,"gold_min":5,"gold_max":12,"xp_reward":30},"credits":"Ported from KBVE DiscordSH dungeon crawler.\n"},{"tags":[],"abilities":[{"id":"heavy-attack","name":"Death Scythe","damage":12}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The Shadow Wraith's claws pass through {target}'s guard like it isn't there! {dmg} damage!","Darkness coalesces into a fist and slams into {target}! {dmg} damage!","The wraith whispers something hateful and {target} reels from an unseen blow! {dmg} damage!"]},{"action":"heavy_attack","messages":["The Shadow Wraith screams — a sound that scrapes the inside of your skull — and tears into {target}! {dmg} damage!","The wraith's entire form surges forward, engulfing {target} in freezing darkness! {dmg} damage!"]},{"action":"defend","messages":["The wraith's form thins to near-transparency. Attacks pass through harmlessly. (+{armor} armor)"]},{"action":"death","messages":["The Shadow Wraith unravels like a torn curtain, its malice dissipating into cold air.","It reaches toward {target} one last time, then dissolves. The room grows warmer."]},{"action":"wounded","messages":["*The wraith flickers. Its hunger is now tinged with something like desperation.*"]},{"action":"near_death","messages":["*The Shadow Wraith is barely a stain on the air. Its hatred is the only thing holding it together.*"]}],"id":"01KKR5QWTBF2XX7BG384X7V5V1","ref":"shadow-wraith","name":"Shadow Wraith","title":"Shadow Wraith","description":"A ghostly figure that phases through walls, delivering devastating blows from the darkness.\n","lore":"Shadow Wraiths are formed from concentrated malice, hunting the living to feed their insatiable hunger.\n","type_flags":1,"rarity":2,"personality":2,"element":5,"rank":2,"family":10,"level":3,"stats":{"hp":25,"max_hp":25,"attack":12,"defense":2,"speed":7,"armor":2},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"shadow-court"},"loot":{"entries":[{"item_ref":"ward","min_quantity":1,"max_quantity":1,"drop_rate":0.25},{"item_ref":"bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.25},{"item_ref":"campfire-kit","min_quantity":1,"max_quantity":1,"drop_rate":0.08},{"item_ref":"rage-draught","min_quantity":1,"max_quantity":1,"drop_rate":0.08},{"item_ref":"phoenix-feather","min_quantity":1,"max_quantity":1,"drop_rate":0.08},{"item_ref":"antidote","min_quantity":1,"max_quantity":1,"drop_rate":0.17},{"item_ref":"smoke-bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.08}],"max_drops":2,"gold_min":8,"gold_max":18,"xp_reward":50},"credits":"Ported from KBVE DiscordSH dungeon crawler.\n"},{"tags":[],"abilities":[{"id":"attack","name":"Headbutt","damage":1}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"death","messages":["The sheep crumples mid-bleat."]}],"id":"01KSAVAAWG80N798A1T6G6E9MD","ref":"sheep","name":"Sheep","title":"Sheep","description":"Passive grazing livestock. Slow, harmless. Drops Wool / Meat when killed; herds farm Migration events spawn flocks.\n","type_flags":1,"rarity":0,"personality":3,"rank":0,"family":1,"level":1,"stats":{"hp":20,"max_hp":20,"attack":1,"defense":0,"speed":2,"armor":0},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"wildlife"}},{"tags":["kbve-factorio","bank"],"abilities":[],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[{"trigger":"greeting","lines":["Your vault is sealed and surveyed.","I keep what dies with you — and what does not.","Eight by eight, give or take. Pack tight."]},{"trigger":"deposit","lines":["Tucked away. Safer with me than with you.","Counted twice. Logged twice."]}],"quest_refs":[],"extensions":[],"flavor_text":[],"id":"01KSAVZ000000000000000SILA","ref":"sila","name":"Sila","title":"Sila","description":"Sci-fi vault keeper. Catalogs and seals personal lockers in the colony bank. Polite but cold; she has counted every gram of metal that crosses the threshold.\n","type_flags":1,"rarity":1,"personality":4,"rank":0,"family":5,"img":"/assets/npc/sila.png","level":1,"stats":{"hp":30,"max_hp":30,"attack":1,"defense":0,"speed":3,"armor":0},"behavior":{"first_strike":false,"movement_type":0},"faction":{"faction_id":"player"},"role":"Vault Keeper"},{"tags":[],"abilities":[{"id":"defend","name":"Shield Wall","damage":5}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The Skeleton Guard thrusts its rusted sword at {target} with mechanical precision. {dmg} damage.","Bones rattle as the guard delivers a disciplined strike to {target}. {dmg} damage.","The guard steps forward and swings. No wasted motion. {dmg} damage to {target}."]},{"action":"defend","messages":["The Skeleton Guard plants its shield and holds the line. (+{armor} armor)","It raises a dented shield without urgency. This is just another watch. (+{armor} armor)"]},{"action":"death","messages":["The Skeleton Guard's jawbone drops. The rest follows, clattering to the floor in a heap of old bones.","Its eye sockets dim. The guard collapses, armor and all, finally relieved of duty.","The bones scatter as if the oath holding them together has finally been fulfilled."]},{"action":"wounded","messages":["*A rib cracks loose and falls to the ground. The guard doesn't flinch.*"]},{"action":"near_death","messages":["*The Skeleton Guard is missing half its ribcage. It fights on regardless.*"]}],"id":"01KKR5QWTAEV48Y4WK51JWBXTX","ref":"skeleton-guard","name":"Skeleton Guard","title":"Skeleton Guard","description":"A reanimated skeleton clad in rusted armor, standing eternal watch over dusty corridors.\n","lore":"Skeleton Guards are bound by ancient oaths that persist beyond death, endlessly patrolling their designated posts.\n","type_flags":1,"rarity":1,"personality":4,"rank":2,"family":2,"level":2,"stats":{"hp":30,"max_hp":30,"attack":5,"defense":5,"speed":3,"armor":3},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"deep-wardens"},"loot":{"entries":[{"item_ref":"bandage","min_quantity":1,"max_quantity":1,"drop_rate":0.27},{"item_ref":"bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.13},{"item_ref":"fire-flask","min_quantity":1,"max_quantity":1,"drop_rate":0.13},{"item_ref":"iron-skin-potion","min_quantity":1,"max_quantity":1,"drop_rate":0.07},{"item_ref":"trap-kit","min_quantity":1,"max_quantity":1,"drop_rate":0.07},{"item_ref":"whetstone","min_quantity":1,"max_quantity":1,"drop_rate":0.13}],"max_drops":1,"gold_min":5,"gold_max":12,"xp_reward":30},"equipment":{"equipped":[{"slot":6,"item_ref":"rusty-sword"},{"slot":7,"item_ref":"wooden-shield"},{"slot":1,"item_ref":"hood"}]},"credits":"Ported from KBVE DiscordSH dungeon crawler.\n"},{"tags":[],"abilities":[{"id":"attack","name":"Sword Strike","damage":6}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The soldier strikes with disciplined precision! {dmg} damage to {target}!","A trained swing finds its mark on {target}. {dmg} damage!"]},{"action":"death","messages":["The soldier falls in formation, banner still gripped tight."]}],"id":"01KSAVJJEH5P7XCW5ZRTA6YR4N","ref":"soldier","name":"Soldier","title":"Soldier","description":"Standard Player infantry. Balanced stats, the workhorse of every Barracks roster.\n","type_flags":1,"rarity":0,"personality":4,"rank":0,"family":5,"level":2,"stats":{"hp":70,"max_hp":70,"attack":6,"defense":2,"speed":5,"armor":2},"behavior":{"first_strike":false,"movement_type":2},"faction":{"faction_id":"player"},"equipment":{"equipped":[{"slot":7,"item_ref":"wooden-shield"},{"slot":6,"item_ref":"rusty-sword"},{"slot":2,"item_ref":"chain-mail"}]}},{"tags":[],"abilities":[{"id":"attack","name":"Stone Fist","damage":6}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The Stone Sentinel brings down a granite fist on {target}. The floor cracks. {dmg} damage.","It swings with the inevitability of a landslide. {target} takes {dmg} damage.","The sentinel's arm arcs slowly but unstoppably into {target}. {dmg} damage."]},{"action":"defend","messages":["The Stone Sentinel crosses its massive arms. You might as well attack a mountain. (+{armor} armor)","Ancient glyphs pulse across its surface. The stone hardens further. (+{armor} armor)"]},{"action":"charge","messages":["The Stone Sentinel plants both feet. The ground trembles. It is gathering everything it has."]},{"action":"death","messages":["The sentinel's glyph-eyes dim. It lowers itself to one knee and goes still — a monument to duty.","Cracks race across its body. The Stone Sentinel crumbles, and the vault it guarded lies open at last."]},{"action":"wounded","messages":["*Stone chips fall from the sentinel's torso. It does not acknowledge the damage.*"]},{"action":"near_death","messages":["*The sentinel is held together by willpower and ancient mortar. One more blow might end it.*"]}],"id":"01KKR5QWTB0Y8E1VSW19X56NVW","ref":"stone-sentinel","name":"Stone Sentinel","title":"Stone Sentinel","description":"A massive stone construct that defends its territory with unwavering determination and crushing force.\n","lore":"Stone Sentinels were crafted by master artisans to guard vaults of immense importance, and they have never abandoned their duty.\n","type_flags":1,"rarity":2,"personality":4,"element":8,"rank":2,"family":11,"level":3,"stats":{"hp":40,"max_hp":40,"attack":6,"defense":6,"speed":2,"armor":6},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"deep-wardens"},"loot":{"entries":[{"item_ref":"ward","min_quantity":1,"max_quantity":1,"drop_rate":0.25},{"item_ref":"bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.25},{"item_ref":"campfire-kit","min_quantity":1,"max_quantity":1,"drop_rate":0.08},{"item_ref":"rage-draught","min_quantity":1,"max_quantity":1,"drop_rate":0.08},{"item_ref":"phoenix-feather","min_quantity":1,"max_quantity":1,"drop_rate":0.08},{"item_ref":"antidote","min_quantity":1,"max_quantity":1,"drop_rate":0.17},{"item_ref":"smoke-bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.08}],"max_drops":2,"gold_min":8,"gold_max":18,"xp_reward":50},"credits":"Ported from KBVE DiscordSH dungeon crawler.\n"},{"tags":["kbve-factorio","repair"],"abilities":[],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[{"trigger":"greeting","lines":["Tann here. Wall holding?","Plates are bowed but the rivets hold.","Stand clear of the welder."]},{"trigger":"repair","lines":["Patched. It will last the night.","Worse on the inside than on the spec sheet."]}],"quest_refs":[],"extensions":[],"flavor_text":[],"id":"01KSAVZ000000000000000TANN","ref":"tann","name":"Tann","title":"Tann","description":"Sci-fi field engineer. Roams the perimeter with a torch in one hand and a multitool in the other, patching wall plates and rotating burned-out turrets.\n","type_flags":1,"rarity":0,"personality":4,"rank":0,"family":5,"img":"/assets/npc/tann.png","level":1,"stats":{"hp":40,"max_hp":40,"attack":2,"defense":2,"speed":3,"armor":1},"behavior":{"first_strike":false,"movement_type":2},"faction":{"faction_id":"player"},"role":"Field Engineer"},{"tags":[],"abilities":[{"id":"aoe-attack","name":"Shatter Wave","damage":8}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["\"You remind me of my generals. They also thought they could win.\" The King strikes {target}. {dmg} damage.","A fragment of crown orbits into {target} like a guided missile. {dmg} damage.","The Shattered King gestures lazily. Dark force hammers {target}. {dmg} damage.","\"Kneel.\" The word itself is a weapon. {target} staggers from {dmg} damage."]},{"action":"heavy_attack","messages":["\"I RULED CONTINENTS!\" The chamber shakes as the King unleashes his full fury on {target}! {dmg} damage!","Crown fragments orbit faster, faster — then converge on {target} all at once! {dmg} damage!"]},{"action":"aoe","messages":["\"ALL EMPIRES FALL!\" The Shattered King releases a wave of ancient power! {dmg} damage to all!","The King raises what remains of his crown. The room fills with blinding, terrible light. {dmg} damage to all!"]},{"action":"defend","messages":["Crown fragments orbit the King like a shield. \"Time is on my side. It always has been.\" (+{armor} armor)"]},{"action":"charge","messages":["The King closes his eyes. \"Do you hear them? My subjects. They still cry out for their king.\" Power builds...","The fragments of his crown begin to reassemble. The air grows heavy with the weight of ages."]},{"action":"heal","messages":["\"I have died a thousand deaths. One more heals nothing.\" The King draws life from the ruins. +{amount} HP.","The dungeon walls pulse. The King's wounds close. \"This place remembers its master.\""]},{"action":"debuff","messages":["\"Carry this burden.\" The King speaks a word of royal decree. {target} is bound by {effect}.","The weight of a dead empire settles on {target}'s shoulders. {effect} takes hold."]},{"action":"death","messages":["The crown fragments clatter to the ground. The King smiles. \"At last... a worthy successor. Rule well.\" He crumbles to dust.","\"My empire... my people... forgive me.\" The Shattered King's form dissolves. The dungeon falls silent for the first time in centuries.","He reaches for his crown one final time. His fingers pass through it. \"So this is how it ends.\" And he is gone."]},{"action":"wounded","messages":["*\"Interesting. Pain. I had forgotten what that felt like.\" The King regards his wound with curiosity.*","*Crown fragments orbit more erratically. The King's composure shows its first crack.*"]},{"action":"near_death","messages":["*\"I have ruled... I have fallen... I have endured...\" The King's voice is barely a whisper now.*","*The crown fragments fall to the ground one by one. The King watches them go with ancient, tired eyes.*"]}],"id":"01KKR5QWTCHDFP2XHQEZMR3J4F","ref":"the-shattered-king","name":"The Shattered King","title":"The Shattered King","description":"An ancient ruler whose fractured body radiates immense power, speaking in riddles of ages past.\n","lore":"The Shattered King once ruled an empire that spanned continents. When his kingdom fell, his rage shattered his own crown and bound his soul to the ruins forever.\n","type_flags":33,"rarity":4,"personality":6,"element":5,"rank":4,"family":2,"level":5,"stats":{"hp":55,"max_hp":55,"attack":8,"defense":6,"speed":5,"armor":6},"behavior":{"first_strike":true,"movement_type":1},"faction":{"faction_id":"shadow-court"},"loot":{"entries":[{"item_ref":"ward","min_quantity":1,"max_quantity":1,"drop_rate":0.3},{"item_ref":"potion","min_quantity":1,"max_quantity":2,"drop_rate":0.45},{"item_ref":"bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.3},{"item_ref":"teleport-rune","min_quantity":1,"max_quantity":1,"drop_rate":0.15},{"item_ref":"campfire-kit","min_quantity":1,"max_quantity":1,"drop_rate":0.15},{"item_ref":"phoenix-feather","min_quantity":1,"max_quantity":1,"drop_rate":0.15},{"item_ref":"elixir","min_quantity":1,"max_quantity":1,"drop_rate":0.15},{"item_ref":"smoke-bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.15}],"max_drops":2,"gold_min":15,"gold_max":30,"xp_reward":100},"credits":"Ported from KBVE DiscordSH dungeon crawler.\n"},{"tags":[],"abilities":[{"id":"poison","name":"Fang Strike","damage":6,"cooldown_turns":3}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The Venomfang Lurker strikes from the shadows — two punctures in {target}'s leg! {dmg} damage!","Coiled muscles unwind as the lurker launches itself at {target}'s throat! {dmg} damage!"]},{"action":"debuff","messages":["The lurker sinks its fangs deep and holds. Venom pumps into {target}! {effect} takes hold!","Green ichor drips from the Venomfang's jaws as {target} feels {effect} burning through their veins!","A double-strike — fang, fang — and {target} stumbles as {effect} sets in!"]},{"action":"defend","messages":["The Venomfang Lurker coils tightly, scales gleaming with toxic sheen. (+{armor} armor)"]},{"action":"death","messages":["The Venomfang Lurker thrashes once and goes still. Venom pools beneath its body.","It hisses its last breath and uncoils, fangs bared even in death."]},{"action":"wounded","messages":["*The lurker recoils, hissing through damaged scales. Its strikes become more desperate.*"]},{"action":"near_death","messages":["*The Venomfang drags itself forward on pure instinct, leaving a trail of venom behind it.*"]}],"id":"01KKR5QWTBD4Y94FSMS25SR13H","ref":"venomfang-lurker","name":"Venomfang Lurker","title":"Venomfang Lurker","description":"A serpentine creature that coils in darkness, delivering multiple doses of deadly venom before its prey can react.\n","lore":"Venomfang Lurkers have evolved venom so potent that a single bite can fell creatures many times their size.\n","type_flags":1,"rarity":2,"personality":5,"element":4,"rank":2,"family":1,"level":3,"stats":{"hp":26,"max_hp":26,"attack":6,"defense":3,"speed":7,"armor":3},"behavior":{"first_strike":true,"movement_type":1},"loot":{"entries":[{"item_ref":"ward","min_quantity":1,"max_quantity":1,"drop_rate":0.25},{"item_ref":"bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.25},{"item_ref":"campfire-kit","min_quantity":1,"max_quantity":1,"drop_rate":0.08},{"item_ref":"rage-draught","min_quantity":1,"max_quantity":1,"drop_rate":0.08},{"item_ref":"phoenix-feather","min_quantity":1,"max_quantity":1,"drop_rate":0.08},{"item_ref":"antidote","min_quantity":1,"max_quantity":1,"drop_rate":0.17},{"item_ref":"smoke-bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.08}],"max_drops":2,"gold_min":8,"gold_max":18,"xp_reward":50},"credits":"Ported from KBVE DiscordSH dungeon crawler.\n"},{"tags":["kbve-factorio","shopkeeper"],"abilities":[],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[{"trigger":"greeting","lines":["Welcome to the Exchange, engineer. Spend wisely.","Coin moves the factory. What will you trade for?","Need stock? My shelves are deep.","Quality scales with coin, not vice versa."]},{"trigger":"buy","lines":["A solid pick — back to the line with you.","Pleasure doing business.","Stamped, sealed, yours."]},{"trigger":"empty_pocket","lines":["Come back when the pockets jingle.","No coin, no deal. Mine more."]}],"quest_refs":[],"extensions":[],"flavor_text":[],"id":"01KSAVZ000000000000000VEXX","ref":"vex","name":"Vex","title":"Vex","description":"Sci-fi exchange keeper. Operates the trading window of a colony hub: takes coin, hands over crates, watches the queue. Stoic with a sharp tongue when the till runs short.\n","type_flags":1,"rarity":1,"personality":2,"rank":0,"family":5,"img":"/assets/npc/vex.png","level":1,"stats":{"hp":30,"max_hp":30,"attack":1,"defense":0,"speed":3,"armor":0},"behavior":{"first_strike":false,"movement_type":0},"faction":{"faction_id":"player"},"role":"Exchange Keeper"},{"tags":[],"abilities":[{"id":"heavy-attack","name":"Void Rend","damage":10}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The Void Walker's arm stretches impossibly and strikes {target} from ten feet away! {dmg} damage!","Reality folds. {target} is suddenly standing where the Walker's fist is. {dmg} damage.","The Walker steps sideways through nothing and appears behind {target}! {dmg} damage!"]},{"action":"heavy_attack","messages":["The Void Walker tears open a rift and pulls {target} halfway through! {dmg} damage!","Space inverts around {target}. Everything hurts at once. {dmg} damage."]},{"action":"defend","messages":["The Void Walker shifts partially out of phase. Attacks slide through empty space. (+{armor} armor)"]},{"action":"death","messages":["The Void Walker collapses inward like a punctured balloon, reality snapping shut behind it.","It reaches for a crack in the air, but there are none left. It dissipates with a soft pop."]},{"action":"wounded","messages":["*The Walker's movements become erratic. The space around it warps unpredictably.*"]},{"action":"near_death","messages":["*Reality is reasserting itself. The Void Walker is losing its grip on this plane.*"]}],"id":"01KKR5QWTBFFJ36ZASQAVP8WN0","ref":"void-walker","name":"Void Walker","title":"Void Walker","description":"A being that exists between planes, striking from impossible angles with reality-bending attacks.\n","lore":"Void Walkers slip through cracks in reality, drawn to places where the boundaries between worlds grow thin.\n","type_flags":1,"rarity":2,"personality":2,"element":7,"rank":2,"family":8,"level":3,"stats":{"hp":30,"max_hp":30,"attack":10,"defense":3,"speed":6,"armor":3},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"shadow-court"},"loot":{"entries":[{"item_ref":"ward","min_quantity":1,"max_quantity":1,"drop_rate":0.25},{"item_ref":"bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.25},{"item_ref":"campfire-kit","min_quantity":1,"max_quantity":1,"drop_rate":0.08},{"item_ref":"rage-draught","min_quantity":1,"max_quantity":1,"drop_rate":0.08},{"item_ref":"phoenix-feather","min_quantity":1,"max_quantity":1,"drop_rate":0.08},{"item_ref":"antidote","min_quantity":1,"max_quantity":1,"drop_rate":0.17},{"item_ref":"smoke-bomb","min_quantity":1,"max_quantity":1,"drop_rate":0.08}],"max_drops":2,"gold_min":8,"gold_max":18,"xp_reward":50},"credits":"Ported from KBVE DiscordSH dungeon crawler.\n"},{"tags":[],"abilities":[{"id":"attack","name":"Tail Slap","damage":9}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The whale's tail crashes into {target}! {dmg} damage!"]},{"action":"death","messages":["The whale rolls onto its back and drifts, oil bleeding into the tide."]}],"id":"01KSAVP2EPHGT01VZ7WYGN0PV6","ref":"whale","name":"Whale","title":"Whale","description":"Oceanic / river leviathan. Massive HP pool — a lone Fishing Boat can't solo it quickly. Drops Whale Oil + bulk Meat via EnemyLootDropSystem.\n","type_flags":1,"rarity":2,"personality":11,"rank":2,"family":1,"level":6,"stats":{"hp":320,"max_hp":320,"attack":9,"defense":4,"speed":1,"armor":2},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"beast"}},{"tags":[],"abilities":[{"id":"attack","name":"Bite","damage":5}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The wolf lunges and tears into {target}! {dmg} damage!","Fangs sink deep — {target} bleeds for {dmg} damage!"]},{"action":"death","messages":["The wolf yelps once, then falls silent."]}],"id":"01KSAVCWA0E408E163EMXV0M45","ref":"wolf","name":"Wolf","title":"Wolf","description":"Forest-biome predator. Fast melee bite, packs spawn in Wolf Pack events near Farms. Beast faction — bites Player + Wildlife indiscriminately. Drops Wolf Pelt + Wolf Fang.\n","type_flags":1,"rarity":1,"personality":1,"rank":0,"family":1,"level":2,"stats":{"hp":35,"max_hp":35,"attack":5,"defense":1,"speed":5,"armor":0},"behavior":{"first_strike":true,"movement_type":1},"faction":{"faction_id":"beast"}},{"tags":[],"abilities":[],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[{"zone":"grassland","spawn_weight":1}],"phase_rules":[{"time_start":700,"time_end":1800}],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[],"id":"01KKWBVKEMG5SA4RHTXPQMEC63","ref":"woodland-butterfly","name":"Woodland Butterfly","title":"Woodland Butterfly","description":"A colorful butterfly that flutters through sunlit meadows, entering from the edges and wandering lazily on the breeze.\n","lore":"Woodland Butterflies come in seven distinct color morphs — from monarch orange to purple emperor.\nThey drift in from the edges of the visible world, flutter around a wander anchor, and glide away\nwhen they stray too far. Gentle wind pushes them along their path.\n","type_flags":1,"rarity":0,"personality":11,"element":10,"rank":1,"family":1,"level":1,"stats":{"hp":1,"max_hp":1,"attack":0,"defense":0,"speed":2,"armor":0},"behavior":{"first_strike":false,"movement_type":1},"spatial":{"walk_speed":0.35,"can_fly":true},"credits":"KBVE Isometric ambient creature system.\n","creature_config":{"render_kind":"billboard","pool_size":14,"chunk_size":16,"per_chunk":2,"spawn_chance":0.45,"schedule":"day"}},{"tags":[],"abilities":[],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The Wraith Executioner raises its phantom axe and brings it down on {target} with the weight of a thousand sentences! {dmg} damage!","A spectral blade arcs through {target}'s guard — the Executioner does not miss. {dmg} damage.","\"Guilty.\" The word echoes before the axe falls on {target}. {dmg} damage."]},{"action":"heavy_attack","messages":["The Executioner grips its axe with both hands — the blade ignites with black fire and cleaves through {target}! {dmg} damage!","\"BY DECREE OF THE HOLLOW COURT!\" The phantom axe splits the air and crashes into {target}! {dmg} damage!"]},{"action":"defend","messages":["The Executioner plants its axe and stands motionless. Its tattered robes harden into spectral plate. (+{armor} armor)"]},{"action":"charge","messages":["The Wraith Executioner raises one skeletal hand. The names of the condemned scroll across the air in burning glyphs.","A spectral chopping block materializes. The Executioner runs one finger along the edge of its axe."]},{"action":"death","messages":["The phantom axe clatters to the ground and dissolves. The Executioner looks at its empty hands and whispers, \"...pardoned.\" Then it is gone.","The tattered robes collapse in a heap. A long list of names burns away to ash where the Wraith stood.","The Executioner falls to its knees, grasping at the phantom axe as it fades. \"My sentence... is served.\""]},{"action":"wounded","messages":["*The Executioner's robes tear further, revealing the hollow void beneath. It shows no pain — only cold resolve.*"]},{"action":"near_death","messages":["*The phantom axe flickers in and out of existence. The Executioner's form wavers like a candle about to die.*","*\"One... final... verdict...\" The Wraith Executioner's voice is barely audible, but the malice is undiminished.*"]}],"id":"01KMWEP3FYXD54R527KQ6CM2N5","ref":"wraith-executioner","name":"Wraith Executioner","title":"Wraith Executioner","description":"A spectral headsman draped in tattered judicial robes, carrying an impossibly large phantom axe that cleaves through armor and soul alike.\n","lore":"In life, the Executioner served a kingdom long since swallowed by darkness. Tasked with carrying out the sentences of a corrupt court, it executed hundreds — guilty and innocent alike. When the kingdom fell, the Executioner's guilt bound its soul to an eternal sentence of its own: to wander the ruins, forever seeking absolution through the only craft it ever knew. Its phantom axe is said to sever not just flesh, but the ties between a soul and its body — those slain by the Wraith Executioner do not rest easily.\n","type_flags":33,"rarity":3,"personality":4,"element":5,"rank":2,"family":2,"level":4,"stats":{"hp":40,"max_hp":40,"attack":14,"defense":5,"speed":4,"armor":4},"behavior":{"first_strike":true,"movement_type":2},"credits":"Asset reference: [Undead Executioner by DarkPixel Kronovi](https://darkpixel-kronovi.itch.io/undead-executioner).\nFuture integration: UV-ready shader for apps/kbve/isometric.\n"},{"tags":[],"abilities":[],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"flee","messages":["The Air Wyvern banks hard on a gust and climbs out of reach in a single beat of its wings.","It catches a thermal and spirals up into the open sky, indifferent to those below."]},{"action":"death","messages":["The Air Wyvern folds its wings and falls, the wind around it going suddenly still."]}],"id":"01KVZH165F3RA3QXDXZT5G2D3K","ref":"wyvern_air","name":"Air Wyvern","title":"Air Wyvern","description":"A lithe sky-wyvern with translucent wings that hum with rushing wind, drifting in lazy spirals over the open grass. It roams the surface but never aggresses.\n","lore":"Air Wyverns ride the high currents above the grasslands, harmless to travelers who leave them be.\nThey steer by the wind alone, riding thermals in wide, drifting circles and never stooping to attack.\n","type_flags":1,"rarity":1,"personality":11,"element":9,"rank":2,"family":7,"level":2,"stats":{"hp":40,"max_hp":40,"attack":0,"defense":1,"speed":5,"armor":0},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"neutral"},"spatial":{"walk_speed":0.5,"can_fly":true},"credits":"KBVE Isometric ambient creature system.\n"},{"tags":[],"abilities":[],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"flee","messages":["The Fire Wyvern flares its wings, scattering sparks, and beats away on a wash of hot air.","It climbs in a spiral of rising heat, leaving only a faint smell of smoke behind."]},{"action":"death","messages":["The Fire Wyvern's embers gutter out as it falls, the air around it cooling fast."]}],"id":"01KVZH165H90EGYDVTE5H2BAR9","ref":"wyvern_fire","name":"Fire Wyvern","title":"Fire Wyvern","description":"A wyvern wreathed in heat-shimmer, embers curling from its wingtips as it wheels over the grass. It roams the surface but never aggresses.\n","lore":"Fire Wyverns ride the warm updrafts of sun-baked grasslands, harmless to travelers who leave them be.\nEmbers trail from their wings as they wheel overhead, never stooping to attack.\n","type_flags":1,"rarity":1,"personality":11,"element":1,"rank":2,"family":7,"level":2,"stats":{"hp":40,"max_hp":40,"attack":0,"defense":1,"speed":5,"armor":0},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"neutral"},"spatial":{"walk_speed":0.5,"can_fly":true},"credits":"KBVE Isometric ambient creature system.\n"},{"tags":[],"abilities":[],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"flee","messages":["The Water Wyvern slips sideways through a curtain of its own mist and is gone.","It dives low, skims the dew, and rises away on cool damp air, paying no mind to those below."]},{"action":"death","messages":["The Water Wyvern falls, its misty trail thinning to nothing before it lands."]}],"id":"01KVZH165HXHX87DESWFBHGF8Y","ref":"wyvern_water","name":"Water Wyvern","title":"Water Wyvern","description":"A sleek wyvern whose scales shimmer like rain on glass, trailing a fine mist as it glides over the grass. It roams the surface but never aggresses.\n","lore":"Water Wyverns drift along the morning fog lines, harmless to travelers who leave them be.\nThey gather dew on their wings and ride the cool air over the grasslands, never stooping to attack.\n","type_flags":1,"rarity":1,"personality":11,"element":2,"rank":2,"family":7,"level":2,"stats":{"hp":40,"max_hp":40,"attack":0,"defense":1,"speed":5,"armor":0},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"neutral"},"spatial":{"walk_speed":0.5,"can_fly":true},"credits":"KBVE Isometric ambient creature system.\n"},{"tags":[],"abilities":[{"id":"attack","name":"Bite","damage":4}],"weaknesses":[],"resistances":[],"status_immunities":[],"intent_weights":[],"spawn_rules":[],"phase_rules":[],"difficulty_overrides":[],"dialogue":[],"quest_refs":[],"extensions":[],"flavor_text":[{"action":"attack","messages":["The zombie sinks rotted teeth into {target}! {dmg} damage!","Cold, dead hands rake across {target} — {dmg} damage!"]},{"action":"death","messages":["The zombie collapses and stops twitching for good."]}],"id":"01KSAVP0BZN4KBB5Y1P62RVVWS","ref":"zombie","name":"Zombie","title":"Zombie","description":"Slow, undead horde unit. Spawns at night via ZombieNightSpawnSystem and around demolished shrines. Bite/claw melee, prefers to chase Player units, doesn't fatigue.\n","type_flags":1,"rarity":0,"personality":1,"rank":0,"family":2,"level":2,"stats":{"hp":50,"max_hp":50,"attack":4,"defense":1,"speed":2,"armor":0},"behavior":{"first_strike":false,"movement_type":1},"faction":{"faction_id":"hostile"}}],"index":{"01KSAVZ000000000000000ARCH":0,"archer":0,"Archer":0,"01KSAV7YC1CT201N51YJ15V1PK":1,"bandit":1,"Bandit":1,"01KSAVTYT9RBX566KHNYHGEREA":2,"bandit-scout":2,"Bandit Scout":2,"01KSAVZ000000000000000BARK":3,"barkeep":3,"Evee The BarKeep":3,"01KKR5QWTA6KARZ9EQB9Y476S4":4,"bone-archer":4,"Bone Archer":4,"01KSAVJQSG83RSRAN9W8B27VTT":5,"cavalry":5,"Cavalry":5,"01KKR5QWTARVPDS4ENXBK4MBD2":6,"cave-spider":6,"Cave Spider":6,"01KSAVKEYE51RE3HX4T4G1BNRV":7,"chicken":7,"Chicken":7,"01KSAVZ000000000000000CLRC":8,"cleric":8,"Cleric":8,"01KKR5QWTB3TXCY87HZXFHYFYG":9,"corrupted-warden":9,"Corrupted Warden":9,"01KSAV880T75RMTKD004K83GDQ":10,"cow":10,"Cow":10,"01KKR5QWTADGEX9BC9H29E0YB9":11,"crumbling-statue":11,"Crumbling Statue":11,"01KKR5QWTAMADFK3GY8Q47GQ6N":12,"crystal-bat":12,"Crystal Bat":12,"01KKR5QWTBC89E1XJHM3CZ5SRK":13,"crystal-golem":13,"Crystal Golem":13,"01KKR5QWTBV72R8B4V4JBNG308":14,"cursed-knight":14,"Cursed Knight":14,"01KKR5QWTA8JDZGRMHM21CR2J1":15,"dust-mite":15,"Dust Mite":15,"01KKR5QWTBPWP2WD71838AMPZB":16,"ember-wisp":16,"Ember Wisp":16,"01KKR5QWTBNKBVAN8J4168AFRW":17,"fire-imp":17,"Fire Imp":17,"01KSAVJR1ASDVMRD9B29PHBXWV":18,"fishing-boat":18,"Fishing Boat":18,"01KKR5QWTB7S5FY2HNXJN5Y4NY":19,"fungal-brute":19,"Fungal Brute":19,"01KSAV4D81ZJNBH8W8MS410ZX4":20,"galley":20,"Galley":20,"01KKR5QWTBH0QF9K030QMZFQWC":21,"glass-assassin":21,"Glass Assassin":21,"01KKR5QWTBJ3ZFEHR24YGT6VYX":22,"glass-golem":22,"Glass Golem":22,"01KKR5QWT9998CCD18XN2B3726":23,"glass-slime":23,"Glass Slime":23,"01KSAVBCDKGE0N89F6ZPH846Z8":24,"goblin":24,"Goblin":24,"01KSAVZ00000000000000GGNRL":25,"goblin-general":25,"Goblin General":25,"01KKWBVKEN10357T9ZZ4BNJCG9":26,"green-toad":26,"Green Toad":26,"01KSAV57D0DKQNWXJ8AC01V8PQ":27,"king":27,"King":27,"01KSAVJ4TXAMCXS00X0F0H2W1E":28,"knight":28,"Knight":28,"01KSAVZ00000000000000KRESS":29,"kress":29,"Kress":29,"01KSAVAEF2667PTP0HAG228QA5":30,"mage":30,"Mage":30,"01KKWBVKEK4SR70NMKE1SST5H4":31,"meadow-firefly":31,"Meadow Firefly":31,"01KME8R5PG7Z9QB3T6VX2H4N01":32,"mechamutt":32,"Mechamutt":32,"01KSAVZ000000000000000MRCH":33,"merchant":33,"Merchant":33,"01KSAVZ000000000000000MIRA":34,"mira":34,"Mira":34,"01KSAVZ000000000000000MONK":35,"monk":35,"Elder Monk":35,"01KKR5QWTAJEKFBFF31JNDW8Q9":36,"mushroom-sprite":36,"Mushroom Sprite":36,"01KSR8C4R81VPD7J5CH6VEGTJP":37,"nd-enemy-runner":37,"Runner":37,"01KKR5QWTB1TRDD9W2D6MFNME5":38,"phantom-knight":38,"Phantom Knight":38,"01KSAVQR3VN6ZE4AVMV0V4Z6BV":39,"pirate-ship":39,"Pirate Ship":39,"01KSAVZ000000000000000RENO":40,"reno":40,"Reno":40,"01KSAVZ000000000000000ROGE":41,"rogue":41,"Rogue":41,"01KSAVJ63XB5GY5MNA969VNW61":42,"scout":42,"Scout":42,"01KKR5QWTBAF71Q1NJTD7RZKEW":43,"shade-stalker":43,"Shade Stalker":43,"01KKR5QWTBF2XX7BG384X7V5V1":44,"shadow-wraith":44,"Shadow Wraith":44,"01KSAVAAWG80N798A1T6G6E9MD":45,"sheep":45,"Sheep":45,"01KSAVZ000000000000000SILA":46,"sila":46,"Sila":46,"01KKR5QWTAEV48Y4WK51JWBXTX":47,"skeleton-guard":47,"Skeleton Guard":47,"01KSAVJJEH5P7XCW5ZRTA6YR4N":48,"soldier":48,"Soldier":48,"01KKR5QWTB0Y8E1VSW19X56NVW":49,"stone-sentinel":49,"Stone Sentinel":49,"01KSAVZ000000000000000TANN":50,"tann":50,"Tann":50,"01KKR5QWTCHDFP2XHQEZMR3J4F":51,"the-shattered-king":51,"The Shattered King":51,"01KKR5QWTBD4Y94FSMS25SR13H":52,"venomfang-lurker":52,"Venomfang Lurker":52,"01KSAVZ000000000000000VEXX":53,"vex":53,"Vex":53,"01KKR5QWTBFFJ36ZASQAVP8WN0":54,"void-walker":54,"Void Walker":54,"01KSAVP2EPHGT01VZ7WYGN0PV6":55,"whale":55,"Whale":55,"01KSAVCWA0E408E163EMXV0M45":56,"wolf":56,"Wolf":56,"01KKWBVKEMG5SA4RHTXPQMEC63":57,"woodland-butterfly":57,"Woodland Butterfly":57,"01KMWEP3FYXD54R527KQ6CM2N5":58,"wraith-executioner":58,"Wraith Executioner":58,"01KVZH165F3RA3QXDXZT5G2D3K":59,"wyvern_air":59,"Air Wyvern":59,"01KVZH165H90EGYDVTE5H2BAR9":60,"wyvern_fire":60,"Fire Wyvern":60,"01KVZH165HXHX87DESWFBHGF8Y":61,"wyvern_water":61,"Water Wyvern":61,"01KSAVP0BZN4KBB5Y1P62RVVWS":62,"zombie":62,"Zombie":62}}