
Loot System - Weighted Drops + Magic Find for Godot 4
A downloadable Godot System
Weighted loot tables with magic-find, pity counters, nested tables, conditional drops, deterministic seeds. Free Lite.
Inspector-first weighted loot tables for Godot 4.3+. Nested tables, conditions, magic-find, pity counters, save-aware. Plugs into the RPG Toolkit - runs standalone too.
Loot generation is one of those "I'll just write a function" tasks that grows tentacles. This addon is the version you would have written after writing it twice.
**Tables in the Inspector.** Make a `LootTable`. Add `LootEntry` rows. Each is an item, a weight, a count range, and an optional condition. Nested tables let you build "common pile / rare pile / mythic" hierarchies without code.
**Conditional drops without scripting.** `condition` is a Dictionary — `{"min_level": 10}`, `{"is_boss": true}`, `{"biome": ["swamp", "marsh"]}`. The Dictionary lets non-coders author rich gating; the `custom_filter` Callable handles anything weirder.
**Sources where the drops happen.** `LootDropSource` is a Node you attach to enemies, chests, breakable crates. Bind the table, set the inventory destination (or spawn WorldDrops in the world), call `drop()` from your death/open handler.
**Magic find and pity, built in.** Items marked `metadata.lucky = true` get a magic-find weight boost. `pity_threshold` guarantees a lucky drop after N consecutive misses. Per-source, per-drop, or pushed in from a Stats system.
**Save-aware.** Open the chest once, save, reload — the chest stays open. Pity counter persists. No bookkeeping code on your end.
**Replayable.** Set `rng_seed` to a non-zero integer and every roll is deterministic. Use for tests, demo videos, and roguelite seeds.
### What you get
- `LootEntry` / `LootTable` Resources
- `LootDropSource` Node: weighted + guaranteed entries, nested tables, conditions, magic-find, pity counter, optional deterministic seed
- `WorldDrop` Area2D: auto-pickup pickup that routes through the duck-typed inventory contract
- Save-contract auto-join for "chest stays opened" behavior
- `Events` autoload (shared with Inventory + Equipment addons)
- Demo: crate / bandit / boss with a magic-find slider, pity meter, and a scrolling drop log
- 6 docs: quick start, weighting math, conditions and nested tables, magic find and pity, integration, troubleshooting
### Requirements
Godot 4.3 or newer. Pure GDScript - no GDExtension.
### License
MIT.
Purchase
In order to download this Godot System you must purchase it at or above the minimum price of $4.99 USD. You will get access to the following files:




Leave a comment
Log in with itch.io to leave a comment.