One table for every item in your game
Most games keep their items in a spreadsheet that slowly drifts away from the code. Here the table is the source. Every item gets an id, a name, an icon, a type, a rarity tier, a stack size, a weight, a price, a description and any stat you add as a column: attack, armor, food, durability, income per second. Pick an emoji, upload your own icon or let the tool draw a clean placeholder in the rarity color so the table is readable before the art is done.
Start from a template
The RPG template has weapons, armor, potions, scrolls, coins and keys. Survival has wood, stone, ore, tools, food and water with durability and hunger stats. Roguelike has relics, bombs, curses and consumables with charges. Idle has currencies, boosters, chests and multipliers with huge stack sizes. Each is a starting point you can rename, extend or delete row by row. Already have a sheet? Paste it as CSV and the columns are matched by their headers.
Feel the inventory before you build it
Set the grid, the slot size, the hotbar and a weight limit, then play with it. Drag items in from the table, move them between slots, drop one stack on another of the same item to merge it up to the stack limit, drop on a different item to swap, and split a stack with a right click or a Shift drag. Sort by type or rarity and watch the stacks merge. The weight bar turns orange near the limit and red past it, which is often the moment you notice that 40 stone should not weigh as much as a sword.
Export to your engine
| File | What it is |
|---|---|
| items.json, items.csv | The whole database, with rarity tiers, stats and the icon position in the atlas. |
| icons.png | Every icon packed into one sprite atlas, 64 px per cell. |
| Godot 4 | An ItemData resource class, an ItemDatabase, one .tres file per item, an Inventory class with add, remove, stack, move, split, sort, weight and signals, and a drag and drop grid inventory scene that opens with the bag you designed. |
| Unity | An ItemData ScriptableObject, an ItemDatabase, a plain C# Inventory class with the same API and events, and an editor menu that turns items.json into ScriptableObject assets with sliced icon sprites. |
How the inventory code works
A slot is either empty or holds an item id and a count. Adding an item tops up existing stacks first and then fills empty slots, and returns what did not fit. Moving onto the same item merges up to the stack limit, onto a different item swaps. Sorting merges stacks, then orders by type, rarity and name, and leaves the hotbar alone. Every change raises a changed signal or event, so your UI only has to redraw.
Is my data uploaded?
No. The table, the icons and the inventory live in your browser and are saved there automatically. Save a project file to move between computers or to keep it in your repository next to the game.