Projects > Open-source

Dynamic Inventory System for Godot

Godot’s fully dynamic inventory system, UI with infinite scrolling, item categories, equipment slots, database of items, inspired by Zelda Breath of the Wild.

Full source-code and example project available on Github. This project is built in my Godot: Dynamic Inventory System and UI Masterclass Course – the course is a premium product with 10 hours of content, while the project built in the course is open-source.

Project Features

Built from scratch, inspired by the Zelda Breath of the Wild inventory system and inventory UI, this is an extensive system:

  • Fully Dynamic inventory and equipment system: a database items separated by categories and also groups of categories, for example, One Handed Weapons and Two Handed Weapons are grouped under a Weapons group, while keeping the One and Two Handed classifications.
  • Custom Scriptable Objects (Custom Godot’s Resources) with different attributes for items and equipment, grouped in a database of items (folder based, with Resource files).
  • Responsive layout adjustable for different aspect ratios.
  • Custom UI widgets (custom Control Nodes and Scenes)
  • Infinite scrolling container and grids of items, split it by pages, animated dynamically
  • List multiple pages of items under the same category.
  • User interface that uses both Dynamic and Static data
  • Equippable Item slots that accept configurable categories of items and show the items equipped in these slots
  • Item and equipment attributes
  • Handling and syncing of One Handed and Two Handed items, while automatically unequipping items if both hands are equipped
  • Pickable / Pickup items, dynamically adding them to the inventory and list them in the inventory screen, in the correct category
  • UI sounds
  • Godot version: Godot 3.4.3 (Godot 4 is still too unstable and susceptible for breaking changes. When Godot 4 stable release comes out, the course and this source code will be upgraded).

Video Course

This source-code is built from scratch in the Complete Godot Course: Game User Interfaces Masterclass (Building a Dynamic Inventory System and UI with Godot). If you want to learn how to make ALL of this from scratch, check the course, while also support this project.

Game development course with 98 byte sized videos, with a total of 10 hours of video content, where you are going to learn how to use the Godot Engine and Editor to create an Inventory System and Inventory UI (User Interface) that is fully dynamic, with scriptable object items and a central database of items (using Custom Godot’s Resources). The inventory system has support for multiple item categories, category groups, dynamic and infinite scrolling grids, equippable slots (example: main hand and off hand) and more.

Licenses

This notice must be included in projects that use any code from this repository:

Copyright 2022 Alfred Reinold Baudisch (alfredbaudisch, pardall)

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Asset Licenses

These notices must be included in projects that assets from this repository (see more and links here):

  • Course trailer music from ZapSplat
  • Fantasy Inventory Icons by Ragewortt. License: OGA-BY 3.0.
  • FREE Keyboard and controllers prompts pack by xelu. License: Public Domain, CC0.
  • Kenney Asset Packs. License: Public Domain, CC0.
  • Interface Sounds Starter Pack by p0ss. License: CC BY-SA 3.0.
  • Inventory Sound Effects by artisticdude. License: CC BY-SA 3.0.

Links

Status

  • Completed
  • Personal / Hobby

Tools

  • GDScript
  • Godot

Styles

  • Gamedev
Published Updated
Project type: Open-source