Oftentimes, you'll want assets from Minecraft, for things from a texture pack to a custom voxel editor for Minecraft.
This tutorial teaches you how to extract files for things like vanilla texture packs, models, particles, shaders, advancements, font, block states, text for the different languages, and much much more directly from your Minecraft install's .jar
file
First, you'll want to go to the Minecraft directory for your OS (You'll want an install of Minecraft for this):
OS | Location |
---|---|
Windows | %APPDATA%.minecraft |
macOS | ~/Library/Application Support/minecraft |
Linux | ~/.minecraft |
Then, you'll want to go to the versions
directory and then into the directory with the name of the version of Minecraft that you want to extract the files from (you should see the .jar
file)
If you can't see the version, go to Minecraft and launch the version that you want to extract assets from
Copy extract-unobfuscated-data.sh into the directory before making it executable:
chmod +x extract-unobfuscated-data.sh
running it (it'll by default export to extracted-data
, but you can specify another directory in the arguments):
./extract-unobfuscated-data.sh
This will create an output directory that contains all of the Minecraft assets (the data that's removed are just obfuscated .class
files that we don't need)
Since windows doesn't support execution of .sh
and isn't unix based files you'll want to install WSL (Windows Subsystem for Linux)
You can run this in powershell in order to install it:
wsl --install
You can learn more about WSL here: https://learn.microsoft.com/en-us/windows/wsl/install
Then, since you'll have WSL installed, you can follow the steps for Linux, MacOS, & WSL (Windows Subsystem for Linux) with WSL by navigating to the directory and then opening it with WSL
How does extract-unobfuscated-data.sh work
and
How can I do this without it? (manually)
What extract-unobfuscated-data.sh does is unzip the .jar
file and remove all of the unnecessary directories that just contain obfuscated .class
files.
.jar
's are technically just .zip
files, but with a different extension that signifies that it can be executed with the JVM (Java Virtual Machine) which means that you should be able to unzip it.
If you can't unzip it as is, create a copy (so that you can still play that Minecraft version), but with an extension of .zip
Then, delete all of the .class
files as well as the com
& net
directories from the unzipped result, which will leave you with just the extracted data left
I recommend taking this route if you can't run extract-unobfuscated-data.sh since this is just what it's doing