Back to Projects

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.

Inventory slots and weapon HUD in ShooterGame

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.