Skip to content

Releases: Flix100000/History-Stages

6.0.0-1.20.1

Choose a tag to compare

@Flix100000 Flix100000 released this 19 Sep 09:02

Full Changelog: 5.6.2-1.20.1...6.0.0-1.20.1

One of the biggest updates for History Stages so far, now on 1.20.1: three new lock categories, a real script integration for KubeJS and CraftTweaker, an addon surface other mods can build on, and a long list of fixes. It carries everything from 6.0.0 and 6.0.1 on 1.21.1. The few places where 1.20.1 does something differently are listed under Other.

Before you update

Most of this migrates on its own, but a few things behave differently than they did in 5.x. Worth reading before 6.0.0 goes on an existing pack.

  • Server and client both have to be on 6.0.0. The stage sync is gzipped now and the network protocol version moved to 11, so a 6.0.0 client on a 5.x server gets the incompatible-mod screen instead of connecting. That is intended: the old format would have dropped the player mid-login with nothing in the log naming a cause.
  • Settings moved into historystages/settings/, split into visual and gameplay by what a setting does rather than by which file it happened to load from. Every pre-6.0 config path is mapped to where it lives now, including the structure border and overlay settings the 5.x Forge client file kept under [visuals], and the values are carried across on first load, so nothing is lost. The old files stop being read after that.
  • A spawn lock no longer implies an attack lock. Locking a creature's spawns used to make it unhittable as well, and that rule does not survive the new conditions — "zombies only at night" would have handed out invulnerable night zombies. A creature that should also be unhittable belongs in the attack list from now on. This change is a silent one: nothing errors, the mob simply becomes attackable.
  • trade is a new item action, and old files count it as locked. Stage files store the complement of an action list, so an action that no existing file mentions is gated in every one of them. An item somebody narrowed to "use only" gates trading as well from this version on.

New

  • Locks: Zones [BETA] — draw an area out of cuboids, spheres and cylinders, several shapes per zone, and hang it on a stage. A locked zone can push players back with a client-side barrier, show a force-field wall up close and an outline from a distance, and tint the screen from the inside.
  • Locks: Trades — hide single merchant offers behind a stage, per player, back the moment the stage unlocks. Three ways to say what is gated that do not overlap: a single offer, a profession (optionally only on some of its levels), or a merchant level. A locked offer is absent from the list rather than crossed out, so nobody loses a profession or stops levelling.
  • Locks: Fluids — gate a fluid through whatever carries it, vanilla buckets, modded buckets and tank items alike, without listing a single item id. Also covers the recipes a fluid produces or is consumed by, through an ingredient action that only this category has.
  • Spawn: A spawn-lock entry is a full rule now. It carries a phase, eight optional conditions (dimension, biome, sky, height, time of day, light, weather, moon phase) and biomes the creature additionally spawns in, all edited in one dialog with four tabs and a sentence underneath saying in plain words what the rule does. Stage files that use none of it stay byte-identical.
  • Scripts: KubeJS and CraftTweaker can read stage state, change it and ask whether something is gated, with four KubeJS events, two ZenScript event types and a hasStage expansion on the player. Naming a Java event class as a string was the only way in before, and a typo in that string failed silently. Scripts still cannot define what belongs to a stage — that stays with the editor, so the editor keeps showing what is actually locked.
  • Addons: Another mod can register its own lock categories, requirements, auto-triggers, per-stage settings and config sections, and each one gets a tab in the in-game editor that looks like the built-in ones. A packmaker configures it without writing a script. See the Addon Development wiki page.
  • Recipes: Recipe locks apply per player at the crafting table, the 2×2 grid, the stonecutter and the smithing table. Furnaces, brewing, hoppers and mod autocrafters have nobody standing there and stay global-only.
  • Dependencies: A deposit can ask for an item tag, and a requirement can demand an individual stage of the researcher alone.
  • Triggers: A stage can unlock itself from player and world state, without anyone touching a pedestal.
  • Graph: A stage can change the map background once it is unlocked. The base colour of the graph surface is canvas.backgroundColor in graph.toml now instead of being built in; the default is unchanged at #17171A.
  • Editor: The recipe picker is one panel and shows what a recipe is made of instead of its raw id, with fluids filed where the recipes are. The NBT editor is a list of criterion cards. The three entity tabs merged into one Entities tab with sections. Items a pack deleted stay out of the pickers.
  • Config: A pack can hide the editor button in the pause menu.
  • Config: Visual settings reach every player, not just the admin who edited them, and a player's own settings come back when they leave a server.
  • Compat: Equip locks cover Accessories as well as Curios.

Fixes

  • Locks: The recipe list itself is gated rather than only the single lookup — machines that read the whole list instead of asking for one recipe were a hole. FastSuite answers those lookups itself and is covered now too (#121).
  • Locks: A recipe is asked what it makes against the world's real registries instead of an empty set. A modded recipe that builds its result from the registries used to answer with nothing and stayed unlocked.
  • Locks: An entry's unlock_actions are honoured everywhere a gate asks, and an empty action list means nothing is locked instead of silently flipping to everything. A mod entry narrowed to recipe used to shut the whole mod (#117).
  • Locks: A container click is judged by what it takes out of foreign storage, not by what lies in the clicked slot. Sorting a locked item inside your own inventory, throwing it away and stacking onto it all work now, and number-key swaps and double-click gathering are checked at all, which they never were (#122).
  • Lootr: Loot is filtered as it is rolled rather than only when a window opens, so items a player put into a Lootr container are no longer deleted on the next open, and decorated pots and brushed suspicious blocks stop handing out locked items (#120, #124).
  • Recipes: A stage gating a recipe that is not loaded is reported at load time instead of failing silently, and the editor marks those rows red. Locking or unlocking rebuilds the recipe book.
  • Compat: Polymorph no longer crashes the game at startup. It replaces the same recipe lookup in the crafting menu that we replaced, so one of the two was dropped. The three recipe stations wrap the whole method now, and Polymorph's alternatives obey stage locks instead of going around them (#127).
  • Compat: A stage name with capitals no longer takes JEI or EMI down. JER pages never draw the locked overlay.
  • Graph: A node whose requirements never arrived asks again instead of staying blank, and requirements are no longer served from the first time the node was opened.
  • Dependencies: Deposited progress is filed under a group's key rather than its position, so reordering groups no longer misfiles it. A stat requirement can be fulfilled at all now.
  • Tooltips: AND and OR are shown inside each group, where they apply.
  • Network: Large packs can log in again. The stage set travelled as one plain string and hit a fixed character cap, which threw while the login packet was being encoded and dropped the player. Both the login sync and the editor sync are gzipped now, and going over a limit names the field and both numbers instead of throwing from somewhere inside the encoder.
  • Editor: A warning before overwriting a stage file that changed on disk, error toasts that stay up twice as long, long suggestions that scroll, and a picker that no longer hits the row underneath it as it opens.
  • Config: The key lists that had to be maintained by hand are gone. Both specs are walked instead, so a new setting cannot be forgotten in three places.

Security and performance

  • Four packets carrying a block position handed it straight to getBlockEntity, which loads the chunk if it is not there, so sending coordinates was enough to make the server generate world on demand. All of them go through a reach check now.
  • Locked-item checks run through an index of what gates a subject instead of searching for it. Structure zones are derived once per structure start, pedestals check requirements every ten ticks rather than every tick, tooltips narrow through the relevance index instead of walking every stage, and the lock wall works out which cells are visible once per shape set instead of every frame.
  • Leaving a server used to keep its lock zones on screen until something synced over them.

Other

  • 1.20.1: MixinExtras is bundled inside the jar, because Forge 1.20.1 does not ship it, so there is nothing extra to install.
  • 1.20.1: The zone map is the top-down view only. The tilted 3D view from 1.21.1 is not part of this version.
  • 1.20.1: Picking up a gated fluid from a cauldron is refused for the vanilla water and lava cauldrons. A modded cauldron is not recognised, since 1.20.1 has no reg...
Read more

6.0.1-1.21.1

Choose a tag to compare

@Flix100000 Flix100000 released this 16 Sep 17:15

Full Changelog: 6.0.0-1.21.1...6.0.1-1.21.1

Fixes

  • Compat: Lithium no longer crashes the game at startup. The zone barrier's wall hung on a call inside Minecraft's movement code that Lithium also claims, and a call belongs to one mod only. It adds itself to the collision list instead, which is shared (#126).
  • Compat: Polymorph no longer crashes the game at startup. It replaces the same recipe lookup in the crafting menu that we replaced, so one of the two was dropped. The three recipe stations wrap the whole method now, and Polymorph's alternatives obey stage locks instead of going around them (#127).
  • Compat: Sophisticated Backpacks no longer keeps a world from loading. We asked every recipe result what fluid it was carrying while the world was still opening, before Sophisticated Backpacks could read its own config to answer. That walk has moved to after the world is up, and only runs when a stage gates a fluid (#130).
  • Locks: A recipe is asked what it makes against the world's real registries instead of an empty set. A modded recipe that builds its result from the registries used to answer with nothing and stayed unlocked. Also covers the modded recipes JEI was skipping for the same reason.
  • Trades: Gating one offer no longer cancels Minecraft's own method for opening the trade window, which skipped every other mod hooked into it. Only the list sent to the player is swapped. A merchant with nothing left now sends an empty list rather than none at all.
  • Trades: The merchant scan drops a trade that needs more than 50ms to name an offer and stops after two seconds. Vanilla's treasure map was already left out; a mod's own map trade walked back into the same stall.
  • Fluids: Right-clicking a block asks the held item about its contents through the same guarded lookup as everywhere else, so a mod whose answer fails cannot take the game down.

6.0.0-1.21.1

Choose a tag to compare

@Flix100000 Flix100000 released this 14 Sep 07:30

Full Changelog: 5.6.1-1.21.1...6.0.0-1.21.1

One of the biggest updates for History Stages so far: three new lock categories, a real script integration for KubeJS and CraftTweaker, an addon surface other mods can build on, and a long list of fixes.

Before you update

Most of this migrates on its own, but a few things behave differently than they did in 5.x. Worth reading before 6.0.0 goes on an existing pack.

  • Server and client both have to be on 6.0.0. The stage sync is gzipped now and the payload version moved to 2, so a 6.0.0 client on a 5.x server gets the incompatible-mod screen instead of connecting. That is intended: the old format would have dropped the player mid-login with nothing in the log naming a cause.
  • Settings moved into historystages/settings/, split into visual and gameplay by what a setting does rather than by which file it happened to load from. Every pre-6.0 config path is mapped to where it lives now and the values are carried across on first load, so nothing is lost. The old files stop being read after that.
  • A spawn lock no longer implies an attack lock. Locking a creature's spawns used to make it unhittable as well, and that rule does not survive the new conditions — "zombies only at night" would have handed out invulnerable night zombies. A creature that should also be unhittable belongs in the attack list from now on. This change is a silent one: nothing errors, the mob simply becomes attackable.
  • trade is a new item action, and old files count it as locked. Stage files store the complement of an action list, so an action that no existing file mentions is gated in every one of them. An item somebody narrowed to "use only" gates trading as well from this version on.

New

  • Locks: Zones [BETA] — draw an area out of cuboids, spheres and cylinders, several shapes per zone, and hang it on a stage. A locked zone can push players back with a client-side barrier, show a force-field wall up close and an outline from a distance, and tint the screen from the inside.
  • Locks: Trades — hide single merchant offers behind a stage, per player, back the moment the stage unlocks. Three ways to say what is gated that do not overlap: a single offer, a profession (optionally only on some of its levels), or a merchant level. A locked offer is absent from the list rather than crossed out, so nobody loses a profession or stops levelling.
  • Locks: Fluids — gate a fluid through whatever carries it, vanilla buckets, modded buckets and tank items alike, without listing a single item id. Also covers the recipes a fluid produces or is consumed by, through an ingredient action that only this category has.
  • Spawn: A spawn-lock entry is a full rule now. It carries a phase, eight optional conditions (dimension, biome, sky, height, time of day, light, weather, moon phase) and biomes the creature additionally spawns in, all edited in one dialog with four tabs and a sentence underneath saying in plain words what the rule does. Stage files that use none of it stay byte-identical.
  • Scripts: KubeJS and CraftTweaker can read stage state, change it and ask whether something is gated, with four KubeJS events, two ZenScript event types and a hasStage expansion on the player. Naming a Java event class as a string was the only way in before, and a typo in that string failed silently. Scripts still cannot define what belongs to a stage — that stays with the editor, so the editor keeps showing what is actually locked.
  • Addons: Another mod can register its own lock categories, requirements, auto-triggers, per-stage settings and config sections, and each one gets a tab in the in-game editor that looks like the built-in ones. A packmaker configures it without writing a script. See the Addon Development wiki page.
  • Recipes: Recipe locks apply per player at the crafting table, the 2×2 grid, the stonecutter and the smithing table. Furnaces, brewing, the crafter block, hoppers and mod autocrafters have nobody standing there and stay global-only.
  • Dependencies: A deposit can ask for an item tag, and a requirement can demand an individual stage of the researcher alone.
  • Triggers: A stage can unlock itself from player and world state, without anyone touching a pedestal.
  • Graph: A stage can change the map background once it is unlocked. The base colour of the graph surface is canvas.backgroundColor in graph.toml now instead of being built in; the default is unchanged at #17171A.
  • Editor: The recipe picker is one panel and shows what a recipe is made of instead of its raw id, with fluids filed where the recipes are. The NBT editor is a list of criterion cards. The three entity tabs merged into one Entities tab with sections. Items a pack deleted stay out of the pickers.
  • Config: A pack can hide the editor button in the pause menu.
  • Config: Visual settings reach every player, not just the admin who edited them, and a player's own settings come back when they leave a server.

Fixes

  • Locks: Locking a recipe no longer takes down other recipes that share its ingredients, and the recipe list itself is gated rather than only the single lookup — machines that read the whole list instead of asking for one recipe were a hole. FastSuite answers those lookups itself and is covered now too (#121).
  • Locks: An entry's unlock_actions are honoured everywhere a gate asks, and an empty action list means nothing is locked instead of silently flipping to everything. A mod entry narrowed to recipe used to shut the whole mod (#117).
  • Locks: A container click is judged by what it takes out of foreign storage, not by what lies in the clicked slot. Sorting a locked item inside your own inventory, throwing it away and stacking onto it all work now, and number-key swaps and double-click gathering are checked at all, which they never were (#122).
  • Lootr: Loot is filtered as it is rolled rather than only when a window opens, so decorated pots and brushed suspicious blocks stop handing out locked items (#120, #124). The mob-drop path reads replacementTags again.
  • Recipes: A stage gating a recipe that is not loaded is reported at load time instead of failing silently, and the editor marks those rows red. Locking or unlocking refreshes the recipe book properly instead of leaving it blank until a rejoin.
  • Compat: A stage name with capitals no longer takes JEI or EMI down. JER pages never draw the locked overlay. Better Combat is accepted at any version.
  • Graph: A node whose requirements never arrived asks again instead of staying blank, and requirements are no longer served from the first time the node was opened.
  • Dependencies: Deposited progress is filed under a group's key rather than its position, so reordering groups no longer misfiles it. A stat requirement can be fulfilled at all now.
  • Tooltips: AND and OR are shown inside each group, where they apply.
  • Network: Large packs can log in again. The stage set travelled as one plain string and hit a fixed character cap, which threw while the login packet was being encoded and dropped the player. Both the login sync and the editor sync are gzipped now, and going over a limit names the field and both numbers instead of throwing from somewhere inside the encoder.
  • Editor: A warning before overwriting a stage file that changed on disk, error toasts that stay up twice as long, long suggestions that scroll, and a picker that no longer hits the row underneath it as it opens.
  • Config: Client-side settings were rebuilt from defaults on every start, because the client spec never saved. The key lists that had to be maintained by hand are gone as well — both specs are walked instead, so a new setting cannot be forgotten in three places.

Security and performance

  • Four packets carrying a block position handed it straight to getBlockEntity, which loads the chunk if it is not there, so sending coordinates was enough to make the server generate world on demand. All of them go through a reach check now.
  • Locked-item checks run through an index of what gates a subject instead of searching for it. Structure zones are derived once per structure start, pedestals check requirements every ten ticks rather than every tick, tooltips narrow through the relevance index instead of walking every stage, and the lock wall works out which cells are visible once per shape set instead of every frame.
  • Leaving a server used to keep its lock zones on screen until something synced over them.

Other

  • Dependencies moved to their newest 1.21.1 builds.
  • Thanks to @Tech3434 for a long run of reports and compatibility findings this cycle, and to everyone who filed the issues fixed above.

5.6.2-1.20.1

Choose a tag to compare

@Flix100000 Flix100000 released this 11 Sep 17:24

Full Changelog: 5.6.1-1.20.1...5.6.2-1.20.1

Fixes

  • Locks: Locking a recipe no longer takes other recipes with the same ingredients down with it. Putting a scripted 2x2 red sand recipe on a stage also stopped red sandstone from being craftable, and which of the two it hit came down to load order, so it could differ from world to world.
  • Compat: Spell Engine and Better Combat no longer keep the game from starting. Both carried a minimum version that never existed on 1.20.1, a leftover from the port. Nothing here compiles against either one, so the bound protected nothing and only kept people out.

5.6.1-1.20.1

5.6.1-1.20.1 Pre-release
Pre-release

Choose a tag to compare

@Flix100000 Flix100000 released this 07 Sep 13:42

Full Changelog: 5.6.0-1.20.1...5.6.1-1.20.1

Fixes

  • Locks: Locked recipes could still be crafted by machines that read the whole recipe list instead of asking for a single recipe — Create's mixing and compacting were the visible case. Both ways of reaching a recipe are gated now.
  • Locks: Locking or unlocking a stage now refreshes recipes on every path, and the full datapack reload only runs when the set of hidden recipes really changed.

Other

  • License: Technical ports to other Minecraft versions or mod loaders are now explicitly allowed under conditions. See Section 3 of LICENSE.txt.

5.6.0-1.20.1

Choose a tag to compare

@Flix100000 Flix100000 released this 19 Aug 10:50

Full Changelog: 5.5.1-1.20.1...5.6.0-1.20.1

New

  • Stages: Added folder support for stage JSON files, with a matching organize mode in the editor for moving stages and folders around.
  • Graph: Rebuilt the dependency graph as a hand-authorable stage map and opened it to players in-game, with a reworked sidebar, a detail window instead of the old panel, a GraphViewFilter visibility ladder, a strict progressive mode with per-option tooltips, per-stage node style overrides editable per lock state, and a screen title that can be written as rich text.
  • Config: Added a Graph tab to the config editor for editing graph.toml directly.
  • Locks: Added biome and interaction lock categories, the latter with per-action and held-item filters. Locked structures are now kept out of world generation, and structures can be capped on how often they generate.
  • Stages: Added a lose-on-death setting and per-player unlocking of individual stages from the overview.
  • Editor: Added a classic HSV colour picker with fixed swatches and hover animation, a credits dialog with wiki/Discord/issue links, a display-name prompt when creating a stage, select-all/deselect-all and multiselect for searchable lists, and a time-based animation system with general UI polish. Save now stays on the current screen and persists the whole stage.
  • Pedestal/Scroll: Reworked the research screen with scroll completion modes, a readable open scroll document, and the ability to read open scrolls from a lectern. The research scroll tooltip is now configurable.

Fixes

  • Pedestal: The XP deposit button now shows why it does nothing when you cannot pay the level cost, instead of silently swallowing every click.
  • Pedestal: Dependency status is sent to the requesting player only; nearby clients no longer cache someone else's progress.
  • Pedestal: The wash over a running research scroll now draws over the item icon instead of behind it.
  • Editor: Stopped large stages from crashing the save, made searchable lists usable at a few thousand rows, and fixed config/item pickers leaking through their overlay. The editor now refreshes when the server pushes config, dependency/temporary badges show correctly on individual rows again, and the unsaved-changes warning actually discards on confirm.
  • Config: Synced every common config value to clients.
  • Locks: Item locks are now looked up through a stage index for better performance. The recipe lock overlay shows for individual stages, hidden_display applies to individual stages, and show_lock_hints works independently of tooltip mode.
  • Loot: Honored individual stages when stripping loot.

5.6.1-1.21.1

Choose a tag to compare

@Flix100000 Flix100000 released this 12 Aug 22:38

Full Changelog: 5.6.0-1.21.1...5.6.1-1.21.1

Fixes

  • Network: Fixed dedicated servers refusing to start with "Attempted to load class net/minecraft/client/gui/screens/Screen for invalid dist DEDICATED_SERVER". The lectern scroll packet added in 5.6.0 referenced a client-only screen class, which broke mod loading while payload handlers were registered.

5.6.0-1.21.1

Choose a tag to compare

@Flix100000 Flix100000 released this 12 Aug 14:36

What's Changed

Full Changelog: 5.5.1-1.21.1...5.6.0-1.21.1

New

  • Stages: Added folder support for stage JSON files, with a matching organize mode in the editor for moving stages and folders around.
  • Graph: Rebuilt the dependency graph as a hand-authorable stage map and opened it to players in-game, with a reworked sidebar, a detail window instead of the old panel, a GraphViewFilter visibility ladder, a strict progressive mode with per-option tooltips, and per-stage node style overrides editable per lock state.
  • Config: Added a Graph tab to the config editor for editing graph.toml directly.
  • Locks: Added biome and interaction lock categories, the latter with per-action and held-item filters. Locked structures are now kept out of world generation, and structures can be capped on how often they generate.
  • Stages: Added a lose-on-death setting and per-player unlocking of individual stages from the overview.
  • Editor: Added a classic HSV colour picker with fixed swatches and hover animation, a credits dialog with wiki/Discord/issue links, a display-name prompt when creating a stage, select-all/deselect-all and multiselect for searchable lists, and a time-based animation system with general UI polish. Save now stays on the current screen and persists the whole stage.
  • Pedestal/Scroll: Reworked the research screen with scroll completion modes, a readable open scroll document, and the ability to read open scrolls from a lectern. The research scroll tooltip is now configurable.

Fixes

  • Editor: Stopped large stages from crashing the save, made searchable lists usable at a few thousand rows, and fixed config/item pickers leaking through their overlay. The editor now refreshes when the server pushes config, and dependency/temporary badges show correctly on individual rows again.
  • Config: Synced every common config value to clients.
  • Locks: Item locks are now looked up through a stage index for better performance. The recipe lock overlay shows for individual stages, hidden_display applies to individual stages, and show_lock_hints works independently of tooltip mode.
  • Loot: Honored individual stages when stripping loot.
  • Logger: Reports lose_on_death in the diagnostic stage dump.

5.5.1-1.20.1

Choose a tag to compare

@Flix100000 Flix100000 released this 17 Jul 16:24

Full Changelog: 5.5.0-1.20.1...5.5.1-1.20.1

Fixes

  • Compat: Fixed startup crash with the latest Better Combat (1.9.0) on Forge 1.20.1.

5.5.0-1.20.1

Choose a tag to compare

@Flix100000 Flix100000 released this 15 Jul 17:03

Full Changelog: 5.4.0-1.20.1...5.5.0-1.20.1

New

  • Compat: Locked items are now inert vs Spell Engine & Better Combat (#87).
  • EMI: Brought EMI integration up to the same level as JEI.
  • FTB Quests: Replaced stage cycling button with a searchable picker screen.
  • Locks: Added NBT criterion to tag locks (#84).
  • Stages: Added ability to hide or replace display names and tooltips of locked items.
  • Editor: Added dependency graph viewer.
  • Editor: Widgets and buttons now grow to fit long translations.
  • I18n: Made hardcoded player-facing text translatable.
  • Stages: Added temporary stage mode with auto re-lock timer.
  • Stages: Added AUTO stage mode and auto-trigger system (#80).
  • Editor: Added multi-select to entity picker.
  • Spawnlock: Added per-dimension filter for spawn-locked entities.
  • Stages: Added scoreboard objective dependency.
  • Pedestal: Added config to lock scroll in pedestal while researching.
  • Pedestal: Comparator output now reflects research progress (0-15).

Fixes

  • Toasts: Stack variable-height notifications without overlap.
  • Research: Gate isItemNeeded deposit timer by NBT criterion.
  • Locks: Split place/use gating and block copycat material application (#81, #85).
  • Research: Gate dependency item deposits by NBT criterion.
  • Pedestal: Orient tier 2 pedestal to player facing on placement.