We’re excited about this release, which includes a range of quality-of-life additions and refinements. Drag-and-drop support has been improved with a second strategy: Click-and-release: Simply clicking (and releasing) an item will pick it up. This leverages Godot’s force-drag functionality and approximates the drag-and-drop behavior that games like Valheim and Palworld use in their inventory items. Switching between click-and-release and click-and-hold strategies is possible by configuring the GGInventoryUI with the respective strategy resource.
New features:
The Window Manager and Inventory UI demos now allow switching focus via controller
Focus switching now sorts dialog (from left to right), greatly improving the user experience.
Added the click-and-release drag-and-drop strategy.
Added Interaction demo with inventory item transfers.
The Inventory UI demo toolbar now uses an item collection to configure the SimpleItemGiver’s items.
And of course, lots of bug fixes:
Add missing drag_item to project input map
Allow dropping items into list item container
Container drag signal handled in the inventory controller
The refined Inventory UI demo defines item collections
The inventory manager (window manager demo) sets inventory UI’s action and drag-and-drop strategy
The InventoryUI demo reuses the ItemUseDebugger.
Corrected the GGInventoryUI scene mouse_filter configuration
The multiplayer demo uses the inventory controller for local inventory state
Renamed the default action strategy’s move_item action to drag_item.
Correction to the sequencer demo action strategy’s focus handling
Set missing transfer and drag-and-drop strategies for various demos
The stacking strategy uses multiplayer-friendly items_changed callback
Inventory transfer button quantity correction
WebSocket demo action and drag-and-drop strategy correction
Workaround for Array.map() incompatibility with Array[int].
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 had a setup with nested CanvasLayer nodes. Toggling the visibility of the root CanvasLayer doesn’t hide any nested CanvasLayer nodes. My solution was to listen to the visibility_changed signal, find any CanvasLayer child nodes, and apply the same visibility to them.
Here’s a collection of tutorials that are helpful if you’re new to using Control and Container nodes to create UIs in Godot 4. The Game Dev Artisan video covers creating a simple UI with a reload indicator for a simple 2D tank game: Clear Code’s 11+ hour Ultimate Introduction to Godot 4 has a chapter …
A new version of the Inventory System is available. This release includes a new structure placement feature and improves crafting. Structure Placement Players can now place structures from their inventory. When using an inventory item representing a structure, the player is prompted to select where to place it. The included demo lets players place an …
Inventory System v1.10 available
We’re excited about this release, which includes a range of quality-of-life additions and refinements. Drag-and-drop support has been improved with a second strategy: Click-and-release: Simply clicking (and releasing) an item will pick it up. This leverages Godot’s force-drag functionality and approximates the drag-and-drop behavior that games like Valheim and Palworld use in their inventory items. Switching between click-and-release and click-and-hold strategies is possible by configuring the GGInventoryUI with the respective strategy resource.
New features:
And of course, lots of 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
Toggling Visibility of Nested CanvasLayers
I had a setup with nested CanvasLayer nodes. Toggling the visibility of the root CanvasLayer doesn’t hide any nested CanvasLayer nodes. My solution was to listen to the visibility_changed signal, find any CanvasLayer child nodes, and apply the same visibility to them.
Building UIs in Godot 4
Here’s a collection of tutorials that are helpful if you’re new to using Control and Container nodes to create UIs in Godot 4. The Game Dev Artisan video covers creating a simple UI with a reload indicator for a simple 2D tank game: Clear Code’s 11+ hour Ultimate Introduction to Godot 4 has a chapter …
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.
Inventory System v1.18 available
A new version of the Inventory System is available. This release includes a new structure placement feature and improves crafting. Structure Placement Players can now place structures from their inventory. When using an inventory item representing a structure, the player is prompted to select where to place it. The included demo lets players place an …