ModernUO/Distribution/Data/Spawns/shared/ilshenar/Towns.json
Kamron Batman 2f8a7afa57 chore(spawners): migrate spawn data to $type discriminator
- Rename "type" -> "$type" (first key, required for STJ polymorphism) in
  all 109 spawn JSON files (5,612 records).
- Convert "homeRange" + "location" -> "spawnBounds" object, dropping homeRange.
  Runtime keeps reading homeRange so un-migrated/external files still load.
- Add BoundsEquivalenceTests (hr=0/1/3/7) validating that the script's toBounds
  formula produces the same Rectangle3D as the runtime homeRange path.
- Add MigratedDataLoadTests loading a real migrated file as List<SpawnerDto>
  and round-tripping each DTO through ToSpawner().
- Add tools/spawner-json-migrate/migrate.mjs (offline Node script).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 16:17:35 -07:00

1417 lines
25 KiB
JSON

[
{
"$type": "Spawner",
"guid": "04236803-3dc7-426b-8a8d-d927b1bd0086",
"name": "Spawner (311)",
"location": [
1279,
781,
-80
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1274,
"y1": 776,
"z1": -128,
"x2": 1285,
"y2": 787,
"z2": 128
},
"walkingRange": 5,
"entries": [
{
"name": "Ridgeback",
"maxCount": 2,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "063240fa-7f32-4bad-b79e-bf9c8ca7b9b9",
"name": "Spawner (311)",
"location": [
1108,
492,
-80
],
"map": "Ilshenar",
"count": 5,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1083,
"y1": 467,
"z1": -128,
"x2": 1134,
"y2": 518,
"z2": 128
},
"walkingRange": 25,
"entries": [
{
"name": "Hind",
"maxCount": 2,
"probability": 100
},
{
"name": "GreatHart",
"maxCount": 1,
"probability": 100
},
{
"name": "BlackBear",
"maxCount": 1,
"probability": 100
},
{
"name": "DireWolf",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "149dfca3-652c-4777-b005-a0cc95f30d9d",
"name": "Spawner (311)",
"location": [
1517,
541,
11
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1507,
"y1": 531,
"z1": -128,
"x2": 1528,
"y2": 552,
"z2": 128
},
"walkingRange": 20,
"entries": [
{
"name": "Lich",
"maxCount": 2,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "165f16c6-b66f-474a-aed6-0d6c2ee57123",
"name": "Spawner (311)",
"location": [
1715,
228,
78
],
"map": "Ilshenar",
"count": 6,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1705,
"y1": 218,
"z1": -128,
"x2": 1726,
"y2": 239,
"z2": 128
},
"walkingRange": 10,
"entries": [
{
"name": "StoneHarpy",
"maxCount": 3,
"probability": 100
},
{
"name": "StoneGargoyle",
"maxCount": 2,
"probability": 100
},
{
"name": "Balron",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "17243bc5-68af-437f-bb95-963913a05306",
"name": "Spawner (311)",
"location": [
1191,
696,
-80
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1181,
"y1": 686,
"z1": -128,
"x2": 1202,
"y2": 707,
"z2": 128
},
"walkingRange": 10,
"entries": [
{
"name": "SavageRider",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "1b101011-42fa-41b1-b15c-f15fdcaaf6ec",
"name": "Spawner (311)",
"location": [
1517,
558,
5
],
"map": "Ilshenar",
"count": 6,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1497,
"y1": 538,
"z1": -128,
"x2": 1538,
"y2": 579,
"z2": 128
},
"walkingRange": 35,
"entries": [
{
"name": "Skeleton",
"maxCount": 6,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "1e1dd613-72d1-4715-b899-1086679533ab",
"name": "Spawner (311)",
"location": [
1665,
244,
93
],
"map": "Ilshenar",
"count": 5,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1640,
"y1": 219,
"z1": -128,
"x2": 1691,
"y2": 270,
"z2": 128
},
"walkingRange": 25,
"entries": [
{
"name": "EarthElemental",
"maxCount": 3,
"probability": 100
},
{
"name": "Drake",
"maxCount": 2,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "1e2bfa6b-abe9-4dcd-b996-bc4dcdd17f9f",
"name": "Spawner (311)",
"location": [
1234,
760,
-80
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1224,
"y1": 750,
"z1": -128,
"x2": 1245,
"y2": 771,
"z2": 128
},
"walkingRange": 10,
"entries": [
{
"name": "SavageShaman",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "1f0236b1-b26e-4572-b03a-d53d94ab1a6a",
"name": "Spawner (311)",
"location": [
1110,
542,
-77
],
"map": "Ilshenar",
"count": 5,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1085,
"y1": 517,
"z1": -128,
"x2": 1136,
"y2": 568,
"z2": 128
},
"walkingRange": 25,
"entries": [
{
"name": "Hind",
"maxCount": 2,
"probability": 100
},
{
"name": "GreatHart",
"maxCount": 1,
"probability": 100
},
{
"name": "BlackBear",
"maxCount": 1,
"probability": 100
},
{
"name": "DireWolf",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "26a0cc2e-3dfc-49d7-9274-d993fc0371db",
"name": "Spawner (311)",
"location": [
1292,
755,
-80
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1288,
"y1": 751,
"z1": -128,
"x2": 1297,
"y2": 760,
"z2": 128
},
"walkingRange": 4,
"entries": [
{
"name": "Savage",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "34ad74fe-d7eb-4427-8c7e-e7658bd63156",
"name": "Spawner (311)",
"location": [
1363,
1046,
-13
],
"map": "Ilshenar",
"count": 4,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1348,
"y1": 1031,
"z1": -128,
"x2": 1379,
"y2": 1062,
"z2": 128
},
"walkingRange": 30,
"entries": [
{
"name": "EtherealWarrior",
"maxCount": 4,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "38614de6-1ed9-41a0-b30b-59ae8191316f",
"name": "Spawner (311)",
"location": [
1213,
719,
-80
],
"map": "Ilshenar",
"count": 4,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1203,
"y1": 709,
"z1": -128,
"x2": 1224,
"y2": 730,
"z2": 128
},
"walkingRange": 10,
"entries": [
{
"name": "Savage",
"maxCount": 3,
"probability": 100
},
{
"name": "SavageRider",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "3bfd2dc7-d6d7-4604-858f-246ed9b25d35",
"name": "Spawner (311)",
"location": [
1203,
762,
-80
],
"map": "Ilshenar",
"count": 3,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1193,
"y1": 752,
"z1": -128,
"x2": 1214,
"y2": 773,
"z2": 128
},
"walkingRange": 10,
"entries": [
{
"name": "Savage",
"maxCount": 3,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "4befab4e-1b1a-4290-ae76-6c176b48a18a",
"name": "Spawner (311)",
"location": [
1046,
517,
-80
],
"map": "Ilshenar",
"count": 7,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1031,
"y1": 502,
"z1": -128,
"x2": 1062,
"y2": 533,
"z2": 128
},
"walkingRange": 15,
"entries": [
{
"name": "SavageRider",
"maxCount": 3,
"probability": 100
},
{
"name": "Savage",
"maxCount": 4,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "56b2d766-8057-4400-913f-6c10a5155f98",
"name": "Spawner (311)",
"location": [
1251,
703,
-80
],
"map": "Ilshenar",
"count": 3,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1241,
"y1": 693,
"z1": -128,
"x2": 1262,
"y2": 714,
"z2": 128
},
"walkingRange": 10,
"entries": [
{
"name": "Savage",
"maxCount": 3,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "59ae00b4-1b69-42de-8faa-670350014ad7",
"name": "Spawner (311)",
"location": [
1116,
527,
-80
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1101,
"y1": 512,
"z1": -128,
"x2": 1132,
"y2": 543,
"z2": 128
},
"walkingRange": 15,
"entries": [
{
"name": "Savage",
"maxCount": 1,
"probability": 100
},
{
"name": "SavageRidgeback",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "5a5f79c6-3813-428e-a5fe-00893d247556",
"name": "Spawner (311)",
"location": [
1161,
668,
-80
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1156,
"y1": 663,
"z1": -128,
"x2": 1167,
"y2": 674,
"z2": 128
},
"walkingRange": 5,
"entries": [
{
"name": "Savage",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "5f1d23bd-e6c8-422e-b69e-a88d61fa61c0",
"name": "Spawner (311)",
"location": [
1243,
732,
-80
],
"map": "Ilshenar",
"count": 5,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1233,
"y1": 722,
"z1": -128,
"x2": 1254,
"y2": 743,
"z2": 128
},
"walkingRange": 10,
"entries": [
{
"name": "Savage",
"maxCount": 1,
"probability": 100
},
{
"name": "SavageShaman",
"maxCount": 3,
"probability": 100
},
{
"name": "SavageRider",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "64e33b76-ba88-4906-a91f-4b56dea52a81",
"name": "Spawner (311)",
"location": [
1181,
691,
-80
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1177,
"y1": 687,
"z1": -128,
"x2": 1186,
"y2": 696,
"z2": 128
},
"walkingRange": 4,
"entries": [
{
"name": "Savage",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "6ac6b235-2d7c-4058-bc8d-d7f73cd17d5a",
"name": "Spawner (311)",
"location": [
817,
1065,
-30
],
"map": "Ilshenar",
"count": 26,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 757,
"y1": 1005,
"z1": -128,
"x2": 878,
"y2": 1126,
"z2": 128
},
"walkingRange": 70,
"entries": [
{
"name": "Ogre",
"maxCount": 5,
"probability": 100
},
{
"name": "OgreLord",
"maxCount": 2,
"probability": 100
},
{
"name": "Ratman",
"maxCount": 10,
"probability": 100
},
{
"name": "RatmanMage",
"maxCount": 5,
"probability": 100
},
{
"name": "RatmanArcher",
"maxCount": 4,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "6c8f4381-39be-4530-bfc3-1478035c1aa5",
"name": "Spawner (311)",
"location": [
1108,
492,
-80
],
"map": "Ilshenar",
"count": 3,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1083,
"y1": 467,
"z1": -128,
"x2": 1134,
"y2": 518,
"z2": 128
},
"walkingRange": 25,
"entries": [
{
"name": "Bird",
"maxCount": 3,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "72ce5891-f2dd-4a3c-8019-199928c49dcc",
"name": "Spawner (311)",
"location": [
1231,
694,
-80
],
"map": "Ilshenar",
"count": 3,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1221,
"y1": 684,
"z1": -128,
"x2": 1242,
"y2": 705,
"z2": 128
},
"walkingRange": 10,
"entries": [
{
"name": "Savage",
"maxCount": 2,
"probability": 100
},
{
"name": "SavageShaman",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "7f13f3fa-2330-4dd5-9985-164d8e240659",
"name": "Spawner (311)",
"location": [
1180,
1188,
-25
],
"map": "Ilshenar",
"count": 5,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1165,
"y1": 1173,
"z1": -128,
"x2": 1196,
"y2": 1204,
"z2": 128
},
"walkingRange": 15,
"entries": [
{
"name": "Snake",
"maxCount": 5,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "824d3710-eb67-4f27-8917-6debd7c8e2ca",
"name": "Spawner (311)",
"location": [
1517,
552,
10
],
"map": "Ilshenar",
"count": 6,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1502,
"y1": 537,
"z1": -128,
"x2": 1533,
"y2": 568,
"z2": 128
},
"walkingRange": 30,
"entries": [
{
"name": "Spectre",
"maxCount": 6,
"probability": 100
},
{
"name": "Shade",
"maxCount": 6,
"probability": 100
},
{
"name": "Wraith",
"maxCount": 6,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "86ff8b56-5d0c-4218-80d4-749414e3f568",
"name": "Spawner (311)",
"location": [
1191,
696,
-80
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1186,
"y1": 691,
"z1": -128,
"x2": 1197,
"y2": 702,
"z2": 128
},
"walkingRange": 7,
"entries": [
{
"name": "Savage",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "88f2279d-e351-4611-8255-206a456394d6",
"name": "Spawner (311)",
"location": [
1110,
542,
-77
],
"map": "Ilshenar",
"count": 3,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1085,
"y1": 517,
"z1": -128,
"x2": 1136,
"y2": 568,
"z2": 128
},
"walkingRange": 25,
"entries": [
{
"name": "Bird",
"maxCount": 3,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "917aa704-acc1-49ce-81c6-401f0604b260",
"name": "Spawner (311)",
"location": [
1274,
728,
-80
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1264,
"y1": 718,
"z1": -128,
"x2": 1285,
"y2": 739,
"z2": 128
},
"walkingRange": 10,
"entries": [
{
"name": "Savage",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "93476fd0-4859-4358-90ab-4371f8c1ac40",
"name": "Spawner (311)",
"location": [
1181,
1189,
-25
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1169,
"y1": 1177,
"z1": -128,
"x2": 1194,
"y2": 1202,
"z2": 128
},
"walkingRange": 12,
"entries": [
{
"name": "GiantSerpent",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "9b71629a-ede8-4fba-bd86-63a895c4c422",
"name": "Spawner (311)",
"location": [
1214,
744,
-80
],
"map": "Ilshenar",
"count": 4,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1204,
"y1": 734,
"z1": -128,
"x2": 1225,
"y2": 755,
"z2": 128
},
"walkingRange": 10,
"entries": [
{
"name": "Savage",
"maxCount": 4,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "9d3ed0a0-e458-4fa9-bc94-008304706893",
"name": "Spawner (311)",
"location": [
1516,
557,
4
],
"map": "Ilshenar",
"count": 7,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1496,
"y1": 537,
"z1": -128,
"x2": 1537,
"y2": 578,
"z2": 128
},
"walkingRange": 35,
"entries": [
{
"name": "Ghoul",
"maxCount": 2,
"probability": 100
},
{
"name": "Zombie",
"maxCount": 5,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "9fce7b2d-3671-4d8e-bf22-19c10ec5709f",
"name": "Spawner (311)",
"location": [
1280,
770,
-80
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1273,
"y1": 763,
"z1": -128,
"x2": 1288,
"y2": 778,
"z2": 128
},
"walkingRange": 7,
"entries": [
{
"name": "Savage",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "c4c688bb-cf62-4b3d-84bd-2633333c0242",
"name": "Spawner (311)",
"location": [
1517,
552,
10
],
"map": "Ilshenar",
"count": 6,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1502,
"y1": 537,
"z1": -128,
"x2": 1533,
"y2": 568,
"z2": 128
},
"walkingRange": 30,
"entries": [
{
"name": "SkeletalKnight",
"maxCount": 3,
"probability": 100
},
{
"name": "BoneKnight",
"maxCount": 3,
"probability": 100
},
{
"name": "SkeletalMage",
"maxCount": 3,
"probability": 100
},
{
"name": "BoneMagi",
"maxCount": 3,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "c671596f-69b6-45df-a106-b8fce71aa156",
"name": "Spawner (311)",
"location": [
1517,
541,
61
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1513,
"y1": 537,
"z1": -128,
"x2": 1522,
"y2": 546,
"z2": 128
},
"walkingRange": 10,
"entries": [
{
"name": "LichLord",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "e0710f4e-9d44-4e1e-be0d-3f560d5f52c6",
"name": "Spawner (311)",
"location": [
1643,
310,
48
],
"map": "Ilshenar",
"count": 21,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1613,
"y1": 280,
"z1": -128,
"x2": 1674,
"y2": 341,
"z2": 128
},
"walkingRange": 50,
"entries": [
{
"name": "Phoenix",
"maxCount": 2,
"probability": 100
},
{
"name": "FireElemental",
"maxCount": 4,
"probability": 100
},
{
"name": "HellHound",
"maxCount": 5,
"probability": 100
},
{
"name": "LavaSerpent",
"maxCount": 4,
"probability": 100
},
{
"name": "LavaLizard",
"maxCount": 4,
"probability": 100
},
{
"name": "Daemon",
"maxCount": 2,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "eb0f7637-62d3-483f-835e-248e48ffdc44",
"name": "Spawner (311)",
"location": [
1187,
685,
-80
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1183,
"y1": 681,
"z1": -128,
"x2": 1192,
"y2": 690,
"z2": 128
},
"walkingRange": 4,
"entries": [
{
"name": "Savage",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "ed8774de-7f1f-4f40-bb03-0ff9e7d1ff31",
"name": "Spawner (311)",
"location": [
1262,
758,
-80
],
"map": "Ilshenar",
"count": 4,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1252,
"y1": 748,
"z1": -128,
"x2": 1273,
"y2": 769,
"z2": 128
},
"walkingRange": 10,
"entries": [
{
"name": "Savage",
"maxCount": 4,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "ef56cf38-1547-41ad-adc4-ba72aa156f87",
"name": "Spawner (311)",
"location": [
1127,
1112,
-34
],
"map": "Ilshenar",
"count": 7,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1102,
"y1": 1087,
"z1": -128,
"x2": 1153,
"y2": 1138,
"z2": 128
},
"walkingRange": 35,
"entries": [
{
"name": "DireWolf",
"maxCount": 7,
"probability": 100
},
{
"name": "TimberWolf",
"maxCount": 7,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "f216ee7b-bb49-415a-aace-924f1778e3cc",
"name": "Spawner (311)",
"location": [
1643,
310,
48
],
"map": "Ilshenar",
"count": 4,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1613,
"y1": 280,
"z1": -128,
"x2": 1674,
"y2": 341,
"z2": 128
},
"walkingRange": 50,
"entries": [
{
"name": "Succubus",
"maxCount": 2,
"probability": 100
},
{
"name": "Efreet",
"maxCount": 2,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "fb0b433c-9d26-4a0f-b9a0-4ddb16ea1904",
"name": "Spawner (311)",
"location": [
1046,
517,
-80
],
"map": "Ilshenar",
"count": 4,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1039,
"y1": 510,
"z1": -128,
"x2": 1054,
"y2": 525,
"z2": 128
},
"walkingRange": 10,
"entries": [
{
"name": "SavageShaman",
"maxCount": 4,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "fb1de953-cfdd-46d6-aab9-68cbdfe60780",
"name": "Spawner (311)",
"location": [
1203,
1138,
-25
],
"map": "Ilshenar",
"count": 16,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1163,
"y1": 1098,
"z1": -128,
"x2": 1244,
"y2": 1179,
"z2": 128
},
"walkingRange": 55,
"entries": [
{
"name": "MeerWarrior",
"maxCount": 16,
"probability": 100
},
{
"name": "MeerCaptain",
"maxCount": 16,
"probability": 100
},
{
"name": "MeerMage",
"maxCount": 16,
"probability": 100
},
{
"name": "MeerEternal",
"maxCount": 16,
"probability": 100
}
]
}
]