Configuration · Minecraft 26.3 / NeoForge

Configuration

Configure mob participation, attack targets, abilities and base stats alongside spawn locations and general invasion rules.

Open and navigate

This guide describes the current Invasion Mod source for Minecraft 26.3 / NeoForge. From Minecraft's Mods screen, select Invasion Mod and open Config. This is a client editor for files in that Minecraft instance's config/ directory.

AreaUse
Main ConfigGeneral options in invasion_config.cfg. Use the page arrows to browse alphabetically sorted keys. Click toggles or edit value fields; click spawn-layer to cycle its four choices.
EntitiesMob settings in invasion_mod_mobs.json: participation mode, boss flag, cost, Abilities and Themes. Attack-mode entries show a replacement picker instead.
SquadsGroups, member counts, costs and theme assignments. Follow Custom Squads.
ThemesPhase pools and entity assignments. Follow Custom Themes.
GlobalsOpened from Entities: bulk costs, building materials and randomization, plus fallback selection and Restrict to vanilla mobs. These actions edit the shared mob draft, including entries hidden by the current search; they are not Main Config options.

In Entities, search by all or part of the entity ID, such as invmod:zombie. Search is case-insensitive. Enter theme:SIEGE to filter by theme membership, including disabled members. Clear the search to see all entries; the arrow buttons change pages. Main Config has page navigation but no search field.

Add neutral opens the picker for additional eligible registered mobs. Search that picker by ID or display name and click an entry to add it to the draft. An empty result can mean it is already configured or is not eligible; it does not install another mod. Return with Back, then review the new entry's mode, cost and themes before saving. A selected mob is not a guaranteed wave spawn.

For building materials, the block picker supports ID/name search and page arrows. It offers blocks with an item form and full-block collision shape. Selecting a material returns to the parent editor. Done or Back in these dialogs does not save the file.

Page navigation and window size

Main Config lists its keys alphabetically across as many pages as the available window height requires. A taller window shows more rows per page; a smaller window or higher GUI scale shows fewer. The footer displays the current page and total, for example 2 / 4.

  1. Edit a toggle or value field, then use < or > at the bottom to move between pages. An arrow is disabled at the first or last page.
  2. Return to the earlier page to review your edit. Page changes preserve the unsaved draft; they do not save to disk.
  3. If you resize the window, the editor recalculates the page size and selects the page containing the previously first visible entry. Its position within that page can change.
  4. Choose Main Config → Save to apply the general settings. Follow the save rules before editing a different main area or closing the screen.

The Entities list also adapts to window height. Its search resets to page 1; Main Config has no search field. These arrows belong to the in-game editor, independently of this wiki's Previous/Next links.

The Core's Exchange/Mobs/Skills panels use adaptive lists and tabs rather than these editor page arrows.

Save and server setup

  1. Edit one main area at a time. Return from any subdialogs to the main configuration screen.
  2. For general options, select Main Config → Save. This writes config/invasion_config.cfg and reloads the general configuration.
  3. For mob, ability, Globals, squad or theme changes, select Entities → Save. This writes config/invasion_mod_mobs.json and refreshes the mob configuration.
  4. Check the saved confirmation, reopen the relevant area and verify the value. If an error appears, check the file and game log before assuming it was saved.
Save is not “save everything”. After saving the selected area, the editor reloads both files. Unsaved changes in the other main area are discarded. Save Main Config before making Entity edits, or save Entities before editing Main Config. Closing the editor without saving also loses its draft.

For singleplayer, use the instance running your world. For multiplayer, the server's files control the invasion; the client editor does not upload changes to a remote server. Back up the relevant server file, stop the server, merge your changes into its config/ directory, and restart. Preserve unrelated entries and the server's installed-mod settings.

Close the editor before editing files externally and reopen it afterward, so an old draft cannot overwrite your changes. Test roster changes with a new invasion: refreshing configuration does not rebuild a wave plan already in progress. Existing mobs are not a reliable check of newly configured spawn attributes.

Regenerate and restore

Regenerate is enabled in Entities. After confirmation, it immediately regenerates the mob JSON from detected defaults, including squad, theme and fallback settings, and reloads the editor. It is a reset, not a reload, and does not wait for a later Save. It does not reset the general CFG, but reloading also discards unsaved editor changes.

Keep a copy of both files before resetting. To restore a backup, close the editor and stop the world/server, replace the relevant file, then restart. To restore general defaults, move invasion_config.cfg out of the config directory while stopped; the mod creates a fresh file on startup. Regenerate is not needed to apply ordinary edits.

Current shipped mob defaults

A newly generated mob configuration uses the project's current preset of mob costs, wave base health/damage, abilities, spawn locations, theme assignments, squads and fallbacks. Existing valid user entries are read first and preserved on an ordinary refresh or mod upgrade; missing registered entries can be added with defaults. Installing an update therefore does not promise that an older world now uses the latest values.

The preset supplies five additional editable themes: BRUTES, UNDEAD, ZOMBIES, SKELETONS and PIGLIN. It includes optional-mod entries only when their registered types are available. Your installed-mod set and saved edits determine the usable roster; an unavailable registry ID does not install a companion mod.

Compare or apply the preset

  1. Back up config/invasion_mod_mobs.json and config/invasion_config.cfg from the instance/server running the world. Close the editor before external file edits.
  2. To keep an existing setup, inspect the exact ID under Entities, its Abilities and Themes. Change just the wanted values, then use Entities → Save. The current preset is not silently merged over your old entry.
  3. For a complete reset, select Entities → Regenerate and confirm. This immediately writes the detected mob defaults and reloads the editor; it does not wait for Save. This is the current button for the action sometimes called “Reset to Defaults” in release notes.
  4. Reopen Themes to review memberships and fallback choices, then test a new invasion. Existing planned waves and already spawned mobs are not rebuilt. On a dedicated server, follow server deployment; a local client reset does not update the remote server.
Regenerate replaces the whole mob configuration. It resets custom mob edits, theme/fallback choices and squads. It does not reset Main Config, but reloading the editor also discards unsaved drafts. To preserve a custom setup, edit selected values or restore your backup with the world/server stopped.

Selected current preset values

These are configured costs and adult wave baselines, not universal final stats or every built-in pool price. Native variant pools, RANDOM/RANDOMHELL, squads, fillers, equipment and wave scaling have separate rules. Use the exact registry ID; a Brute has its own entry.

MobRegistry IDConfigured costBase health / damageSpawn location
Zombieinvmod:zombie120 HP / 4default
Speedy Zombieinvmod:speedy_zombie520 HP / 4default
Speedy Zombie Bruteinvmod:speedy_zombie_brute1465 HP / 18default
Drownedinvmod:drowned220 HP / 4underwater
Drowned Bruteinvmod:drowned_brute765 HP / 18underwater
Vanilla Shulkerminecraft:shulker130 HP / 0above ground

Vanilla Shulker: the preset is Active, cost 1, health 30, damage 0, base armor 0, above-ground spawn location and no assigned wave themes. Active alone does not put it in a themed purchase pool. Assign an eligible theme and save if you want configured purchases; the configured damage value does not promise that every native special attack is harmless.

Current per-theme fallback overrides are listed with the shipped themes. Check settings after reopening: an old cost or theme list usually means the preserved user entry is still in use. For recovery, follow Regenerate and restore.

New pumpkin entries and preserved Boss flags have a worked configuration guide; an older Big Pumpkin Boss choice is kept on upgrade.

Big Pumpkin and Pumpkin Ghost defaults

The current shipped preset gives IM Big Pumpkin and IM Pumpkin Ghost separate entries in config/invasion_mod_mobs.json. Use the exact entity ID in Entities; a spawn-egg item ID is not a configuration key.

Entity IDMode / BossCost / health / damageThemes
invmod:big_pumpkinActive / on200 / 300 HP / 8MIXED, RANDOM, RANDOMHELL
invmod:pumpkin_ghostActive / off1 / 10 HP / 2None

These are budget and wave-stat baselines. Ghosts use support AI, so the damage setting does not add a normal melee attack. Big Pumpkin’s Fireproof preset is on and its type is also natively fire immune. Both use spawn_location: "default"; weapons, armor, mining and construction default to off. The separate Pumpkin Minion is a projectile, not another configurable wave mob.

  1. Back up the server/world’s mob JSON, then open Entities and search invmod:big_pumpkin. Review its Boss button, cost, Abilities and Themes.
  2. To adopt only the new boss setting, enable Boss and use Entities → Save. An older saved "boss": false remains false after an ordinary refresh or upgrade; it is not silently changed.
  3. Search invmod:pumpkin_ghost. A missing registered entry is added during loading with Active, cost 1, 10 HP and an empty theme list. Existing Ghost edits are preserved. Active with no themes does not place Ghosts into themed purchases; their helmet-death creation is a separate native mechanic.
  4. For a complete current preset, use Entities → Regenerate only after a backup. It immediately resets the entire mob configuration, including themes, squads and fallbacks, and supplies Big Pumpkin with Boss enabled. See regeneration and restore.
  5. Follow server setup, reopen the entries and test a new invasion. Extra-boss selection is random in the last phase every fifth wave from wave 15. A Ghost test also needs a loaded, living Big Pumpkin in the same dimension.

Setting a configured entry Inactive is not a blanket switch for native special spawns; see mode limits. Changing stats or themes does not rewrite mobs or phases already created. Keep a custom setup by editing only these entries instead of regenerating everything.

Mob modes and attack targets

In Entities, search for the exact registry ID and click its mode button to cycle Inactive → Active → Attack. These settings belong to config/invasion_mod_mobs.json, not Main Config.

JSON valueMeaning
"active": trueEligible for configured wave pools, squads and (when marked) the additional boss pool. Matching themes, budget, installed mods and valid spawn locations still matter.
"active": falseExcluded from those configured selections. Does not delete existing mobs, disable vanilla spawning or erase the entry's abilities.
"active": "attack"A target for invasion mobs, rather than a configured wave participant. The row shows Replace instead of cost, boss, ability and theme controls.
Built-in roster limitation in the current 26.3 source: native predefined wave pools are not generally filtered by this mode or rebuilt from the JSON costs/themes. Setting a native IM mob to Inactive is therefore not a universal off switch. Configured external mobs, Tier-2 skeleton pool entries, custom-theme membership and squads use the configured selections. Built-in extra spawns and original boss candidates have separate rules.

For supplied presets, generic Nexus behavior and a worked setup, see Vanilla and other-mod mobs. Specialized IM mutants have separate wave and boss rules.

Add a registered mob

  1. Install the required mod on the world/server first, then open Entities → Add neutral. Vanilla mobs can also be selected.
  2. Search by ID or display name and select an eligible entry. Players, armor stands, already configured entries and unavailable specialized integrations are excluded. Specialized original mobs use their IM counterparts.
  3. The new entry starts Inactive. Change it to Active, set its cost, assign a theme, and review Abilities. For a controlled test, use a custom theme containing that entry.
  4. Return to Entities → Save and follow server setup. Start a new invasion to rebuild its plan.

Cost, themes and bosses

cost is an integer with a minimum of 1 (default 5 when omitted). It controls configured pool purchases and automatic squad costs; a larger cost reduces affordability, not necessarily a fixed spawn percentage. Native predefined options can retain their own costs. RANDOM normally charges 5 for non-boss options; RANDOMHELL charges 5 for non-bosses and 20 for bosses. Squad overrides and extra spawns are separate.

themes is an array of theme names; use the row's Themes dialog to assign one or more. See Custom Themes for built-in versus custom pools. "boss": true adds an Active entry to the additional boss candidates: one boss is selected in the last phase of every fifth wave from wave 15 onward. The flag does not itself raise stats, guarantee selection or make the mob boss-only.

Attack mode and replacement

Attack targets enter the shared invasion targeting rules; normal attackability and ally protection still apply. Click Replace, search for a summonable entity ID and select it. This writes replace in the same entry. Save from Entities afterward.

When a configured Attack target dies while an active, non-discarded Nexus exists in that dimension, the mod attempts to spawn the replacement at its position and orientation, preserving its custom name. It does not copy its inventory or all entity data. This death handler does not require an invader to land the killing blow. With no replacement, an invalid/unavailable replacement, or no active Nexus, this handler creates nothing. For target-only behavior, omit replace in the file; the picker has no clear-selection button.

For example, merge this entry into the existing JSON to mark cows as targets that become IM Zombies on death. Do not replace the whole configuration with this fragment:

{
  "minecraft:cow": {
    "active": "attack",
    "replace": "invmod:zombie"
  }
}

Test with a cow near invaders in a disposable world, then repeat without an active Nexus to check the replacement condition. This feature is distinct from the automatic vanilla-to-IM conversions described on individual mob pages.

In a non-Versus Player Nexus invasion, eligible Attack Target mobs can distract invaders only while strictly closer than the owner. Selecting Attack Target does not guarantee every invader can attack that mob.

After acquiring a valid enemy, active Nexus-bound mobs can keep that combat target despite distance or lost sight. Choosing Attack Target controls eligibility, not an unconditional lock; Player Nexus and Versus retain their own priorities.

Per-mob abilities

Open Entities → Abilities on the desired registry entry. The settings below live inside its abilities object. Ability switches use JSON booleans; the height, building material and spawn location use the types shown below. Defaults vary by mob; switching an ability on permits its behavior when the mob, AI, terrain and Nexus conditions support it. It does not force the mob to perform that action continuously.

KeyEffect
weaponsAllows supported weapon equipment and pickup, including the relevant shield handling. Weapon use depends on the mob's AI.
armorAllows armor equipment and pickup, including pumpkin and melon helmets in permitted head slots. This is separate from the natural armor value below.
miningAllows timed obstacle mining and construction clearance. Ordinary navigation prefers safe existing routes before mining; Mole and explicit building-clearance exceptions apply. Unbreakable blocks, path restrictions and Mob Griefing still constrain it; also relevant to the miners only spawn layer.
stairingAllows ascending ramps/steps in terrain navigation.
bridgingAllows building across gaps on a route.
toweringAllows upward block placement to gain height; separate from the structured engineer tower.
spiral_staircaseAllows a descending spiral staircase toward a lower Nexus.
engineer_towerAllows structured tower and ladder construction toward an elevated Nexus, including supported reuse/repair of shared towers.
enderman_block_theftAllows the invasion block-theft behavior; distinct from ordinary mining.
snipingAllows supported ranged mobs to seek firing positions and use sniper towers. See Sniping and towers for its weapon and terrain conditions.
climbingAdds wall climbing, normally disabled. Turning this off does not remove a spider's natural climbing.
high_jumpingEnables configured high jumps. jump_height sets the height in whole blocks from takeoff to landing, clamped to 1–32; the editor uses 2 if absent. It has no effect while high jumping is off.
fireproofAdds fire immunity and compatible fire-path handling. Turning it off does not remove a mob's native immunity.
spawn_locationString selecting the wave spawn environment. Explicit choices override the global spawn layer; this is not a boolean ability.
building_blockRegistry ID of the construction material, for example minecraft:cobblestone. Use the block picker; eligible materials have an item form and full-block collision. Invalid materials inherit the mob's fallback material.

Terrain work remains subject to its applicable mob-griefing and placement checks. A material choice alone does not enable building. These permissions do not promise to strip already equipped items or undo completed terrain changes. Some permissions also affect naturally spawned or egg-spawned mobs of that type; the base-stat overrides below specifically apply during wave construction.

Use Done to return the ability changes to the draft, then Entities → Save to write the file. The legacy top-level canUseWeapons and canWearArmor fields are migrated to abilities.weapons and abilities.armor when completing the dialog.

For concrete ability combinations, see Skeleton Builder, Wither Skeleton Builder and Skeleton Breacher TNT. Disabling Breacher mining stops obstacle-clearing TNT, while its close-combat trigger still applies.

In Versus, Armor, Weapons and Shield skills supply chances, while these equipment permissions and species restrictions still apply. A 100% upgrade does not grant an unsupported equipment slot or replace native gear.

Snow Golems: an Active minecraft:snow_golem entry needs Weapons enabled for weapon and shield pickup. Existing weapons and occupied offhands are preserved.

Health, damage and base armor

The three numeric fields at the bottom of Abilities accept finite numbers, including decimals. Invalid editor values are marked red and disable Done; absent or invalid JSON stat values inherit the mob defaults.

Key / rangeMeaning
health: 1–1024 HPWave base health; 2 HP equals one heart. Newly constructed mobs are healed to their resulting maximum. See also legacy health overrides.
damage: 0–2048Scales supported direct mob melee/sting damage relative to the native baseline. Does not scale projectiles, explosions or every special attack; a mob with a zero native damage baseline does not gain a new melee attack just from this field.
base_armor: 0–30Natural armor attribute, independent of the armor-equipment switch. Armor from worn equipment stays additive.

These are base values, not guaranteed final combat values. Native tier, size and wave multipliers remain effective. They are applied to newly constructed wave mobs, including riders; changing them does not rewrite every existing mob or make a spawn egg a reliable test.

Example: merge these fields into the existing invmod:zombie entry's abilities object, keeping its other fields. Compared with a 20-HP baseline, 30 scales the native wave health by 1.5 before other applicable effects:

{
  "health": 30,
  "damage": 6,
  "base_armor": 4,
  "weapons": true,
  "armor": true,
  "high_jumping": true,
  "jump_height": 3,
  "building_block": "minecraft:cobblestone"
}

After Done and Entities → Save, reopen the dialog to confirm the values, then start a new test invasion. Compare the same entity variant, tier and size; check melee separately from ranged attacks and distinguish armor equipment from base armor. See Mobs for the individual default profiles.

Globals: bulk edits and randomization

Open Mods → Invasion Mod → Config → Entities → Globals. Back up config/invasion_mod_mobs.json first. Each action immediately changes the shared editor draft for all configured entity entries, including inactive mobs and entries hidden by the current search. The cost, material and randomization buttons do not add missing entities, enable participation, or change the world's blocks. Restrict to vanilla mobs also fills missing custom-species defaults so saving cannot silently reactivate them.

ButtonEffect on each entry
Set global costEnter a positive whole number, then click the button to replace every mob's cost. Zero, negative, decimal and invalid values disable the button. This is a mob purchase cost; special theme pricing and fallback purchases can use different costs.
Set global blockChoose a material in the searchable block picker to set every mob's abilities.building_block. Eligible blocks have an item form and full-block collision. This does not enable building abilities.
Randomize blockChoose a random eligible construction block independently for each entry; materials may repeat.
Randomize costReplace each entry's cost with a random integer from 1 to 200, inclusive.
Randomize abilitiesIndependently turn each of the 13 ability switches on or off: weapons, armor, mining, stairing, bridging, towering, spiral staircase, engineer tower, Enderman block theft, sniping, climbing, high jumping and fireproof. Numeric stats, jump height and building material are not randomized by this button.
Restrict to vanilla mobsDisable non-Vanilla species while preserving the current modes of Vanilla species and their matching IM counterparts.
Randomize themesReplace each entry's theme list by independently including or excluding each available theme, including custom themes. An empty list is possible. This changes membership, not the theme catalog or the mob's participation mode.

Randomization is a one-time edit when clicked, not a reroll on every spawn or wave. Repeated clicks replace the affected values again. These bulk actions leave squad and fallback metadata alone; the global fallback buttons separately replace all theme choices or assign distinct random fallbacks.

  1. Apply the desired action, then use Back to return to Entities.
  2. Inspect several entries, including ones outside your previous search. Adjust individual costs, abilities or themes as needed.
  3. Use Entities → Save, check the saved confirmation, reopen and verify. Back alone does not save; Main Config → Save discards the unsaved entity draft.
  4. Test a new invasion in a test world. Existing wave plans and mobs are not rebuilt by these edits. For multiplayer deployment and rollback, follow Save and server setup and restore a backup.

Restrict to vanilla mobs

Use Entities → Globals → Restrict to vanilla mobs to disable custom species in the shared mob configuration draft. It is a one-time bulk edit, not a permanent whitelist or a switch that enables every Vanilla mob. Hidden rows and inactive entries are included.

  1. Back up config/invasion_mod_mobs.json on the world/server you intend to change.
  2. Open Mods → Invasion Mod → Config → Entities → Globals and click Restrict to vanilla mobs.
  3. Use Back, inspect entries in Entities, then choose Entities → Save. Back alone does not save. Reopen to confirm; for a remote server follow server setup.
  4. Start a fresh test invasion so the wave plan uses the saved choices. Check Versus availability separately if you use an army catalog.
Registry entryResult
minecraft:zombie, minecraft:pillagerKeep their current Active, Inactive or Attack Target state. A disabled Vanilla entry stays disabled.
invmod:zombie, invmod:skeleton, invmod:creeperKeep their current state because the same registry path exists in Minecraft.
invmod:speedy_zombie, invmod:skeleton_t2, invmod:big_pumpkinSet active to false: these exact paths have no Vanilla entity counterpart. Tier-2 and special variants are not exempt merely because their family is familiar.
Other-mod entity IDsSet active to false, even if the creature looks like a Vanilla species or has a similar name.

The match uses registry IDs: all minecraft: entries qualify; an invmod: entry qualifies only when Minecraft registers the same path. Display names and themes do not decide the result. Nonmatching Attack Target entries also become Inactive. Costs, abilities, theme memberships and squad/fallback metadata remain stored.

Missing custom-species entries supplied by the mod defaults are added to the draft and disabled, so a sparse file cannot restore them to Active when saved. Review fallback choices afterward: an inactive custom species cannot remain an eligible configured fallback. This action does not replace those choices with another mob.

Existing mobs and already purchased wave plans are not removed. The action is not a global ban on natural spawns, spawn eggs, commands or every special summon. Re-enable individual entries and save to allow them again, or restore your backup to recover the exact earlier modes. Newly discovered or added entries require a fresh review; the button does not establish an ongoing filter.

Fallback mobs: global and per-theme

Each theme has its own fallback. Use the fallback: button between its name and Entities in the Themes screen to change one theme. Follow Per-theme fallbacks for the complete selection workflow, JSON example and fresh-invasion test.

ControlResult
Themes → fallback:Changes only the chosen theme; other theme assignments and the global default remain unchanged.
Entities → Globals → Fallback mobSets the global default and all available themes, including custom themes, to the selected eligible active mob. Existing per-theme exceptions are overwritten.
Entities → Globals → Randomize fallback mobAssigns distinct eligible active mobs across all available themes. Requires at least one candidate per theme; otherwise the button is disabled and the draft stays unchanged. Does not change the global default.

Selections and randomization edit the shared draft immediately. Return with Back and use Entities → Save; Back alone does not save. Random assignments are stored, not rerolled for every purchase. To preserve individual exceptions, apply global selection before setting theme-specific choices.

Which mobs can fill a phase?

The candidate must be a registered, summonable mob permitted as a direct wave purchase and an Active wave participant. Inactive and Attack-mode entries cannot be selected. Theme membership is ignored. Specialized original mobs use their IM counterparts; unavailable companion-mod mobs and environmental-only Guardians cannot be selected. See mob modes before enabling a new candidate.

The JSON stores the global ID in _fallback_mob and theme-specific IDs in _theme_fallbacks. An eligible per-theme choice wins; an invalid or disabled choice uses the eligible global fallback, then another eligible active mob if needed. An active Zombie is the editor's usual safety default. If no eligible active mob exists, fallback fillers are omitted rather than spawning an inactive mob.

After ordinary mob and squad purchases, each leftover budget point buys one fallback at cost 1. Free fallback purchases bring a phase's purchase list to at least wave × 5 when a fallback is available. Its configured ordinary cost does not determine these filler prices. These purchases use the phase's equipment rules and can appear outside their assigned themes; they are planned purchases, not guaranteed successful spawns. See budgets and extra additions.

After saving, reopen Themes to confirm each intended choice. Test a newly started invasion on the world/server; saving does not rebuild the current wave plan. If a choice changes or disappears, check that the selected ID is registered, Active and wave-eligible on that server. For backups and multiplayer deployment, follow Save and server setup.

The Versus roster and mob prices use server Active entries and costs. Economic Sale upgrades reduce army purchase prices, but not the one-time unlock price.

Per-mob spawn location

Open Entities → Abilities for the exact mob registry entry. Click Spawn Location to cycle underwater → underground → lava → above ground → default. Choose Done, then Entities → Save.

ValueWave spawn environment
underwaterWater only, regardless of the global spawn layer.
undergroundDry underground locations with valid supporting terrain, regardless of the global spawn layer.
lavaLava only, regardless of the global spawn layer.
above groundDry surface locations with valid supporting terrain, regardless of the global spawn layer.
defaultDry underground and surface locations, filtered by spawn-layer. Mini Squid has a built-in underwater fallback even with this value.
Underwater
Underground
Lava
Dry land

Edit the JSON directly

In config/invasion_mod_mobs.json, merge the key into the mob's existing abilities object. For example, this fragment selects underwater spawns:

"spawn_location": "underwater"

Preserve the other ability keys and valid JSON commas. A missing, invalid or non-string value uses default. General configuration uses the hyphenated key spawn-layer in the CFG; the per-mob JSON key is spawn_location.

A spawn location does not grant survival abilities. Underwater does not add swimming or water breathing; lava does not add fire immunity. For a lava-spawned mob, separately review Fireproof. Underground does not enable Mining or create an escape route.

These settings affect new Nexus wave spawns, including waves around a Player Nexus. They do not relocate existing mobs or control ordinary natural or spawn-egg spawning. Collision checks, mob dimensions, candidate locations and wave eligibility still apply. An explicit choice can override miners only, but cannot guarantee a suitable spawn point. “Surface” uses the height check explained below. See Mini Squid and Lava Creeper for environment-specific examples.

Examples: Mole defaults to underground, Gift Zombie to above ground, and Charger Zombie and Flying Creeper to default. Their individual guides cover fixed behavior and configurable abilities.

Spawn layer

spawn-layer filters candidate wave spawn locations for mobs using the default spawn location. Explicit per-mob locations take precedence. It does not change the Nexus spawn radius, remove mobs already present, or guarantee that a valid location exists.

ValueAllowed locations
both (default)Surface and underground.
surfaceSurface only.
undergroundUnderground only.
miners onlySurface for all eligible mobs; underground only when that mob has Mining enabled and the world's mob-griefing gamerule permits it.

Wave support includes dry lower slabs, carpets, snow layers and supported rails, buttons and plants. If placements fail, the temporary radius search expands to 1024 then shrinks to 8 without changing the configured radius or bypassing this layer.

“Surface” uses the world's surface height at the spawn column and the mob's height. Glass and leaves count as roofs too; this is not simply a check for stone caves or darkness. Invalid text falls back to both. Other collision, fluid and spawn checks still apply in every mode.

General rules

These options belong in Main Config. In the CFG, use the exact values below; the editor displays boolean switches as On/Off.

Setting / defaultEffect
overworld-piglin-conversion=onUse off to prevent Overworld zombification of Piglins, Piglin Brutes, vanilla Hoglins (not the IM Hoglin), living Engineers and Piglin Throwers. This also controls the vanilla Piglin/Hoglin families. Outside the Overworld, normal dimension and immunity rules remain. It does not turn already zombified mobs back into living ones.
enable-silverfish=trueUse false to disable IM Silverfish wave participation and IM replacement spawning, Silverfish infestation behavior, and the invasion's Infested-effect selection. This is not a command to delete existing Silverfish or a blanket switch for all vanilla/other-mod spawning. It also suppresses Silverfish release from permanently infected hosts, but not the Enderman-class Endermite release. See permanent infection.
destructed-blocks-drop=trueUse false to suppress drops in the invasion block-destruction paths that use this setting, such as mining and obstacle breaking. It does not disable block destruction itself; use the world's mob-griefing rule for behavior governed by that rule.

See the family conversion rules. The Overworld conversion check reads the reloaded general setting, so a successful Main Config save in the instance running the world affects ongoing conversion checks. A remote client's Save cannot change that server check.

Versus Infestation also requires enable-silverfish=true for new spawn infection rolls. Pigman Conversion recruits a family into an army; it is separate from the Overworld zombification switch.

Unbound mob sight and sense ranges

In Main Config, night-mob-sight-range defaults to 20 blocks and night-mob-sense-range to 12 blocks. Supported IM mobs without a Nexus binding use these ranges for their respective target searches. Sight-based searches require visibility; sense-based searches can detect a target without line of sight.

night-mob-sight-range=20
night-mob-sense-range=12

The historical “night” prefix does not restrict these settings to nighttime. Nexus-bound mobs use separate ranges; these keys do not change an arena's spawn radius or apply universally to vanilla and other-mod enemies. The mob's target goals still determine which targets it can select.

Use Main Config → Save in the instance running the world, or edit the server CFG while stopped and restart. Test an unbound supported IM mob, such as an IM Zombie, with and without cover; a bound wave attacker is not a valid test of these settings.

Global natural monster cap

mob-limit-override=70 is the default in config/invasion_config.cfg. A different value makes Invasion Mod attempt to change the capacity of Minecraft's entire MONSTER category during startup. It affects natural monster spawning generally, including vanilla and other-mod monsters in that category; it is not an IM-only limit.

mob-limit-override=70

Back up the server CFG, stop the server, set the desired integer value and restart. Raising the cap can increase server load. The category capacity is part of Minecraft's natural-spawning rules, not a promise that exactly that many monsters will exist. It does not set the purchase count or budget of a Nexus wave.

Startup attempt, not a guaranteed live change. The implementation uses reflection and can fail. Check the server log for Error whilst updating max hostile entity cap. Saving Main Config alone does not rerun this startup operation. Restore the default value in the CFG and restart to undo your configuration change.

Custom block strength

The logical key is block-<namespace>:<id>-strength. A finite positive number overrides the mod’s base block strength; zero, negative or invalid numbers do not establish an override. Strength affects route costs, obstacle-clearance selection and other mod mechanics. It does not replace Vanilla hardness or directly lengthen timed mining. Datapack construction bonuses and other breaking restrictions still apply; this is not blast resistance.

To add a new key, edit the CFG while the world/server is stopped. The editor only lists existing keys. The file uses Java Properties syntax: escape the colon in the key. For example:

block-minecraft\:stone-strength=10.5
Current 26.3 persistence limitation: the mod's CFG writer emits block keys with an unescaped colon. The override can work on that load but fail on a later reload. Keep the corrected line in your backup and restore its escaped colon while stopped before each subsequent load. IDs containing a hyphen also do not parse correctly in this implementation. Do not assume the generated file preserves these overrides.

After loading, inspect a test block with the Material Probe. Its whole-number readout includes applicable construction bonuses, so it need not equal the decimal value you entered. Removing the key restores the normal calculation on the next load.

Legacy health overrides and Entity values

Main Config accepts positive integer health overrides keyed by the mob's legacy name, not its registry ID. For a tier-1 IM Zombie, these are two independent keys:

IMZombie-T1-invasionSpawn-health=30
IMZombie-T1-nightSpawn-health=24
  • -invasionSpawn-health selects the base health for the relevant Nexus-bound IM mob family/tier.
  • -nightSpawn-health selects health for unbound IM mobs. “nightSpawn” is the legacy category name, not a restriction to nighttime.

Use the exact legacy key for the mob and tier. The example is not a universal override for all zombies or all registered mobs. Add absent keys to the CFG while stopped; remove a key to inherit its default again.

The separate Entities → Abilities → health value is a per-entity wave base value in the mob JSON, with a range of 1–1024 HP. It is applied to newly constructed wave mobs and can scale the native baseline derived from the CFG. Tier, size and wave scaling remain relevant; a CFG entry alone does not guarantee the final HP when a JSON health value is also set. Review both files when diagnosing a mismatch, and use newly spawned mobs for checks. The JSON's damage and base-armor fields are separate from these legacy health keys.

Additional diagnostic logging

enable-log-file defaults to false in config/invasion_config.cfg. Set it to true in Main Config and Save, or edit the file while the world/server is stopped and restart. For multiplayer, change the server's configuration; a client setting does not change server diagnostics.

enable-log-file=true

This enables additional messages sent through InvasionMod.log(...), at WARN level through the normal game logger. Look in the running instance's usual console/log output, such as logs/latest.log. Despite its name, this option does not create a separate Invasion log file. Regular messages and errors continue when it is false.

  1. Reopen Main Config to confirm the saved value, then reproduce the problem in a test world and inspect the corresponding log time.
  2. Additional messages only appear when the relevant code path runs; no extra line by itself does not prove the setting failed. Include mod versions and reproduction steps when reporting a problem.
  3. After collecting diagnostics, set the option back to false and Save (or restart after an external edit). For locating mobs, use /invasion debug.

Debug Wand — registration-time tool

This developer tool is registered as invmod:debug_wand only when debug=true is loaded before item registration at startup. The default is false. Use a disposable test instance; there is no crafting recipe.

  1. Stop the game/server and back up config/invasion_config.cfg. Set debug=true in that file on the server and participating clients before launching them.
  2. Restart fully. Changing the toggle in an already running editor cannot add an item to the registry.
  3. With command permission, run /give @s invmod:debug_wand. An unknown item means that registration did not happen: check the instance, file, startup value and matching build.
  4. Hit a Wolf with the wand as a player to tame it. This is a hit, not a right-click feeding interaction. Right-click a placed Nexus Core to remember its Nexus for the tool's test code.
Not a working mob spawner: the other block-click paths construct entity objects but do not add them to the world. Remembering a Nexus does not start waves or activate Nexus test mode. The remembered reference belongs to the shared item implementation, not an individual stack; do not rely on isolated per-player selections.

Use registered spawn eggs for actual mob creation, the Engineer Hammer for Nexus test mode, and /invasion debug to highlight loaded mobs. To return to normal registration, remove test wands from the disposable world, stop the instance, restore debug=false on server and clients, and restart.

Datapack setup — offspring and construction

These world/server datapack tags are separate from the CFG and mob JSON editor. The examples below target Minecraft 26.3 / NeoForge, whose data pack version is 121.0. Back up the world and test changes in a copy. On a dedicated server, install into the server world, not a client's resource-pack folder.

  1. Create <world>/datapacks/invasion-tuning/. Put pack.mcmeta at its root, alongside data/, with this content:
{
  "pack": {
    "description": "Invasion offspring and construction tuning",
    "min_format": 121,
    "max_format": 121
  }
}

Add only the tag files you want to change at the paths listed below. Each path is relative to invasion-tuning/. The directory names are singular: entity_type and block. Use exact registered IDs of installed entities/blocks. A # prefix includes another tag.

"replace": false merges your values with lower-priority packs, including the mod defaults. "replace": true replaces the lower-priority values for that tag; include every value you want to keep. Higher-priority packs can still change the result. Each JSON example is a complete file, not a fragment to paste into the CFG.

  1. With operator/cheat permission, run /reload, then /datapack list enabled. If the pack is available but disabled, enable it with /datapack enable "file/invasion-tuning" last. Check the server log for missing IDs, malformed JSON or version errors.
  2. Test newly produced offspring and newly evaluated block strength as described below. Removing/disabling this pack and reloading restores the other enabled packs' tags; it does not remove already spawned offspring or repair damaged terrain.

Continue with Mother Spider offspring and construction bonuses and boulder defense.

Mother Spider offspring tag

Mother Spiders choose their offspring from invmod:queen_spider_offspring. Create data/invmod/tags/entity_type/queen_spider_offspring.json following datapack setup. Defaults are invmod:spider, invmod:jumping_spider and invmod:cave_spider.

For example, extend the default pool with Vanilla spiders:

{
  "replace": false,
  "values": ["minecraft:spider"]
}

To replace the pool with only IM Cave Spiders instead:

{
  "replace": true,
  "values": ["invmod:cave_spider"]
}

Each offspring batch attempts 3–6 random choices from the resolved pool; the same type can be chosen repeatedly. An empty pool produces no offspring, and failed entity creation can reduce the number. Mob children are marked as babies where supported; not every entity type has baby visuals or behavior. Only children implementing the mod's NexusEntity contract inherit an existing maternal Nexus link. Adding a Vanilla or other-mod entity does not by itself make it a Nexus-bound invader.

For a controlled check, use the replacement example, reload successfully, and let an adult Mother Spider lay and hatch a new batch in a test arena. Expect Cave Spider offspring rather than retroactive changes to existing spiders. Restore the merge example or remove the file to restore the default pool after reloading.

Construction bonuses and boulder defense

Follow datapack setup. All four block tags use data/invmod/tags/block/<tag-name>.json. These affect Invasion's block-strength calculation and normal boulder handling, not Vanilla hardness or universal explosion immunity.

Tag ID / filenameEffect and supplied defaults
invmod:brittle_construction_materials
brittle_construction_materials.json
+10% base strength per face-adjacent block of the same block type. Defaults include sandstone variants, bricks, Nether bricks, stone bricks and mossy cobblestone.
invmod:solid_construction_materials
solid_construction_materials.json
+10% per face-adjacent block in invmod:stone_construction_bonus_materials. Defaults include #c:stones, #c:cobblestones and #minecraft:stone_bricks.
invmod:stone_construction_bonus_materials
stone_construction_bonus_materials.json
Defines supporting neighbors for the solid category, rather than granting a bonus on its own. Defaults are the three tags above plus mossy cobblestone.
invmod:repulsive_construction_materials
repulsive_construction_materials.json
Defaults to Obsidian. In the eligible normal boulder block-hit path, a 50% roll removes the projectile without its explosion.

Only the six face neighbors count, so the maximum strength bonus is 60%: base × (1 + 0.1 × matching neighbors). With base strength 10 and three matches the result is 13. Overlapping categories use the first match in order brittle → solid → repulsive; bonuses do not stack. The default stone-brick overlap therefore uses the same-type brittle rule.

Example extension for brittle_construction_materials.json: add glass, retaining defaults.

{
  "replace": false,
  "values": ["minecraft:glass"]
}

Example extensions for a solid iron-block structure: put this content in both solid_construction_materials.json and stone_construction_bonus_materials.json. Keep the categories disjoint from brittle for predictable results.

{
  "replace": false,
  "values": ["minecraft:iron_block"]
}

For an Obsidian-only repulsive category, use this complete replacement in repulsive_construction_materials.json:

{
  "replace": true,
  "values": ["minecraft:obsidian"]
}

Boulder limits: this random defense belongs to the normal Thrower/Big Thrower boulder block-hit path. It is not a guarantee and does not cover every iron-ball or lava-boulder variant, direct entity hits, or direct Nexus Core hits. The path also excludes negative-hardness and Wither-/Dragon-immune blocks. Repulsive membership loses precedence when the hit block also belongs to brittle or solid. Mob-griefing separately governs whether the remaining explosion can damage terrain.

  1. After reloading, inspect isolated glass with the Material Probe, then place identical glass against its faces and inspect again. Three neighbors should give about 30% higher strength; the probe displays whole numbers.
  2. For the solid example, inspect an iron block with matching tagged neighbors. A support block need not be the same type, but must belong to the bonus tag.
  3. Test normal boulders against an eligible repulsive wall in a disposable arena. Repeat hits: a single impact cannot establish a 50% chance. Keep cover and do not rely on this rule to make the Core safe.

Check your changes

  1. Back up both files and use a test world with the same installed mods as the server.
  2. Set spawn-layer to surface in Main Config, save, and reopen to confirm it persisted.
  3. Start a fresh invasion in an open arena using a Nexus Core or the start command. Inspect newly spawned attackers; a lack of space can still prevent spawning.
  4. For miners only, check both the mob's Mining setting and the world's mob-griefing rule before expecting underground spawns. For missing custom mobs, check the Entity search filter, installed mods, participation and theme membership.
  5. If settings revert, check which Save button context you used, the actual world/server config directory, error messages, and the block-key limitation above. Restore the backup to undo the test.

Continue with Custom Themes and Custom Squads to customize the roster.

See the gameplay consequences in wave budgets, wave equipment and active shield behavior.