Free Tool

Free Loot Table Generator & Drop Rate Calculator

Design weighted loot tables and gacha banners, add soft/hard pity, then run Monte Carlo simulations to see percentile outcomes and dry streaks before your players do. Export JSON, CSV and engine code for Unity, Godot, Lua and Minecraft β€” free, no signup.

Loot table generator with weighted entries, rarity tiers, pity controls and probability chart

Design the Odds. Simulate the Reality.

🎲

Player-Experienced RNG

Monte Carlo shows the median, 95th and 99th percentile rolls β€” and the dry streaks. The "average" lies; the percentiles tell the truth.

🎰

Soft + Hard Pity

Model soft pity (ramping odds after N misses) and hard pity (guaranteed at M misses), in the style of Genshin Impact, Honkai: Star Rail and other gacha games.

πŸ“Š

Probability Chart + Tier View

Per-item and per-tier breakdowns with "1 in X" odds, weighted percentages and rarity colours so the table reads at a glance.

🧾

Export to Any Engine

JSON, CSV, Unity (C#), Godot (GDScript), Lua, JavaScript, Minecraft 1.21 loot table JSON. Copy or download.

πŸ“‹

Fast Setup

Start from presets (gacha banner, RPG dungeon, Minecraft fortress, roguelike room) or bulk-import a CSV/JSON of items and weights.

πŸ”—

Shareable Configs

Click Share β€” URL encodes every entry, weight, tier and pity setting so design and engineering stay aligned.

A Real Loot Table Tool

Weighted Table Builder With Rarity Tiers

Edit items, weights, tiers and rarities in one editor. Per-item probability and "1 in X" odds update live. Add an explicit "No Drop" outcome when you need empty rolls. Bulk-import CSV / JSON to skip the boring data entry.

  • Per-item probability + "1 in X" odds
  • Rarity tiers with colour coding (common, rare, epic, legendary, …)
  • Per-item / per-tier view toggle
  • Explicit "No Drop" entry
  • CSV / JSON bulk import
Loot table editor with rarity tiers and live odds

Monte Carlo Simulation β€” Percentiles, Not Averages

Simulate thousands of rolls (or players) to see how many it takes to get a target item: median, 95th, 99th percentile, and the unlucky tail. A histogram of rolls-to-target shows the actual distribution β€” so you can spot the 1 % of players who go 100+ rolls without their item.

  • Median / 95th / 99th percentile rolls-to-target
  • Histogram of distribution + dry-streak tail
  • Actual vs expected counts per item
  • Tune soft pity ramp and hard pity cap with live feedback
Monte Carlo simulation results: percentile rolls, histogram and per-item counts

Export to JSON, Unity, Godot, Lua, Minecraft

Copy-paste templates so implementation matches design intent. Includes weights, tiers, pity logic and an example weighted-random function in each language. Minecraft export targets the 1.21 loot table JSON schema.

  • JSON + CSV for any engine
  • Unity C# with weighted-random helper
  • Godot 4 GDScript Dictionary loot tables
  • Lua + JavaScript snippets
  • Minecraft 1.21 loot table JSON
Export panel with JSON, Unity, Godot, Lua and Minecraft templates

Loot Table FAQ

Each item has a weight (any positive number). The chance of an item being picked is its weight divided by the total weight. Example: Sword=70, Shield=20, Gem=10 β†’ total 100 β†’ Sword 70 %, Shield 20 %, Gem 10 %. Weights are convenient because adding a new item does not require recalculating every other percentage β€” just pick a weight.
Pity is a "bad luck protection" mechanic: after a number of misses the odds of the rare item start rising (soft pity), and eventually a guaranteed drop kicks in (hard pity).

Genshin Impact 5-star pity: soft pity around pull 74, hard pity at 90. Honkai: Star Rail uses the same shape. In this tool you set soft pity threshold + ramp curve and the hard pity cap, and the Monte Carlo simulation shows how it affects the percentile outcomes.
A 1 % drop rate has an average of 100 rolls to get one. But the median is 69 and the 99th percentile is 458 β€” that's the unlucky 1 % of players who go 458 rolls without seeing it. Monte Carlo lets you see the dry tail directly. If the 99th percentile is "feels unfair", you fix the design before launch instead of after the Reddit thread.
Using the binomial distribution: with a 1 % drop, the median rolls-to-first-success is 69, the 90th percentile is 230 and the 99th percentile is 458. Drop the rate to 0.6 % (a Genshin 5-star without pity) and those numbers triple. The Monte Carlo simulator runs these numbers for whatever drop table and pity setup you build.
Yes β€” export to the Minecraft 1.21 loot table JSON schema. Drop the file into data/<namespace>/loot_tables/ in your datapack. For mobs, use entities/<entity>.json; for chests, use chests/<chest>.json. The tool emits weighted entries with the standard minecraft:item entry type.
Yes. Use the Import CSV / JSON button β€” paste rows with name + weight + (optional) tier, or paste a JSON array of entries. Useful for migrating an Excel-tracked drop table into a real simulator without retyping everything.
Yes β€” anywhere weighted random selection is used:
β€’ Gacha banners β€” multi-rarity tables with soft + hard pity
β€’ RPG dungeon / boss drops β€” fixed-table drops with per-tier roll counts
β€’ Roguelike rooms β€” per-floor item pools with tiered rarity
β€’ MMO loot β€” primary + secondary rolls, "no drop" outcomes
The generator handles them all from the same base table.
No. The generator runs entirely in your browser. Your tables, weights, pity settings and simulation results never leave your device. No signup, no telemetry.
Yes. The tool is free. Whatever loot table data you create with it is yours β€” use it in commercial games, jam projects, prototypes or production. No attribution required.

Tune Drop Rates With Real Numbers

Free. Monte Carlo simulation. Unity / Godot / Lua / Minecraft export. No signup.

Open the Generator