Consumable ItemsResource

Items are permanently destroyed or depleted on use; scarcity creates tension and opportunity cost.

Items are destroyed on use: as HP drains the hero drinks a potion to refill it, permanently spending that potion until the pouch is empty.

How consumable items works in Godot

Consumability is one rule layered on inventory: using an item depletes a counter and, at zero, removes it. Scarcity is the whole design value.

Resourceprimitive

Give ItemData a uses field (or a boolean for single-use). The item carries its own depletion state.

class_name ItemData extends Resource
@export var id: String
@export var uses := 1   # torch = many, key = 1

Arrayprimitive

On use, decrement and drop the item when spent. No recovery path is the point — the choice to spend is irreversible.

func use(item):
    item.uses -= 1
    if item.uses <= 0:
        items.erase(item)   # gone for good

Signalsprimitive

Emit item_used so effects fire and the HUD updates the remaining count, keeping scarcity visible.

signal item_used(item)
# torch dims, stimpak heals, key opens door

In short: ItemData.uses counter or boolean; remove from inventory on use; no recovery

Retro games that use consumable items

32 catalogued game(s) use this mechanic, spanning 1980–1999.

Related resource mechanics

▶ Explore Consumable Items interactively — see every game + the Godot system