High capacity drawer storage for items, fluids, and Thaumcraft essentia.
A backport of Functional Storage to Minecraft 1.7.10, with
More Functional Storage merged in and first class Applied Energistics 2 and
Waila integration.
- 📑 Table of Contents
- ✨ Overview
- 🧱 Storage Blocks
- ⬆️ Upgrade System
- 🧪 Storage Kinds
- 🔌 Mod Integration
- 🧩 Configuration
- 🌍 Localization
- 📥 Installation
- 🧱 Dependency Requirements
- 🛠️ Building
- 📜 Credits & Attributions
Functional Storage Classic brings the modern drawer experience to 1.7.10 without the modern engine. Storage is built on a small generic core: one indexed, long-capacity handler powers items, fluids, and essentia, so every drawer type shares the same routing, upgrade, and synchronization behaviour.
- Long capacity storage — a single slot holds far more than an
int, with the amount rendered on the drawer face. - Multiplicative storage upgrades — registered capacity tiers stack multiplicatively instead of overwriting each other.
- Contents survive breakage — stored contents, filters, lock state, and installed upgrades are written into the dropped block's NBT.
- 1.7.10 automation interfaces — item drawers expose vanilla
IInventory; fluid drawers expose ForgeIFluidHandler; essentia drawers use Thaumcraft's aspect and tube interfaces. - Controller networks — a storage controller aggregates every linked drawer into one logical inventory for automation.
| Family | Variants | Notes |
|---|---|---|
| Wood Drawers | 6 woods × 1/2/4 slots | Oak, spruce, birch, jungle, acacia, dark oak |
| Framed Drawers | 1/2/4 slots | Exterior, front, and divider take any block's texture |
| Fluid Drawers | 1/2/4 tanks | One long-capacity tank per slot |
| Essentia Drawers | 1/2/4 slots | Thaumcraft essentia; registered when Thaumcraft is present |
| Compacting Drawers | 3 tiers | Compacts 9→1 and 4→1 chains automatically |
| Simple Compacting Drawers | 2 tiers | Lightweight compacting |
| Ender Drawers | 1 slot | Frequency based shared storage, per save |
| Armory Cabinet | 1 block | Bulk storage for gear and tools |
Every drawer is a full cube that can be mounted on a wall, a floor, or a ceiling. The front faces the player. Looking steeply down or up selects floor or ceiling mounting, following FunctionalStorageLegacy. Models, contents and clickable regions rotate together.
- Storage Controller — indexes every linked drawer and exposes their combined contents.
- Controller Extension — extends a controller's reach without consuming another controller.
Drawers are linked with the Linking Tool: right-click a controller to select it, then right-click drawers to bind them.
Craft an unstyled framed drawer from three oak planks and a matching oak drawer in a 2×2 grid. Apply materials with the Legacy styling recipe: exterior and front blocks on the top row, the framed drawer and an optional divider block below. This preserves the drawer's contents and upgrades. Each face uses the corresponding material texture, including log ends.
Each drawer has four storage upgrade slots and three utility upgrade slots.
| Upgrade | Default Capacity Multiplier |
|---|---|
| Iron Downgrade | limits item slots to 64 items |
| Copper Upgrade | ×8 |
| Gold Upgrade | ×16 |
| Diamond Upgrade | ×24 |
| Netherite Upgrade | ×32 |
| Turtle Scute Upgrade | ×48 |
| Nether Star Upgrade | ×72 |
| Heavy Core Upgrade | ×128 |
| Max Storage Upgrade | removes the capacity ceiling |
| Creative Vending Upgrade | unlimited extraction of the configured resource; creative only |
All capacity upgrade multipliers come from the storage configuration.
Fluid and essentia capacity modifiers apply their configured divisors. Reopen the world
after changing storage settings.
Turtle scute and heavy core upgrades are always registered but have no crafting recipes. The blank upgrade is the central ingredient for T1 generators and non-tier utility upgrades; higher generator tiers use the preceding tier instead.
Right-clicking installs an upgrade into an available slot. Use the drawer interface to remove an installed upgrade or exchange tiers.
| Upgrade | Effect |
|---|---|
| Void Upgrade | destroys overflow that no longer fits |
| Redstone Upgrade | comparator-style redstone output based on fill level |
| Pulling Upgrade | pulls items, fluids, or essentia from the chosen side |
| Pushing Upgrade | pushes items, fluids, or essentia to the chosen side |
| Collector Upgrade | collects nearby dropped items and fluid sources |
| Wireless Pulling / Pushing | transfer to and from a recorded coordinate |
Generators have five tiers, with output amounts and operation intervals supplied by the
upgrades configuration. Generation kinds and capacity tiers use instance-based registration.
| Upgrade | Effect |
|---|---|
| Water Generation | fills a fluid drawer with water |
| Stone Generation | produces cobblestone in a drawer |
| Universal Item Generation | produces the configured item, or the upgrade's own filter |
| Dripping Upgrade | generates lava in a fluid drawer |
| Resource Generators | produce obsidian, dirt, sand, gravel, netherrack, end stone, soul sand, or clay |
| Et Futurum Requiem Generators | register only when the corresponding block exists |
| Milk / Honey Generators | register only when the corresponding fluid exists in Forge's fluid registry |
The dripping recipe uses netherrack in place of pointed dripstone, which does not exist in 1.7.10.
Et Futurum Requiem resources include cobbled deepslate, andesite, diorite, granite, blackstone,
tuff, basalt, dripstone, prismarine, and sculk. Generator registry names and textures use
_1 through _5. Forge missing mappings migrate the former _t1 through _t4 names
and unnumbered dripping and obsidian upgrades. The removed ore dictionary upgrade maps
to the blank upgrade.
The following upgrades from More Functional Storage are merged into this mod:
| Upgrade | Effect |
|---|---|
| Breaker Upgrade | breaks the block in front of the drawer and stores the drops |
| Placer Upgrade | places blocks from the drawer into the world |
| Refill Upgrade | refills existing stacks in the owner's hotbar, main inventory, or ender chest |
| Dimensional Refill Upgrade | as above, across dimensions |
| Speed Upgrade Augment | installs inside an upgrade's configuration screen to shorten its operation interval |
| Efficiency Upgrade Augment | doubles the amount processed per operation |
Right-click an installed automation upgrade in the drawer interface to configure its direction, item filters, selected slots, redstone mode, or refill destination. The filter panel has nine ghost slots: left-click copies the cursor item, right-click clears it, and scrolling selects an ore dictionary entry. Breakers require a tool and preserve its durability. Redstone modes include always active, signal required, no signal, and once per pulse. Stonecutting Upgrade is intentionally omitted because 1.7.10 has no stonecutter.
| Kind | Container | Interface |
|---|---|---|
| Items | Wood, compacting, ender drawers, armory cabinet | Vanilla IInventory and AE2 ME inventory |
| Fluids | Fluid drawers | Forge IFluidHandler |
| Essentia | Essentia drawers | Thaumcraft IAspectContainer and IEssentiaTransport |
All three kinds share one storage core. A resource kind only has to describe its identity, capacity, and persistence, and it inherits routing, overflow voiding, creative mode, lock-filter retention, and change notifications. Essentia icons are drawn with Thaumcraft's own aspect textures, so compound aspects and addon aspects render correctly without this mod shipping any Thaumcraft assets.
- Applied Energistics 2 — drawers are registered with AE2's
IExternalStorageRegistry, so storage buses can address them as ME storage. - Waila — hover any drawer to see its contents, capacity, and installed upgrades.
- Thaumcraft — essentia phials exchange eight units with the clicked slot; tubes use
IEssentiaTransportsuction and transfer, alongsideIAspectContainer. Addons can register explicit container capacities throughEssentiaContainerRegistry. Wired and wireless pulling and pushing upgrades useupgradePullAspectandupgradePushAspectas their per-operation limits and respect native essentia input/output ports. - Hoppers and pipes — drawers implement vanilla
IInventoryand ForgeIFluidHandlerdirectly, which is how 1.7.10 automation discovers inventories. - Inventory Bogo Sorter — item drawers and the armory cabinet support configured bulk, matching-item, single-item, and empty-slot transfer shortcuts. The default bindings are Space + left-click, Alt + left-click, Ctrl + left-click, and Ctrl + right-click. Bulk transfers preserve pinned player slots and keep the main inventory and hotbar separate.
- Mouse Tweaks / NEI — slot scrolling transfers items directly between item storage and the player inventory, respecting storage capacity and normal item stack limits. Mouse Tweaks direction and search-order settings apply when it owns scrolling; NEI's direction setting applies when NEI owns it. In the armory, scrolling over slots transfers items, while scrolling over the background changes the visible rows. Extraction follows the visible filtered slots.
- Comparators — a drawer emits a comparator signal based on how full it is.
- The One Probe — not supported. The One Probe was never released for Minecraft 1.7.10, so Waila is used instead.
The Bogo Sorter drop-off compatibility mixin is loaded only when Inventory Bogo Sorter is installed. Other optional integrations register only when the corresponding mod is present. Inventory shortcuts use server-authoritative storage operations, so display icons cannot be moved as real items. Shortcut compatibility is verified with Inventory Bogo Sorter 1.3.50-GTNH and Mouse Tweaks 2.5.3-GTNH. Fluid containers and essentia phials use the drawer interface's container exchange interactions.
Sneak and right-click a drawer with an empty hand to open its interface. It shows the drawer's storage slots, its storage and utility upgrade slots, and your inventory, so upgrades can be swapped without breaking the block.
Right-click a slot with an item to insert the held stack. A second click within six ticks inserts matching items from your inventory. Left-click extracts one item, or one stack while sneaking. Buckets and registered fluid containers exchange with the clicked tank; Thaumcraft phials exchange with the clicked essentia slot.
In creative mode, a normal left-click on the front extracts contents. Sneaking or clicking another face allows the block to be removed, following Storage Drawers.
Right-clicking with an upgrade installs it in the appropriate upgrade group. Sneak with the Configuration Tool and right-click air to cycle modes, then right-click drawers to apply locking, numbers, contents, upgrades, or indicator settings. The Linking Tool supports single and area selection, adding and removing links, and copying ender frequencies. Sneak-right-click a target block with a wireless upgrade to record its position and access face.
Configuration is provided through GTNHLib and is editable in game from the mod list.
Categories:
general— content retention, controller range and link limit, armory size, compacting rules, ore dictionary filtersstorage— upgrade multipliers, per-kind capacity divisors, base slot capacitiesupgrades— transfer amounts, tick intervals, and T1–T5 generator outputscompatibility— Waila, Applied Energistics 2, and Thaumcraft togglesclient— drawer render distance and default display options;threeDimensionalBlockDisplaydefaults totrueand can be disabled to show flat block icons on drawer faces
The mod ships with:
en_US— Englishzh_CN— Simplified Chinese
Both files cover block names, item names, tooltips, upgrade descriptions, Waila text, and every configuration entry. More Functional Storage's names and configuration tooltips are translated into Simplified Chinese. Both language files use matching categories and key order. Stored contents, filters, and installed upgrades have item previews in tooltips through GTNHLib's tooltip API.
- Install Minecraft 1.7.10 with Forge 10.13.4.1614.
- Install GTNHLib 0.11.48 or newer — it is a hard requirement.
- Drop the Functional Storage Classic jar into your
modsfolder. - Optional: install Applied Energistics 2, Waila, and Thaumcraft for their integrations.
- Minecraft:
1.7.10 - Forge:
10.13.4.1614 - GTNHLib:
0.11.48or newer, required
Optional integrations activate automatically when the relevant mod is present.
- Java: JDK
25(the build downgrades bytecode to Java 8) - Gradle wrapper: use the included
gradlew/gradlew.bat
# Windows
gradlew.bat clean build -x test
# Linux / macOS
./gradlew clean build -x testThis project is maintained by ABKQPO at the FunctionalStorageClassic repository. It is a port and adaptation. The original designs, behaviour, assets, and implementation references come from the following projects.
| Project | Author | Repository | License / attribution | What was used |
|---|---|---|---|---|
| Functional Storage | Buuz135 and contributors | Buuz135/FunctionalStorage | MIT | Original drawer design, upgrade behaviour, and textures |
| Functional Storage Legacy | xinyihl | xinyihl/FunctionalStorageLegacy | MIT | Historical 1.12.2 port reference and inherited assets |
| More Functional Storage | Matyrobbrt | Matyrobbrt/MoreFunctionalStorage | MIT | Breaker, placer, refill, and dimensional refill upgrades |
| More Functional Storage Upgrade | WitherRedstone / ChinaEX123 | WitherRedstone/More-Functional-Storage-Upgrade | MIT code; CC BY 4.0 assets | Resource generators, capacity upgrades, and adapted textures |
| FunctionalChemical | GTNewHorizons and contributors | GTNewHorizons/FunctionalChemical | Repository license | External storage integration pattern reference |
Drawer menus use the drawer front texture and vanilla inventory slot textures. Upgrade headings appear only when the corresponding slots exist. Upgrade menus provide direct drawer-slot selection, nine ghost filters, direction controls, tool/speed attachments, and return navigation. Armory cabinets retain a vanilla search field and use NEI's search syntax and registered search providers when NEI is installed, including NeverEnoughCharacters-Rework's pinyin support. Without NEI, they match localized tooltip text and item IDs. Priority is synchronized by the server and orders controller routing. Saved-content tooltips use compact item previews with overlaid amounts.
In drawer menus, left-click deposits the entire cursor stack or takes one normal stack. Right-click deposits one item or takes half of a normal stack, rounded up. Shift-click first merges into matching storage slots. Fluid containers and Thaumcraft phials can deposit and extract through the corresponding menu slots. Amounts use GTNHLib formatting, and fluid units follow its global L/mB setting (1,000 units per bucket). Linking and configuration feedback appears above the hotbar. Block contents default to a uniformly scaled 3D display; the client configuration also provides a flat display.
The seven framed compacting, fluid and controller variants use the modern upstream model parts and retain their chosen materials across placement, rotation and saves. Ender frequencies share lock and void policies; storage upgrades cannot be newly installed in Ender drawers.
Crafting patterns and output counts follow modern Functional Storage and More Functional Storage. Converting an ordinary drawer to a framed drawer retains its stored contents and upgrades; recipes that consume a drawer reject filled or configured drawers. Netherite recipes use nether stars, dripping uses netherrack, and this mod's framed recipes use iron ingots when no iron nuggets are available. Copper uses the modpack's ore dictionary materials. Modern wood species absent from 1.7.10 are omitted.
This mod compiles against the Thaumcraft 4 API but does not redistribute any Thaumcraft
code or assets. Essentia storage is implemented against the public thaumcraft.api.aspects
interfaces only. Thaumcraft itself must be obtained separately by the user, and all rights to it
remain with its author.
All integrations are optional. Without Thaumcraft, essentia drawers are not registered; their missing block and item mappings are ignored when opening an existing world. Removing Thaumcraft therefore removes those drawers from that world. Item and fluid drawers and controllers remain available.
The third-party storage integration pattern in this mod was informed by studying how FunctionalChemical integrates an external chemical system into Functional Storage. No FunctionalChemical code or assets are included; only the general approach of exposing a foreign storage kind through the same drawer machinery was adopted, and that approach was re-expressed for Thaumcraft essentia specifically.
Made with ❤️ for the GTNH Community. Licensed under GPLv3.