promotional bannermobile promotional banner

ProgressiveStages

Fully customizable progressive stages for Minecraft with FTB Quests/KubeJS/JEI integration.
Back to Files

ProgressiveStages 3.0.2

File nameprogressivestages-3.0.2.jar
Uploader
EnVyOnMyMindEnVyOnMyMind
Uploaded
Jul 24, 2026
Downloads
86
Size
1.6 MB
Mod Loaders
NeoForge
File ID
8502094
Type
R
Release
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:progressivestages-1460273:8502094"

Learn more about Curse Maven

What's new

ProgressiveStages — Full Changelog (2.0 → 3.0.2)

Everything since the 2.0 rewrite, version by version. All of it is additive and config-driven; old TOML keeps working.


3.0.2. Editor access and inventory button controls

  • /pstages editor now opens correctly for permission level 3 operators in integrated single-player worlds as well as dedicated servers.
  • Authenticated loopback access remains private. Remote hosts, origins, ports, and incorrect session secrets are rejected.
  • The editor now uses a simpler dark gray and gold stage-first layout with less visual clutter.
  • The survival inventory progression button can be removed with client.show_inventory_button = false.
  • client.inventory_button_x and client.inventory_button_y move the button relative to the inventory.
  • client.inventory_button_width, client.inventory_button_height, and client.inventory_button_icon_size control its size and centered lock icon.
  • Commands and the optional keybind continue to open the progression map when the inventory button is hidden.

3.0.1. Schema 4 and authoring rehaul

  • Three file stage packages with stage.toml, rules.toml, and progression.toml, while untouched one file stages remain compatible.
  • A private dedicated server editor opened by /pstages editor. The operator client hosts a temporary authenticated loopback page, so the server exposes no web port.
  • Server authoritative registry, tag, recipe, advancement, loot resource, stage, KubeJS, and extension autocomplete with paging and revision safety.
  • Deterministic per entry priority, local exclusions, global allows, condition driven temporary rules, and independent EMI and JEI presentation.
  • One condition language for grant, revoke, temporary locks, modifiers, challenges, and simulation.
  • Persistent rolling health, damage, death, hit, lifecycle, temporary rule, challenge, variable, state, and history data.
  • Contextual equipment modifiers, affinity and proficiency profiles, variables, formulas, templates, multi state stages, atomic action pipelines, and generic challenge budgets.
  • Revisioned compressed compiled client snapshots for connected and future clients.
  • Expanded /pstages, Java, and KubeJS APIs with explain, simulation, history, lifecycle, challenge, migration, catalog, editor metadata, and rollback surfaces.
  • The stage screen now includes the why panel, active challenges, equipment preview, and progress history while retaining advancement style drag and scroll behavior.
  • A packaged Preact and TypeScript editor shell, seven compiled example packages, comprehensive schema 4 guide, migration flow, and release verification records.

🧱 2.0 / 2.0.1 — The rewrite

The foundation everything else builds on.

  • Per-team stage storage (FTB Teams or solo) — stages are a team property, not per-player.
  • Unified prefix lock system — one syntax everywhere: id: / mod: / tag: (#) / name: patterns, plus minecraft = true for the whole vanilla namespace.
  • Multi-stage gating — a single thing can require several stages at once (AND), enabling true dependency graphs.
  • Lock surfaces: items, blocks, fluids, entities, enchants, crops, screens/GUIs, loot, trades, pets (taming/breeding/commanding/riding), mob spawns + dynamic replacements, recipes (by id or by output), dimensions, [[regions]] (3D boxes with flags), [[interactions]] (item-on-block/entity).
  • Ore-spoof masquerade — locked ores render + drop as a decoy block until unlocked (chunk-packet rewrite, break-speed/harvest sync).
  • Transitive & automated crafting gating — block crafting with locked ingredients; gate vanilla Crafters via a nearest-player check.
  • Recipe-viewer integration — EMI/JEI hide locked items/recipes; per-stage [unlocks] carve-outs; always_unlocked whitelists.
  • Soft-dep compat — FTB Quests/Teams, Curios (per-slot gating), Lootr (per-player chests), Nature's Compass, Mekanism.
  • Fully &-color-configurable messages; reveal-locked-names-to-ops; creative-bypass warning.

🎯 2.3 — Per-stage triggers, GUI codex, fine-grained enforcement

  • Per-stage [[triggers]] — auto-grant a stage when conditions are met, declared right in the stage file (replaces the old global triggers.toml). Rules OR together; conditions combine by mode (all_of/any_of). Counters read vanilla stats, so they're retroactive and restart-proof.
  • Triggers respect dependencies — won't fire until prerequisites are owned (omit the dependency to let them fire freely).
  • In-game GUI codex — view-only stage tree: icons, descriptions, "Requires ALL of", "Leads to" branches, % to unlock with a live condition breakdown, and an "Unlocks" item grid. Handles linear / branching / multi-dependency / parallel trees.
  • Per-stage [enforcement] overrides — flip any global enforcement toggle for the resources one stage gates.
  • Per-stage [display] — mask locked item names (???), obscure icons (?), toggle tooltips/description per stage.
  • /stage progress (+ next / all) — per-trigger progress breakdown. EMI whitelist fix (whitelisted Create items now show).

🧬 2.4 — Power-ups, skill tree, juice

  • [attribute] — modify player attributes (max health, speed, scale, anything) while a stage is owned.
  • [revoke] / regression — lose a stage on_death, or hold it only while xp_below a threshold; optional cascade to dependents.
  • Temporary stagesduration = "30m": real-time expiry that counts down even while offline.
  • Server-wide stagesscope = "server": the first team to earn it unlocks it for everyone.
  • Skill-tree [cost] — make a stage buyable from the tree with xp_levels and/or items; server-validated + consumed; optional bypass_requirements to pay-to-skip the grind.
  • Unlock juice (all optional) — [unlock] toast / title / subtitle / sound / particles, 50/75/90% progress nudges, and a custom blue HUD progress bar above the XP bar (not the boss bar).
  • [abilities] — gate elytra gliding behind a stage.
  • 7 new triggers: effect, breed, day_count, weather, enter_structure, tame, kill_with.

🔒 2.5 — More gating surfaces + deep KubeJS

  • [professions] — gate a villager's whole trade GUI by its profession.
  • [advancements] — hide locked advancements from the advancements screen entirely (server-side); they reappear when the stage is gained.
  • [structures] improvements — auto-sized bounding boxes, entry_padding buffer, and bounce-back to your last safe spot.
  • Deep KubeJS — a ProgressiveStages script object: onGranted / onRevoked (fire on every engine grant), condition(id, predicate) for custom script triggers, and has / grant / revoke / list / percent.
  • Datapack-loaded stages — ship stage TOML inside a datapack (data/<ns>/progressivestages/stages/*.toml); config files override on conflict.
  • [stage] metadata in the GUIhidden / color (#RRGGBB) / category now actually drive the tree.
  • Deeper /stage validate — detects full multi-node dependency cycles, unreachable stages, and dead trigger/dependency targets.
  • More triggers: world_time, per-species/#tag breed, #tag-victim kill_with, and script. Attribute modifiers re-applied on respawn.

🚀 3.0 — The big expansion

  • Jade and WTHIT overlays — looking at a locked block or mob shows "🔒 Requires: <stage>". Both pulled from the Modrinth Maven (not bundled jars). Entity locks are now synced to the client.

  • 6 new triggersreach_y, fish, sleep, ride, biome_time, and stage_held_for (time-since-grant, for time-gated chains).

  • [rewards] on grant — items / status effects / commands / teleport / xp the moment a stage unlocks (the companion to [cost]). Applied once to the player who earned it.

  • Stage tags + bulk ops[stage] tags = [...] + /stage tag grant|revoke|list <players> <tag>.

  • [cost] cooldown + refund — per-player purchase rate-limit; refund_percent returns part of the cost on revoke (only for stages actually purchased).

  • Ability expansion[abilities] now also gates sprint, swim, climb.

  • Authoring tools/stage simulate (dry-run: what's next and exactly which conditions are short), /stage new (scaffold a stage file), /stage export (markdown progression guide).

  • Encrypted-block visual[display].encrypt_blocks masquerades a stage's locked blocks as a placeholder until owned (per-stage on/off).

  • Comprehensive reference — the default diamond_age.toml now has a worked example for every trigger type and every feature.

  • Vanilla advancement-style progression map — framed nodes, dependency connectors, tiled/custom backgrounds, drag + wheel + keyboard panning, rich hover cards, search/filtering, pinned details, and purchases.

  • Per-stage map authoring[display] now accepts x, y, frame, background, reveal, and sort_order, with automatic DAG layout when coordinates are omitted.

  • Named custom counters — declarative custom_counter triggers, command management, and KubeJS counter helpers.

  • Commands and scripting expanded — public /stage//stages//ps map aliases; actual-change script results; toggle, availability, dependency, tag, counter, evaluation, and GUI helpers.

  • Engine repair pass — correct per-stage exemptions/carve-outs, multistage secondary gates, mixed server/team scope, lifecycle cleanup, exact biome timing, and dedicated-client block/fluid/mod synchronization.

  • Build health — optional APIs now resolve from publisher Maven repositories and unit tests run in the standard build.

🧭 3.0.1 — Exact structure sessions and contextual rules

  • Generic provider API — companion mods register exact structure assignment providers through a one-way dependency. ProgressiveStages core imports no companion API.
  • Exact-instance arbitration — static gates remain authoritative; provider denial wins; permits cannot bypass a missing normal stage; cached claimed bounds fail closed on provider errors.
  • Committed sessions — debounced enters and exits, stable visit sequences, idempotent completion, immutable events, and typed incomplete/completed/death/teleport/dimension/disconnect/recovery outcomes.
  • Team-safe leases — in-progress stages grant on the first lease, survive additional participants, revoke on the final release only when the lease introduced them, and preserve pre-owned stages.
  • Contextual active locks[active_locks] uses the unified item selector grammar and opposite present-in-context polarity, affecting item use only inside a matching structure session.
  • Event-driven leave_structure trigger — exact structure or tag, optional provider and session-stage filters, typed outcomes, and repeatable visits without permanent one-shot storage.
  • Java and operator tooling — structure registration/completion/reconciliation APIs, detailed item-use decisions, four lifecycle events, three structure stage causes, and /pstages structure diagnostics.

Old TOML files are forward-compatible across all of the above — every addition is opt-in.

This mod has no related projects