Go, Go, Godot!
  • 0

Inventory System v1.13 available

April 21, 2024

It’s been a while, but it was worth the wait. The latest version of the Inventory System is now available, with a long list of features, improvements, fixes, and documentation. This time the focus is on multiplayer. Let’s cover the features first:

  • Added a GGNetworkManager with pluggable strategies for ENet and WebSocket
  • Added a Multiplayer Interaction demo that works with ENet or WebSocket via the GGNetworkManager.
  • The Multiplayer Interaction demo can either trust the client for character movement or handle all movement server-side.
  • Added audio theme support to the inventory manager and inventory transfer UI
  • The main tour now has a fullscreen toggle button
  • The SimpleInventoryPersistence component now also supports JSON
  • Added a tabbed inventory UI
  • Added an inventory item filter strategy to allow for per-inventory item configuration without relying on the inventory access policy
  • Added ability to cancel pending contexts to the access manager component
  • GGUIManager now spawns new dialogs centered on screen
  • Added GameUI demo
  • Added access manager policy group logic for “any” and “all” combination of access policies.
  • Added dynamic inventory serialization strategy, which serializes item types and defers serialization of each item to the item’s script.
  • The multiplayer storage box reflects its open/closed state based on open access manager contexts.
  • The interaction demo now has a team-based access policy to show off team-based access.
  • The interactor/interactable components now have enter/exit range signals for proximity detection
  • The Inventory UI exposes ScrollContainer modes
  • The inventory UI now supports custom icons via theming
  • The multiplayer interaction demo character can browse their own inventory with TAB, or access other objects with E
  • The multiplayer interaction demo allows players to drop items individually, or collectively as loot bags
  • The multiplayer interaction demo’s dropped “loot bags” have expiration timers
  • The multiplayer interaction demo supports spawns random lootable chests
  • The multiplayer interaction demo supports saving and loading multiplayer games for the host
  • Added simple inventory drag-and-drop strategy that only swaps items

Bug fixes:

  • The abstract inventory controller implements get_item() for correct mouse, focus, and dnd signaling
  • Access manager cleans up await handlers, game UI concurrency locking
  • Access manager type hint correction when syncing with all clients
  • Access manager passes nonce, game UI rework to manage dialog state
  • Corrected a GGInteractor2D regression
  • Basic actions guide doc link correction
  • Rebuild inventory lookup table when assigning contents property
  • Click-to-pickup drag-and-drop strategy allows dropping while quantity modifier key is held
  • Inventory controller’s inventory_resized signal passes slot count
  • Corrected GGInventoryTransferStackingStrategy’s transfer_item_to_inventory quantity handling
  • Correction to main tour inventory actions
  • Correction to crafting; status UI shows crafted item until idle
  • Default action strategy only follows mouse focus when slot is focusable
  • Drag-and-drop correction: Don’t allow the same item stacking on itself
  • Drag-and-drop pickup with half-modifier correctly picks up 1 item from a stack of 1
  • Drag-and-drop strategy uses drag data’s actor property for client-side “preview” permission check
  • Drag-and-dropping item onto itself correctly restores control modulation
  • Ensure inventory is valid before refreshing slot
  • focus_control default focus gdmaim annotation
  • Single-dialog interface Game UI corrections
  • Game UI cleans up dialog if object vanishes
  • Handle inventory component’s stacking_strategy not set
  • Handle invalid drag and drop data on client after inventory is yanked
  • Handle multiplayer client leaving with open access context
  • Handle item transfer within inventory
  • Correctly update character label per Interactor signal
  • Inventory controller refreshes UI if inventory property changes
  • Inventory no longer erroneously sends contents to clients when host opens context
  • Multiplayer interaction demo visibility per peer works for all peers
  • Prevent duplicate game UI menus
  • Sequencer track properly builds LUT by calling parent ready method
  • Set theme for the WebSocket demo inventory manager
  • Transfer strategy stacking fix
  • Miscellaneous type hints and code doc blocks

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.

Get It Now
Learn More

assetgdscriptgodottutorial
Posted in Godot.
Share
PreviousInventory System v1.14 available
NextDitch @onready, use @export instead

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Related Posts

  • October 9, 2023

    The Godot Jungle Demo

    It’s not Far Cry, nor Crysis, but it could be. The Realistic Jungle Demo demonstrates that Godot is capable of impressive visuals. If you want to run it yourself, download it from https://wrobot.itch.io/jungledemo. It was announced in this Reddit post. Update: The source code was released (with the commercial assets removed).

  • August 2, 2022

    Launching Godot Games on Steam Deck from the command line via Remote Shell

    For some reason, my Godot game would no longer launch on the Steam Deck. I could hear it running as if it were running in the background, but the screen kept showing the Steam Deck’s UI. Since it’s all Linux I figured it should be possible to just drop to the command line and launch …

  • Strings
    December 17, 2022

    When not all strings are Strings. Detect bugs in your GDscript more easily with static typing

    One of the benefits of working with Godot Engine is that GDScript allows one to operate high level. GDScript is dynamically typed, so not even variable types have to be specified, but I would strongly recommend using static typing wherever possible. It can help with performance but primarily adds clarity when trying to follow the …

  • April 20, 2024

    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 …

    © 2026 GoGoGodot.io. All rights reserved.