promotional bannermobile promotional banner

Obscura's Simple Storage (Tom's Simple Storage Fork)

A hyper-optimized, zero-lag reimagining of simple storage! Featuring 80+ engine optimizations, instant terminal sync, massive TPS/FPS server boosts, and beautiful new native textures. A must-have for massive modpacks.

File Details

obscuras_simple_storage-v2.0.0.jar

  • R
  • Mar 3, 2026
  • 1.89 MB
  • 323
  • 1.21.1
  • Fabric

File Name

obscuras_simple_storage-v1.1.0.jar

Supported Versions

  • 1.21.1

Curse Maven Snippet

Fabric

modImplementation "curse.maven:obscuras-simple-storage-1475987:7707577"
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

Bug Fixes – v1.1.0 🔴 Critical Painted blocks not synchronizing to clients – PaintedBlockEntity now sends packet on chunk load. Painted blocks revert after world reload – added markDirtyClient() call in loadAdditional(). Cable network generation never incremented for uncached nodes – moved generation++ earlier in InventoryCableNetwork. Inventory connector scan interval dropped from 1 s to 10 s – restored 20‑tick polling in InventoryConnectorBlockEntity. Inventory connector dirty flag never cleared – removed dead flags and simplified update logic. 🔴 High Recipe book shows “1” for all stacks – changed getStack()→getActualStack() in terminal menus. Terminal sync delay tied to mspt – reverted to immediate sync when changeID changes. Empty stack icons in terminal (copyWithCount bug) – fixed rendering passes in AbstractStorageTerminalScreen. Exceptions swallowed when rendering slot items – added debug logging for rendering errors. NbtAccounter limit blocking large packets – switched to NbtAccounter.unlimitedHeap() in DataPacket. itemListClient shared reference – now copied defensively in StorageTerminalMenu.receiveClientNBTPacket(). Poly filter defaults to fail‑open – changed missing‑inventory behavior to fail‑closed. Remote connections cached too aggressively – restored original scan‑per‑call logic and removed cache fields. Unbounded DataPacket buffer overflow heuristic – restored try/catch fallback for writer index. Terminal render exceptions hide cause – added logging in two‑pass drawing (companion to bug 8). 🟠 Medium setInitialFocus missing after render – added call at end of CraftingTerminalScreen.render(). drawSlot() removal – determined to be safe optimization (no subclass override). compactIdMap() causing NPE – added null checks in TerminalSyncManager. PlatformFilteredInventoryAccess.inFilter() dropped count/hash – now constructs StoredItemStack like original. CraftingMatrix.getItems() used wrong copy method – switched back to List.copyOf(...). Inventory connector hasConnectedInventories() always true – reverted to original beacon‑only check. Beacon scan rate throttled to 200 t – restored original 40‑tick interval. No feedback when 20‑channel limit reached – left as UX improvement (not a bug). Search 150 ms debounce only above 1000 items – kept as safe optimization. Cable BFS limit silent failure – added a warning log when the max‑cable threshold is hit.