ModernUO/Distribution/Data/Spawns/shared/ilshenar/Vendors.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

1640 lines
29 KiB
JSON

[
{
"$type": "Spawner",
"guid": "0457d1c2-1736-4b97-96be-0625a8a08c91",
"name": "Spawner (312)",
"location": [
1497,
614,
-14
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1497,
"y1": 614,
"z1": -14,
"x2": 1498,
"y2": 615,
"z2": -14
},
"walkingRange": 5,
"entries": [
{
"name": "Armorer",
"maxCount": 1,
"probability": 100
},
{
"name": "Weaponsmith",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "07dcfcfd-1f11-4fe7-8cc5-d1981fb1e74f",
"name": "Spawner (312)",
"location": [
868,
657,
-40
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 868,
"y1": 657,
"z1": -40,
"x2": 869,
"y2": 658,
"z2": -40
},
"walkingRange": 5,
"entries": [
{
"name": "Scribe",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "12d3edd5-4ebb-41a7-82ff-2d2ab3c4adef",
"name": "Spawner (312)",
"location": [
1318,
1328,
-14
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1318,
"y1": 1328,
"z1": -14,
"x2": 1319,
"y2": 1329,
"z2": -14
},
"walkingRange": 5,
"entries": [
{
"name": "Provisioner",
"maxCount": 1,
"probability": 100
},
{
"name": "Cobbler",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "14094381-ef68-4f89-b700-0d824d8968b2",
"name": "Spawner (312)",
"location": [
1261,
582,
-18
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1261,
"y1": 582,
"z1": -18,
"x2": 1262,
"y2": 583,
"z2": -18
},
"walkingRange": 5,
"entries": [
{
"name": "Blacksmith",
"maxCount": 1,
"probability": 100
},
{
"name": "BlacksmithGuildmaster",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "20c754a1-ce9b-4068-89ae-b50d95a64c82",
"name": "Spawner (312)",
"location": [
854,
680,
-40
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 854,
"y1": 680,
"z1": -40,
"x2": 855,
"y2": 681,
"z2": -40
},
"walkingRange": 5,
"entries": [
{
"name": "Banker",
"maxCount": 1,
"probability": 100
},
{
"name": "Minter",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "2b7c425b-7a52-414a-a76a-cb0734c3165c",
"name": "Spawner (312)",
"location": [
1388,
428,
-23
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1388,
"y1": 428,
"z1": -23,
"x2": 1389,
"y2": 429,
"z2": -23
},
"walkingRange": 5,
"entries": [
{
"name": "GypsyAnimalTrainer",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "2d27bf3f-df46-48bb-a611-a0f17e8d1051",
"name": "Spawner (312)",
"location": [
1226,
554,
-12
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1226,
"y1": 554,
"z1": -12,
"x2": 1227,
"y2": 555,
"z2": -12
},
"walkingRange": 5,
"entries": [
{
"name": "GypsyBanker",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "305ecea0-47a1-4561-bf25-5d879a152003",
"name": "Spawner (312)",
"location": [
859,
698,
-40
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 859,
"y1": 698,
"z1": -40,
"x2": 860,
"y2": 699,
"z2": -40
},
"walkingRange": 5,
"entries": [
{
"name": "Jeweler",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "32050353-d0d9-4b06-afee-a65fae031a98",
"name": "Spawner (312)",
"location": [
896,
610,
-40
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 896,
"y1": 610,
"z1": -40,
"x2": 897,
"y2": 611,
"z2": -40
},
"walkingRange": 5,
"entries": [
{
"name": "TailorGuildmaster",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "33de0f8c-f6ba-4e9b-a09b-dc36c96db2ea",
"name": "Spawner (312)",
"location": [
1394,
441,
13
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1394,
"y1": 441,
"z1": 13,
"x2": 1395,
"y2": 442,
"z2": 13
},
"walkingRange": 5,
"entries": [
{
"name": "FortuneTeller",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "37693d18-5f7b-4461-b8a3-49202500e8da",
"name": "Spawner (312)",
"location": [
1235,
543,
-15
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1235,
"y1": 543,
"z1": -15,
"x2": 1236,
"y2": 544,
"z2": -15
},
"walkingRange": 5,
"entries": [
{
"name": "FortuneTeller",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "3ba1aca3-914a-4c73-91b0-12e42056659e",
"name": "Spawner (312)",
"location": [
1499,
619,
-19
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1499,
"y1": 619,
"z1": -19,
"x2": 1500,
"y2": 620,
"z2": -19
},
"walkingRange": 5,
"entries": [
{
"name": "AnimalTrainer",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "4d6ef24f-8252-459b-a03b-d6fdaeb96597",
"name": "Spawner (312)",
"location": [
872,
586,
-40
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 872,
"y1": 586,
"z1": -40,
"x2": 873,
"y2": 587,
"z2": -40
},
"walkingRange": 5,
"entries": [
{
"name": "Healer",
"maxCount": 1,
"probability": 100
},
{
"name": "HealerGuildmaster",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "4e5b8807-7ced-4f40-ae49-c4507b82fb78",
"name": "Spawner (312)",
"location": [
1253,
588,
-19
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1253,
"y1": 588,
"z1": -19,
"x2": 1254,
"y2": 589,
"z2": -19
},
"walkingRange": 5,
"entries": [
{
"name": "Tinker",
"maxCount": 1,
"probability": 100
},
{
"name": "TinkerGuildmaster",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "5053b0d7-ca6f-4156-bb35-28f937b1db6b",
"name": "Spawner (312)",
"location": [
824,
602,
-40
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 824,
"y1": 602,
"z1": -40,
"x2": 825,
"y2": 603,
"z2": -40
},
"walkingRange": 5,
"entries": [
{
"name": "Provisioner",
"maxCount": 1,
"probability": 100
},
{
"name": "Cobbler",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "52da389e-73f7-493e-b830-88dc0c4525f4",
"name": "Spawner (312)",
"location": [
1598,
539,
-19
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1598,
"y1": 539,
"z1": -19,
"x2": 1599,
"y2": 540,
"z2": -19
},
"walkingRange": 5,
"entries": [
{
"name": "Provisioner",
"maxCount": 1,
"probability": 100
},
{
"name": "Cobbler",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "5568a6cc-21a3-4550-9cc2-3ad836c7983b",
"name": "Spawner (312)",
"location": [
1600,
552,
-16
],
"map": "Ilshenar",
"count": 3,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1600,
"y1": 552,
"z1": -16,
"x2": 1601,
"y2": 553,
"z2": -16
},
"walkingRange": 5,
"entries": [
{
"name": "Tailor",
"maxCount": 1,
"probability": 100
},
{
"name": "Weaver",
"maxCount": 1,
"probability": 100
},
{
"name": "TailorGuildmaster",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "5d0135b3-074b-49ae-b850-25281059b466",
"name": "Spawner (312)",
"location": [
575,
537,
-69
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 575,
"y1": 537,
"z1": -69,
"x2": 576,
"y2": 538,
"z2": -69
},
"walkingRange": 5,
"entries": [
{
"name": "Healer",
"maxCount": 1,
"probability": 100
},
{
"name": "HealerGuildmaster",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "6670bd00-6ae7-43fd-a102-f77c877c6107",
"name": "Spawner (312)",
"location": [
1518,
619,
-19
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1518,
"y1": 619,
"z1": -19,
"x2": 1519,
"y2": 620,
"z2": -19
},
"walkingRange": 5,
"entries": [
{
"name": "Healer",
"maxCount": 1,
"probability": 100
},
{
"name": "HealerGuildmaster",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "68189f98-29d3-49e2-a415-c57862584b26",
"name": "Spawner (312)",
"location": [
1628,
548,
-11
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1628,
"y1": 548,
"z1": -11,
"x2": 1629,
"y2": 549,
"z2": -11
},
"walkingRange": 5,
"entries": [
{
"name": "Healer",
"maxCount": 1,
"probability": 100
},
{
"name": "HealerGuildmaster",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "69fd06d1-04cb-457e-bbd9-e02475f6c4a8",
"name": "Spawner (312)",
"location": [
896,
610,
-40
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 896,
"y1": 610,
"z1": -40,
"x2": 897,
"y2": 611,
"z2": -40
},
"walkingRange": 5,
"entries": [
{
"name": "Tailor",
"maxCount": 1,
"probability": 100
},
{
"name": "Weaver",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "6ce1b420-27ed-4adf-9ba2-0eeb9b0600fe",
"name": "Spawner (312)",
"location": [
826,
679,
-40
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 826,
"y1": 679,
"z1": -40,
"x2": 827,
"y2": 680,
"z2": -40
},
"walkingRange": 5,
"entries": [
{
"name": "Provisioner",
"maxCount": 1,
"probability": 100
},
{
"name": "Cobbler",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "724e9d36-13e4-4abc-ac60-18aa45fd712f",
"name": "Spawner (312)",
"location": [
792,
665,
0
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 792,
"y1": 665,
"z1": 0,
"x2": 793,
"y2": 666,
"z2": 0
},
"walkingRange": 5,
"entries": [
{
"name": "Blacksmith",
"maxCount": 1,
"probability": 100
},
{
"name": "BlacksmithGuildmaster",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "751c4f29-04b6-4c50-b914-591862159429",
"name": "Spawner (312)",
"location": [
808,
586,
-40
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 808,
"y1": 586,
"z1": -40,
"x2": 809,
"y2": 587,
"z2": -40
},
"walkingRange": 5,
"entries": [
{
"name": "Armorer",
"maxCount": 1,
"probability": 100
},
{
"name": "Weaponsmith",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "7c9b9466-17bc-4285-8c04-294fa9b2b885",
"name": "Spawner (312)",
"location": [
1400,
434,
-11
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1400,
"y1": 434,
"z1": -11,
"x2": 1401,
"y2": 435,
"z2": -11
},
"walkingRange": 5,
"entries": [
{
"name": "GypsyMaiden",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "81fc796d-04ed-48fb-a783-ad6ce619b116",
"name": "Spawner (312)",
"location": [
808,
697,
-40
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 808,
"y1": 697,
"z1": -40,
"x2": 809,
"y2": 698,
"z2": -40
},
"walkingRange": 5,
"entries": [
{
"name": "Armorer",
"maxCount": 1,
"probability": 100
},
{
"name": "Weaponsmith",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "826d7ee8-c78b-47ea-9ead-b30014afbe4d",
"name": "Spawner (312)",
"location": [
791,
618,
0
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 791,
"y1": 618,
"z1": 0,
"x2": 792,
"y2": 619,
"z2": 0
},
"walkingRange": 5,
"entries": [
{
"name": "StoneCrafter",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "84e30990-a039-4283-9bf3-00d8e70489de",
"name": "Spawner (312)",
"location": [
840,
707,
0
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 840,
"y1": 707,
"z1": 0,
"x2": 841,
"y2": 708,
"z2": 0
},
"walkingRange": 5,
"entries": [
{
"name": "InnKeeper",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "93dc7896-715b-44ad-b6e5-01a37dd42f81",
"name": "Spawner (312)",
"location": [
1405,
439,
2
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1405,
"y1": 439,
"z1": 2,
"x2": 1406,
"y2": 440,
"z2": 2
},
"walkingRange": 5,
"entries": [
{
"name": "GypsyBanker",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "9a08c2d8-b7b6-4b2f-b550-008e42f3a68b",
"name": "Spawner (312)",
"location": [
855,
603,
-40
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 855,
"y1": 603,
"z1": -40,
"x2": 856,
"y2": 604,
"z2": -40
},
"walkingRange": 5,
"entries": [
{
"name": "Banker",
"maxCount": 1,
"probability": 100
},
{
"name": "Minter",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "9c4eb8ed-3851-4ff2-80a6-a0c6f6c3f948",
"name": "Spawner (312)",
"location": [
774,
1144,
-30
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 774,
"y1": 1144,
"z1": -30,
"x2": 775,
"y2": 1145,
"z2": -30
},
"walkingRange": 5,
"entries": [
{
"name": "InnKeeper",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "9fffcfc7-2091-4013-b643-205c9567c311",
"name": "Spawner (312)",
"location": [
1505,
611,
-19
],
"map": "Ilshenar",
"count": 3,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1505,
"y1": 611,
"z1": -19,
"x2": 1506,
"y2": 612,
"z2": -19
},
"walkingRange": 5,
"entries": [
{
"name": "Mage",
"maxCount": 1,
"probability": 100
},
{
"name": "Alchemist",
"maxCount": 1,
"probability": 100
},
{
"name": "MageGuildmaster",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "b40eb968-c112-4c66-a331-b96a7d08622b",
"name": "Spawner (312)",
"location": [
1514,
611,
-14
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1514,
"y1": 611,
"z1": -14,
"x2": 1515,
"y2": 612,
"z2": -14
},
"walkingRange": 5,
"entries": [
{
"name": "Baker",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "b523ffff-8496-40a1-b051-f2e81e74263c",
"name": "Spawner (312)",
"location": [
1610,
556,
-19
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1610,
"y1": 556,
"z1": -19,
"x2": 1611,
"y2": 557,
"z2": -19
},
"walkingRange": 5,
"entries": [
{
"name": "Banker",
"maxCount": 1,
"probability": 100
},
{
"name": "Minter",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "ba48a4cb-841e-4be5-8ef9-1f06970d1829",
"name": "Spawner (312)",
"location": [
1093,
955,
-38
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1093,
"y1": 955,
"z1": -38,
"x2": 1094,
"y2": 956,
"z2": -38
},
"walkingRange": 5,
"entries": [
{
"name": "Healer",
"maxCount": 1,
"probability": 100
},
{
"name": "HealerGuildmaster",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "bae2beb6-304b-4002-b459-680d881199e5",
"name": "Spawner (312)",
"location": [
1566,
1049,
-8
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1566,
"y1": 1049,
"z1": -8,
"x2": 1567,
"y2": 1050,
"z2": -8
},
"walkingRange": 5,
"entries": [
{
"name": "InnKeeper",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "bce87417-e533-491a-8a6a-734227db69db",
"name": "Spawner (312)",
"location": [
1225,
563,
-18
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1225,
"y1": 563,
"z1": -18,
"x2": 1226,
"y2": 564,
"z2": -18
},
"walkingRange": 5,
"entries": [
{
"name": "GypsyAnimalTrainer",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "c8e54c5c-c4fb-4aa2-8da2-40d6c7c23d72",
"name": "Spawner (312)",
"location": [
1605,
541,
-13
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1605,
"y1": 541,
"z1": -13,
"x2": 1606,
"y2": 542,
"z2": -13
},
"walkingRange": 5,
"entries": [
{
"name": "Jeweler",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "ce3b9e5a-5028-4768-86ca-ebc7591eb49d",
"name": "Spawner (312)",
"location": [
840,
571,
0
],
"map": "Ilshenar",
"count": 3,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 840,
"y1": 571,
"z1": 0,
"x2": 841,
"y2": 572,
"z2": 0
},
"walkingRange": 5,
"entries": [
{
"name": "Mage",
"maxCount": 1,
"probability": 100
},
{
"name": "Glassblower",
"maxCount": 1,
"probability": 100
},
{
"name": "MageGuildmaster",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "d10ff188-6468-434f-b032-dc92db16a183",
"name": "Spawner (312)",
"location": [
284,
536,
-24
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 284,
"y1": 536,
"z1": -24,
"x2": 285,
"y2": 537,
"z2": -24
},
"walkingRange": 5,
"entries": [
{
"name": "Healer",
"maxCount": 1,
"probability": 100
},
{
"name": "HealerGuildmaster",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "d3f80bac-4411-4382-8781-582340ff4f03",
"name": "Spawner (312)",
"location": [
1620,
554,
-20
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1620,
"y1": 554,
"z1": -20,
"x2": 1621,
"y2": 555,
"z2": -20
},
"walkingRange": 5,
"entries": [
{
"name": "InnKeeper",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "de233679-dda4-4826-be6f-66a66bc3ed0c",
"name": "Spawner (312)",
"location": [
869,
625,
-40
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 869,
"y1": 625,
"z1": -40,
"x2": 870,
"y2": 626,
"z2": -40
},
"walkingRange": 5,
"entries": [
{
"name": "Scribe",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "e9c58794-1e68-4a12-8e96-fe9695224e36",
"name": "Spawner (312)",
"location": [
1364,
1051,
-13
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1364,
"y1": 1051,
"z1": -13,
"x2": 1365,
"y2": 1052,
"z2": -13
},
"walkingRange": 5,
"entries": [
{
"name": "Healer",
"maxCount": 1,
"probability": 100
},
{
"name": "HealerGuildmaster",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "ee8d0d83-c586-49d8-8de2-038e1d6f2848",
"name": "Spawner (312)",
"location": [
682,
297,
-41
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 682,
"y1": 297,
"z1": -41,
"x2": 683,
"y2": 298,
"z2": -41
},
"walkingRange": 5,
"entries": [
{
"name": "Healer",
"maxCount": 1,
"probability": 100
},
{
"name": "HealerGuildmaster",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "f38481b6-0a95-44e0-af74-8cc94195e282",
"name": "Spawner (312)",
"location": [
369,
1432,
15
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 369,
"y1": 1432,
"z1": 15,
"x2": 370,
"y2": 1433,
"z2": 15
},
"walkingRange": 5,
"entries": [
{
"name": "Healer",
"maxCount": 1,
"probability": 100
},
{
"name": "HealerGuildmaster",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "f4a51238-7658-469e-9ff3-eec8ba035f95",
"name": "Spawner (312)",
"location": [
665,
665,
-35
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 665,
"y1": 665,
"z1": -35,
"x2": 666,
"y2": 666,
"z2": -35
},
"walkingRange": 5,
"entries": [
{
"name": "InnKeeper",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "fd5a6f5e-87cf-40c3-bbf6-d42f59e8f730",
"name": "Spawner (312)",
"location": [
766,
641,
0
],
"map": "Ilshenar",
"count": 2,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 766,
"y1": 641,
"z1": 0,
"x2": 767,
"y2": 642,
"z2": 0
},
"walkingRange": 5,
"entries": [
{
"name": "Tinker",
"maxCount": 1,
"probability": 100
},
{
"name": "TinkerGuildmaster",
"maxCount": 1,
"probability": 100
}
]
},
{
"$type": "Spawner",
"guid": "ff91a9cc-14c5-4a0d-a138-20f24c30cee0",
"name": "Spawner (312)",
"location": [
1407,
428,
-8
],
"map": "Ilshenar",
"count": 1,
"minDelay": "00:05:00",
"maxDelay": "00:10:00",
"team": 0,
"spawnBounds": {
"x1": 1407,
"y1": 428,
"z1": -8,
"x2": 1408,
"y2": 429,
"z2": -8
},
"walkingRange": 5,
"entries": [
{
"name": "FortuneTeller",
"maxCount": 1,
"probability": 100
}
]
}
]