Hello, I'm new to Godot and just started 2 weeks ago, I'm looking forward to creating an Idle Game with a wide range of items, but as I've had trouble finding a tutorial for something I'm looking at I wanted to ask how you would go about creating an item system? You don't have to build it for me, but any pointing-in-the-right-direction tips are always appreciated!

I'm hoping to create a wide range of items, with individual drop rates, stats, descriptions, and more (think of like a RPG game), and the items would move into a player's inventory/chest, would be movable around and interactable.

How would you go about creating this? Thank you so much for reading!

    Marttern Hmmmm. 🤔

    This is a really broad question and there are way too many possible paths to take. It's a bit like "how should I build a house" where you could come up with a lot of different solutions. And we are missing too much information. For example we don't know what attributes your items should have. Or what you want to do with them. Or where you want to store them. And so on.

    My honest answer would be: If you don't have an idea of how to build even a crappy item system on your own then you should tackle simpler games first and come back to this one later.

      Toxe Fair enough, I do feel like I'm trying to jump across multiple problems at once, I've been developing very small games with help of tutorials and adding my own features to them, but I'm not at a point where I could start creating a game without relying too much on a guide and constant looking up information. Thank you for your response 🙂

      In official asset library, there are a few backpack or inventory plugin might suit your needs.

      Marttern drop rates, stats, descriptions, and more

      A good place to start might be designing and creating a Resource class with these features. A couple of other things which could be good to add to that:

      • Icon(s)! References to the Texture2Ds you'd like to represent the items in your inventory, shops, etc. When you "spawn" the item in a UI menu, you don't want to actually create an instance of the Resource, but you can create a special Node such as "ShopItem", "InventoryItem", etc., and have that Node have a reference back to your Resource for its data.

      • An "ItemDrop" scene you can use to plop the item into the world where it can be picked up, if you want that sort of thing.

      • An enum for what kind of item it is. Consumable/Equipment/Quest/etc.

      For actually implementing the item's behavior, well, obviously Consumables/Equipments/QuestItems don't all behave the same way. You'll need to put some thought into how you want to handle that. Inheritance is one option. Composition is another. Just having the resource contain arbitrary data while another class decides what to do with it is another way. I'm sure you'll figure out what suits your needs.