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-v1.2.0

  • R
  • Mar 8, 2026
  • 1.89 MB
  • 1.9K
  • 1.21.1
  • Fabric

File Name

obscuras_simple_storage-v1.2.0.jar

Supported Versions

  • 1.21.1

Curse Maven Snippet

Fabric

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

Learn more about Curse Maven

# Obscura's Simple Storage — v1.2.0 ## Bug Fixes ### 🔴 Critical — Vanilla blocks not dropping items when broken Crafting tables, furnaces, chests, barrels, and other vanilla blocks with inventories were silently swallowing their drop when broken if this mod was installed. **Root cause:** Our block-break event handler called Cardinal Components' `ComponentKey.get()` on *every* broken block entity — including vanilla ones. For vanilla blocks CCA throws a `NoSuchElementException`, which aborted execution before Minecraft's loot table drop code ran. The block was destroyed but the item never spawned. **Fixed:** Switched to `getNullable()` with a null guard in all three affected call sites. --- ### 🟠 Stability — Race condition crashing cable network cache Under multithreaded config or rapid network changes, the cable network could throw a `ConcurrentModificationException` due to a plain `HashMap` being accessed from multiple threads. Replaced with `ConcurrentHashMap`. ### 🟠 Stability — Null pointer in inventory cache access Two race conditions in `BlockInventoryAccess` where the `cache` field could be set to `null` by `markInvalid()` between the null check and its use, causing a `NullPointerException`. Fixed by capturing the field into a local variable before use. ### 🟡 Stability — Null pointer in hopper block entity on load `AbstractInventoryHopperBlockEntity.onLoad()` accessed `level` without a null guard. Added a proper null check to prevent a potential `NullPointerException` during edge-case block entity lifecycle events. ### 🟢 Code Quality — Replaced debug stack trace dump with proper logging Recursive storage access detection was printing a raw stack trace to stdout via `new Throwable().printStackTrace()`. Now logs a clean warning through the mod logger instead. --- ## Version - Bumped mod version: `v1.1.0` → `v1.2.0`