Applied Slash — SlashBlade & Unstackable Storage Cells
Storage built for type-heavy workloads. AE2's own storage cells are hard-clamped to 63 types. But SlashBlades, enchanted gear, and worn tools are each their own storage key — 63 is nowhere near enough. Applied Slash adds two ME storage cells with a custom cell inventory that raises the type limit into the thousands and moves the payload into world-side sharded storage.
The two cells
SlashBlade Storage Cell
- Accepts SlashBlades only — a two-layer test (item tag
slashblade:swords+ItemSlashBladeclass check) so addon blades are covered too - Default limit: 5000 types (configurable 64 – 20000)
- Always asks this cell first. Incoming blades land here regardless of any other storage's global priority
- Runtime state is stripped on insert, so the same blade counts as one key no matter what combat state it is in — this is the single most effective way to keep the per-tick network cost down
Unstackable Item Storage Cell
- Accepts non-stackable items only (
getMaxStackSize() == 1) - Excludes SlashBlades (they always go to the blade cell — ownership is decided by rules, never by iteration order)
- Excludes storage cells (no cell-in-cell nesting)
- Default limit: 2000 types (configurable 64 – 20000)
- Strips nothing. A tool's durability, enchantments and custom name are its identity — so every differently-worn tool takes one type slot
Compatibility
| Component | Version |
|---|---|
| Minecraft | 1.21.1 |
| NeoForge | 21.1.250+ |
| Applied Energistics 2 | 19.2.17+ (required to use the cells) |
| SlashBlade: Resharpened | 2.0.7+ (optional — only the blade cell needs it) |
| Environment | Client and dedicated server |
Without AE2 nothing is registered (a log line says so). Without SlashBlade the cells still exist but accept nothing — the tooltip states this instead of pretending the cell is empty.
Performance (measured, not estimated)
The per-tick network cache rebuild is what matters, and it scales with the number of distinct keys visible on your whole network. Measured on a dedicated server, single cell:
| Types | Best-case per-tick cost |
|---|---|
| 200 | 0.011 ms |
| 1000 | 0.090 ms |
| 2000 | 0.292 ms |
| 5000 | 0.959 ms |
The bulk of that cost happens inside AE2's own KeyCounter, not in this mod — so the only real lever is how many distinct keys you keep on the network. That is exactly why the type limits exist, and why they are configurable.
Other measured numbers:
- Cell item NBT: constant 1089 bytes, no matter how much is stored
- Payload lives in 16 world-side shards — a single change rewrites only the dirty 1/16
- Insert: ~4.1 µs per operation at 5000 types
- 5000 keys sync to the client as ~108 KB
For pack developers
| Config option | Default | Notes |
|---|---|---|
maxTypes |
5000 |
Blade cell type limit. Size it to your server |
unstackableMaxTypes |
2000 |
Unstackable cell type limit |
stripRuntimeState |
true |
Keep this on — it merges the same blade across combat states |
acceptBeyondMaxTypes |
false |
Leave off. Turning it on removes the only performance guard |
Suggestion: on a busy pack, set maxTypes to 1000–2000 (0.09–0.29 ms/tick). 5000 is fine when your tick budget has room.
Known limitations (please read)
- Cells cannot be pre-filled, and their payload cannot be moved by copying the item. Blade data lives world-side; the cell item is a key. Copying a cell into another save yields an empty shell, and the world side reports "blade data not found in this save" — stated openly in the tooltip.
- No cell-workbench partitioning and no upgrade cards (fuzzy / inverter / equal distribution / void). Deliberate: partitioning is meaningless for a cell that only accepts specific items, and a whitelist with no effect would be a fake feature.
- Bundled dependencies are not included — install AE2 (and SlashBlade if you want the blade cell) separately.

