Random Recipes
Seed-based crafting recipe randomizer — every world, a new puzzle.
- Loaders
- Fabric
- Downloads on Modrinth
- 142
- Followers on Modrinth
- 1
- version
- 1
- Updated
- June 14, 2026Jun 14
- Published
- in 2026
At a glance
Needed both in the game and on the server
Random Recipes
Deterministic crafting recipe shuffler for Fabric — every world, a new puzzle.
Enter a world, and all crafting table recipes are shuffled using the world seed as the random source. Same seed = same recipes forever. Different seeds = completely different recipes. Perfect for SMP — every player in the same world sees identical shuffled recipes.
Features
- Seed- deterministic shuffling — a single world seed controls all randomization, using Java
Randomfor reproducibility Three-layer recipe transformation:
- Fisher-Yates shuffle on ingredient positions (non-empty slots only)
- Ingredient addition, removal (shapeless only), or replacement — 1 to 2 changes per recipe
- Automatic duplicate detection & conflict resolution after shuffling
- Global item pool — single-material recipes (shears, iron nuggets, pressure plates, etc.) pull candidates from every item that appears across all crafting recipes, preventing "replace iron with iron" no-ops
- Three protected defaults — wooden, stone, and iron pickaxes are always kept unchanged so the game remains playable
- Config-file extension —
config/random-recipes.jsonlets you protect additional items by ID or specific recipe IDs - Cross-mod compatible — automatically processes crafting recipes registered by other mods
/reloadfriendly — edit the config and run/reload; changes apply instantly, no restart needed
How it works
| Step | What happens |
|---|---|
| 1. Scan | All recipes of type RecipeType.CRAFTING are collected at server startup |
| 2. Filter | Protected items (three pickaxes + config entries) are skipped |
| 3. Build pool | Every item appearing in any crafting recipe is collected into a global pool |
| 4. Shuffle | Each non-protected recipe gets its ingredients shuffled, then modified 1-2 times |
| 5. Deduplicate | The final list is checked for identical (output + ingredient set) pairs; conflicts are auto-resolved |
Installation
- Install Fabric Loader ≥ 0.15
- Install Fabric API
- Place the jar in
.minecraft/mods/ - Launch Minecraft 1.20.1
Configuration
Generated automatically on first run at config/random-recipes.json:
{
"protected_output_items": [
"minecraft:wooden_pickaxe",
"minecraft:stone_pickaxe",
"minecraft:iron_pickaxe"
],
"protected_recipe_ids": []
}| Field | Purpose | Example |
|---|---|---|
protected_output_items | Protect all recipes that output a specific item | "minecraft:diamond_sword" |
protected_recipe_ids | Protect a specific recipe by its namespace ID | "mymod:special_item" |
Build from source
git clone https://github.com/Annieif/random-recipes.git
cd random-recipes
./gradlew buildArtifacts are in build/libs/random-recipes-*.jar.
Screenshots

Links
License
MIT
FAQ
How to install Random Recipes?
Install Fabric for your Minecraft version, download Random Recipes for the same version and loader, put the file into the mods folder and launch the game with the loader profile.
Which Minecraft versions does Random Recipes support?
Random Recipes has builds for Minecraft 1.20.1.
Is Random Recipes needed on the server?
Needed in the game and on the server