The migration step pretty-printed every file (JSON.stringify indent 2), exploding location/entries/spawnBounds across many lines (~250k-line diff). Restore the original compact layout: a container renders inline only when all its values are scalars and the line fits in 100 columns, so `location`/`spawnBounds`/each entry inline while `entries` stays expanded (uniform across single- and multi-entry spawners). UTF-8 without BOM (the old BOM was an artifact of the lost external exporter; the in-game [ExportSpawners already writes no BOM). Whitespace-only; values unchanged. Cuts the data diff ~95%. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
89 lines
2.8 KiB
JSON
89 lines
2.8 KiB
JSON
[
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "0182a6f9-bdde-4ca6-95c8-a7c146b1a0e1",
|
|
"name": "Spawner (307)",
|
|
"location": [1224, 1494, -28],
|
|
"map": "Ilshenar",
|
|
"count": 10,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": { "x1": 1194, "y1": 1464, "z1": -128, "x2": 1255, "y2": 1525, "z2": 128 },
|
|
"walkingRange": 30,
|
|
"entries": [
|
|
{ "name": "SkeletalKnight", "maxCount": 5, "probability": 100 },
|
|
{ "name": "BoneKnight", "maxCount": 5, "probability": 100 },
|
|
{ "name": "LavaLizard", "maxCount": 5, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "2694470a-4c93-488c-96a3-87938993d306",
|
|
"name": "Spawner (307)",
|
|
"location": [1171, 1511, -68],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": { "x1": 1166, "y1": 1506, "z1": -128, "x2": 1177, "y2": 1517, "z2": 128 },
|
|
"walkingRange": 5,
|
|
"entries": [
|
|
{ "name": "TreasureChestLevel3", "maxCount": 1, "probability": 100 },
|
|
{ "name": "TreasureChestLevel4", "maxCount": 1, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "46e1d6c5-ebe2-4575-beeb-3e35754caef7",
|
|
"name": "Spawner (307)",
|
|
"location": [1310, 1519, -28],
|
|
"map": "Ilshenar",
|
|
"count": 21,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": { "x1": 1260, "y1": 1469, "z1": -128, "x2": 1361, "y2": 1570, "z2": 128 },
|
|
"walkingRange": 50,
|
|
"entries": [
|
|
{ "name": "Ratman", "maxCount": 7, "probability": 100 },
|
|
{ "name": "RatmanMage", "maxCount": 7, "probability": 100 },
|
|
{ "name": "EarthElemental", "maxCount": 7, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "a96346f4-9aca-4dd6-b1ff-e823d8741a19",
|
|
"name": "Spawner (307)",
|
|
"location": [1224, 1524, -28],
|
|
"map": "Ilshenar",
|
|
"count": 10,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": { "x1": 1194, "y1": 1494, "z1": -128, "x2": 1255, "y2": 1555, "z2": 128 },
|
|
"walkingRange": 30,
|
|
"entries": [
|
|
{ "name": "SkeletalKnight", "maxCount": 5, "probability": 100 },
|
|
{ "name": "BoneKnight", "maxCount": 5, "probability": 100 },
|
|
{ "name": "LavaLizard", "maxCount": 5, "probability": 100 }
|
|
]
|
|
},
|
|
{
|
|
"$type": "Spawner",
|
|
"guid": "c6766cd8-89ac-4169-a2d9-8216a74369a4",
|
|
"name": "Spawner (307)",
|
|
"location": [1181, 1512, -68],
|
|
"map": "Ilshenar",
|
|
"count": 1,
|
|
"minDelay": "00:05:00",
|
|
"maxDelay": "00:10:00",
|
|
"team": 0,
|
|
"spawnBounds": { "x1": 1171, "y1": 1502, "z1": -128, "x2": 1192, "y2": 1523, "z2": 128 },
|
|
"walkingRange": 10,
|
|
"entries": [
|
|
{ "name": "SkeletalDragon", "maxCount": 1, "probability": 100 }
|
|
]
|
|
}
|
|
]
|