This is a 1.20.1 Forge fork of AStages. It keeps upstream stage/restriction gameplay and adds pack-facing APIs plus extra integrations.
Reverse restrictions
Recipe, item, and dimension restrictions can use the reverse attribute. When enabled, the restriction applies while the player has the stage instead of while they lack it. Combined server + player stage checks honor reverse correctly.
KubeJS extras
- AStages.serverAndPlayerHasStage(stage, player)
- AStages.playerHasAtLeastOneStage(stages, player) with a list of stage ids
- AStages.removeAllPlayerStages() to wipe stored player stages
- Client helpers AStagesClient.serverAndPlayerHasStage and getServerAndPlayerStages
- AStagesClient is also available from startup scripts
Tom's Storage
The crafting terminal respects AStages recipe restrictions: locked recipes produce no output.
Stability
Stage save paths are null-safe during early load, avoiding a startup crash when AStages folders are not ready yet. Simple restriction reload also skips work until caches exist.
Author Permission


