Introduction¶
ModularInventoryPlus (MIP) is a Unreal Engine 5 plugin that provides a complete, server-authoritative MMO/RPG framework — from inventory and combat to backend orchestration.
Instead of spending months building core infrastructure, MIP gives you every essential system out of the box so you can focus on what makes your game unique.
What MIP Provides¶
At the core of every MMORPG is infrastructure that never fails — player data that persists, servers that scale, and real-time communication that holds under load. MIP provides exactly that backbone: a dockerized backend (NestJS + MongoDB + Redis) paired with full Kubernetes/Agones orchestration for auto-scaling fleets, dynamic dungeon allocation, and zero-downtime deployments. Every game feature MIP ships — inventory, combat, quests, guilds, chat, economy — is built on top of this foundation and inherits its reliability.
On the Unreal side, MIP covers the entire MMORPG lifecycle: authentication, multi-character accounts, portal-based map travel, minimap with map discovery, persistent save/load, and dozens of in-game systems ready to power your world from day one. The list below covers the major pillars — but it is far from exhaustive.
Core Architecture¶
- Instance-based world model — maps are divided into channels/sessions, each running on its own dedicated server instance.
- Server-side authority — all critical game logic (combat, item changes, quest completion) runs server-side with proper
HasAuthority()checks. - Dual communication — REST (VaRest + JWT) for auth and user management; Socket.IO for all real-time game events.
- Agones/Kubernetes — auto-scaling, server pooling, dynamic dungeon allocation, and fleet management.
Key Systems¶
| System | Highlights |
|---|---|
| Authentication & Characters | JWT-based login, multi-character accounts (family system), character selection screen, server-authoritative identity |
| Inventory & Items | Equipment, consumables, currencies, loot, enhancement, repair, expiring items, hotbar/quick slots |
| Equipment Modification | Reforge, recalibrate, seal, and transmute operations on existing equipment — each with configurable costs and data assets |
| Loot System | Personal loot per player, weighted loot tables, per-spawner and per-map overrides, world-level scaling |
| Gameplay Ability System | Full GAS integration — ability leveling, cooldowns, ability points, status effects, immunity on respawn |
| Quest System | Accept/track/complete quests, NPC dialogue, reward choices, quest chains, hyperlink navigation |
| Friends & Party | Friend list, presence tracking, party invites, damage pooling for party reward distribution |
| Chat | Global, whisper, and system channels via Socket.IO; profanity filtering, rich text, item linking |
| Exchange | NPC buy/sell with action-limit and currency requirements, exchange scopes |
| Vendor | Vendor shops, purchase list + repurchase (see docs: Vendor, Vendor Repurchasing) |
| Save / Load | Add UPROPERTY(SaveGame) → auto-serialized to JSON → persisted to MongoDB. Two scopes (character / family), batch loading (32/tick), parallel streams, version migration, auto-dirty |
| NPC & Interactions | Circular interaction UI, dialogue trees, vendors, storage NPCs, secondary actions |
| Mobs & AI | Enemy AI, configurable spawners (area, wave, trigger, endless), world-level scaling |
| Dungeon & Game Modes | Session dungeons, wave/survival modes, endless colosseum, dynamic server allocation |
| Map Travel & Gates | Travel gates between maps, channel switching, dungeon entry portals, spawn-point caching |
| Player Progression | XP-based leveling, ability points, multiple currency types with fast-array replication |
| Minimap & World Map | Map discovery, player markers, quest markers, enemy markers, NPC markers, minimap runtime component |
| UI Framework | 96+ pre-built widgets — inventory, ability bars, quest log, chat, dialogue, popups, death screen |
| Editor Tools | Three custom SGraphEditor-based visual editors — Quest Flow Graph (story-line wiring, quest cards, JSON import), Map Flow Graph (gate connections, BFS paths, minimap preview, NPC/spawner/loot info panel), Item Definition Browser (rich item cards, type tabs, creation wizards) — plus custom PIE engine for multi-instance testing |
| Top-Down ARPG | WASD movement, click-to-move, click-to-interact, click-to-attack, cursor detection (interactable/enemy/player), action queue, nav-mesh path following |
Equipment Stats¶
Every equipment piece supports a multi-layered stat system built on top of GAS (Gameplay Ability System) attributes:
| Layer | Description |
|---|---|
| Static stats | Fixed values that never change (e.g. +10 STR). Defined per equipment data asset. |
| Dynamic stats | Rolled within a min/max range when the item is created. Each stat has an attribute tag, a value range, and a modifier operation (additive or multiplicative). |
| Randomized pool stats | Each pool selects one stat from a weighted list on creation, then rolls its value within the chosen stat's range. Multiple pools means multiple random stat slots. |
On top of that, four crafting operations let players modify stats after creation:
- Reforge — re-roll all dynamic stat values within their original ranges.
- Recalibrate — re-roll a specific stat to a new value.
- Seal — lock a stat so it is protected from re-rolls.
- Transmute — re-roll which stat was selected from a randomized pool.
All stat modifiers replicate via FastArraySerializer and are applied through a generated UMIPEquipmentGE (Gameplay Effect) with SetByCaller magnitudes, so adding new attributes requires no C++ changes — just new GameplayTags.
Save / Load System¶
Data is organized into three tiers:
- Account-level — shared family storage, account settings, temporary effects
- Character-level — inventory, equipment, quests, abilities, currencies, cooldowns, temporary effects
Each game component implements a saveable interface and automatically marks itself dirty when data changes. On the backend, data is serialized to JSON and persisted in MongoDB. Loading is parallel and batched to prevent server hitches.
Backend Stack¶
| Layer | Technology |
|---|---|
| API Framework | NestJS (TypeScript) |
| Database | MongoDB |
| Real-time | Socket.IO with Redis adapter |
| Auth | JWT (Bearer tokens) |
| Server Orchestration | Kubernetes + Agones |
| Scaling | Redis pub/sub, distributed locking |
What's Included¶
- 1,000+ C++ classes — fully implemented, Blueprint-accessible
- 240+ content assets — example blueprints, widgets, and data assets
- Dockerized backend — ready to deploy locally or to a cloud provider
- Full source code — extend and modify anything
Engine & Platform Support¶
- Unreal Engine 5.7
- Windows and Linux dedicated server builds
- C++ and Blueprint accessible throughout