ModernUO/Distribution/Data/Spawns/post-uoml/malas/North.json
Kamron Batman 723e1a836d
feat: Deduplicates spawns. Adds spawnbounds where needed. (#2299)
### Summary

- Add z-restricted spawnBounds to 35 spawners across 15 files to prevent creatures from spawning on incorrect floors
- Building spawners (Pyramid, Fire dungeon, Shame, Vendors) use minZ = spawner_z to prevent spawning below
- Ground level spawners (Graveyards, Outdoors, Tokuno) use minZ = -128 for natural terrain variation
- Multi-floor structures in Ilshenar use floor-specific Z restrictions

### Test plan

- Verify spawners in Fire dungeon building don't spawn creatures on floors below
- Verify Pyramid spawners keep creatures on their respective levels
- Verify ground level spawners (graveyards, outdoors) still spawn correctly on terrain
- Check Ilshenar multi-floor structure spawns creatures on correct floors
2025-12-30 00:21:03 -08:00

105 lines
3.4 KiB
JSON

[
{
"type": "Spawner",
"guid": "b37c3d38-2d53-4d2d-a8aa-a2e4926a29c6",
"name": "Spawner (402)",
"location": [1119, 530, -90],
"map": "Malas",
"count": 22,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 39,
"walkingRange": 60,
"entries": [
{ "name": "Bird", "maxCount": 10, "probability": 100 },
{ "name": "GreatHart", "maxCount": 1, "probability": 100 },
{ "name": "JackRabbit", "maxCount": 10, "probability": 100 },
{ "name": "Hind", "maxCount": 1, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "e1ba3ada-d1fd-44fb-83b8-82e0e1fcf94f",
"name": "Spawner (402)",
"location": [1674, 659, -84],
"map": "Malas",
"count": 15,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 100,
"walkingRange": 120,
"entries": [
{ "name": "CrystalElemental", "maxCount": 3, "probability": 100 },
{ "name": "SkitteringHopper", "maxCount": 3, "probability": 100 },
{ "name": "Bird", "maxCount": 3, "probability": 100 },
{ "name": "Hind", "maxCount": 2, "probability": 100 },
{ "name": "GreatHart", "maxCount": 1, "probability": 100 },
{ "name": "JackRabbit", "maxCount": 3, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "099efd1a-520c-4e6b-bb39-552def69e2df",
"name": "Spawner (402)",
"location": [1434, 607, -89],
"map": "Malas",
"count": 15,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 100,
"walkingRange": 120,
"entries": [
{ "name": "CrystalElemental", "maxCount": 3, "probability": 100 },
{ "name": "SkitteringHopper", "maxCount": 3, "probability": 100 },
{ "name": "Bird", "maxCount": 3, "probability": 100 },
{ "name": "Hind", "maxCount": 2, "probability": 100 },
{ "name": "GreatHart", "maxCount": 1, "probability": 100 },
{ "name": "JackRabbit", "maxCount": 3, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "c9c80a39-40db-4cb9-a3c7-243957ecdd39",
"name": "Spawner (402)",
"location": [1194, 638, -84],
"map": "Malas",
"count": 20,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 100,
"walkingRange": 120,
"entries": [
{ "name": "CrystalElemental", "maxCount": 4, "probability": 100 },
{ "name": "SkitteringHopper", "maxCount": 4, "probability": 100 },
{ "name": "Bird", "maxCount": 4, "probability": 100 },
{ "name": "Hind", "maxCount": 3, "probability": 100 },
{ "name": "GreatHart", "maxCount": 1, "probability": 100 },
{ "name": "JackRabbit", "maxCount": 4, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "0335054c-d38b-4c5a-9fc6-c04c42ba9de1",
"name": "Spawner (402)",
"location": [920, 356, -85],
"map": "Malas",
"count": 20,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"homeRange": 60,
"walkingRange": 70,
"entries": [
{ "name": "CrystalElemental", "maxCount": 4, "probability": 100 },
{ "name": "SkitteringHopper", "maxCount": 4, "probability": 100 },
{ "name": "Bird", "maxCount": 4, "probability": 100 },
{ "name": "Hind", "maxCount": 3, "probability": 100 },
{ "name": "GreatHart", "maxCount": 1, "probability": 100 },
{ "name": "JackRabbit", "maxCount": 4, "probability": 100 }
]
}
]