Example
Here is an example of a full, working invasion with an initial wave of zombies, a second wave of zombie reinforcements, and a final, named boss zombie.
File Locations

loot/onslaught/zombie_boss.json
{
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "item",
"name": "minecraft:rotten_flesh",
"weight": 1,
"functions": [
{ "function": "set_count", "count": { "min": 4, "max": 8 } },
{ "function": "looting_enchant", "count": { "min": 0, "max": 1 } }
]
}
]
},
{
"conditions": [{ "condition": "killed_by_player" }],
"rolls": 1,
"entries": [
{ "type": "item", "name": "minecraft:iron_helmet", "weight": 1 },
{ "type": "item", "name": "minecraft:iron_chestplate", "weight": 1 }
]
},
{
"conditions": [{ "condition": "killed_by_player" }],
"rolls": 1,
"entries": [
{ "type": "item", "name": "minecraft:iron_leggings", "weight": 1 },
{ "type": "item", "name": "minecraft:iron_boots", "weight": 1 }
]
},
{
"conditions": [{ "condition": "killed_by_player" }],
"rolls": 1,
"entries": [{ "type": "item", "name": "minecraft:shield", "weight": 1 }]
}
]
}
templates/invasion/zombie_horde.json
{
"zombie": {
"name": "Zombie Horde",
"selector": {
"weight": 1,
"dimension": {
"type": "include",
"dimensions": [0]
}
},
"messages": {
"start": "A horde of zombies appear!",
"end": "The zombie horde has been neutralized!",
"warn": {
"ticks": 12000,
"message": "The faint smell of zombie flesh hangs in the morning air..."
}
},
"waves": [
{
"delayTicks": [0],
"groups": [
{
"weight": 1,
"forceSpawn": true,
"mobs": [
{
"id": "zombie",
"count": [12, 16],
"spawn": {
"type": "ground",
"light": [0, 7],
"rangeXZ": [16, 32]
}
}
]
}
]
},
{
"delayTicks": [1800, 2400],
"groups": [
{
"weight": 1,
"forceSpawn": true,
"mobs": [
{
"id": "zombie_reinforcement_00",
"count": [8, 12],
"spawn": {
"type": "ground",
"light": [0, 15],
"rangeXZ": [16, 32]
}
}
]
},
{
"weight": 1,
"forceSpawn": true,
"mobs": [
{
"id": "zombie_reinforcement_01",
"count": [8, 12],
"spawn": {
"type": "ground",
"light": [0, 15],
"rangeXZ": [16, 32]
}
}
]
}
]
},
{
"delayTicks": [3600],
"groups": [
{
"weight": 1,
"forceSpawn": true,
"mobs": [
{
"id": "zombie_boss",
"count": [1],
"spawn": {
"type": "ground",
"light": [0, 15],
"rangeXZ": [16, 24]
}
}
]
}
]
}
]
}
}
templates/mob/zombies.json
{
"zombie": {
"id": "minecraft:zombie"
},
"zombie_reinforcement_00": {
"id": "minecraft:husk",
"nbt": {
"HandItems": [
{ "Count": 1, "id": "minecraft:wooden_sword" },
{ "Count": 1, "id": "minecraft:shield" }
],
"HandDropChances": [0.0, 0.0],
"ForgeData": {
"Onslaught": {
"CustomAI": {
"CounterAttack": { "Chance": 0.2 }
}
}
}
}
},
"zombie_reinforcement_01": {
"id": "minecraft:zombie",
"nbt": {
"ArmorItems": [
{ "Count": 1, "id": "minecraft:leather_boots" },
{ "Count": 1, "id": "minecraft:leather_leggings" },
{ "Count": 1, "id": "minecraft:leather_chestplate" },
{ "Count": 1, "id": "minecraft:leather_helmet" }
],
"ArmorDropChances": [0.0, 0.0, 0.0, 0.0],
"ForgeData": {
"Onslaught": {
"CustomAI": {
"Lunge": { "Range": 6, "SpeedModifier": 0.3 }
}
}
}
}
},
"zombie_boss": {
"id": "minecraft:husk",
"effects": [
{
"id": "minecraft:strength",
"duration": 4800,
"amplifier": 0,
"showParticles": true
}
],
"extraLootTables": ["onslaught:zombie_boss"],
"nbt": {
"CustomName": "Bob Zombie",
"HandItems": [
{ "Count": 1, "id": "minecraft:iron_sword" },
{ "Count": 1, "id": "minecraft:shield" }
],
"HandDropChances": [0.0, 0.0],
"ArmorItems": [
{ "Count": 1, "id": "minecraft:iron_boots" },
{ "Count": 1, "id": "minecraft:iron_leggings" },
{ "Count": 1, "id": "minecraft:iron_chestplate" },
{ "Count": 1, "id": "minecraft:iron_helmet" }
],
"ArmorDropChances": [0.0, 0.0, 0.0, 0.0],
"ForgeData": {
"Onslaught": {
"CustomAI": {
"CounterAttack": { "Chance": 0.2 },
"Lunge": { "Range": 6, "SpeedModifier": 0.3 },
"Mining": { "Range": 4, "SpeedModifier": 1 }
}
}
}
}
}
}