promotional bannermobile promotional banner

Another Stages

Gate items, recipes, blocks and GUIs behind player, team or world stages, with datapack and KubeJS support and compatibility for many modded machines.

Another Stages

Another Stages is a stage-gating mod for pack developers. Lock items, blocks, recipes, and GUIs behind player, team, or world stages — from KubeJS, datapack JSON, or an in-game editor.

This is a beta: version 0.1.0.0.0, for NeoForge 1.21.1 and NeoForge 26.1.2. The packdev surface is the same on both lines.

Full documentation (the place to look for every field, example, and compatibility note):

Another Mod Dev Wiki — Another Stages


What does it do?

  • Restricts items, blocks, recipes, and GUIs using player, team, or world stages.
  • Preferred setup is KubeJS AnotherStagesEvents.restrictions in server_scripts. Datapack JSON is fully supported. Legacy item-gating JSON from Iskandert's Utilities / Library (iska_utils:stage_item, iska_lib:stage_item) still works: when Another Stages is installed, it owns that gating so rules are not applied twice.
  • Includes an in-game Stage Generator (/another_stages edit) that writes JSON or KubeJS files.
  • Optional integrations: JEI / EMI / REI (hide, lock overlay, hardcore), Jade, and KubeJS (queries, mutators, stageChanged).

Stage CRUD (add / remove / list) stays on Iskandert's Library (/iska_lib_stage). Another Stages mirrors the same commands as /another_stages.


Items

Lock items by id, tag, or mod, with optional excludes. Rules can apply to right/left click, hands, and inventory scans.

  • Pickup: deny pickup, with an optional pickup message.
  • Consequences: e.g. drop or delete on a matching click / inventory case.
  • Tooltips: custom locked tooltips, optional hiding of default ones.
  • Recipe viewer: overlay (lock icon), hardcore, or hide.
  • Hidden name: show "Unfamiliar Item" (or a custom name) instead of the real item name.
  • A generic hardcore item, another_stages:stage_locked_hardcore, is always hidden from JEI / EMI / REI.

Docs: Stage Items


Recipes

Lock crafting and processing recipes by recipe id, recipe type, inputs, and/or outputs (matchers combine with AND). Vanilla is fully supported. Coverage for other mods grows over time — see the wiki compatibility list.

When a machine recipe is locked:

  • The machine still accepts matching items or fluids into its slots.
  • It does not consume them, craft, or advance progress.
  • Unlocking the stage is enough for many machines to resume; you should not need to yank items out and put them back.

Crafting-like menus use the player. Process machines use a claimed owner when one is present; world stages still apply with no owner.

JEI / EMI / REI: hide or overlay locked recipes. On 26.1.2, EMI has no official build yet — EMI coverage there is best-effort.

Docs: Stage Recipes


Blocks

Lock breaking (and related look / loot) behind stages.

  • Mimic another block for client appearance and/or loot.
  • Camouflage (default): visual disguise. You can keep the real look and still swap loot.
  • Optional unbreakable and break messages / tooltips.
  • Optional Jade disguise for the looked-at block.
  • Optional stop_tick to freeze block ticks — dangerous / best-effort, prefer world stages; read the wiki before using it.

Docs: Stage Blocks


GUIs

Restrict menus by menu class or menu type:

  • Close the menu as soon as it opens (block_open).
  • Block specific slots or items.
  • Soft-cap how many non-player slots may be filled.
  • Optional action-bar message when the GUI is blocked.

Docs: Stage Guis


Overlapping restrictions

If several rules match the same item, recipe, block, or GUI, a shared priority (Kube .priority(n)) picks the primary rule for exclusive presentation. Some effects can still stack. Details: Overlapping Restrictions


Stage Generator

Open /another_stages edit (permission 2+, player only) to build item, recipe, block, and GUI restrictions in-game.

  • Export as JSON (Library datapack roots) or KubeJS.
  • Ready drafts autosave. Closing shows a reload hint.
  • Matcher entries use a Shop-style calibrator (← [slot] →) so you can pick ids / tags / mods from a ghost slot; JEI / EMI / REI stay open beside the GUI.
  • Known-stages catalog with Tab autocomplete.

/iska_lib_stage edit opens the same GUI when Another Stages is installed.

Docs: Stage Generator


Stage actions and runtime

  • JSON stage actions (iska_utils:stage_actions / iska_lib:stage_actions) run commands when a stage is added or removed, with optional delay and deferred if branches. Manual trigger: /another_stages call_action / /iska_lib_stage call_action — JSON only. Docs: Stage Actions
  • KubeJS AnotherStagesEvents.stageChanged reacts to stage add/remove in scripts. Docs: Stage Runtime

KubeJS API

Prefer AnotherStagesEvents.restrictions in server_scripts:

AnotherStagesEvents.restrictions(event => {
  event.items.restrict()
    .stages([{ stage_type: 'player', stage: 'bronze_age', is: false }])
    .items(['minecraft:diamond_sword'])
    .caseRightClick()
    .viewerOverlay()
    .tooltip(Text.of('Requires bronze age'))
})

The same event also has event.recipes, event.blocks, and event.guis. Legacy top-level AnotherStages.items / .recipes / .blocks / .guis still works.

Queries and mutators (AnotherStages.playerHasStage, addPlayerStage, setWorldStage, registerStage, …) work in any server script that has a player or level. Full catalog: Kube Stage API

To reload Kube restriction scripts: /kubejs reload server-scripts. Recipe add/remove still needs /reload.


Commands

Command Description
/iska_lib_stage … Stage CRUD (Library).
/another_stages … Same CRUD, mirrored.
/another_stages edit Opens the Stage Generator.
/another_stages call_action … Runs a datapack JSON stage action (not Kube stageChanged).

Stage system

Stages themselves live in Iskandert's Library: it stores the stage data (player / team / world) and provides the base commands (/iska_lib_stage). Another Stages builds on that base and adds everything you do with stages: locking items, recipes, blocks and GUIs, the Stage Generator, stage actions, KubeJS APIs and recipe viewer integration. Library works on its own without Another Stages, and its stages are also used by features of other mods.

Full documentation: Another Mod Dev Wiki


Contributing

Pull requests that add craft / process gates for more mods are welcome. Merged integrations are credited. Issue requests help set priority; a working gate (and a wiki note on Stage Recipes when relevant) is especially useful.

Another Stages Team

profile avatar
  • 2
    Followers
  • 18
    Projects
  • 5.2M
    Downloads

More from UnfamilyView all