ModernUO/Distribution/Data/Spawns/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

86 lines
2.8 KiB
JSON

[
{
"type": "Spawner",
"guid": "6f75ce3a-5afe-4d59-8cea-521a9cab1c9a",
"name": "Spawner (2402)",
"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": "Rabbit", "maxCount": 3, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "b2985f08-8004-4d85-8b11-e98cd205b584",
"name": "Spawner (2402)",
"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": "Rabbit", "maxCount": 3, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "7ef09a35-9032-4c5c-8273-9cdeb13281f6",
"name": "Spawner (2402)",
"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": "Rabbit", "maxCount": 4, "probability": 100 }
]
},
{
"type": "Spawner",
"guid": "5a950bac-ad86-44ce-9c3f-b26ac67b1f63",
"name": "Spawner (2402)",
"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": "Rabbit", "maxCount": 4, "probability": 100 }
]
}
]