Modular Inventory System
- Unreal Engine 5
- C++
- Gameplay Tags
- Multiplayer
A game-agnostic, composition-based framework for items, inventories, equipment and weapons, with multiplayer support: a new item is a data asset made of fragments rather than a new class.
Overview
A game-agnostic, composition-based framework for items, inventories, equipment and weapons. Adding an item needs no new class: an item is a data asset made of fragments. Slots are objects with composable rules, equipment is wired through bindings, and everything can be overridden in Blueprint. The inventory works in multiplayer with server-authoritative replication and client-side prediction.
My Role
I am designing and building the plugin as an independent developer. I added multiplayer support to make it ready for Fab and wrote its 45-page GitBook documentation.
Systems I Built
Fragment-Based Items
Items are defined as data assets made of fragments.
Containers & Slot Rules
Multiple containers keyed by gameplay tags; slots are constrained by composable Slot Rules and addressed by index, tag or directly.
Transactional API
A transactional add / remove / move API with tag-based failure reasons and a preview mode.
Equipment Bindings
Blueprint-extensible bindings that equip the active slot or the contents of a container.
Weapon Layer
6 fire modes, hitscan, ammo, heat-based spread and pattern recoil.
Multiplayer
Server-authoritative inventory (FastArray replication), owner-predicted selection, stand-in equipment for other players and per-container visibility.
Server-Validated Shots
Shots reported by the client are validated on the server with lag compensation, and ammo is predicted on the client.
First / Third Person
Equipment spawns on the right view mesh on every machine, and each action's network behaviour is chosen in its data asset.
