{ "schemaVersion": 2, "dungeonId": "hoto", "sourceDungeonConfigId": "hoto", "zoneId": 115, "expectedActiveRows": 401, "expectedBossSpawns": 5, "runtimeIdPrefix": "rw-hoto", "coordinateSystem": { "metersPerSourceUnit": 0.1, "directionUnitsPerTurn": 360, "maximumProjectionDistance": 4 }, "files": { "environmentRecipe": "scripts/runewaker-pipeline/recipes/hoto.json", "snapshot": "scripts/runewaker-pipeline/snapshots/hoto-zone-115.json", "generatedSource": "src/game/generated/hotoPopulation.generated.ts", "report": "src/assets/game/dungeons/hoto/population-import-report.json", "mechanicsReport": "src/assets/game/dungeons/hoto/mechanics-audit.json", "mechanicsSource": "src/game/generated/hotoMechanics.generated.ts", "environmentMetadata": "src/assets/game/dungeons/hoto/import-metadata.json", "navigation": "src/assets/game/dungeons/hoto/hoto-navigation.glb", "actorManifest": "public/assets/creatures/hoto/manifest.json", "actorOutput": "public/assets/creatures/hoto" }, "source": { "rootEnvironmentVariable": "RUNEWAKER_ROOT", "relativeDefault": "../rom-pvt-server-backups/Runewaker", "resourceRoot": "Resource", "dungeonConfig": "Tools/dungeon_config.json", "dungeonConfigId": "hoto", "luaRoot": "Resource/luascript", "catalogs": [ "Resource/data/npcobject.db", "Resource/data/imageobject.db", "Resource/data/string_enus.db" ], "backups": { "global": "../rom-pvt-server-backups/OneForAll/SQL/databases/ROM_Global.bak", "objects": "../rom-pvt-server-backups/OneForAll/SQL/databases/ObjectEdit.bak" }, "serverEnvironmentVariable": "RUNEWAKER_SQL_SERVER", "serverDefault": ".\\HEALERMAN_RW" }, "actors": [ { "id": "abomination-male", "sourceModel": "model/character/creature/abomination_male/act_abomination_male.ros", "runtimeRotationY": 0 }, { "id": "bigbug-turquoise", "sourceModel": "model/character/creature/bigbug/act_bigbug_turquoise.ros", "runtimeRotationY": 0 }, { "id": "blood-claw", "sourceModel": "model/character/creature/blood_claw/act_blood_claw.ros", "runtimeRotationY": 0 }, { "id": "darkreef-fang", "sourceModel": "model/character/creature/locathah/act_darkreef_fang.ros", "runtimeRotationY": 0 }, { "id": "elder-myconid", "sourceModel": "model/character/creature/elder_myconid/act_elder_myconid.ros", "runtimeRotationY": 0 }, { "id": "fat-medusa", "sourceModel": "model/character/creature/fat_medusa/act_fat_medusa.ros", "runtimeRotationY": 0 }, { "id": "myrma-man", "sourceModel": "model/character/creature/myrma_man/act_myrma_man.ros", "runtimeRotationY": 0 }, { "id": "myrma-man-gabba", "sourceModel": "model/character/creature/myrma_man_gabba/act_myrma_man_gabba.ros", "runtimeRotationY": 0 }, { "id": "myrma-woman", "sourceModel": "model/character/creature/myrma_woman/act_myrma_woman.ros", "runtimeRotationY": 0 }, { "id": "myrma-woman-priest", "sourceModel": "model/character/creature/myrma_woman_priest/act_myrma_woman_priest.ros", "runtimeRotationY": 0 }, { "id": "skate-fish-02", "sourceModel": "model/character/creature/skate_fish/act_skate_fish_02.ros", "runtimeRotationY": 0 }, { "id": "skate-fish-03", "sourceModel": "model/character/creature/skate_fish/act_skate_fish_03.ros", "runtimeRotationY": 0 } ], "templates": [ { "primaryColor": "hsl(147 22% 38%)", "accentColor": "hsl(175 38% 64%)", "id": 102021, "name": "Jiasha", "level": 57, "classification": "boss", "archetype": "humanoid", "actor": "myrma-woman-priest", "title": "Jiasha", "source": { "imageId": 578017, "modelPath": "model/character/creature/myrma_woman_priest/act_myrma_woman_priest.ros", "classificationRule": "NPCObjectDB.sex=3" } }, { "primaryColor": "hsl(288 22% 38%)", "accentColor": "hsl(316 38% 64%)", "id": 102024, "name": "Ayam Guard", "level": 55, "classification": "combat", "archetype": "humanoid", "actor": "myrma-man", "source": { "imageId": 575480, "modelPath": "model/character/creature/myrma_man/act_myrma_man.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(335 22% 38%)", "accentColor": "hsl(3 38% 64%)", "id": 102025, "name": "Ayam Fish Trainer", "level": 55, "classification": "combat", "archetype": "humanoid", "actor": "myrma-man", "source": { "imageId": 575480, "modelPath": "model/character/creature/myrma_man/act_myrma_man.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(22 22% 38%)", "accentColor": "hsl(50 38% 64%)", "id": 102026, "name": "Ayam Sea Incanter", "level": 55, "classification": "combat", "archetype": "humanoid", "actor": "myrma-woman", "source": { "imageId": 577189, "modelPath": "model/character/creature/myrma_woman/act_myrma_woman.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(69 22% 38%)", "accentColor": "hsl(97 38% 64%)", "id": 102027, "name": "Ayam Sea Mage", "level": 55, "classification": "combat", "archetype": "humanoid", "actor": "myrma-woman", "source": { "imageId": 577189, "modelPath": "model/character/creature/myrma_woman/act_myrma_woman.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(116 22% 38%)", "accentColor": "hsl(144 38% 64%)", "id": 102028, "name": "Ayam Defender", "level": 55, "classification": "combat", "archetype": "humanoid", "actor": "myrma-man", "source": { "imageId": 575480, "modelPath": "model/character/creature/myrma_man/act_myrma_man.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(163 22% 38%)", "accentColor": "hsl(191 38% 64%)", "id": 102029, "name": "Ayam Warrior", "level": 55, "classification": "combat", "archetype": "humanoid", "actor": "myrma-man", "source": { "imageId": 575480, "modelPath": "model/character/creature/myrma_man/act_myrma_man.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(210 22% 38%)", "accentColor": "hsl(238 38% 64%)", "id": 102030, "name": "Ayam Archpriest", "level": 55, "classification": "combat", "archetype": "humanoid", "actor": "myrma-woman", "source": { "imageId": 577189, "modelPath": "model/character/creature/myrma_woman/act_myrma_woman.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(257 22% 38%)", "accentColor": "hsl(285 38% 64%)", "id": 102031, "name": "Ayam Sound Shell Guardian", "level": 55, "classification": "combat", "archetype": "humanoid", "actor": "myrma-man", "source": { "imageId": 578184, "modelPath": "model/character/creature/myrma_man/act_myrma_man.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(304 22% 38%)", "accentColor": "hsl(332 38% 64%)", "id": 102032, "name": "Ayam Sound Shell Fighter", "level": 55, "classification": "combat", "archetype": "humanoid", "actor": "myrma-man", "source": { "imageId": 578185, "modelPath": "model/character/creature/myrma_man/act_myrma_man.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(351 22% 38%)", "accentColor": "hsl(19 38% 64%)", "id": 102033, "name": "Deep Sea Vermin", "level": 50, "classification": "combat", "archetype": "lizard", "actor": "bigbug-turquoise", "source": { "imageId": 574513, "modelPath": "model/character/creature/bigbug/act_bigbug_turquoise.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(38 22% 38%)", "accentColor": "hsl(66 38% 64%)", "id": 102034, "name": "Tame Ray", "level": 53, "classification": "combat", "archetype": "humanoid", "actor": "skate-fish-02", "source": { "imageId": 577197, "modelPath": "model/character/creature/skate_fish/act_skate_fish_02.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(85 22% 38%)", "accentColor": "hsl(113 38% 64%)", "id": 102035, "name": "Tame Tiger Ray", "level": 53, "classification": "combat", "archetype": "humanoid", "actor": "skate-fish-03", "source": { "imageId": 578141, "modelPath": "model/character/creature/skate_fish/act_skate_fish_03.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(132 22% 38%)", "accentColor": "hsl(160 38% 64%)", "id": 102036, "name": "Medusa's Servant", "level": 55, "classification": "combat", "archetype": "humanoid", "actor": "abomination-male", "source": { "imageId": 578186, "modelPath": "model/character/creature/abomination_male/act_abomination_male.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(179 22% 38%)", "accentColor": "hsl(207 38% 64%)", "id": 102037, "name": "Medusa's Maid", "level": 55, "classification": "combat", "archetype": "humanoid", "actor": "abomination-male", "source": { "imageId": 578187, "modelPath": "model/character/creature/abomination_male/act_abomination_male.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(320 22% 38%)", "accentColor": "hsl(348 38% 64%)", "id": 102040, "name": "Medusa", "level": 58, "classification": "boss", "archetype": "humanoid", "actor": "fat-medusa", "title": "Medusa", "source": { "imageId": 578085, "modelPath": "model/character/creature/fat_medusa/act_fat_medusa.ros", "classificationRule": "NPCObjectDB.sex=3" } }, { "primaryColor": "hsl(7 22% 38%)", "accentColor": "hsl(35 38% 64%)", "id": 102041, "name": "Teeth of the Reef", "level": 56, "classification": "boss", "archetype": "humanoid", "actor": "darkreef-fang", "title": "Teeth of the Reef", "source": { "imageId": 578014, "modelPath": "model/character/creature/locathah/act_darkreef_fang.ros", "classificationRule": "NPCObjectDB.sex=3" } }, { "primaryColor": "hsl(54 22% 38%)", "accentColor": "hsl(82 38% 64%)", "id": 102042, "name": "Template 102042", "level": 1, "classification": "combat", "archetype": "plant", "actor": "elder-myconid", "source": { "imageId": 576437, "modelPath": "model/character/creature/elder_myconid/act_elder_myconid.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(101 22% 38%)", "accentColor": "hsl(129 38% 64%)", "id": 102043, "name": "Little Tame Ray", "level": 52, "classification": "combat", "archetype": "humanoid", "actor": "skate-fish-02", "source": { "imageId": 578182, "modelPath": "model/character/creature/skate_fish/act_skate_fish_02.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(148 22% 38%)", "accentColor": "hsl(176 38% 64%)", "id": 102044, "name": "Ayam Assassin", "level": 55, "classification": "combat", "archetype": "humanoid", "actor": "myrma-man", "source": { "imageId": 575480, "modelPath": "model/character/creature/myrma_man/act_myrma_man.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(242 22% 38%)", "accentColor": "hsl(270 38% 64%)", "id": 102046, "name": "Bloodthirsty Claw", "level": 56, "classification": "boss", "archetype": "humanoid", "actor": "blood-claw", "title": "Bloodthirsty Claw", "source": { "imageId": 578013, "modelPath": "model/character/creature/blood_claw/act_blood_claw.ros", "classificationRule": "NPCObjectDB.sex=3" } }, { "primaryColor": "hsl(321 22% 38%)", "accentColor": "hsl(349 38% 64%)", "id": 102063, "name": "Geba", "level": 57, "classification": "boss", "archetype": "humanoid", "actor": "myrma-man-gabba", "title": "Geba", "source": { "imageId": 578015, "modelPath": "model/character/creature/myrma_man_gabba/act_myrma_man_gabba.ros", "classificationRule": "NPCObjectDB.sex=3" } }, { "primaryColor": "hsl(8 22% 38%)", "accentColor": "hsl(36 38% 64%)", "id": 102064, "name": "Tiktaalik War Drum", "level": 50, "classification": "deferred-object", "archetype": "humanoid", "reason": "Positive-level source object has no static character ROS and is retained for mechanics review.", "source": { "imageId": 577983, "modelPath": null, "classificationRule": "noncombat/dynamic-display source object" } }, { "primaryColor": "hsl(149 22% 38%)", "accentColor": "hsl(177 38% 64%)", "id": 102067, "name": "Ayam Rookie", "level": 50, "classification": "combat", "archetype": "humanoid", "actor": "myrma-man", "source": { "imageId": 577418, "modelPath": "model/character/creature/myrma_man/act_myrma_man.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(323 22% 38%)", "accentColor": "hsl(351 38% 64%)", "id": 102109, "name": "Ayam War Drum Priest", "level": 55, "classification": "combat", "archetype": "humanoid", "actor": "myrma-woman", "source": { "imageId": 577189, "modelPath": "model/character/creature/myrma_woman/act_myrma_woman.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(160 22% 38%)", "accentColor": "hsl(188 38% 64%)", "id": 102680, "name": "Template 102680", "level": 0, "classification": "deferred-object", "archetype": "humanoid", "reason": "Level-zero quest, trigger, prop, or noncombat NPC retained for a later interaction pass.", "source": { "imageId": 579502, "modelPath": null, "classificationRule": "noncombat/dynamic-display source object" } }, { "primaryColor": "hsl(306 22% 38%)", "accentColor": "hsl(334 38% 64%)", "id": 103518, "name": "Template 103518", "level": 1, "classification": "combat", "archetype": "plant", "actor": "elder-myconid", "source": { "imageId": 576437, "modelPath": "model/character/creature/elder_myconid/act_elder_myconid.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(353 22% 38%)", "accentColor": "hsl(21 38% 64%)", "id": 103519, "name": "Template 103519", "level": 1, "classification": "combat", "archetype": "plant", "actor": "elder-myconid", "source": { "imageId": 576437, "modelPath": "model/character/creature/elder_myconid/act_elder_myconid.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(206 22% 38%)", "accentColor": "hsl(234 38% 64%)", "id": 110578, "name": "Template 110578", "level": 0, "classification": "deferred-object", "archetype": "humanoid", "reason": "Level-zero quest, trigger, prop, or noncombat NPC retained for a later interaction pass.", "source": { "imageId": 0, "modelPath": null, "classificationRule": "noncombat/dynamic-display source object" } }, { "primaryColor": "hsl(349 22% 38%)", "accentColor": "hsl(17 38% 64%)", "id": 110987, "name": "Template 110987", "level": 0, "classification": "deferred-object", "archetype": "humanoid", "reason": "Level-zero quest, trigger, prop, or noncombat NPC retained for a later interaction pass.", "source": { "imageId": 0, "modelPath": null, "classificationRule": "noncombat/dynamic-display source object" } }, { "primaryColor": "hsl(6 22% 38%)", "accentColor": "hsl(34 38% 64%)", "id": 111378, "name": "Template 111378", "level": 0, "classification": "deferred-object", "archetype": "humanoid", "reason": "Level-zero quest, trigger, prop, or noncombat NPC retained for a later interaction pass.", "source": { "imageId": 0, "modelPath": null, "classificationRule": "noncombat/dynamic-display source object" } }, { "primaryColor": "hsl(168 22% 38%)", "accentColor": "hsl(196 38% 64%)", "id": 112224, "name": "Template 112224", "level": 0, "classification": "deferred-object", "archetype": "humanoid", "reason": "Level-zero quest, trigger, prop, or noncombat NPC retained for a later interaction pass.", "source": { "imageId": 0, "modelPath": null, "classificationRule": "noncombat/dynamic-display source object" } }, { "primaryColor": "hsl(61 22% 38%)", "accentColor": "hsl(89 38% 64%)", "id": 113003, "name": "Sequitee", "level": 0, "classification": "deferred-object", "archetype": "humanoid", "reason": "Level-zero quest, trigger, prop, or noncombat NPC retained for a later interaction pass.", "source": { "imageId": 0, "modelPath": null, "classificationRule": "noncombat/dynamic-display source object" } }, { "primaryColor": "hsl(296 22% 38%)", "accentColor": "hsl(324 38% 64%)", "id": 780088, "name": "Template 780088", "level": 0, "classification": "deferred-object", "archetype": "humanoid", "reason": "Level-zero quest, trigger, prop, or noncombat NPC retained for a later interaction pass.", "source": { "imageId": 0, "modelPath": null, "classificationRule": "noncombat/dynamic-display source object" } }, { "primaryColor": "hsl(120 22% 38%)", "accentColor": "hsl(148 38% 64%)", "id": 780360, "name": "Template 780360", "level": 0, "classification": "deferred-object", "archetype": "humanoid", "reason": "Level-zero quest, trigger, prop, or noncombat NPC retained for a later interaction pass.", "source": { "imageId": 0, "modelPath": null, "classificationRule": "noncombat/dynamic-display source object" } }, { "primaryColor": "hsl(167 22% 38%)", "accentColor": "hsl(195 38% 64%)", "id": 780361, "name": "Template 780361", "level": 0, "classification": "deferred-object", "archetype": "humanoid", "reason": "Level-zero quest, trigger, prop, or noncombat NPC retained for a later interaction pass.", "source": { "imageId": 0, "modelPath": null, "classificationRule": "noncombat/dynamic-display source object" } }, { "primaryColor": "hsl(214 22% 38%)", "accentColor": "hsl(242 38% 64%)", "id": 780362, "name": "Template 780362", "level": 0, "classification": "deferred-object", "archetype": "humanoid", "reason": "Level-zero quest, trigger, prop, or noncombat NPC retained for a later interaction pass.", "source": { "imageId": 0, "modelPath": null, "classificationRule": "noncombat/dynamic-display source object" } }, { "primaryColor": "hsl(261 22% 38%)", "accentColor": "hsl(289 38% 64%)", "id": 780363, "name": "Template 780363", "level": 0, "classification": "deferred-object", "archetype": "humanoid", "reason": "Level-zero quest, trigger, prop, or noncombat NPC retained for a later interaction pass.", "source": { "imageId": 0, "modelPath": null, "classificationRule": "noncombat/dynamic-display source object" } }, { "primaryColor": "hsl(108 22% 38%)", "accentColor": "hsl(136 38% 64%)", "id": 780444, "name": "Template 780444", "level": 0, "classification": "deferred-object", "archetype": "humanoid", "reason": "Level-zero quest, trigger, prop, or noncombat NPC retained for a later interaction pass.", "source": { "imageId": 0, "modelPath": null, "classificationRule": "noncombat/dynamic-display source object" } } ], "deferred": [ "Doors, summons, patrols, phases, interactables, and loot require reviewed mechanics mappings.", "Direct GR2 actors and exact paperdoll appearances use recovered native animation when validated; explicit pose-only/proxy exceptions retain procedural presentation." ] }