Overview
Overview and features of MP_Inventory
Welcome to the MP_Inventory plugin documentation!
MP_Inventory is a robust, high-performance, fully replicated multiplayer inventory system for Unreal Engine. Designed from the ground up for massive scalability, it leverages FFastArraySerializer to ensure ultra-efficient network bandwidth usage, making it perfect for both small co-op games and massive multiplayer online games (MMOs).
Key Features
- Multiplayer Replicated: 100% server-authoritative architecture preventing client-side cheating and desync.
- FastArray Performance: Instead of replicating massive structs or full arrays, the plugin uses Unreal's
FFastArraySerializerto replicate only the precise delta (the exact item that changed), saving massive amounts of network bandwidth. - Strict (Grid) & Infinite Modes: Native support for both rigid slot-based grid inventories (like Resident Evil or Escape from Tarkov) and shifting infinite-list inventories (like Skyrim or Fallout).
- Index Mapping Tracker: The system intelligently maps static logical
SlotIndexes to dynamic physical FastArray indexes under the hood. This ensures that UI elements and logic can reliably reference a specific slot without breaking during network array shifts. - Proximity Loot System: A highly optimized nearby loot tracker managed by the Player Controller that handles world item interactions instantly.
- Weight Tracking: Built-in cumulative weight enforcement to restrict players from carrying too much.
- Modular Blueprint UI: The frontend is completely decoupled from the backend. Build your own UI from scratch or modify the provided templates using standard UMG ListViews and TileViews.
- Automatic Save/Load: Seamless persistence across sessions using
bAutoSaveLoad.
Design Philosophy
The plugin is strictly divided into Components, Managers, and a Registry:
- The Component (
UMP_InventoryComponent): Acts as the localized brain for a specific container (e.g., a Player's Backpack, a Storage Chest, a Vehicle Trunk). It holds the items and enforces rules (weight, slots). - The Manager (
UMP_InventoryManager): Lives on the Player Controller and acts as the central router. It hosts all the Client-to-Server RPCs. Instead of calling operations on a component directly, players and UI elements call actions (like Add, Remove, or Transfer) through the Manager. The Manager securely validates permissions and executes the operation on the target Component. - The Registry (
UMP_ItemRegistry): A GameInstance Subsystem that tracks all loaded Item Data Assets and actively running inventories across the map.
This separation of concerns ensures that inventories can exist anywhere in the world without requiring a Player Controller, while still allowing complex cross-inventory transactions securely.