A new version of the Inventory System is available. This version requires Godot Engine 4.3 and includes many refinements.
New Drag and Drop system
The Drag-and-Drop component has received a major overhaul. The previous system was quite complex and the separation of the classes that implemented the click-and-drag and click-and-release approaches had so much overlap that it made more sense to offer the two drag-and-drop modes through simpler, more streamlined configuration.
Inventory Popovers
The inventory system now also has a new popover feature. While hovering over an inventory item, a popover will show details about the item, much like a fancy tooltip. The presentation and behavior are customizable, and popover configuration is also included in the Inventory System Tour.
Theoretically, that section in the guide can now be simplified. However, instead of removing that knowledge, I’ve updated the section to explain why the workaround existed and is no longer needed. I believe there’s more value in understanding what changed, than not mentioning it at all.
Changelog
Features:
Replaced Drag-and-Drop strategies with the more refined Dragon Drop implementation
New Inventory Popovers that show details when hovering over items
New Inventory Item Filter
Inventory Item Weights
Replaced TileMap with TileMapLayer
Bug fixes:
Add game_ui node group to SDIGameUI in the inventory tour
Audio handling correction related to the Godot 4.3 audio changes
Drag-and-Drop modifier keys use CMD on Mac instead of CTRL
Drag-and-Drop now uses groups to determine draggable item controls
GGItemType.image data type changed to Texture2D instead of Resource
Inventory UI search box text alignment correction
Corrections to Multiplayer Demo transfer dialog context handling
Prevent UIContainer from setting input as handled
GGResizableControl sets input as handled to prevent UI interactions from leaking into character controller
The Inventory System Deep Dive and Architecture Guide helps game developers implement advanced multiplayer inventories using Godot Engine. The PDF Guide contains over 500 pages of code walkthroughs, diagrams, and explains concepts related to inventories, items, and more.
I’m wrapping up development on version 1 of the Inventory System, which is currently at v1.18.1. All core functionality is in place, and it provides many quality-of-life features. The guide covers and walks through most of the code base, and the demo projects show off a lot of use cases. This first version has been …
Godot-matcha is an addon that lets you use WebRTC for multiplayer games by handling matchmaking using WebTorrent trackers. Conceptually it’s quite an interesting, novel approach. WebTorrent uses a modified BitTorrent protocol that allows it to work with WebSockets. A WebTorrent tracker is essentially a directory service that keeps track of torrents offered by users. A …
Are you using @onready to reference nodes? There’s a better way! Here’s a simple example of how many tutorials use @onready to reference nodes: That script is attached to a CanvasLayer node with a ProgressBar called HealthBar. And yet, when running the scene, it will throw an error: This is because there’s actually a spelling …
Inventory System v1.16 available
A new version of the Inventory System is available. This version requires Godot Engine 4.3 and includes many refinements.
New Drag and Drop system
The Drag-and-Drop component has received a major overhaul. The previous system was quite complex and the separation of the classes that implemented the click-and-drag and click-and-release approaches had so much overlap that it made more sense to offer the two drag-and-drop modes through simpler, more streamlined configuration.
Inventory Popovers
The inventory system now also has a new popover feature. While hovering over an inventory item, a popover will show details about the item, much like a fancy tooltip. The presentation and behavior are customizable, and popover configuration is also included in the Inventory System Tour.
RPCs with Typed Arrays
Godot 4.3 now supports RPCs with typed arrays, which previously required a workaround:
Theoretically, that section in the guide can now be simplified. However, instead of removing that knowledge, I’ve updated the section to explain why the workaround existed and is no longer needed. I believe there’s more value in understanding what changed, than not mentioning it at all.
Changelog
Features:
Bug fixes:
The Inventory System Deep Dive and Architecture Guide helps game developers implement advanced multiplayer inventories using Godot Engine. The PDF Guide contains over 500 pages of code walkthroughs, diagrams, and explains concepts related to inventories, items, and more.
Related Posts
Inventory System v1.18.1 available (and v2 progress update)
I’m wrapping up development on version 1 of the Inventory System, which is currently at v1.18.1. All core functionality is in place, and it provides many quality-of-life features. The guide covers and walks through most of the code base, and the demo projects show off a lot of use cases. This first version has been …
Inventory System v1.1 available
Hot on the heels of 1.0, version 1.1 allows for gaps in the inventory. This release also correctly bakes the release version into the PDF Guide.
godot-matcha: Free multiplayer without a server
Godot-matcha is an addon that lets you use WebRTC for multiplayer games by handling matchmaking using WebTorrent trackers. Conceptually it’s quite an interesting, novel approach. WebTorrent uses a modified BitTorrent protocol that allows it to work with WebSockets. A WebTorrent tracker is essentially a directory service that keeps track of torrents offered by users. A …
Ditch @onready, use @export instead
Are you using @onready to reference nodes? There’s a better way! Here’s a simple example of how many tutorials use @onready to reference nodes: That script is attached to a CanvasLayer node with a ProgressBar called HealthBar. And yet, when running the scene, it will throw an error: This is because there’s actually a spelling …