Release Healer Man 0.1.21

This commit is contained in:
phenom committed 2026-09-08 10:40:26 -04:00
1 parent 699fc858c9
commit f6f2375145
210 files changed
+976039 -6247

No files matched your search

@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/aeternal-circle-population.json",
"actorManifest": "public/assets/creatures/aeternal-circle/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/barren-caves-population.json",
"actorManifest": "public/assets/creatures/barren-caves/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/cave-water-dragon-population.json",
"actorManifest": "public/assets/creatures/cave-water-dragon/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/demon-stronghold-125-population.json",
"actorManifest": "public/assets/creatures/demon-stronghold-125/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/demon-stronghold-population.json",
"actorManifest": "public/assets/creatures/demon-stronghold/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/dungeon-of-dalanis-population.json",
"actorManifest": "public/assets/creatures/dungeon-of-dalanis/manifest.json",
@@ -1,11 +1,18 @@
{
"schemaVersion": 1,
"schemaVersion": 2,
"dungeonId": "forsaken-abbey",
"zoneId": 102,
"sourceRowCount": 251,
"importedSpawnCount": 150,
"excludedRowCount": 101,
"bossSpawnCount": 8,
"objectiveOrder": {
"authoritative": false,
"kind": "healerMan-distance-derived",
"evidence": [
"scripts/runewaker-pipeline/build-population.mjs"
]
},
"sourceSnapshot": "scripts/runewaker-pipeline/snapshots/forsaken-abbey-zone-102.json",
"sourceContentSha256": "13ef6edd3df6e71389aa92d01201889148c0794cf9ecaafdbaf90d3145d2bf7b",
"sourceHashes": {
@@ -19,7 +26,7 @@
"Resource/data/string_enus.db": "4fce021ba9ed110a213e08d3228b2de57cec66ddbbc8cdcf5753204874d9ab75"
}
},
"coordinateTransform": "threeLocal=(inverse(WDB placement)*server)*(0.1,0.1,-0.1)",
"coordinateTransform": "threeLocal=(inverse(WDB placement)*server)*(meters,meters,-meters)",
"navmeshProjection": {
"maximumAllowedDistance": 2,
"maximumObservedDistance": 2.5965,
@@ -28,6 +35,9 @@
},
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/forsaken-abbey-population.json",
"actorManifest": "public/assets/creatures/forsaken-abbey/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/grafu-castle-population.json",
"actorManifest": "public/assets/creatures/grafu-castle/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/hall-of-survivors-population.json",
"actorManifest": "public/assets/creatures/hall-of-survivors/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/hoto-population.json",
"actorManifest": "public/assets/creatures/hoto/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/ice-dwarf-kingdom-population.json",
"actorManifest": "public/assets/creatures/ice-dwarf-kingdom/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/kal-turok-hive-population.json",
"actorManifest": "public/assets/creatures/kal-turok-hive/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/kalins-shrine-population.json",
"actorManifest": "public/assets/creatures/kalins-shrine/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/kawaks-tomb-population.json",
"actorManifest": "public/assets/creatures/kawaks-tomb/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/kulech-bones-nest-population.json",
"actorManifest": "public/assets/creatures/kulech-bones-nest/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/lair-demon-dragon-population.json",
"actorManifest": "public/assets/creatures/lair-demon-dragon/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/mystic-altar-population.json",
"actorManifest": "public/assets/creatures/mystic-altar/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/paspers-shrine-population.json",
"actorManifest": "public/assets/creatures/paspers-shrine/manifest.json",
@@ -1,57 +1,112 @@
{
"schemaVersion": 1,
"schemaVersion": 2,
"dungeonId": "raksha-temple",
"status": "review-required",
"environmentMode": "runewaker-ros",
"environmentMode": "runewaker-wdb-assembly",
"source": {
"obj": "scene.obj",
"report": "export-report.json",
"model": "model\\dungeon\\pesche_temple\\front_gate_01.ros"
"wdb": "Resource/wdb/dungeon/dgn_pesche_temple.wdb",
"primaryModel": "model/dungeon/pesche_temple/front_gate_01.ros",
"descriptorCount": 1028,
"placementManifest": "wdb-placement-manifest.json"
},
"coordinateTransform": {
"source": "left-handed Y-up",
"nativeBridge": "three(x,y,z)=(runewaker.x,runewaker.y,-runewaker.z)",
"unitScaleMeters": 0.1,
"calibration": "16.4977-unit fake_pc mesh height -> approximately 1.65 m"
"metersPerSourceUnit": 0.1,
"formula": "threeMatrix=S*inverse(primaryTRS)*placementTRS*inverse(S), S=scale(meters,meters,-meters)"
},
"visual": {
"file": "raksha-temple-visual.glb",
"meshObjects": 3,
"triangles": 4302,
"sourceTriangles": 4302,
"meshObjects": 1362,
"triangles": 605820,
"sourceTriangles": 605820,
"bounds": {
"min": [
-327.82031,
-15.38933,
-321.33469
-764.460151,
-118.862537,
-658.700334
],
"max": [
49.02461,
51.30486,
322.06534
397.479134,
368.792163,
606.421358
]
},
"materials": {
"unique": 3,
"replacements": 0
}
"assembledWdbPlacements": 1028,
"uniqueResources": 228
},
"collision": [
{
"file": "raksha-temple-collision.glb",
"triangles": 4302,
"sourceTriangleEstimate": 4302
"file": "raksha-temple-wdb-collision-000.glb",
"triangles": 87109,
"sourceTriangleEstimate": 87109,
"placementCount": 183,
"assembledFromWdb": true
},
{
"file": "raksha-temple-wdb-collision-001.glb",
"triangles": 86228,
"sourceTriangleEstimate": 86228,
"placementCount": 144,
"assembledFromWdb": true
},
{
"file": "raksha-temple-wdb-collision-002.glb",
"triangles": 89719,
"sourceTriangleEstimate": 89719,
"placementCount": 158,
"assembledFromWdb": true
},
{
"file": "raksha-temple-wdb-collision-003.glb",
"triangles": 89776,
"sourceTriangleEstimate": 89776,
"placementCount": 130,
"assembledFromWdb": true
},
{
"file": "raksha-temple-wdb-collision-004.glb",
"triangles": 85897,
"sourceTriangleEstimate": 85897,
"placementCount": 156,
"assembledFromWdb": true
},
{
"file": "raksha-temple-wdb-collision-005.glb",
"triangles": 89896,
"sourceTriangleEstimate": 89896,
"placementCount": 136,
"assembledFromWdb": true
},
{
"file": "raksha-temple-wdb-collision-006.glb",
"triangles": 77195,
"sourceTriangleEstimate": 77195,
"placementCount": 121,
"assembledFromWdb": true
}
],
"collisionPolicy": {
"kind": "provisional-trimesh-copy",
"kind": "wdb-static-placement-trimesh",
"maximumTrianglesPerChunk": 100000,
"workingChunkTarget": 90000,
"includesDecorativeMeshes": true
"excludesReviewedDynamicPlacements": true,
"includesUnreviewedDynamicCandidates": true
},
"dynamicAssets": [],
"preview": "raksha-temple-preview.png",
"editableSource": "raksha-temple.source.blend",
"wdbAssembly": {
"staticPlacements": 1028,
"dynamicPlacements": 0,
"unavailablePlacements": 0,
"uniqueResources": 228,
"availableResources": 228,
"unavailableResources": 0,
"resourceCacheHits": 227
},
"warnings": [
"Collision is generated from all primary ROS meshes for the pilot; replace or filter decorative geometry after visual review.",
"The primary ROS does not include every WDB-managed doodad, effect, or runtime placement."
"The preview and editable Blender source cover the primary ROS only; the shipping GLB is assembled from the WDB manifest.",
"Name-based dynamic candidates remain static until a reviewed dynamic-placement rule supplies source evidence."
]
}
@@ -2,8 +2,8 @@
"schemaVersion": 2,
"dungeonId": "raksha-temple",
"title": "Raksha Temple",
"status": "source-packaged",
"generatedAt": "2026-08-01T01:34:54.790Z",
"status": "review-required",
"generatedAt": "2026-09-07T18:42:17.069Z",
"source": {
"recipe": "scripts/runewaker-pipeline/recipes/raksha-temple.json",
"wdb": "Resource/wdb/dungeon/dgn_pesche_temple.wdb",
@@ -97,6 +97,17 @@
"detailClass": 0,
"zoneType": 0
}
},
"wdbAssembly": {
"mode": "all-ros",
"placementManifest": "wdb-placement-manifest.json",
"staticPlacements": 1028,
"dynamicPlacements": 0,
"unavailablePlacements": 0,
"uniqueResources": 228,
"availableResources": 228,
"unavailableResources": 0,
"resourceCacheHits": 227
}
},
"coordinateSystem": {
@@ -119,11 +130,11 @@
11.334656
],
"footPosition": [
-0.020312,
21.013313,
11.334656
0.021786,
10.664467,
17.560761
],
"navmeshDistance": 0,
"navmeshDistance": 12.077449,
"yaw": 6.108652382,
"forward": [
-0.173648178,
@@ -131,40 +142,85 @@
0.984807753
],
"provenance": "environment recipe entryCoordinates",
"reviewRequired": false
"reviewRequired": true
},
"assets": [
{
"role": "visual",
"fileName": "raksha-temple-visual.glb",
"size": 937772,
"sha256": "3439e64f2a49d0545651bac35276867af83c3eb57b3c859f767de0c49c3dce66",
"compression": "meshopt+ktx2"
"relativeFile": "raksha-temple-visual.glb",
"size": 23554528,
"sha256": "3a61098e772a0c656aa25d88aee357f78b84c738e45150fca6fd5059c2b675f7"
},
{
"role": "collision",
"fileName": "raksha-temple-collision.glb",
"size": 161552,
"sha256": "a0b19ff9c1c5ef6abfbaee6080bec91bdcdc8eb3d2b8f6b3e3fad092fd71e548"
"fileName": "raksha-temple-wdb-collision-000.glb",
"relativeFile": "raksha-temple-wdb-collision-000.glb",
"size": 2584136,
"sha256": "22cfdc239b638f906f3cb77c9fb7b94c66eb483cfcbbe59e059bf8d5cbaad8a0"
},
{
"role": "collision",
"fileName": "raksha-temple-wdb-collision-001.glb",
"relativeFile": "raksha-temple-wdb-collision-001.glb",
"size": 2785392,
"sha256": "3a3f4448aa92276faa94c8b99ae49aa48660423fb42edf0f2403615e5e3b3453"
},
{
"role": "collision",
"fileName": "raksha-temple-wdb-collision-002.glb",
"relativeFile": "raksha-temple-wdb-collision-002.glb",
"size": 2788332,
"sha256": "b4b9e92646bbaf290263b601e7af7d6547f85a7b3fdae4b931ab930a263c2a36"
},
{
"role": "collision",
"fileName": "raksha-temple-wdb-collision-003.glb",
"relativeFile": "raksha-temple-wdb-collision-003.glb",
"size": 2676988,
"sha256": "846ac1301549d8e05c8efb59b9ddfc0ebec2fb36cf216a0d5c143ab3eb5ae423"
},
{
"role": "collision",
"fileName": "raksha-temple-wdb-collision-004.glb",
"relativeFile": "raksha-temple-wdb-collision-004.glb",
"size": 2328332,
"sha256": "100f27d9a2c46f1d30b0e395d60d99a3b62dfabc82474ed574f137c1513fb1bb"
},
{
"role": "collision",
"fileName": "raksha-temple-wdb-collision-005.glb",
"relativeFile": "raksha-temple-wdb-collision-005.glb",
"size": 2960700,
"sha256": "cb22cb168e559fa8ed6983109bdc02bc4fd11f7d8834649bfab1d9cd0448ba87"
},
{
"role": "collision",
"fileName": "raksha-temple-wdb-collision-006.glb",
"relativeFile": "raksha-temple-wdb-collision-006.glb",
"size": 2345864,
"sha256": "d8f6bd33ada7b6e0ee1b7cb4aacdf1c32e8ceb614f45d60ac2f24c9f1e0cef18"
},
{
"role": "navigation",
"fileName": "raksha-temple-navigation.glb",
"size": 60088,
"sha256": "21e0aa6d58f8958fc6a21912cf72ec86188c13e87d70695504cee9e910b754b0"
"relativeFile": "raksha-temple-navigation.glb",
"size": 8686564,
"sha256": "1e1d1ad26907dc8c4fd0a917dba40b52d2aaaea4a0335af06871ee28230eddf1"
}
],
"review": {
"environment": "authoritative-wdb-largest-model-selected",
"collision": "primary-ros-plus-source-anchor-support-review-required",
"collision": "full-wdb-static-ros-provisional-review-required",
"entrance": "source-script",
"bossAnchors": "source-population",
"wdbPlacements": "unique-primary-model"
"wdbPlacements": "all-static-ros-source-transform"
},
"exceptions": [
"Secondary WDB doodads/effects remain in the audit; this pass exports the primary ROS hierarchy.",
"All valid static WDB ROS placements are assembled; filename-only dynamic candidates remain static until script evidence maps their behavior.",
"Collision initially includes decorative primary-ROS geometry.",
"Original skeletal animations and complex scripted mechanics remain later passes.",
"Source-anchor support pads preserve combat and entrance coordinates where modular WDB sections or primary-ROS collision leave navmesh gaps; full secondary placement assembly remains a visual follow-up."
"Original GR2 actor animations are recovered where source graphs and validation permit; scripted encounter mechanics remain evidence-driven per-instance work.",
"The full WDB static assembly replaces the former source-anchor support pads; entrance and combat anchors still require live collision/navigation review.",
"The authoritative entrance was projected 12.077449m to the packaged primary navigation and requires an in-game entrance review."
]
}
@@ -4,15 +4,11 @@
"status": "review-required",
"source": {
"file": "raksha-temple-visual.glb",
"size": 4419040
"size": 241813992
},
"optimized": {
"file": "raksha-temple-visual.optimized.glb",
"size": 937772,
"checksum": "3439e64f2a49d0545651bac35276867af83c3eb57b3c859f767de0c49c3dce66"
"size": 23554528
},
"compression": "meshopt+ktx2",
"commands": [
"node scripts/asset-pipeline/compress-ktx2.mjs <optimized.glb> --concurrency 1 --jobs 2"
]
"compression": "meshopt+ktx2"
}
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/raksha-temple-population.json",
"actorManifest": "public/assets/creatures/raksha-temple/manifest.json",
Binary file not shown.

Before

Width:  |  Height:  |  Size: 860 KiB

After

Width:  |  Height:  |  Size: 1.1 MiB

@@ -3,71 +3,84 @@
"attempts": [
{
"failures": [],
"tileCount": 1,
"tileSize": null,
"partition": "watershed",
"tileCount": 4026,
"tileSize": 64,
"valid": true
}
],
"gridCells": 2696265,
"gridHeight": 2145,
"gridWidth": 1257,
"ignoredEmptyTilePackingFailures": 0,
"intermediateRetention": null,
"mode": "solo",
"gridCells": 16340532,
"gridHeight": 4218,
"gridWidth": 3874,
"ignoredEmptyTilePackingFailures": 675,
"intermediateRetention": "released",
"mode": "tiled",
"partition": "watershed",
"populatedTileCount": 1,
"tileColumns": 1,
"tileCount": 1,
"tileRows": 1,
"tileSize": null
"populatedTileCount": 2322,
"tileColumns": 61,
"tileCount": 4026,
"tileRows": 66,
"tileSize": 64
},
"dungeonId": "raksha-temple",
"generator": "@recast-navigation/three@0.43.1",
"geometry": {
"bounds": [
[
-327.82031200000006,
-14.189345359802246,
-322.06534400000004
-764.9183959960938,
-42.916473388671875,
-659.2423706054688
],
[
30.37969970703125,
51.31066131591797,
321.334656
397.8696594238281,
281.383544921875,
585.4577026367188
]
],
"boundsTolerance": 0.6,
"rejectedOutOfBoundsTriangles": 0,
"sourceTriangles": 1035,
"sourceVertices": 3105,
"triangles": 1287,
"vertices": 3861
"rejectedOutOfBoundsTriangles": 1268,
"sourceTriangles": 182220,
"sourceVertices": 546660,
"triangles": 180952,
"vertices": 542856
},
"input": {
"bounds": [
[
-327.8203173849033,
-15.389344724541413,
-321.33471451070653
-764.4601509553564,
-118.86253668324147,
-658.7003338651648
],
[
49.02461010552361,
51.30486985910282,
322.0653817840023
397.4791343891476,
368.79216332820624,
606.4212380635847
]
],
"degenerateTriangleCount": 0,
"degenerateTriangleCount": 150,
"invalidIndexCount": 0,
"meshCount": 3,
"meshCount": 1362,
"nonFiniteCoordinateCount": 0,
"triangleCount": 4302,
"vertexCount": 4386
"triangleCount": 605820,
"vertexCount": 602853
},
"inputChunkChecksums": {
"runewaker-export-work/raksha-temple/converted/raksha-temple-collision.glb": "a0b19ff9c1c5ef6abfbaee6080bec91bdcdc8eb3d2b8f6b3e3fad092fd71e548"
"runewaker-export-work/raksha-temple/converted/raksha-temple-wdb-collision-000.glb": "22cfdc239b638f906f3cb77c9fb7b94c66eb483cfcbbe59e059bf8d5cbaad8a0",
"runewaker-export-work/raksha-temple/converted/raksha-temple-wdb-collision-001.glb": "3a3f4448aa92276faa94c8b99ae49aa48660423fb42edf0f2403615e5e3b3453",
"runewaker-export-work/raksha-temple/converted/raksha-temple-wdb-collision-002.glb": "b4b9e92646bbaf290263b601e7af7d6547f85a7b3fdae4b931ab930a263c2a36",
"runewaker-export-work/raksha-temple/converted/raksha-temple-wdb-collision-003.glb": "846ac1301549d8e05c8efb59b9ddfc0ebec2fb36cf216a0d5c143ab3eb5ae423",
"runewaker-export-work/raksha-temple/converted/raksha-temple-wdb-collision-004.glb": "100f27d9a2c46f1d30b0e395d60d99a3b62dfabc82474ed574f137c1513fb1bb",
"runewaker-export-work/raksha-temple/converted/raksha-temple-wdb-collision-005.glb": "cb22cb168e559fa8ed6983109bdc02bc4fd11f7d8834649bfab1d9cd0448ba87",
"runewaker-export-work/raksha-temple/converted/raksha-temple-wdb-collision-006.glb": "d8f6bd33ada7b6e0ee1b7cb4aacdf1c32e8ceb614f45d60ac2f24c9f1e0cef18"
},
"inputChunks": [
"runewaker-export-work/raksha-temple/converted/raksha-temple-collision.glb"
"runewaker-export-work/raksha-temple/converted/raksha-temple-wdb-collision-000.glb",
"runewaker-export-work/raksha-temple/converted/raksha-temple-wdb-collision-001.glb",
"runewaker-export-work/raksha-temple/converted/raksha-temple-wdb-collision-002.glb",
"runewaker-export-work/raksha-temple/converted/raksha-temple-wdb-collision-003.glb",
"runewaker-export-work/raksha-temple/converted/raksha-temple-wdb-collision-004.glb",
"runewaker-export-work/raksha-temple/converted/raksha-temple-wdb-collision-005.glb",
"runewaker-export-work/raksha-temple/converted/raksha-temple-wdb-collision-006.glb"
],
"output": "runewaker-export-work/raksha-temple/converted/raksha-temple-navigation.glb",
"schemaVersion": 1,
@@ -82,16 +95,8 @@
"tileSize": 64
},
"source": {
"collisionChunkCount": 1,
"collisionChunkCount": 7,
"kind": "runewaker-primary-ros",
"recipe": "scripts/runewaker-pipeline/recipes/raksha-temple.json",
"sourceAnchorSupport": {
"pointCount": 126,
"halfExtentSourceUnits": 60,
"provenance": [
"ROM_Global.dbo.NPCData source coordinates",
"Resource/luascript/03246.lua:MS_TEST_DUNGEONS"
]
}
"recipe": "scripts/runewaker-pipeline/recipes/raksha-temple.json"
}
}
File diff suppressed because it is too large. Load diff
@@ -1,6 +1,6 @@
{
"schemaVersion": 1,
"sourceWdb": "D:\\Projects\\rom-pvt-server-backups\\Runewaker\\Resource\\wdb\\dungeon\\dgn_pesche_temple.wdb",
"sourceWdb": "F:\\Projects\\rom-pvt-server-backups\\Runewaker\\Resource\\wdb\\dungeon\\dgn_pesche_temple.wdb",
"coordinateSystem": "runewaker-left-handed-y-up",
"descriptorCount": 1028,
"descriptors": [
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/sand-vortex-population.json",
"actorManifest": "public/assets/creatures/sand-vortex/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/sardo-castle-population.json",
"actorManifest": "public/assets/creatures/sardo-castle/manifest.json",
@@ -1,57 +1,168 @@
{
"schemaVersion": 1,
"schemaVersion": 2,
"dungeonId": "the-origin",
"status": "review-required",
"environmentMode": "runewaker-ros",
"environmentMode": "runewaker-wdb-assembly",
"source": {
"obj": "scene.obj",
"report": "export-report.json",
"model": "model\\dungeon\\the_origin\\cathedral_01_b.ros"
"wdb": "Resource/wdb/dungeon/dgn_the_origin.wdb",
"primaryModel": "model/dungeon/the_origin/cathedral_01_b.ros",
"descriptorCount": 693,
"placementManifest": "wdb-placement-manifest.json"
},
"coordinateTransform": {
"source": "left-handed Y-up",
"nativeBridge": "three(x,y,z)=(runewaker.x,runewaker.y,-runewaker.z)",
"unitScaleMeters": 0.1,
"calibration": "16.4977-unit fake_pc mesh height -> approximately 1.65 m"
"metersPerSourceUnit": 0.1,
"formula": "threeMatrix=S*inverse(primaryTRS)*placementTRS*inverse(S), S=scale(meters,meters,-meters)"
},
"visual": {
"file": "the-origin-visual.glb",
"meshObjects": 5,
"triangles": 2664,
"sourceTriangles": 2664,
"meshObjects": 2144,
"triangles": 1176881,
"sourceTriangles": 1176881,
"bounds": {
"min": [
-386.52997,
-46.51506,
-324.07977
-630.039165,
-94.763691,
-431.593932
],
"max": [
107.21951,
11.46503,
309.25803
382.64336,
260.724523,
541.440422
]
},
"materials": {
"unique": 5,
"replacements": 0
}
"assembledWdbPlacements": 693,
"uniqueResources": 220
},
"collision": [
{
"file": "the-origin-collision.glb",
"triangles": 2664,
"sourceTriangleEstimate": 2664
"file": "the-origin-wdb-collision-000.glb",
"triangles": 78675,
"sourceTriangleEstimate": 78675,
"placementCount": 45,
"assembledFromWdb": true
},
{
"file": "the-origin-wdb-collision-001.glb",
"triangles": 83558,
"sourceTriangleEstimate": 83558,
"placementCount": 41,
"assembledFromWdb": true
},
{
"file": "the-origin-wdb-collision-002.glb",
"triangles": 84659,
"sourceTriangleEstimate": 84659,
"placementCount": 48,
"assembledFromWdb": true
},
{
"file": "the-origin-wdb-collision-003.glb",
"triangles": 61945,
"sourceTriangleEstimate": 61945,
"placementCount": 34,
"assembledFromWdb": true
},
{
"file": "the-origin-wdb-collision-004.glb",
"triangles": 87835,
"sourceTriangleEstimate": 87835,
"placementCount": 57,
"assembledFromWdb": true
},
{
"file": "the-origin-wdb-collision-005.glb",
"triangles": 88513,
"sourceTriangleEstimate": 88513,
"placementCount": 81,
"assembledFromWdb": true
},
{
"file": "the-origin-wdb-collision-006.glb",
"triangles": 86404,
"sourceTriangleEstimate": 86404,
"placementCount": 49,
"assembledFromWdb": true
},
{
"file": "the-origin-wdb-collision-007.glb",
"triangles": 66883,
"sourceTriangleEstimate": 66883,
"placementCount": 58,
"assembledFromWdb": true
},
{
"file": "the-origin-wdb-collision-008.glb",
"triangles": 87544,
"sourceTriangleEstimate": 87544,
"placementCount": 31,
"assembledFromWdb": true
},
{
"file": "the-origin-wdb-collision-009.glb",
"triangles": 84937,
"sourceTriangleEstimate": 84937,
"placementCount": 58,
"assembledFromWdb": true
},
{
"file": "the-origin-wdb-collision-010.glb",
"triangles": 88994,
"sourceTriangleEstimate": 88994,
"placementCount": 44,
"assembledFromWdb": true
},
{
"file": "the-origin-wdb-collision-011.glb",
"triangles": 89430,
"sourceTriangleEstimate": 89430,
"placementCount": 49,
"assembledFromWdb": true
},
{
"file": "the-origin-wdb-collision-012.glb",
"triangles": 89857,
"sourceTriangleEstimate": 89857,
"placementCount": 47,
"assembledFromWdb": true
},
{
"file": "the-origin-wdb-collision-013.glb",
"triangles": 85511,
"sourceTriangleEstimate": 85511,
"placementCount": 47,
"assembledFromWdb": true
},
{
"file": "the-origin-wdb-collision-014.glb",
"triangles": 12136,
"sourceTriangleEstimate": 12136,
"placementCount": 4,
"assembledFromWdb": true
}
],
"collisionPolicy": {
"kind": "provisional-trimesh-copy",
"kind": "wdb-static-placement-trimesh",
"maximumTrianglesPerChunk": 100000,
"workingChunkTarget": 90000,
"includesDecorativeMeshes": true
"excludesReviewedDynamicPlacements": true,
"includesUnreviewedDynamicCandidates": true
},
"dynamicAssets": [],
"preview": "the-origin-preview.png",
"editableSource": "the-origin.source.blend",
"wdbAssembly": {
"staticPlacements": 693,
"dynamicPlacements": 0,
"unavailablePlacements": 0,
"uniqueResources": 220,
"availableResources": 220,
"unavailableResources": 0,
"resourceCacheHits": 219
},
"warnings": [
"Collision is generated from all primary ROS meshes for the pilot; replace or filter decorative geometry after visual review.",
"The primary ROS does not include every WDB-managed doodad, effect, or runtime placement."
"The preview and editable Blender source cover the primary ROS only; the shipping GLB is assembled from the WDB manifest.",
"Name-based dynamic candidates remain static until a reviewed dynamic-placement rule supplies source evidence."
]
}
@@ -2,8 +2,8 @@
"schemaVersion": 2,
"dungeonId": "the-origin",
"title": "The Origin",
"status": "source-packaged",
"generatedAt": "2026-08-01T01:34:32.531Z",
"status": "review-required",
"generatedAt": "2026-09-07T19:09:55.496Z",
"source": {
"recipe": "scripts/runewaker-pipeline/recipes/the-origin.json",
"wdb": "Resource/wdb/dungeon/dgn_the_origin.wdb",
@@ -97,6 +97,17 @@
"detailClass": 0,
"zoneType": 0
}
},
"wdbAssembly": {
"mode": "all-ros",
"placementManifest": "wdb-placement-manifest.json",
"staticPlacements": 693,
"dynamicPlacements": 0,
"unavailablePlacements": 0,
"uniqueResources": 220,
"availableResources": 220,
"unavailableResources": 0,
"resourceCacheHits": 219
}
},
"coordinateSystem": {
@@ -119,11 +130,11 @@
-292.973182
],
"footPosition": [
-380.368111,
-7.734726,
-292.973182
-377.445404,
-13.802109,
-267.742004
],
"navmeshDistance": 0,
"navmeshDistance": 26.114511,
"yaw": 5.986479334,
"forward": [
-0.292371705,
@@ -131,40 +142,141 @@
0.956304756
],
"provenance": "environment recipe entryCoordinates",
"reviewRequired": false
"reviewRequired": true
},
"assets": [
{
"role": "visual",
"fileName": "the-origin-visual.glb",
"size": 251132,
"sha256": "a6db29db31f88a45bd082d27130725d70b2fa1db82030530750492a54b3f9bf8",
"compression": "meshopt+ktx2"
"relativeFile": "the-origin-visual.glb",
"size": 28683180,
"sha256": "d1ded0316b2cbaa07458c56864c47c01afaa85e4f33dd13f5d95984d7305fb92"
},
{
"role": "collision",
"fileName": "the-origin-collision.glb",
"size": 72976,
"sha256": "7cc2e9dfc649742d546a7771fb836cde3e5f708f2a7088bfc111457eb516c17a"
"fileName": "the-origin-wdb-collision-000.glb",
"relativeFile": "the-origin-wdb-collision-000.glb",
"size": 2703604,
"sha256": "7eb6e18cf11ac9a15b24c6300f8c62773df9d2cb045b16c9c4732e18016b18e7"
},
{
"role": "collision",
"fileName": "the-origin-wdb-collision-001.glb",
"relativeFile": "the-origin-wdb-collision-001.glb",
"size": 2757368,
"sha256": "31ec6603c7c100af9c0177cbbae3f13f029266a13c5b9690731089d8193deeb2"
},
{
"role": "collision",
"fileName": "the-origin-wdb-collision-002.glb",
"relativeFile": "the-origin-wdb-collision-002.glb",
"size": 2538872,
"sha256": "ccce739574edbeef58ed1bc502d9be77cb0565213c381113bcdb9944323b0be0"
},
{
"role": "collision",
"fileName": "the-origin-wdb-collision-003.glb",
"relativeFile": "the-origin-wdb-collision-003.glb",
"size": 2438228,
"sha256": "7f83d131a71bee2fb3f47e7c2fe94c39cb3f3f9bd7f333a994627528465e07d1"
},
{
"role": "collision",
"fileName": "the-origin-wdb-collision-004.glb",
"relativeFile": "the-origin-wdb-collision-004.glb",
"size": 3127712,
"sha256": "044bc594aa521c7b4a441b477c369b03083189068dbe6b17572851beb23531b1"
},
{
"role": "collision",
"fileName": "the-origin-wdb-collision-005.glb",
"relativeFile": "the-origin-wdb-collision-005.glb",
"size": 2827072,
"sha256": "8cd5228f6443dceb983e5e8c457ed97fdfdac2083049dce036157f3573a0f9ff"
},
{
"role": "collision",
"fileName": "the-origin-wdb-collision-006.glb",
"relativeFile": "the-origin-wdb-collision-006.glb",
"size": 3210756,
"sha256": "abca4c48c25d495e40399dfd5a9fbcab8941a056af1b8159ff0b4d3f453b0b52"
},
{
"role": "collision",
"fileName": "the-origin-wdb-collision-007.glb",
"relativeFile": "the-origin-wdb-collision-007.glb",
"size": 2364920,
"sha256": "9693440956d31489d888e30fd97de0427e9bf65bd02174a6bbad34b78a8b6a29"
},
{
"role": "collision",
"fileName": "the-origin-wdb-collision-008.glb",
"relativeFile": "the-origin-wdb-collision-008.glb",
"size": 2811712,
"sha256": "89f95739e8ac2384d0c125c1ab013e1803031f67f11d35fa94355719a4db2251"
},
{
"role": "collision",
"fileName": "the-origin-wdb-collision-009.glb",
"relativeFile": "the-origin-wdb-collision-009.glb",
"size": 3077192,
"sha256": "2bbddf84d5754100c3499d5e35cb1da45dfa920940c59a3007c0848b975d609d"
},
{
"role": "collision",
"fileName": "the-origin-wdb-collision-010.glb",
"relativeFile": "the-origin-wdb-collision-010.glb",
"size": 2989496,
"sha256": "73012e2dcb9892ad3aeccd3536e0c36f4365276226b265f82326a25e45d4ec4e"
},
{
"role": "collision",
"fileName": "the-origin-wdb-collision-011.glb",
"relativeFile": "the-origin-wdb-collision-011.glb",
"size": 3128952,
"sha256": "d19124247096c475e344ae467274be6a0320192cf2292f891970b102eb4fc1be"
},
{
"role": "collision",
"fileName": "the-origin-wdb-collision-012.glb",
"relativeFile": "the-origin-wdb-collision-012.glb",
"size": 2825584,
"sha256": "23870416ad12c179e576959df6f72370e209365e03d3510ceb3b1745f30fe930"
},
{
"role": "collision",
"fileName": "the-origin-wdb-collision-013.glb",
"relativeFile": "the-origin-wdb-collision-013.glb",
"size": 2856020,
"sha256": "5c9bb9f4b5d118c834f3b1d0b515b30d553a1e21423767c9e7dafcbd6d78d1c2"
},
{
"role": "collision",
"fileName": "the-origin-wdb-collision-014.glb",
"relativeFile": "the-origin-wdb-collision-014.glb",
"size": 533188,
"sha256": "0743835882534516c770766cbbf3585386e05e96e95a2bdc24e3ca5d90482c57"
},
{
"role": "navigation",
"fileName": "the-origin-navigation.glb",
"size": 54768,
"sha256": "a9b97bc8cc62279486292d42aad3ae0a8e70638e7dc223dd0c392f32b3811781"
"relativeFile": "the-origin-navigation.glb",
"size": 4667144,
"sha256": "70c0a78073d7c3cd7a95e0dc3531c25c0de9815376001f9b80cfbb59a72596cd"
}
],
"review": {
"environment": "authoritative-wdb-largest-model-selected",
"collision": "primary-ros-plus-source-anchor-support-review-required",
"collision": "full-wdb-static-ros-provisional-review-required",
"entrance": "source-script",
"bossAnchors": "source-population",
"wdbPlacements": "unique-primary-model"
"wdbPlacements": "all-static-ros-source-transform"
},
"exceptions": [
"Secondary WDB doodads/effects remain in the audit; this pass exports the primary ROS hierarchy.",
"All valid static WDB ROS placements are assembled; filename-only dynamic candidates remain static until script evidence maps their behavior.",
"Collision initially includes decorative primary-ROS geometry.",
"Original skeletal animations and complex scripted mechanics remain later passes.",
"Source-anchor support pads preserve combat and entrance coordinates where modular WDB sections or primary-ROS collision leave navmesh gaps; full secondary placement assembly remains a visual follow-up."
"Original GR2 actor animations are recovered where source graphs and validation permit; scripted encounter mechanics remain evidence-driven per-instance work.",
"The full static WDB collision requires a tiled monotone Recast build because the solo watershed contour triangulator rejects this source geometry.",
"The authoritative entrance was projected 26.114511m to the packaged primary navigation and requires an in-game entrance review."
]
}
@@ -4,15 +4,11 @@
"status": "review-required",
"source": {
"file": "the-origin-visual.glb",
"size": 898204
"size": 259670824
},
"optimized": {
"file": "the-origin-visual.optimized.glb",
"size": 251132,
"checksum": "a6db29db31f88a45bd082d27130725d70b2fa1db82030530750492a54b3f9bf8"
"size": 28683180
},
"compression": "meshopt+ktx2",
"commands": [
"node scripts/asset-pipeline/compress-ktx2.mjs <optimized.glb> --concurrency 1 --jobs 2"
]
"compression": "meshopt+ktx2"
}
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/the-origin-population.json",
"actorManifest": "public/assets/creatures/the-origin/manifest.json",
@@ -3,71 +3,106 @@
"attempts": [
{
"failures": [],
"tileCount": 1,
"tileSize": null,
"partition": "monotone",
"tileCount": 49,
"tileSize": 512,
"valid": true
}
],
"gridCells": 3476352,
"gridHeight": 2112,
"gridWidth": 1646,
"ignoredEmptyTilePackingFailures": 0,
"intermediateRetention": null,
"mode": "solo",
"partition": "watershed",
"populatedTileCount": 1,
"tileColumns": 1,
"tileCount": 1,
"tileRows": 1,
"tileSize": null
"gridCells": 10951744,
"gridHeight": 3244,
"gridWidth": 3376,
"ignoredEmptyTilePackingFailures": 4,
"intermediateRetention": "released",
"mode": "tiled",
"partition": "monotone",
"partitionProvenance": {
"operation": "replace tiled buildRegions watershed call with buildRegionsMonotone",
"package": "@recast-navigation/generators@0.43.1",
"upstreamChecksum": "293eab40944b1bdbf1460aea569e3560d54425e5ff14a1d62c5cbcb59cc12546",
"upstreamEntry": "node_modules/@recast-navigation/generators/dist/index.mjs"
},
"populatedTileCount": 41,
"tileColumns": 7,
"tileCount": 49,
"tileRows": 7,
"tileSize": 512
},
"dungeonId": "the-origin",
"generator": "@recast-navigation/three@0.43.1",
"geometry": {
"bounds": [
[
-386.5299468981716,
-46.21504096880001,
-323.1798095703125
-549.3453979492188,
-89.20210266113281,
-432.14202880859375
],
[
107.21950989869195,
11.484966278076172,
324.07975311467277
383.1546325683594,
190.2978973388672,
487.3580322265625
]
],
"boundsTolerance": 0.6,
"rejectedOutOfBoundsTriangles": 0,
"sourceTriangles": 813,
"sourceVertices": 2439,
"triangles": 1213,
"vertices": 3639
"rejectedOutOfBoundsTriangles": 2565,
"sourceTriangles": 99779,
"sourceVertices": 299337,
"triangles": 97214,
"vertices": 291642
},
"input": {
"bounds": [
[
-386.5299618144327,
-46.515034268603216,
-324.07981134566637
-630.040175761931,
-94.76418001874038,
-431.59393225149614
],
[
107.21950843363265,
11.465017374849538,
309.2580730454315
382.64336048901225,
260.7245227290317,
541.440421539961
]
],
"degenerateTriangleCount": 0,
"degenerateTriangleCount": 971,
"invalidIndexCount": 0,
"meshCount": 5,
"meshCount": 2144,
"nonFiniteCoordinateCount": 0,
"triangleCount": 2664,
"vertexCount": 2003
"triangleCount": 1176881,
"vertexCount": 1121613
},
"inputChunkChecksums": {
"runewaker-export-work/the-origin/converted/the-origin-collision.glb": "7cc2e9dfc649742d546a7771fb836cde3e5f708f2a7088bfc111457eb516c17a"
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-000.glb": "7eb6e18cf11ac9a15b24c6300f8c62773df9d2cb045b16c9c4732e18016b18e7",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-001.glb": "31ec6603c7c100af9c0177cbbae3f13f029266a13c5b9690731089d8193deeb2",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-002.glb": "ccce739574edbeef58ed1bc502d9be77cb0565213c381113bcdb9944323b0be0",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-003.glb": "7f83d131a71bee2fb3f47e7c2fe94c39cb3f3f9bd7f333a994627528465e07d1",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-004.glb": "044bc594aa521c7b4a441b477c369b03083189068dbe6b17572851beb23531b1",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-005.glb": "8cd5228f6443dceb983e5e8c457ed97fdfdac2083049dce036157f3573a0f9ff",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-006.glb": "abca4c48c25d495e40399dfd5a9fbcab8941a056af1b8159ff0b4d3f453b0b52",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-007.glb": "9693440956d31489d888e30fd97de0427e9bf65bd02174a6bbad34b78a8b6a29",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-008.glb": "89f95739e8ac2384d0c125c1ab013e1803031f67f11d35fa94355719a4db2251",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-009.glb": "2bbddf84d5754100c3499d5e35cb1da45dfa920940c59a3007c0848b975d609d",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-010.glb": "73012e2dcb9892ad3aeccd3536e0c36f4365276226b265f82326a25e45d4ec4e",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-011.glb": "d19124247096c475e344ae467274be6a0320192cf2292f891970b102eb4fc1be",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-012.glb": "23870416ad12c179e576959df6f72370e209365e03d3510ceb3b1745f30fe930",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-013.glb": "5c9bb9f4b5d118c834f3b1d0b515b30d553a1e21423767c9e7dafcbd6d78d1c2",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-014.glb": "0743835882534516c770766cbbf3585386e05e96e95a2bdc24e3ca5d90482c57"
},
"inputChunks": [
"runewaker-export-work/the-origin/converted/the-origin-collision.glb"
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-000.glb",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-001.glb",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-002.glb",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-003.glb",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-004.glb",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-005.glb",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-006.glb",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-007.glb",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-008.glb",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-009.glb",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-010.glb",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-011.glb",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-012.glb",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-013.glb",
"runewaker-export-work/the-origin/converted/the-origin-wdb-collision-014.glb"
],
"output": "runewaker-export-work/the-origin/converted/the-origin-navigation.glb",
"schemaVersion": 1,
@@ -78,20 +113,14 @@
"agentRadius": 0.36,
"cellHeight": 0.1,
"cellSize": 0.3,
"forceTiled": true,
"partition": "monotone",
"retainTileIntermediates": false,
"tileSize": 64
"tileSize": 512
},
"source": {
"collisionChunkCount": 1,
"collisionChunkCount": 15,
"kind": "runewaker-primary-ros",
"recipe": "scripts/runewaker-pipeline/recipes/the-origin.json",
"sourceAnchorSupport": {
"pointCount": 200,
"halfExtentSourceUnits": 60,
"provenance": [
"ROM_Global.dbo.NPCData source coordinates",
"Resource/luascript/03246.lua:MS_TEST_DUNGEONS"
]
}
"recipe": "scripts/runewaker-pipeline/recipes/the-origin.json"
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 873 KiB

After

Width:  |  Height:  |  Size: 1.3 MiB

File diff suppressed because it is too large. Load diff
@@ -1,6 +1,6 @@
{
"schemaVersion": 1,
"sourceWdb": "D:\\Projects\\rom-pvt-server-backups\\Runewaker\\Resource\\wdb\\dungeon\\dgn_the_origin.wdb",
"sourceWdb": "F:\\Projects\\rom-pvt-server-backups\\Runewaker\\Resource\\wdb\\dungeon\\dgn_the_origin.wdb",
"coordinateSystem": "runewaker-left-handed-y-up",
"descriptorCount": 693,
"descriptors": [
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/tomb-seven-heroes-population.json",
"actorManifest": "public/assets/creatures/tomb-seven-heroes/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/treasure-trove-population.json",
"actorManifest": "public/assets/creatures/treasure-trove/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/warnorken-arena-population.json",
"actorManifest": "public/assets/creatures/warnorken-arena/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/ystra-labyrinth-boss1-population.json",
"actorManifest": "public/assets/creatures/ystra-labyrinth-boss1/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/ystra-labyrinth-boss2-population.json",
"actorManifest": "public/assets/creatures/ystra-labyrinth-boss2/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/ystra-labyrinth-boss3-population.json",
"actorManifest": "public/assets/creatures/ystra-labyrinth-boss3/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/zurhidon-stronghold-124-population.json",
"actorManifest": "public/assets/creatures/zurhidon-stronghold-124/manifest.json",
@@ -36,8 +36,8 @@
"runeWakerIdsAreNamespaced": true,
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
"sourceSpellCatalogSha256": "c47e67013e68ecf9c7ae30ef4b2058a850505385739dfe8c32ce8874e6ed077c",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; coefficients remain conservative HealerMan values.",
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable.",
"status": "green",
"recipe": "scripts/runewaker-pipeline/recipes/zurhidon-stronghold-population.json",
"actorManifest": "public/assets/creatures/zurhidon-stronghold/manifest.json",