CrimsonInventoryComing to FabPersonal $49.99 · Professional $99.99
Join the Discord for updates

A layout-agnostic, fully replicated inventory — pluggable topology (flat / grid / weight / custom), a runtime-mutable constraint stack, fragment-composed items, currency, async pickups, and zero hand-written Server RPCs.

Gameplay · Inventory · Unreal Engine 5

Diablo grid, Skyrim weight, MMO slots. One replicated component.

CrimsonInventory is a layout-agnostic inventory system: topology is a UCrimsonInventoryLayout data asset (flat slots, 2D grid, weight list, or your own), rules live in a runtime-mutable constraint stack, and items are data assets composed from fragments. Currency, async pickup nodes, world chests with four ownership scopes, virtual banks, crafting stations, and a routing component that owns every Server RPC are included — fully replicated out of the box.

Video coming soon

Why CrimsonInventory

The topology-agnostic inventory core that action RPGs, survival games, and MMOs can all ship on — replication included.

Topology is a data asset, not a rewrite

A UCrimsonInventoryLayout asset selects the inventory's shape: _FlatSlot for MMO/RPG slot lists, _Grid for 2D Tetris with optional rotation (Diablo/Tarkov/PoE), _Weight for append-only weight lists (Skyrim/Fallout) — or subclass for a custom topology. Layouts never store caps or rules, so swapping the asset turns the same component into a different genre.

A constraint stack you mutate at runtime

Caps and rules live in a UCrimsonInventoryConstraint array on the component — slot caps, tag-keyed int/float caps, type filters, per-cell grid rules, aggregate stack limits, or Blueprint custom rules. Equipping a Backpack is two calls — ModifyIntConstraintValue(Slots, +10) and ModifyFloatConstraintValue(Weight, +50) — and both replicate automatically.

Items composed from fragments

UCrimsonInventoryItemDefinition assets are built from UCrimsonInventoryItemFragment extensions — stacking data, geometric footprint, visuals, grant-currency, per-item constraints — plus state fragments for per-instance mutable state like durability. Live items are replicated UCrimsonInventoryItemInstance subobjects keyed by a stable server-assigned `EntryId`, not a slot index.

Pickups and containers with real ownership

ACrimsonPickupActorBase covers single-item drops and multi-item bags with auto-mesh resolution and per-slot takes; async Blueprint nodes add and pick up with partial-success paths. ACrimsonContainerActorBase gives world chests four ownership scopes — Shared / PerPlayer / PerParty / PerDungeonInstance — and UCrimsonContainerSubsystem runs purely-virtual stashes like banks and account vaults.

Zero hand-written Server RPCs

UCrimsonInventoryRoutingComponent on the PlayerController owns every Server RPC the plugin needs — move, split, drop, lock, transfer, open container, take pickup. Your UI calls it directly, and a subclass overriding CanAccessInventory / CanOpenContainer enforces stricter access rules. All mutations are authority-only on the manager component.

Currency, crafting, and save-ready structs

Per-component replicated currencies, ACrimsonCraftingStationBase with recipe and recipe-book assets for world crafting, and save data exposed as plain structs — FCrimsonInventorySaveData and FCrimsonContainerSaveData. No CrimsonSaveSystem dependency: wire the structs into whatever save system your project uses.

A closer look

A replicated inventory running in a sitting

Enable the plugin, create a layout asset, add UCrimsonInventoryManagerComponent and initialize it with your caps, drop the routing component on your PlayerController, and add an item. The Quick Start goes from empty project to a moving, transferring, replicated inventory — and Blueprint-only projects never touch a .uproject or .Build.cs.

Change genre by swapping one asset

The same component becomes an MMO slot list, a Tarkov grid with rotation, or a Skyrim weight list by assigning a different layout asset. Constraints compose on top — typed grid cells for a potion belt, a weight cap plus per-type count caps — and when a bag upgrade bumps the caps at runtime, UI subscribed to the constraint-changed message refreshes its capacity bars automatically.

Chests, banks, and party loot without netcode

Place an ACrimsonContainerActorBase chest and pick its scope: shared for everyone, per-player loot instancing, per-party stashes, or per-dungeon-instance chests. Purely-virtual banks live in UCrimsonContainerSubsystem with no actor at all. Every open and transfer flows through the routing component, so the whole loop is server-authoritative from day one.

Technical details

Engine
UE 5.8
Platforms
Windows, Mac, Linux
Blueprint-ready
Yes
C++ required
No
Network replicated
Yes
Dependencies
CrimsonCommon, GameplayAbilities, GameplayTags
Last updated
June 2026

Frequently asked questions

Do I need C++ to use it?
No. For a Blueprint project, ticking the plugin in Edit → Plugins is the entire install — there's no .uproject or .Build.cs to edit. Layouts, item definitions, fragments, and constraint values are all data assets, and custom rules subclass UCrimsonInventoryConstraint_CustomRule in Blueprint. C++ is there when you want it — custom layouts, constraints, or fragments.
Does it work in multiplayer?
Yes — it's fully replicated by design. Live items are replicated subobjects, entries live in a FastArray keyed by a stable EntryId that survives reorders, constraint changes and currencies replicate automatically, and all mutations are authority-only. The routing component provides the client-to-server path, so you never write inventory RPCs.
Does it depend on other Crimson plugins?
Only CrimsonCommon, per the suite's Cardinal Rule. World containers and crafting stations implement ICrimsonInteractableTarget from CrimsonCommon, and equipment integration goes through ICrimsonAbilitySystemOwner — interaction and equipment connect via interfaces, never hard dependencies. There's deliberately no CrimsonSaveSystem dependency either: save data is plain structs.
How does it relate to the free CrimsonCommon foundation?
CrimsonInventory is a premium gameplay plugin built on the free CrimsonCommon base. Install CrimsonCommon first (it's free), then drop this in — it shares that base with the other premium gameplay plugins (AbilitySystem, Equipment, SkillTree), so items, containers, and stations plug into the rest of the suite through shared interfaces.
Can one game mix a grid stash, a weight backpack, and a flat hotbar?
Yes. Layout is chosen per component, so every inventory in your game picks its own topology, and caps come from each component's constraint stack rather than the layout. UI binds by EntryId regardless of topology, and moving items between them is one TransferItem call on the routing component.

Ship inventory features, not inventory plumbing

Assign a layout, stack your constraints, add the routing component — replication, pickups, containers, and currency are already done. Then swap topologies as your design evolves without rewriting a thing.

Pricing

CrimsonInventory is sold on Fab under Epic’s two standard licenses — both include the full plugin, source, and updates.

Personal$49.99For individuals & teams under $100K revenueComing to Fab — join the Discord
Professional$99.99For companies over $100K revenueComing to Fab — join the Discord