promotional bannermobile promotional banner

SpawnForce

Forces specific entities to spawn by bypassing canSpawn checks. Config-driven, mod-agnostic. Works with AdventureZ, Marium's Soulslike Weaponry, and any mod whose mobs refuse to spawn due to restrictive predicates.

SpawnForce is a lightweight Fabric mod that forces specific mobs to actually spawn when a datapack or worldgen mod asks for them. Many modded mobs (AdventureZ orcs/shamans/fungi, Soulslike Weaponry bosses, and similar) ship with strict vanilla spawn predicates (light, hardcoded biome lists, block type under feet) that silently refuse them in custom biomes even when the biome entry explicitly lists them. SpawnForce lets you whitelist entity IDs in a config file and bypasses those checks only for them, with a configurable anti-death list so forced mobs never spawn on lava or other killing blocks. Version 1.0.1 adds a second, independent tool: a per-mob spawn-group override that fixes modded mobs registered under the wrong category so they spawn at the right rate.

Core rule

The mod only touches entity IDs you list. Any mob not in force_spawn_entities or spawn_group_override is completely ignored, no mixin side effect. No hidden global flag, no per-mob profile to maintain.

What it does

For each mob listed in force_spawn_entities, at spawn time the mod:

  1. Verifies the block below the spawn position is solid (or a snow layer, for snow biomes).
  2. Verifies that block is NOT in denied_blocks_below (lava, magma, fire, cactus, etc).
  3. If both checks pass: forces SpawnHelper.canSpawn, SpawnRestriction.canSpawn and MobEntity.canSpawn to return true, bypassing vanilla's strict predicate.
  4. If the block below is denied: forces the call to return false, guaranteeing the mob never spawns on a killing block even if vanilla would have allowed it.

The three bypass points are guarded independently by global toggles, so you can narrow the scope if a mod conflict appears.

Spawn group override (new in 1.0.1)

Some mods register a hostile mob under the wrong spawn category. A common case: a mob that extends TameableEntity ends up classified as CREATURE instead of MONSTER. CREATURE mobs only spawn in the one-shot pass at chunk generation and sit under a low cap, so such a mob barely appears and never joins the continuous monster spawn cycle underground. The result is a biome that should be full of a given mob but only ever shows the few that happen to be real monsters.

spawn_group_override reassigns the spawn group an entity reports, so it gets categorized correctly by every spawn-list builder (vanilla and worldgen mods such as Big Globe). Move a mob to MONSTER and it spawns continuously in the dark, counts toward the monster cap, and despawns normally like any other hostile.

It is a map of entity ID to group name, so you choose the target group per mob. Only the entities you list are touched, every other mob keeps its original group.

"spawn_group_override": {
  "soulsweapons:remnant": "MONSTER",
  "soulsweapons:soulmass": "MONSTER"
}

Accepted group names, case-insensitive: MONSTER, CREATURE, AMBIENT, WATER_CREATURE, WATER_AMBIENT, UNDERGROUND_WATER_CREATURE, AXOLOTLS, MISC. An unknown name is logged and the entry is skipped, never a crash. This list is independent from force_spawn_entities: a mob can appear in either, both, or neither.

Full configuration

{
  "enabled": true,
  "bypass_spawn_helper": true,
  "bypass_spawn_restriction": true,
  "bypass_mob_canspawn": true,
  "debug": {
    "enabled": false,
    "log_bypass": true,
    "log_spawn_result": true,
    "log_rejection": true,
    "summary_interval_seconds": 10
  },
  "denied_blocks_below": [
    "minecraft:magma_block",
    "minecraft:lava",
    "minecraft:fire",
    "minecraft:soul_fire",
    "minecraft:cactus",
    "minecraft:sweet_berry_bush",
    "minecraft:powder_snow",
    "minecraft:campfire",
    "minecraft:soul_campfire"
  ],
  "force_spawn_entities": [
    "adventurez:orc",
    "adventurez:shaman",
    "adventurez:red_fungus"
  ],
  "spawn_group_override": {
    "soulsweapons:remnant": "MONSTER"
  }
}

Root keys

  • enabled: master switch. false = mod does nothing.
  • bypass_spawn_helper: toggle for the first vanilla gate (block / solid support / location).
  • bypass_spawn_restriction: toggle for the second gate (light / biome predicate).
  • bypass_mob_canspawn: toggle for MobEntity.canSpawn, which vanilla hostile mobs use to enforce darkness. Required for hostile mobs to spawn on the surface.
  • denied_blocks_below: list of block IDs that ALWAYS reject a forced spawn, even if vanilla would have allowed it. Anti-death net. Missing = use built-in defaults shown above.
  • force_spawn_entities: plain list of entity IDs to force-spawn. Only these mobs are affected.
  • spawn_group_override: map of entity ID to spawn group name. Reassigns the spawn group those entities report, so they are categorized correctly by vanilla and worldgen spawn-list builders. Only the listed entities are affected. Optional, empty by default.
  • debug.*: see below.

Debug flags

All under debug.*:

  • enabled: master toggle for all logs below. false = no logs.
  • log_bypass: logs each bypass with entity, block below, biome, light level. Sampled (first 5 hits, then every 50) to avoid spam.
  • log_spawn_result: logs SPAWN OK / SPAWN FAIL once the entity actually enters the world. Useful to confirm the mob reached the ground.
  • log_rejection: logs REJECT entries when the anti-death list kicks in. Sampled (first 5, then every 200). Leave on during setup to see which blocks you might want to add to the deny list.
  • summary_interval_seconds: reserved for future use.

Typical setup

  1. Drop the jar in mods/. Start the game once to generate config/spawnforce.json.

  2. Add the entity IDs you want to force-spawn to force_spawn_entities, and any spawn-group fixes to spawn_group_override.

  3. Restart. Check the log at startup for:

    [SpawnForce] enabled=true bypass{helper=true,restriction=true,mobCanSpawn=true} debug{…} entries=N group_override=M denied_below=9 [SpawnForce] + mymod:some_mob [SpawnForce] * spawn_group_override mymod:some_mob -> MONSTER

  4. Teleport to a biome that should spawn your mob. With debug.enabled=true you will see BYPASS and SPAWN OK lines confirming it works.

Conflict and compatibility

  • Pure Mixin HEAD inject, no access widener. Compatible with most Fabric performance mods (C2ME, Lithium, FerriteCore).
  • Does not touch spawn weight or frequency; natural spawn rates are still governed by biome / datapack spawn entries (weight, minCount, maxCount).
  • spawn_group_override changes how spawn-list builders categorize a mob, not where it is allowed; pair it with the biome/datapack spawn entries that place the mob.
  • Chunk-generation spawns use a different code path and do NOT produce a SPAWN OK log, but the BYPASS log confirms the mixin fired. This is normal.

Legacy config

If the mod detects an old format (e.g. nested per-mob profiles with allowed_blocks_below, defaults, mob_cap, etc.), it logs a warning and ignores those blocks. Migrate manually to the flat format above.

Restart the game after editing.

Recommended for

  • Modpacks combining mob mods with custom worldgen (Big Globe, Terralith, Biomes O' Plenty, etc.) where modded mobs refuse to spawn in the custom biomes.
  • Adventure / RPG packs that need specific hostile mobs on the surface of biomes where vanilla darkness rules would normally block them.
  • Fixing modded mobs that spawn far too rarely because the mod registered them under the wrong spawn group (for example a hostile mob registered as CREATURE).
  • Anyone who wants the equivalent of In Control! / "result":"allow" on Fabric, without writing Java patches.

Used in the Legends Reborn: Medieval modpack.

The SpawnForce Team

profile avatar
Owner
  • 5
    Followers
  • 30
    Projects
  • 1.3M
    Downloads

More from BahanosView all

  • Legends Reborn: Medieval (LRM) project image

    Legends Reborn: Medieval (LRM)

    • 11.7K
    • Modpacks

    An immersive RPG modpack where exploration, combat, and medieval survival meet.

    • 11.7K
    • May 21, 2026
    • Modpacks
    • +4
  • [DCME] Dynamic Contextual Music Engine project image

    [DCME] Dynamic Contextual Music Engine

    • 2.3K
    • Mods

    Replaces vanilla music with a dynamic soundtrack that reacts to biomes, time of day, weather, battles, bosses, structures, etc. Fully customizable via resource packs and JSON; no programming required

    • 2.3K
    • March 24, 2026
    • Mods
    • +1
  • AdventureZ - Fresh Animations project image

    AdventureZ - Fresh Animations

    • 352
    • Resource Packs

    Fresh Animations-style custom mob animations for AdventureZ. 20 mobs brought to life with smooth CEM walk cycles, weapon-aware attacks, and distinct personalities. OptiFine and EMF compatible.

    • 352
    • April 23, 2026
    • Resource Packs
    • +1
  • Vertigo - Vertical Chunk Sync project image

    Vertigo - Vertical Chunk Sync

    • 73.3K
    • Mods

    Optimizes chunk syncing by only sending vertically nearby chunk sections to players. Essential for tall worlds like Big Globe.

    • 73.3K
    • March 27, 2026
    • Mods
    • +1
  • Legends Reborn: Medieval (LRM) project image

    Legends Reborn: Medieval (LRM)

    • 11.7K
    • Modpacks

    An immersive RPG modpack where exploration, combat, and medieval survival meet.

    • 11.7K
    • May 21, 2026
    • Modpacks
    • +4
  • [DCME] Dynamic Contextual Music Engine project image

    [DCME] Dynamic Contextual Music Engine

    • 2.3K
    • Mods

    Replaces vanilla music with a dynamic soundtrack that reacts to biomes, time of day, weather, battles, bosses, structures, etc. Fully customizable via resource packs and JSON; no programming required

    • 2.3K
    • March 24, 2026
    • Mods
    • +1
  • AdventureZ - Fresh Animations project image

    AdventureZ - Fresh Animations

    • 352
    • Resource Packs

    Fresh Animations-style custom mob animations for AdventureZ. 20 mobs brought to life with smooth CEM walk cycles, weapon-aware attacks, and distinct personalities. OptiFine and EMF compatible.

    • 352
    • April 23, 2026
    • Resource Packs
    • +1
  • Vertigo - Vertical Chunk Sync project image

    Vertigo - Vertical Chunk Sync

    • 73.3K
    • Mods

    Optimizes chunk syncing by only sending vertically nearby chunk sections to players. Essential for tall worlds like Big Globe.

    • 73.3K
    • March 27, 2026
    • Mods
    • +1