A handy tool to dump recipes from Minecraft.
- Commands:
/dump recipes
: Dump all recipes./dump tags items
: Dump all item tags./dump tags blocks
: Dump all block tags./dump tags fluids
: Dump all fluid tags./dump all
: Dump all tags.
Outputs will be in [game directory]/dumps/
.
In the future (as I am coming back to this), I plan to:
- Port to Architectury
- Support at least 1.16 through 1.20.4 (and 1.21)
- Make a web service to view recipes and tags (including recipes for mods like Create and Mekanism), and calculate base requirements
- Have the web service include pre-dumped files for modpacks (listed below)
- Make a compressed binary representation for large amounts of data
- Vanilla Minecraft - 1.16 to 1.20 (not a modpack)
- Create: Mekanized
- Create: Above & Beyond
- Enigmatica 6: Expert
- Create: Astral
- Greate: Beyond the Horizon
- ... and more!
The structure will be as follows:
/*
enum MaterialType {
// These are shorts
Item = 0,
Block = 1,
Fluid = 2,
// This will only be present if Mekanism is found
Gas = 3,
}
*/
// Header
(in ASCII hex) RDMP\0 // Magic
(shorts) 1 0 0\0 // Version
// Item Index
IIDX\0
// Repeated
(int32) [index in array]\0
(string) [item id]\0
IEND\0
// Fluid index
FIDX\0
// Repeated
(int32) [index in array]\0
(string) [fluid id]\0
FEND\0
// Gas index (Mekanism only)
GIDX\0
// Repeated
(int32) [index in array]\0
(string) [gas id]\0
GEND\0
// Tag Index
TIDX\0
// Repeated
ELEM\0
(int32) [index in array]\0
(string) [tag id]\0
(enum: MaterialType [as short]) [tag type]\0
// Tag members
(list<int32>) [material indexes in their array]\0
EEND\0
IEND\0
// Recipe Index
RIDX\0
// Repeated
ELEM\0
(int32) [index in array]\0
// Inputs
SECT\0
RIN\0
(enum: MaterialType [as short]) [material type]\0
(int32) [material index in its array]\0
NEND\0
SEND\0
// Outputs
SECT\0
ROUT\0
(enum: MaterialType [as short]) [material type]\0
(int32) [material index in its array]\0
OEND\0
SEND\0
EEND\0
REND\0
// Recipe Type Map
RMAP\0
// Repeated
ELEM\0
(string) [recipe type id]\0 // The recipe type is the key in the map
// Values
(list<int32>) [recipe indexes in recipes array]\0
EEND\0
MEND\0
EOF
All strings are null-terminated and all numbers are in little endian format.