Multiplayer Inventory System
A downloadable asset pack
Download NowName your own price
GITHUB REPO
π§° Mirror Server-Authoritative Inventory System
This repository contains a modular and fully server-authoritative inventory system designed for multiplayer games built with Unity + Mirror.
It's lightweight, easy to integrate, and strictly separates client-side visuals from server-side logic for cheat prevention and reliable synchronization.
β¨ Features
- π Server-authoritative architecture: All actions (add, move, remove) are handled and validated on the server.
- π¦ Dynamic containers: Add/remove inventory containers on the fly (e.g. pockets, backpacks, chests…).
- π§± Grid-based slots: Each container is a 2D grid. No Tetris-style shapes or rotations.
- β»οΈ Smart stacking: Automatically stacks items if possible (up to max stack size).
- π±οΈ Drag & drop movement: Intuitive client-side interface with visual ghost slot.
- π Efficient sync: Only updates changed slots, not the entire inventory.
- π§ͺ Debug shortcuts: Quick testing with keyboard inputs to add/remove containers in runtime.
- π οΈ Custom Editor Tools: Includes an in-Editor tool to give items to players and visualize inventory states in real-time.
π Setup Instructions
To get started with the inventory system:
- Create your item(s):
- Use the menu:
Inventory > Create Item - This generates a ScriptableObject (
ItemSO) representing your item.
- Use the menu:
- Create the item database:
- Use the menu:
Inventory > Create Database - This creates the base database ScriptableObject (
ItemDatabaseSO).
- Use the menu:
- Scan and register items:
- Select your newly created database asset.
- In the Inspector, click the
Scan All Itemsbutton to automatically find and index allItemSOassets in the project.
- Item IDs are auto-incremented:
- Every time a new item is created or scanned, its
itemIDis automatically incremented and saved viaPlayerPrefs.
- Every time a new item is created or scanned, its
- Add the database singleton to your scene:
- Drag the
DatabaseReaderprefab into your scene. - This ensures item data is available at runtime.
- Drag the
- Register item prefabs in Mirror:
- All item prefabs (that can be dropped or spawned in-game) must be added to Mirrorβs Network Manager prefab list, otherwise they wonβt sync properly across the network.
- Use the sample scene:
- You can check out the included example scene to see the system already set up and working.
π§ Current Limitations
- β No persistent save/load (no JSON or database integration yet).
- β No item rotation or shapes (not a Tetris-style system).
- β No container permission system (e.g. for shared storage).
- β No client feedback on failed actions (e.g. no room available).
π§ Made with
- Unity 6000.0.34f1
- Mirror 96.0.1
- A basic item database using ScriptableObjects (
ItemSO) for defining item stats
π License
This project is licensed under the MIT License β free to use in commercial or non-commercial projects.
Attribution is appreciated but not required.
| Published | 23 days ago |
| Status | On hold |
| Category | Assets |
| Author | Amine |
| Tags | inventory, mirror, Multiplayer, networking, Unity |
Download
Download NowName your own price
Click download now to get access to the following files:
Inventory_V1.unitypackage 15 MB

Leave a comment
Log in with itch.io to leave a comment.