A flexible, data-driven, and extensible inventory system designed for Unreal Engine.
This plugin is licensed under the MIT License - you are free to use it in personal projects, commercial projects, or modify and redistribute it as you see fit.
Originally, this project was intended to be sold as a marketplace plugin. I no longer work heavily in Unreal Engine, nor do I want the burden of long-term maintenance. As a result, it is now open-sourced.
I will still update it occasionally as I encounter issues or improve parts of the design, and contributions are welcome.
- Fully modular and extensible design
- Data-driven item definitions
- Supports stackable and non-stackable items
- Inventory logic decoupled from UI
- Network-ready architecture (authority-driven logic)
- Minimal engine coupling for easier modification
- Designed to integrate cleanly into existing projects
This system is built with the following goals in mind:
- Modularity first: You should be able to remove or replace parts of the system without rewriting everything.
- Clear ownership and authority: Inventory state lives in predictable places and behaves well in multiplayer contexts.
- Minimal magic: Avoid hidden editor-only logic or overly clever Blueprint hacks.
- C++-centric, Blueprint-friendly: Core logic lives in C++, while remaining easy to extend in Blueprint.
- Clone or download the repository.
- Place the plugin folder into your project’s
Plugins/directory. - Regenerate project files if needed.
- Enable the plugin in the Unreal Editor.
- Rebuild the project.
At a high level, the system is composed of:
- Item definitions (usually data assets)
- Inventory containers that own and manage item instances
- Item instances representing runtime state
- Optional UI layers that observe inventory state
The intent is that your game code interacts with the inventory through clear, explicit APIs rather than directly mutating arrays or structs.
Important
Inventory mutation is designed to be authority-driven. In multiplayer games, item adds/removals should be initiated on the server.
Replication is supported, but you are expected to integrate it according to your game’s architecture. This is not a drop-in solution that hides networking complexity.
Common extension points include:
- Custom item types with additional metadata
- Specialized inventory containers (equipment, hotbars, crafting inputs)
- Gameplay ability or interaction hooks
- Custom UI implementations
The codebase is intentionally straightforward to make these extensions easy to reason about.
Contributions are welcome.
If you submit a pull request:
- Keep changes focused and minimal
- Avoid unnecessary refactors
- Prefer clarity over cleverness
- Document any new systems or assumptions
Bug fixes and small improvements are more likely to be merged than large architectural rewrites.
Caution
This plugin is not actively maintained as a commercial product.
Updates will be occasional and based on personal use or community contributions. If you plan to rely on this heavily, expect to own and maintain your fork.
This project is licensed under the MIT License.
You are free to:
- Use it commercially
- Modify it
- Redistribute it
- Include it in closed-source projects
Attribution is appreciated but not required.
This plugin exists because building inventory systems repeatedly is tedious, and most existing solutions are either overengineered or tightly coupled to UI and editor logic.
If this saves you time, great. If it doesn’t fit your needs, feel free to strip it for parts.
Thanks for looking.