Compatibility
Minecraft: Java Edition
1.20.1
Platforms
Supported environments
Client and server
Links
Tags
Creators
Details
Licensed MIT
Published 2 days ago
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 build
Artifacts are in build/libs/random-recipes-*.jar.
Screenshots

Links
License
MIT


