Getting Started
Introduction
Multiplayer inventory and item management capabilities for Godot Engine 4.
At its core, an inventory system is about item management. The complexity arises because the inventory integrates with many different parts of your game.
The Inventory System provides components, scenes, and resources to help you implement advanced slot-based inventory mechanics. The inventory component is 2D/3D-agnostic and supports both singleplayer and multiplayer games.
All functionality is implemented by a set of Godot addons; ranging from core inventory and item functionality to user interfaces, interaction, permission handling, and multiplayer integration. It also includes examples for hotbars, crafting, structure placements, and a combat system to demonstrate more advanced features and complex game mechanics.
Supplemental 2D components and demos are provided to easily integrate the inventory into 2D platformers and RPGs.
The source code includes a set of demos that showcase some of its features, and a detailed architecture deep dive PDF guide that walks through the major features, explains the concepts, and includes development techniques.
Features
The inventory system is written entirely in GDScript, uses static typing, follows Godot best practices and the GDScript style guide.
All addon classes are namespaced with the GG prefix to avoid name collisions with any existing classes in your project.
- Highly configurable, extensible inventory component built using modular, component-based architecture.
- Inventory supports item sorting and searching.
- Item stacking, weight, expirations.
- Server-authoritative multiplayer support. Compatible with
MultiplayerSpawner, andMultiplayerSynchonizervisibility. - Themable User Interface components.
- Browse and transfer Inventory user interfaces with advanced drag-and-drop support.
- Multiple user interface styles: Modals, and resizable/movable dialogs.
- Granular permissions system.
- Character/object interaction components.
- Components for crafting, equipping, and placing items.
The implementation leans heavily into OOP design principles, leverages design patterns, and uses techniques such as SOLID and GRASP while remaining pragmatic whenever possible.
Requirements
Version 1 of the Inventory System is compatible with Godot Engine 4.3. Version 2 is targeting Godot Engine 4.4.
Credits
The inventory system project uses third party assets to show off its capabilities: