promotional bannermobile promotional banner

BigStacks

Break the vanilla 99-item stack limit — set a global max stack size with per-item and per-tag overrides, all configurable
Back to Files

BigStacks 1.0.5

File nameBigStacks-1.0.5.jar
Uploader
Lander_AloLander_Alo
Uploaded
Sep 4, 2026
Downloads
64
Size
1.5 MB
Mod Loaders
NeoForge
File ID
8804119
Type
R
Release
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:bigstacks-1671208:8804119"

Learn more about Curse Maven

What's new

[1.0.5]

Added

  • Config GUI keybind (default K, rebindable in Options → Controls → BigStacks): opens the config GUI in game. The binding is edge-triggered (holding the key only opens the screen once) and uses the IN_GAME conflict context, so it never fires while a GUI is open.
  • Blacklist editor in the config GUI: the main screen now has Overrides / Blacklist tabs; blacklist entries can be added, edited and removed like overrides (same id / #tag / mod:* syntax, no max-stack field).
  • Item icons in the GUI: list rows, the autocomplete dropdown and the edit screen's live preview now render the real item icon for each entry (first item of a tag, first item of a namespace wildcard); unknown patterns show a red placeholder. Hovering a row shows a tooltip with the resolved item name.
  • Adding an item to the blacklist removes its override (and vice versa), so the two lists can't contradict each other.

Fixed

  • Crash when saving the config from the in-game GUI (WritingException: Failed to atomically write ... bigstacks-common.toml / NoSuchFileException): two concurrent Nightconfig saves could move the same .new.tmp.toml temp file out from under each other. All saves now go through a single lock (Config.saveSpec()), serializing the atomic-replace.
  • Redundant TOML writes: applying a full config (GUI or /BigStacks) wrote the file and re-baked the rules up to 3–4 times per payload. ServerConfigSync.apply() now performs 1 save + 1 bake per payload, and Config.applyRemote (S2C to clients) is also batched into a single bake.
  • Log spam of repeated [BigStacks] config loaded lines: from ~10 lines per GUI change down to 1 per actual reload. Now it is also deduplicated against the last logged state, so FML's double load (client + integrated server) and the file watcher no longer repeat the line when the values did not change.
  • The blacklist received over sync is now persisted on dedicated servers (save=true), so it survives server restarts.
  • ItemSuggestBox now truly caps the dropdown at 8 visible rows (previously visible was always empty at the trim point, so every match was added and drawn overlapping the whole screen).
  • The "not configured" prompt can no longer be swallowed by the loading-screen check in singleplayer.
  • example-config.toml and README.md document the real overrides format: a list of strings ("minecraft:ender_pearl,999"), not TOML tables.
  • example-config.toml now points to the real config path (config/bigstacks-common.toml, it said config/bigstacks.toml).
  • All server and client command feedback is now translatable (bigstacks.cmd.* / bigstacks.clientcmd.*); the hardcoded Spanish strings were removed.
  • es_es.json now uses proper Spanish accents ("Añadir", "vacío", "aquí").
  • Error loading class: ironfurnaces/... warning on every launch when Iron Furnaces is not installed: the compat mixin is now filtered by BigStacksMixinPlugin (only applied when the mod is present) instead of relying on require = 0.
  • Login sync no longer re-broadcasts the config to every connected player; only the joining player receives the payload (ServerConfigSync.sendTo).
  • /bigstacks global get output is translatable too (bigstacks.cmd.global_get), and the OP-required message uses bigstacks.cmd.no_permission instead of a hardcoded string.

Changed

  • Config.setGlobalMax, Config.setOverrides and Config.applyRemoteBlacklist accept a rebake flag to batch mutations and rebuild the resolution cache only once (less work in the getMaxStackSize hot path).

Cleanup

  • Removed leftover files: bigstacks-common-1..5.toml.bak (obsolete FML backups in the run folder), itemstacks-common.toml (config of the mod's old id) and the empty run/ folder (dev runs live in runs/client and runs/server).
  • Removed dead code: Config.overridesFullRaw() (exact duplicate of overridesRaw()), BigStacksSync.isConnected() and the unused lang keys (itemGroup.bigstacks, bigstacks.clientcmd.invalid).
  • Replaced deprecated APIs: Item#builtInRegistryHolder() → BuiltInRegistries.ITEM lookups, and defineListAllowEmpty(path, list, predicate) → the variant with a new-element supplier. Compiles warning-free now.
  • Renamed the resource pack description in pack.mcmeta from the old mod id ("ItemStacks") to "BigStacks".
  • Renamed the Gradle root project from the old name (ItemStacks) to BigStacks in settings.gradle.kts.
  • Added LICENSE (MIT, matching the declaration in neoforge.mods.toml) and a README.md with features, commands and the real config format.

This mod has no related projects