### Additions * Adds `[exportspawners <relative json file path to distro>` * If no path is provided, it will be saved to the `Data\Spawns` folder with the current timestamp as the file name. * Supports global, facet, region, multi, and area * Fixes client disconnect for bad spawner generation command. * Moves spawner commands to their own folder. * Adds GUIDs for spawners. This allows for easy replacement during import to reduce duplication. * Allows exporting the name of the spawner. * Fixes globbing when using [generatespawners * Adds [convertpremiumspawners to convert Premium Spawners (from Neruns distro) Possibly in .NET 6 serializing JSON will be more performant using JSON nodes. ### Screenshots   
501 lines
14 KiB
JSON
501 lines
14 KiB
JSON
[
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "eb0c4cd9-3ff1-4144-8f50-805c4f595887",
|
|
"name": "Spawner (405)",
|
|
"location": [989, 520, -50],
|
|
"map": "Malas",
|
|
"count": 403,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{ "name": "Banker", "maxCount": 402, "probability": 100 },
|
|
{ "name": "Minter", "maxCount": 1, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "cdc58631-7322-4c50-97ea-b25e61d9bd56",
|
|
"name": "Spawner (405)",
|
|
"location": [976, 512, -50],
|
|
"map": "Malas",
|
|
"count": 403,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{ "name": "Blacksmith", "maxCount": 402, "probability": 100 },
|
|
{ "name": "BlacksmithGuildmaster", "maxCount": 1, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "464a5544-69a9-40ce-8529-8a68c40fe106",
|
|
"name": "Spawner (405)",
|
|
"location": [976, 527, -50],
|
|
"map": "Malas",
|
|
"count": 406,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{ "name": "Tailor", "maxCount": 402, "probability": 100 },
|
|
{ "name": "Weaver", "maxCount": 1, "probability": 100 },
|
|
{ "name": "TailorGuildmaster", "maxCount": 1, "probability": 100 },
|
|
{ "name": "Tanner", "maxCount": 1, "probability": 100 },
|
|
{ "name": "Furtrader", "maxCount": 1, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "baa74329-c713-41de-b132-bef2a017cc01",
|
|
"name": "Spawner (405)",
|
|
"location": [1016, 514, -70],
|
|
"map": "Malas",
|
|
"count": 402,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [{ "name": "KeeperOfChivalry", "maxCount": 402, "probability": 100 }]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "9a22cbaf-db7b-4564-bac8-300d72969774",
|
|
"name": "Spawner (405)",
|
|
"location": [961, 517, -70],
|
|
"map": "Malas",
|
|
"count": 402,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [{ "name": "KeeperOfChivalry", "maxCount": 402, "probability": 100 }]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "561b96b3-d578-45b0-a152-665e608d2d5e",
|
|
"name": "Spawner (405)",
|
|
"location": [1004, 527, -50],
|
|
"map": "Malas",
|
|
"count": 405,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{ "name": "HolyMage", "maxCount": 402, "probability": 100 },
|
|
{ "name": "Herbalist", "maxCount": 1, "probability": 100 },
|
|
{ "name": "Alchemist", "maxCount": 1, "probability": 100 },
|
|
{ "name": "CustomHairstylist", "maxCount": 1, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "055a888a-d617-48fc-9968-02701cfe7a5a",
|
|
"name": "Spawner (405)",
|
|
"location": [1003, 512, -50],
|
|
"map": "Malas",
|
|
"count": 406,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{ "name": "Tinker", "maxCount": 402, "probability": 100 },
|
|
{ "name": "TinkerGuildmaster", "maxCount": 1, "probability": 100 },
|
|
{ "name": "Carpenter", "maxCount": 1, "probability": 100 },
|
|
{ "name": "Architect", "maxCount": 1, "probability": 100 },
|
|
{ "name": "RealEstateBroker", "maxCount": 1, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "8a2afa1f-b4b7-4518-841a-d4151c05e909",
|
|
"name": "Spawner (405)",
|
|
"location": [993, 511, -50],
|
|
"map": "Malas",
|
|
"count": 404,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{ "name": "Provisioner", "maxCount": 402, "probability": 100 },
|
|
{ "name": "Cobbler", "maxCount": 1, "probability": 100 },
|
|
{ "name": "Jeweler", "maxCount": 1, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "0adb3a0b-2029-4ce4-a312-5c4ebb154f16",
|
|
"name": "Spawner (405)",
|
|
"location": [989, 527, -50],
|
|
"map": "Malas",
|
|
"count": 402,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [{ "name": "InnKeeper", "maxCount": 402, "probability": 100 }]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "a568f661-2ccc-4c04-8b17-6140365ac4d6",
|
|
"name": "Spawner (405)",
|
|
"location": [1027, 494, -70],
|
|
"map": "Malas",
|
|
"count": 402,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [{ "name": "AnimalTrainer", "maxCount": 402, "probability": 100 }]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "f6cc425c-8333-43f0-a97e-426b9a7f7183",
|
|
"name": "Spawner (405)",
|
|
"location": [1029, 520, -55],
|
|
"map": "Malas",
|
|
"count": 403,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{ "name": "Healer", "maxCount": 402, "probability": 100 },
|
|
{ "name": "HealerGuildmaster", "maxCount": 1, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "12465568-02e0-4724-a062-80d38c208413",
|
|
"name": "Spawner (405)",
|
|
"location": [950, 520, -55],
|
|
"map": "Malas",
|
|
"count": 403,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{ "name": "Healer", "maxCount": 402, "probability": 100 },
|
|
{ "name": "HealerGuildmaster", "maxCount": 1, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "185203fe-b60b-4bc1-b216-139ad43298da",
|
|
"name": "Spawner (405)",
|
|
"location": [1977, 1365, -80],
|
|
"map": "Malas",
|
|
"count": 403,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{ "name": "Blacksmith", "maxCount": 402, "probability": 100 },
|
|
{ "name": "BlacksmithGuildmaster", "maxCount": 1, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "4c4ec3a1-37de-4340-8474-811c5efe27ca",
|
|
"name": "Spawner (405)",
|
|
"location": [1992, 1315, -90],
|
|
"map": "Malas",
|
|
"count": 402,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [{ "name": "AnimalTrainer", "maxCount": 402, "probability": 100 }]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "744a4180-6bd2-4ed6-a684-b0340098d695",
|
|
"name": "Spawner (405)",
|
|
"location": [2011, 1326, -80],
|
|
"map": "Malas",
|
|
"count": 403,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{ "name": "Provisioner", "maxCount": 402, "probability": 100 },
|
|
{ "name": "Cobbler", "maxCount": 1, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "1e3b38b2-3a73-4f25-87fa-4b254b148060",
|
|
"name": "Spawner (405)",
|
|
"location": [2017, 1356, -90],
|
|
"map": "Malas",
|
|
"count": 402,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [{ "name": "Baker", "maxCount": 402, "probability": 100 }]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "3d7fe104-6823-4dd7-9544-866aa0c1df70",
|
|
"name": "Spawner (405)",
|
|
"location": [2027, 1353, -90],
|
|
"map": "Malas",
|
|
"count": 405,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{ "name": "TavernKeeper", "maxCount": 402, "probability": 100 },
|
|
{ "name": "Waiter", "maxCount": 1, "probability": 100 },
|
|
{ "name": "Cook", "maxCount": 1, "probability": 100 },
|
|
{ "name": "Barkeeper", "maxCount": 1, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "34b5920d-0a0a-4ac2-8b86-8c2ebbed7908",
|
|
"name": "Spawner (405)",
|
|
"location": [2023, 1379, -80],
|
|
"map": "Malas",
|
|
"count": 404,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{ "name": "Mage", "maxCount": 402, "probability": 100 },
|
|
{ "name": "Alchemist", "maxCount": 1, "probability": 100 },
|
|
{ "name": "MageGuildmaster", "maxCount": 1, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "614fee1e-655c-4857-861b-1deaf986462e",
|
|
"name": "Spawner (405)",
|
|
"location": [2025, 1387, -80],
|
|
"map": "Malas",
|
|
"count": 404,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{ "name": "Herbalist", "maxCount": 402, "probability": 100 },
|
|
{ "name": "Alchemist", "maxCount": 1, "probability": 100 },
|
|
{ "name": "CustomHairstylist", "maxCount": 1, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "93d5dde2-eac7-48b1-90d1-d89956efb135",
|
|
"name": "Spawner (405)",
|
|
"location": [2045, 1397, -90],
|
|
"map": "Malas",
|
|
"count": 402,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [{ "name": "Jeweler", "maxCount": 402, "probability": 100 }]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "0aee480a-4342-4ff4-954e-38b8d0e82625",
|
|
"name": "Spawner (405)",
|
|
"location": [2048, 1343, -85],
|
|
"map": "Malas",
|
|
"count": 403,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{ "name": "Banker", "maxCount": 402, "probability": 100 },
|
|
{ "name": "Minter", "maxCount": 1, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "6bad1c2f-ee34-494d-908b-4756cf0d4aee",
|
|
"name": "Spawner (405)",
|
|
"location": [2037, 1311, -85],
|
|
"map": "Malas",
|
|
"count": 402,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [{ "name": "InnKeeper", "maxCount": 402, "probability": 100 }]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "8c4b665f-57c6-4989-972a-ce73228d48cd",
|
|
"name": "Spawner (405)",
|
|
"location": [2066, 1282, -80],
|
|
"map": "Malas",
|
|
"count": 403,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{ "name": "Tinker", "maxCount": 402, "probability": 100 },
|
|
{ "name": "TinkerGuildmaster", "maxCount": 1, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "e9186f59-b811-47b4-ad41-65acbcc0767f",
|
|
"name": "Spawner (405)",
|
|
"location": [2060, 1283, -80],
|
|
"map": "Malas",
|
|
"count": 404,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{ "name": "Carpenter", "maxCount": 402, "probability": 100 },
|
|
{ "name": "Architect", "maxCount": 1, "probability": 100 },
|
|
{ "name": "RealEstateBroker", "maxCount": 1, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "a6639682-e271-4868-88f7-ecc4527cc0dd",
|
|
"name": "Spawner (405)",
|
|
"location": [2083, 1322, -80],
|
|
"map": "Malas",
|
|
"count": 404,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{ "name": "Tailor", "maxCount": 402, "probability": 100 },
|
|
{ "name": "Weaver", "maxCount": 1, "probability": 100 },
|
|
{ "name": "TailorGuildmaster", "maxCount": 1, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "f681215a-6f71-43df-b35b-f8eced1a5902",
|
|
"name": "Spawner (405)",
|
|
"location": [2078, 1327, -80],
|
|
"map": "Malas",
|
|
"count": 403,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{ "name": "Tanner", "maxCount": 402, "probability": 100 },
|
|
{ "name": "Furtrader", "maxCount": 1, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "26bb2b1a-76fa-4615-ab02-32a510904bc6",
|
|
"name": "Spawner (405)",
|
|
"location": [2068, 1372, -75],
|
|
"map": "Malas",
|
|
"count": 403,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{ "name": "Healer", "maxCount": 402, "probability": 100 },
|
|
{ "name": "HealerGuildmaster", "maxCount": 1, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "cc995236-3575-40b3-b0a8-8837b80e72dc",
|
|
"name": "Spawner (405)",
|
|
"location": [1056, 1434, -85],
|
|
"map": "Malas",
|
|
"count": 402,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [{ "name": "InnKeeper", "maxCount": 402, "probability": 100 }]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "a34d297a-48f2-440b-bfce-043d0aaf2a16",
|
|
"name": "Spawner (405)",
|
|
"location": [1050, 1434, -85],
|
|
"map": "Malas",
|
|
"count": 404,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 0,
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{ "name": "Waiter", "maxCount": 402, "probability": 100 },
|
|
{ "name": "Cook", "maxCount": 1, "probability": 100 },
|
|
{ "name": "Barkeeper", "maxCount": 1, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"type": "Spawner",
|
|
"guid": "009d2a99-77f6-4071-b88c-58919f4a63e5",
|
|
"name": "Spawner (405)",
|
|
"location": [1042, 1444, -90],
|
|
"map": "Malas",
|
|
"count": 2,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"homeRange": 4,
|
|
"walkingRange": 6,
|
|
"entries": [
|
|
{ "name": "AnimalTrainer", "maxCount": 1, "probability": 100 },
|
|
{ "name": "Veterinarian", "maxCount": 1, "probability": 100 }
|
|
]
|
|
}
|
|
]
|