{ "schemaVersion": 1, "dungeonId": "grafu-castle", "zoneId": 137, "status": "review-required", "source": { "populationRecipe": "scripts/runewaker-pipeline/recipes/grafu-castle-population.json", "snapshot": "scripts/runewaker-pipeline/snapshots/grafu-castle-zone-137.json", "snapshotContentSha256": "0113f241c8bb527a6e0bd365c2cf9586a6f922719098aea009292f3f3c04c801", "dungeonConfig": "../rom-pvt-server-backups/Runewaker/Tools/dungeon_config.json", "dungeonConfigId": "grafu_castle" }, "configuredBossTemplateIds": [], "reviewedBossTemplateIds": [ 105204, 105224, 105351, 105542, 105543, 105616 ], "configuredBossPositions": {}, "bossRows": [], "scriptedBossSpawns": [ { "scriptedPlacementId": "cayus", "sourceAnchorSpawnId": 41927224, "controllerSpawnId": 41928351, "templateId": 105616, "name": "Cayus", "sourcePosition": [ -348.7113952636719, 1254.5040283203125, -999.6005249023438 ], "sourceScriptRoot": "Dy_Z19_BOSSN_AIC", "objective": true, "evidence": [ "Resource/luascript/02345.lua:CreateObjByFlag(105616,780696,1,1)" ] }, { "scriptedPlacementId": "ardmond", "sourceAnchorSpawnId": 41926939, "controllerSpawnId": 41928345, "templateId": 105542, "name": "Ardmond", "sourcePosition": [ -1427.9969482421875, 1133.35498046875, -1353.3699951171875 ], "sourceScriptRoot": "kg_105542_01", "objective": true, "evidence": [ "Resource/luascript/02324.lua:kg_105542_CreateBoss" ] }, { "scriptedPlacementId": "issac", "sourceAnchorSpawnId": 41926939, "controllerSpawnId": 41928345, "templateId": 105543, "name": "Issac", "sourcePosition": [ -1427.9969482421875, 1133.35498046875, -1313.3699951171875 ], "sourceScriptRoot": "kg_105542_01", "objective": false, "evidence": [ "Resource/luascript/02324.lua:kg_105542_CreateBoss" ] }, { "scriptedPlacementId": "boro-boro-brothers", "sourceAnchorSpawnId": 41926924, "controllerSpawnId": 41927347, "templateId": 105224, "name": "Boro-Boro Brothers", "sourcePosition": [ -2172.174072265625, 1095.10400390625, -22.212709426879883 ], "sourceScriptRoot": "ic_105224_01", "objective": true, "evidence": [ "Resource/luascript/02231.lua:CreateObjByFlag(105224,780775,1,1)" ] }, { "scriptedPlacementId": "conjurer-chapeaunoir", "sourceAnchorSpawnId": 41926979, "controllerSpawnId": 41927358, "templateId": 105204, "name": "Conjurer Chapeaunoir", "sourcePosition": [ -1732.9649658203125, 914.618896484375, 1190.8310546875 ], "sourceScriptRoot": "cl_136_105205_N", "objective": true, "evidence": [ "Resource/luascript/02330.lua:CreateObjByFlag(105204,780767,0,1)" ] }, { "scriptedPlacementId": "larvanger-barkud", "sourceAnchorSpawnId": 41927071, "controllerSpawnId": 41927369, "templateId": 105351, "name": "Larvanger Barkud", "sourcePosition": [ -305.8063049316406, 902.5551147460938, 941.4002075195312 ], "sourceScriptRoot": "un_zone19_boss5_allconreal_1_01", "objective": true, "evidence": [ "Resource/luascript/02297.lua:CreateObjByFlag(105351,780838,1,1)" ] } ], "luaSources": [], "luaSignals": [], "templateCandidates": [ { "templateId": 102678, "name": "Template 102678", "classification": "deferred-object", "spawnCount": 1, "autoPlots": [ "zone_19_130_132_133_Out" ], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 102680, "name": "Template 102680", "classification": "deferred-object", "spawnCount": 10, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 103120, "name": "Template 103120", "classification": "deferred-object", "spawnCount": 1, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 104324, "name": "Template 104324", "classification": "deferred-object", "spawnCount": 1, "autoPlots": [ "ic_105224_01" ], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 104810, "name": "Template 104810", "classification": "deferred-object", "spawnCount": 1, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105100, "name": "Template 105100", "classification": "deferred-object", "spawnCount": 1, "autoPlots": [ "un_zone19_boss5_allconreal_1_01" ], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105201, "name": "Template 105201", "classification": "deferred-object", "spawnCount": 1, "autoPlots": [ "Dy_Z19_BOSSN_AIC" ], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105204, "name": "Conjurer Chapeaunoir", "classification": "boss", "spawnCount": 0, "autoPlots": [ "cl_136_105205_N" ], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105205, "name": "Template 105205", "classification": "deferred-object", "spawnCount": 1, "autoPlots": [ "cl_136_105205_N" ], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105210, "name": "Template 105210", "classification": "deferred-object", "spawnCount": 1, "autoPlots": [ "kg_105542_01" ], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105211, "name": "Template 105211", "classification": "combat", "spawnCount": 3, "autoPlots": [ "LuaP_Crouch", "Lua_Deadkeep" ], "plotClassNames": [], "templateScripts": [ { "event": "init", "script": "ic_npc_saybuff_3" } ], "spells": [] }, { "templateId": 105212, "name": "Template 105212", "classification": "combat", "spawnCount": 2, "autoPlots": [ "LuaP_Crouch", "Lua_Deadkeep" ], "plotClassNames": [], "templateScripts": [ { "event": "init", "script": "ic_npc_saybuff_3" } ], "spells": [] }, { "templateId": 105213, "name": "Template 105213", "classification": "deferred-object", "spawnCount": 4, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105214, "name": "Template 105214", "classification": "deferred-object", "spawnCount": 1, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105215, "name": "Template 105215", "classification": "deferred-object", "spawnCount": 1, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105216, "name": "Template 105216", "classification": "deferred-object", "spawnCount": 5, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105217, "name": "Template 105217", "classification": "deferred-object", "spawnCount": 7, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105224, "name": "Boro-Boro Brothers", "classification": "boss", "spawnCount": 0, "autoPlots": [ "ic_105224_01" ], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105229, "name": "Smirking Castle Clown", "classification": "combat", "spawnCount": 0, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105230, "name": "Odd Castle Clown", "classification": "combat", "spawnCount": 0, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105233, "name": "Cursed Steel Soldier", "classification": "combat", "spawnCount": 0, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105235, "name": "Conjurer's Apprentice", "classification": "combat", "spawnCount": 0, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105236, "name": "Giant Enraged Bear", "classification": "combat", "spawnCount": 0, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105237, "name": "Manipulated Bear", "classification": "combat", "spawnCount": 0, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105254, "name": "Template 105254", "classification": "deferred-object", "spawnCount": 10, "autoPlots": [ "cl_136_01_01_N", "cl_136_03_01_N", "cl_136_03_02_N", "cl_136_03_042", "cl_136_03_042_N", "cl_136_03_04_N", "cl_136_04_052" ], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105258, "name": "Template 105258", "classification": "deferred-object", "spawnCount": 5, "autoPlots": [ "cl_105258_1", "cl_105258_2", "cl_105258_3", "cl_105258_4", "cl_105258_5" ], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105262, "name": "Template 105262", "classification": "deferred-object", "spawnCount": 18, "autoPlots": [ "cl_136_105262", "cl_136_105262_1", "cl_136_AI_N" ], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105305, "name": "Template 105305", "classification": "deferred-object", "spawnCount": 2, "autoPlots": [ "cl_105238AI", "cl_136_105305_N" ], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105351, "name": "Larvanger Barkud", "classification": "boss", "spawnCount": 0, "autoPlots": [ "un_zone19_boss5_allconreal_1_01" ], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105542, "name": "Ardmond", "classification": "boss", "spawnCount": 0, "autoPlots": [ "kg_105542_01" ], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105543, "name": "Issac", "classification": "boss", "spawnCount": 0, "autoPlots": [ "kg_105542_01" ], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105596, "name": "Smirking Castle Clown", "classification": "combat", "spawnCount": 1, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [ { "id": 490537, "level": 1 }, { "id": 497023, "level": 0 }, { "id": 497025, "level": 12 } ] }, { "templateId": 105597, "name": "Odd Castle Clown", "classification": "combat", "spawnCount": 6, "autoPlots": [ "LuaS_Discowood_NowToHide" ], "plotClassNames": [], "templateScripts": [], "spells": [ { "id": 497026, "level": 1 }, { "id": 497504, "level": 12 } ] }, { "templateId": 105598, "name": "Manipulated Steel Soldier", "classification": "combat", "spawnCount": 4, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [ { "id": 490535, "level": 20 }, { "id": 497038, "level": 5 }, { "id": 497508, "level": 65 } ] }, { "templateId": 105599, "name": "Cursed Steel Soldier", "classification": "combat", "spawnCount": 0, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105600, "name": "Juggler's Apprentice", "classification": "combat", "spawnCount": 10, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [ { "id": 497020, "level": 50 }, { "id": 497021, "level": 0 }, { "id": 497022, "level": 0 } ] }, { "templateId": 105601, "name": "Conjurer's Apprentice", "classification": "combat", "spawnCount": 7, "autoPlots": [ "cl_105601_N" ], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 105603, "name": "Manipulated Steel Soldier", "classification": "combat", "spawnCount": 7, "autoPlots": [ "cl_105603_N" ], "plotClassNames": [], "templateScripts": [ { "event": "init", "script": "cl_105232_1" } ], "spells": [ { "id": 490535, "level": 20 }, { "id": 497038, "level": 5 }, { "id": 497508, "level": 65 } ] }, { "templateId": 105604, "name": "Template 105604", "classification": "deferred-object", "spawnCount": 1, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [ { "id": 497033, "level": 0 }, { "id": 497034, "level": 0 }, { "id": 497037, "level": 0 } ] }, { "templateId": 105616, "name": "Cayus", "classification": "boss", "spawnCount": 0, "autoPlots": [ "Dy_Z19_BOSSN_AIC" ], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 116434, "name": "Skeleton of an Adventurer", "classification": "deferred-object", "spawnCount": 1, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 117547, "name": "Locked Iron Gate", "classification": "deferred-object", "spawnCount": 1, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 780696, "name": "Template 780696", "classification": "deferred-object", "spawnCount": 4, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 780767, "name": "Template 780767", "classification": "deferred-object", "spawnCount": 31, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 780775, "name": "Template 780775", "classification": "deferred-object", "spawnCount": 4, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 780793, "name": "Template 780793", "classification": "deferred-object", "spawnCount": 13, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 780838, "name": "Template 780838", "classification": "deferred-object", "spawnCount": 7, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 780839, "name": "Template 780839", "classification": "deferred-object", "spawnCount": 14, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 780844, "name": "Template 780844", "classification": "deferred-object", "spawnCount": 12, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 780845, "name": "Template 780845", "classification": "deferred-object", "spawnCount": 10, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 780859, "name": "Template 780859", "classification": "deferred-object", "spawnCount": 3, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 780860, "name": "Template 780860", "classification": "deferred-object", "spawnCount": 8, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 780862, "name": "Template 780862", "classification": "deferred-object", "spawnCount": 3, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 780873, "name": "Template 780873", "classification": "deferred-object", "spawnCount": 16, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] }, { "templateId": 780877, "name": "Template 780877", "classification": "deferred-object", "spawnCount": 10, "autoPlots": [], "plotClassNames": [], "templateScripts": [], "spells": [] } ], "categories": { "summon": 0, "door": 0, "timer": 0, "movement": 0, "spell": 0, "death": 2, "phase": 0, "interaction": 0, "loot": 0 }, "reviewQueue": [ "Map authoritative spell ids/scripts to HealerMan EnemyAttackDefinition data.", "Implement and test doors/gates as encounter state, not static combat entities.", "Map summons and waves only after identifying their trigger, lifetime, and reset rules.", "Convert patrol/AutoPlot routes to navmesh-projected paths.", "Separate interactables/loot from combat population and define offline state transitions.", "Add encounter-specific tests and a browser playtest before marking mechanics green." ], "safety": { "executableMechanicsGenerated": false, "reason": "Lua/AutoPlot syntax is audited as evidence; ambiguous behavior is never silently guessed.", "runtimeSqlDependency": false } }