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.
Godot Engine 4 has a bug (#50824) that causes particle jitter when the game is paused. It does look quite distracting. The Bug in Action This is a proof-of-concept wave shooter running in Godot Engine 4.0.2. Pausing the game was initially just a simple process_mode toggle. But as shown in the video clip above, there …
Years ago I purchased a game dev bundle on HumbleBundle. Part of that was a sound library called Pro Sound Collection. It’s pretty comprehensive, whether RPG or FPS, there are sounds for a ton of use cases. I might as well use them for something. Luckily for me, the sound collection is pretty well organized. …
Creating network connections with Godot is simple — as long as you have the other party’s IP address, and there’s no NAT gateway involved. Unfortunately, that’s exactly the problem in most cases. You don’t know the other party’s IP, and these days, just about everyone is behind a combination wifi router/gateway/firewall with NAT. Conceptually, NAT …
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.4.1 available
This small update addresses inventory serialization to persist the allow_gaps and expiration_multiplier settings. These were previously overlooked.
The Pause Handler: Working around Godot 4’s particle jitter bug
Godot Engine 4 has a bug (#50824) that causes particle jitter when the game is paused. It does look quite distracting. The Bug in Action This is a proof-of-concept wave shooter running in Godot Engine 4.0.2. Pausing the game was initially just a simple process_mode toggle. But as shown in the video clip above, there …
Audio Manager to handle the loading of sound effects in bulk
Years ago I purchased a game dev bundle on HumbleBundle. Part of that was a sound library called Pro Sound Collection. It’s pretty comprehensive, whether RPG or FPS, there are sounds for a ton of use cases. I might as well use them for something. Luckily for me, the sound collection is pretty well organized. …
Creating a UDP peer-to-peer connection
Creating network connections with Godot is simple — as long as you have the other party’s IP address, and there’s no NAT gateway involved. Unfortunately, that’s exactly the problem in most cases. You don’t know the other party’s IP, and these days, just about everyone is behind a combination wifi router/gateway/firewall with NAT. Conceptually, NAT …