promotional bannermobile promotional banner

ProgressiveStages

Gamestages for 1.21.1 with EMI and FTB Teams Integration

File Details

progressivestages-1.4.jar

  • R
  • Apr 20, 2026
  • 263.29 KB
  • 2.7K
  • 1.21.1
  • NeoForge

File Name

progressivestages-1.4.jar

Supported Versions

  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:progressivestages-1460273:7953877"
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more aboutย Curse Maven

๐ŸŒŸ ProgressiveStages 1.4 โ€” "The World Responds"

Minecraft 1.21.1 ยท NeoForge 21.1.219 ยท Java 21

This release is all about making the world react to your progression โ€” mobs can now be gated behind stages, dimension locks are watertight even against the nastiest modded portals, and every integration (EMI, JEI, FTB Teams, FTB Quests) is now fully optional. Drop the mod into any pack and it just works.


โœจ Headline Features

๐Ÿ› Mob Spawn Gating โ€” "No creepers until Diamond Age"

Lock mob spawns behind stages. Creepers won't appear near your players until they reach the Diamond Age. Born In Chaos mobs stay dormant until the player completes your intro quest. The world literally waits for the player to be ready.

Add one or more of these keys to any stage's [locks] section:

[locks]
# Gate specific mobs
spawn_entities = [
    "minecraft:creeper",
    "minecraft:enderman"
]

# Gate by entity tag
spawn_entity_tags = [
    "#minecraft:raiders"
]

# Gate an entire mod's mobs
spawn_entity_mods = [
    "borninchaos_v1"
]

How it works: when a mob tries to spawn, the mod finds the nearest player within mob_spawn_check_radius blocks (default 128). If their team has the stage โ†’ spawn allowed. If not โ†’ spawn cancelled. If nobody's nearby, the spawn passes through (no one's watching anyway).

๐Ÿ’ก Independent from attack locks! entities = [...] blocks attacking. spawn_entities = [...] blocks spawning. Mix and match as you like.

New config options (config/progressivestages.toml):

[enforcement]
block_mob_spawns = true        # Master switch for spawn gating
mob_spawn_check_radius = 128   # How far to look for the nearest player (16โ€“512)

Default demo: The auto-generated diamond_age.toml now gates creepers behind Diamond Age so you can see the feature in action out of the box.


๐Ÿšช Ironclad Dimension Locks (Twilight Forest fix)

Players could previously sneak out of locked dimensions through modded portals like Twilight Forest that bypass NeoForge's standard dimension events. Not anymore.

Dimension enforcement is now a three-layer safety net:

  1. Pre-travel โ€” cancels the change before it happens (standard path)
  2. Post-travel bounce-back โ€” if something slips through, teleport the player back to their origin (catches most modded portals)
  3. Tick-based check (NEW) โ€” every second, if a player is somehow in a locked dimension, teleport them to the nearest unlocked one (catches anything that bypasses both events above)

No more escapes. Your dimension locks are final.


๐Ÿ“ฆ Every Integration Is Now Optional

Previously EMI was effectively required. Now everything is optional and soft-loaded:

Integration Status Notes
EMI ๐Ÿ”ต Optional Lock icons and recipe hiding activate automatically if installed
JEI ๐Ÿ”ต Optional Locked items/fluids hidden automatically if installed
FTB Teams ๐Ÿ”ต Optional Team-scoped stages activate automatically if installed
FTB Quests ๐Ÿ”ต Optional Stage-gated chapters/quests activate automatically if installed

Drop ProgressiveStages into any modpack โ€” no matter what (or how few) other mods you have โ€” and it just works. The mod even loads standalone with zero recipe viewers.


๐Ÿž Bug Fixes

  • ๐ŸŒฒ Twilight Forest return trip โ€” fixed players being able to travel back to the Overworld (or any locked dimension) through a Twilight Forest portal even when the destination was stage-locked.
  • ๐Ÿ’ฅ EMI-less crash โ€” stage changes no longer throw errors when EMI isn't installed. Previously the mod assumed EMI was always present.
  • ๐Ÿ”ง Mixin apply errors without EMI โ€” EMI-specific mixins are now in a separate required: false config so they simply don't load if EMI isn't there, instead of crashing the game.

๐Ÿ› ๏ธ Quality of Life

  • ๐Ÿ” Recipe lock debug logging โ€” Turn on debug_logging = true in the config and CraftingMenuMixin now prints the exact recipe ID it's matching on every crafting grid change. Makes diagnosing recipes = ["kubejs:..."] issues a breeze.
  • ๐Ÿ“œ JEI dependency declaration โ€” JEI is now explicitly listed as an optional dependency so NeoForge's mod loader knows about it.
  • ๐ŸŽจ Self-documenting templates โ€” the default diamond_age.toml now includes a full documentation block for the new spawn gating feature with working examples you can copy.

๐Ÿ“‹ Upgrade Notes

  • No breaking changes. All existing items, blocks, entities, recipes, dimensions, etc. locks work exactly as before.
  • No config migration needed. New config keys (block_mob_spawns, mob_spawn_check_radius) are appended automatically with safe defaults.
  • No datapack or resource pack changes needed.

๐Ÿงช For Modpack Devs

The mob spawn gating system is fully team-aware, creative-bypass-aware, and respects the existing unlocked_entities whitelist. It ties into the same StageManager.hasStage() path as every other lock, so FTB Teams integration just works.

Full cascade table (updated):

Lock Type Blocks Items Entities Fluids Spawns
mods = [...] โœ… โœ… โœ… โœ… โŒ
spawn_entities = [...] โŒ โŒ โŒ โŒ โœ…
spawn_entity_tags = [...] โŒ โŒ โŒ โŒ โœ…
spawn_entity_mods = [...] โŒ โŒ โŒ โŒ โœ…
entities = [...] โŒ โŒ โœ… โŒ โŒ

Spawn gating is opt-in per entity โ€” the generic mods = [...] and entity_mods = [...] locks do not affect spawning. You have to use spawn_* keys explicitly. This is by design so existing configs don't suddenly start hiding mobs.


๐Ÿ“ฅ Download

File: progressivestages-1.4.jar Requires: NeoForge 21.1.219+ on Minecraft 1.21.1 Recommended (but optional): EMI, JEI, FTB Teams, FTB Quests


Thanks to the community for the bug reports that drove this release โ€” the Twilight Forest dimension bypass and the EMI-optional request both came directly from player feedback. Keep them coming! ๐Ÿ’™