{ "schemaVersion": 2, "dungeonId": "sardo-castle", "sourceDungeonConfigId": "sardo_castle", "zoneId": 139, "expectedActiveRows": 247, "expectedBossSpawns": 3, "runtimeIdPrefix": "rw-sardo-castle", "coordinateSystem": { "metersPerSourceUnit": 0.1, "directionUnitsPerTurn": 360, "maximumProjectionDistance": 4 }, "files": { "environmentRecipe": "scripts/runewaker-pipeline/recipes/sardo-castle.json", "snapshot": "scripts/runewaker-pipeline/snapshots/sardo-castle-zone-139.json", "generatedSource": "src/game/generated/sardoCastlePopulation.generated.ts", "report": "src/assets/game/dungeons/sardo-castle/population-import-report.json", "mechanicsReport": "src/assets/game/dungeons/sardo-castle/mechanics-audit.json", "mechanicsSource": "src/game/generated/sardoCastleMechanics.generated.ts", "environmentMetadata": "src/assets/game/dungeons/sardo-castle/import-metadata.json", "navigation": "src/assets/game/dungeons/sardo-castle/sardo-castle-navigation.glb", "actorManifest": "public/assets/creatures/sardo-castle/manifest.json", "actorOutput": "public/assets/creatures/sardo-castle" }, "source": { "rootEnvironmentVariable": "RUNEWAKER_ROOT", "relativeDefault": "../rom-pvt-server-backups/Runewaker", "resourceRoot": "Resource", "dungeonConfig": "Tools/dungeon_config.json", "dungeonConfigId": "sardo_castle", "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": "bunny", "sourceModel": "model/character/creature/bunny/act_bunny.ros", "runtimeRotationY": 0 }, { "id": "cereus-01", "sourceModel": "model/character/creature/cereus/act_cereus_01.ros", "runtimeRotationY": 0 }, { "id": "dragon-posterity02", "sourceModel": "model/character/creature/dragon_posterity/act_dragon_posterity02.ros", "runtimeRotationY": 0 }, { "id": "elder-myconid", "sourceModel": "model/character/creature/elder_myconid/act_elder_myconid.ros", "runtimeRotationY": 0 }, { "id": "fireboot-dwarf-male", "sourceModel": "model/character/creature/fireboot_dwarf_male/act_fireboot-dwarf_male.ros", "runtimeRotationY": 0 }, { "id": "hm-female", "sourceModel": "model/character/pc/human/female/act_hm_female.ros", "runtimeRotationY": 0 }, { "id": "hm-male", "sourceModel": "model/character/pc/human/male/act_hm_male.ros", "runtimeRotationY": 0 }, { "id": "keroen-male", "sourceModel": "model/character/creature/keroen_male/act_keroen_male.ros", "runtimeRotationY": 0 }, { "id": "rune-device-red", "sourceModel": "model/character/creature/rune_device/act_rune_device_red.ros", "runtimeRotationY": 0 }, { "id": "skeleton-king", "sourceModel": "model/character/creature/skeleton_king/act_skeleton_king.ros", "runtimeRotationY": 0 } ], "templates": [ { "primaryColor": "hsl(113 22% 38%)", "accentColor": "hsl(141 38% 64%)", "id": 102679, "name": "Template 102679", "level": 0, "classification": "deferred-object", "archetype": "humanoid", "reason": "Level-zero quest, trigger, prop, or noncombat NPC retained for a later interaction pass.", "source": { "imageId": 579501, "modelPath": null, "classificationRule": "noncombat/dynamic-display source object" } }, { "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(320 22% 38%)", "accentColor": "hsl(348 38% 64%)", "id": 103120, "name": "Template 103120", "level": 0, "classification": "deferred-object", "archetype": "humanoid", "actor": "bunny", "reason": "Level-zero quest, trigger, prop, or noncombat NPC retained for a later interaction pass.", "source": { "imageId": 578539, "modelPath": "model/character/creature/bunny/act_bunny.ros", "classificationRule": "noncombat/dynamic-display source object" } }, { "primaryColor": "hsl(28 22% 38%)", "accentColor": "hsl(56 38% 64%)", "id": 104324, "name": "Template 104324", "level": 0, "classification": "deferred-object", "archetype": "humanoid", "reason": "Level-zero quest, trigger, prop, or noncombat NPC retained for a later interaction pass.", "source": { "imageId": 584272, "modelPath": null, "classificationRule": "noncombat/dynamic-display source object" } }, { "primaryColor": "hsl(130 22% 38%)", "accentColor": "hsl(158 38% 64%)", "id": 104510, "name": "Template 104510", "level": 0, "classification": "deferred-object", "archetype": "humanoid", "actor": "bunny", "reason": "Level-zero quest, trigger, prop, or noncombat NPC retained for a later interaction pass.", "source": { "imageId": 578539, "modelPath": "model/character/creature/bunny/act_bunny.ros", "classificationRule": "noncombat/dynamic-display source object" } }, { "primaryColor": "hsl(178 22% 38%)", "accentColor": "hsl(206 38% 64%)", "id": 105254, "name": "Template 105254", "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(55 22% 38%)", "accentColor": "hsl(83 38% 64%)", "id": 105305, "name": "Template 105305", "level": 0, "classification": "deferred-object", "archetype": "plant", "actor": "elder-myconid", "reason": "Level-zero quest, trigger, prop, or noncombat NPC retained for a later interaction pass.", "source": { "imageId": 576437, "modelPath": "model/character/creature/elder_myconid/act_elder_myconid.ros", "classificationRule": "noncombat/dynamic-display source object" } }, { "primaryColor": "hsl(168 22% 38%)", "accentColor": "hsl(196 38% 64%)", "id": 105384, "name": "Test Subject Watchman", "level": 65, "classification": "combat", "archetype": "humanoid", "actor": "hm-male", "source": { "imageId": 587229, "modelPath": "model/character/pc/human/male/act_hm_male.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(215 22% 38%)", "accentColor": "hsl(243 38% 64%)", "id": 105385, "name": "Template 105385", "level": 0, "classification": "deferred-object", "archetype": "humanoid", "reason": "Level-zero quest, trigger, prop, or noncombat NPC retained for a later interaction pass.", "source": { "imageId": 576382, "modelPath": null, "classificationRule": "noncombat/dynamic-display source object" } }, { "primaryColor": "hsl(262 22% 38%)", "accentColor": "hsl(290 38% 64%)", "id": 105386, "name": "Template 105386", "level": 0, "classification": "deferred-object", "archetype": "humanoid", "reason": "Level-zero quest, trigger, prop, or noncombat NPC retained for a later interaction pass.", "source": { "imageId": 587187, "modelPath": null, "classificationRule": "noncombat/dynamic-display source object" } }, { "primaryColor": "hsl(356 22% 38%)", "accentColor": "hsl(24 38% 64%)", "id": 105388, "name": "Template 105388", "level": 65, "classification": "combat", "archetype": "humanoid", "actor": "cereus-01", "source": { "imageId": 583949, "modelPath": "model/character/creature/cereus/act_cereus_01.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(154 22% 38%)", "accentColor": "hsl(182 38% 64%)", "id": 105422, "name": "Test Subject No. 374", "level": 70, "classification": "deferred-object", "archetype": "humanoid", "reason": "Positive-level source object has no static character ROS and is retained for mechanics review.", "source": { "imageId": 586521, "modelPath": null, "classificationRule": "noncombat/dynamic-display source object" } }, { "primaryColor": "hsl(112 22% 38%)", "accentColor": "hsl(140 38% 64%)", "id": 105536, "name": "Template 105536", "level": 0, "classification": "deferred-object", "archetype": "humanoid", "reason": "Level-zero quest, trigger, prop, or noncombat NPC retained for a later interaction pass.", "source": { "imageId": 586734, "modelPath": null, "classificationRule": "noncombat/dynamic-display source object" } }, { "primaryColor": "hsl(164 22% 38%)", "accentColor": "hsl(192 38% 64%)", "id": 105652, "name": "Undead Maid", "level": 65, "classification": "combat", "archetype": "humanoid", "actor": "hm-female", "source": { "imageId": 586798, "modelPath": "model/character/pc/human/female/act_hm_female.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(352 22% 38%)", "accentColor": "hsl(20 38% 64%)", "id": 105656, "name": "Undead Dwarf Warrior", "level": 65, "classification": "combat", "archetype": "humanoid", "actor": "fireboot-dwarf-male", "source": { "imageId": 586796, "modelPath": "model/character/creature/fireboot_dwarf_male/act_fireboot-dwarf_male.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(39 22% 38%)", "accentColor": "hsl(67 38% 64%)", "id": 105657, "name": "Undead Kalon Warrior", "level": 65, "classification": "combat", "archetype": "humanoid", "actor": "keroen-male", "source": { "imageId": 586797, "modelPath": "model/character/creature/keroen_male/act_keroen_male.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(133 22% 38%)", "accentColor": "hsl(161 38% 64%)", "id": 105659, "name": "Undead Butler", "level": 65, "classification": "combat", "archetype": "humanoid", "actor": "hm-male", "source": { "imageId": 586800, "modelPath": "model/character/pc/human/male/act_hm_male.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(180 22% 38%)", "accentColor": "hsl(208 38% 64%)", "id": 105660, "name": "Secret Room Manager", "level": 65, "classification": "combat", "archetype": "humanoid", "actor": "hm-male", "source": { "imageId": 586801, "modelPath": "model/character/pc/human/male/act_hm_male.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(227 22% 38%)", "accentColor": "hsl(255 38% 64%)", "id": 105661, "name": "Undead Kalon Guard", "level": 65, "classification": "combat", "archetype": "humanoid", "actor": "keroen-male", "source": { "imageId": 587163, "modelPath": "model/character/creature/keroen_male/act_keroen_male.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(274 22% 38%)", "accentColor": "hsl(302 38% 64%)", "id": 105662, "name": "Secret Room Protector", "level": 65, "classification": "combat", "archetype": "humanoid", "actor": "hm-male", "source": { "imageId": 587174, "modelPath": "model/character/pc/human/male/act_hm_male.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(321 22% 38%)", "accentColor": "hsl(349 38% 64%)", "id": 105663, "name": "Undead Maid", "level": 65, "classification": "combat", "archetype": "humanoid", "actor": "hm-female", "source": { "imageId": 587235, "modelPath": "model/character/pc/human/female/act_hm_female.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(353 22% 38%)", "accentColor": "hsl(21 38% 64%)", "id": 105679, "name": "Undead Maid", "level": 65, "classification": "combat", "archetype": "humanoid", "actor": "hm-female", "source": { "imageId": 587236, "modelPath": "model/character/pc/human/female/act_hm_female.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(72 22% 38%)", "accentColor": "hsl(100 38% 64%)", "id": 105696, "name": "Template 105696", "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(307 22% 38%)", "accentColor": "hsl(335 38% 64%)", "id": 105701, "name": "Undead Guard", "level": 70, "classification": "boss", "archetype": "humanoid", "actor": "skeleton-king", "title": "Undead Guard", "source": { "imageId": 587293, "modelPath": "model/character/creature/skeleton_king/act_skeleton_king.ros", "classificationRule": "NPCObjectDB.sex=3" } }, { "primaryColor": "hsl(42 22% 38%)", "accentColor": "hsl(70 38% 64%)", "id": 105726, "name": "Hand of Truth Researcher", "level": 65, "classification": "combat", "archetype": "humanoid", "actor": "hm-male", "source": { "imageId": 581753, "modelPath": "model/character/pc/human/male/act_hm_male.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "primaryColor": "hsl(183 22% 38%)", "accentColor": "hsl(211 38% 64%)", "id": 105729, "name": "Experimental Wyrm", "level": 0, "classification": "deferred-object", "archetype": "winged", "actor": "dragon-posterity02", "reason": "Level-zero quest, trigger, prop, or noncombat NPC retained for a later interaction pass.", "source": { "imageId": 584400, "modelPath": "model/character/creature/dragon_posterity/act_dragon_posterity02.ros", "classificationRule": "noncombat/dynamic-display source object" } }, { "primaryColor": "hsl(137 22% 38%)", "accentColor": "hsl(165 38% 64%)", "id": 105751, "name": "Template 105751", "level": 0, "classification": "deferred-object", "archetype": "humanoid", "reason": "Level-zero quest, trigger, prop, or noncombat NPC retained for a later interaction pass.", "source": { "imageId": 587342, "modelPath": null, "classificationRule": "noncombat/dynamic-display source object" } }, { "primaryColor": "hsl(106 22% 38%)", "accentColor": "hsl(134 38% 64%)", "id": 105758, "name": "Rune Warning Device", "level": 67, "classification": "combat", "archetype": "humanoid", "actor": "rune-device-red", "source": { "imageId": 586793, "modelPath": "model/character/creature/rune_device/act_rune_device_red.ros", "classificationRule": "positive native level plus static model/character ROS" } }, { "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(194 22% 38%)", "accentColor": "hsl(222 38% 64%)", "id": 118582, "name": "Bucket of Water", "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(241 22% 38%)", "accentColor": "hsl(269 38% 64%)", "id": 118583, "name": "Empty Bottle", "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(309 22% 38%)", "accentColor": "hsl(337 38% 64%)", "id": 118707, "name": "Lussen Rivet", "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(356 22% 38%)", "accentColor": "hsl(24 38% 64%)", "id": 118708, "name": "Baerr Sharpspike", "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(325 22% 38%)", "accentColor": "hsl(353 38% 64%)", "id": 118715, "name": "Wooden Chest for storing a large amount of Accessories", "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": 118764, "name": "Lussen Rivet", "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(155 22% 38%)", "accentColor": "hsl(183 38% 64%)", "id": 118765, "name": "Baerr Sharpspike", "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(202 22% 38%)", "accentColor": "hsl(230 38% 64%)", "id": 118766, "name": "Sharr Kelida", "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(249 22% 38%)", "accentColor": "hsl(277 38% 64%)", "id": 118767, "name": "Dollan Wayfarer", "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(330 22% 38%)", "accentColor": "hsl(358 38% 64%)", "id": 780870, "name": "Template 780870", "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(2 22% 38%)", "accentColor": "hsl(30 38% 64%)", "id": 780886, "name": "Template 780886", "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(96 22% 38%)", "accentColor": "hsl(124 38% 64%)", "id": 780888, "name": "Template 780888", "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(143 22% 38%)", "accentColor": "hsl(171 38% 64%)", "id": 780889, "name": "Template 780889", "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(97 22% 38%)", "accentColor": "hsl(125 38% 64%)", "id": 780911, "name": "Template 780911", "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(4 22% 38%)", "accentColor": "hsl(32 38% 64%)", "id": 780932, "name": "Template 780932", "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(239 22% 38%)", "accentColor": "hsl(267 38% 64%)", "id": 780937, "name": "Template 780937", "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(240 22% 38%)", "accentColor": "hsl(268 38% 64%)", "id": 780960, "name": "Template 780960", "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(162 22% 38%)", "accentColor": "hsl(190 38% 64%)", "id": 780966, "name": "Template 780966", "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." ] }