ModsJava
Minecraft-ResourcePack-Migrator 1.14 ~ 1.21.4+
Java mod listed for Minecraft 1.14–26.x. Download on the author's site.
⬇ Download on SpigotMinecraft-ResourcePack-Migrator 1.14 ~ 1.21.4+
A tool designed to convert Minecraft resource packs from older versions (1.14) to 1.21.4+ format.
This tool primarily handles the conversion of item model JSON formats, helping creators quickly update their resource packs.
Key Features
A tool designed to convert Minecraft resource packs from older versions (1.14) to 1.21.4+ format.
This tool primarily handles the conversion of item model JSON formats, helping creators quickly update their resource packs.
Key Features
- Supports two conversion modes:
1. Custom Model Data Conversion: Converts old CustomModelData format to new format
2. Item Model Conversion: Converts to individual model files based on CustomModelData paths
3. Damage Model Conversion: Transforms damage-based model predicates
- Automatically adjusts folder structure ( assets/minecraft/models/item/* → assets/minecraft/items/*)
- Intelligently handles minecraft:item/ , minecraft:block/ and item/ path prefixes
- Batch processes entire resource packs
- Real-time conversion progress display
- Automatically packages into a ready-to-use resource pack
- GUI interface for easy operation
- Multilingual support (English/中文)
Supported Versions1. Custom Model Data Conversion: Converts old CustomModelData format to new format
2. Item Model Conversion: Converts to individual model files based on CustomModelData paths
3. Damage Model Conversion: Transforms damage-based model predicates
- Automatically adjusts folder structure ( assets/minecraft/models/item/* → assets/minecraft/items/*)
- Intelligently handles minecraft:item/ , minecraft:block/ and item/ path prefixes
- Batch processes entire resource packs
- Real-time conversion progress display
- Automatically packages into a ready-to-use resource pack
- GUI interface for easy operation
- Multilingual support (English/中文)
- Input: Minecraft resource packs from 1.14 to 1.21.3
- Output: Minecraft 1.21.4+ compatible format
Installation & Usage- Output: Minecraft 1.21.4+ compatible format
Method 1: Using Executable (Recommended)
Format Conversion Examples
1. Download the latest release from https://github.com/BrilliantTeam/Minecraft-ResourcePack-Migrator/releases
2. Run MCPackConverter.exe
3. Choose your preferred language (English/中文)
4. Use the GUI to:
- Select conversion mode
- Select folder or ZIP file containing your resource pack
- Click "Start Convert" to begin conversion
- Find the converted resource pack in the output folder
Method 2: Using Source Code2. Run MCPackConverter.exe
3. Choose your preferred language (English/中文)
4. Use the GUI to:
- Select conversion mode
- Select folder or ZIP file containing your resource pack
- Click "Start Convert" to begin conversion
- Find the converted resource pack in the output folder
1. Clone the repository:
https://github.com/BrilliantTeam/Minecraft-ResourcePack-Migrator
2. Install required package:
pip install rich
3. Run the program:
- GUI Version: python gui_app.py
- Command Line Version: python run.py
Method 3: Build Your Own Executablehttps://github.com/BrilliantTeam/Minecraft-ResourcePack-Migrator
2. Install required package:
pip install rich
3. Run the program:
- GUI Version: python gui_app.py
- Command Line Version: python run.py
1. Install required packages:
pip install pyinstaller rich
2. Run build script:
python build.py
3. Find the executable in the dist folder
Note: Building the executable requires administrator privileges.
pip install pyinstaller rich
2. Run build script:
python build.py
3. Find the executable in the dist folder
Note: Building the executable requires administrator privileges.
Mode 1: Custom Model Data Conversion
Old format (1.14 ~ 1.21.3):
/give @s minecraft:stick{CustomModelData:19002}
New format (1.21.4+):
/give @p minecraft:stick[custom_model_data={floats:[19002]}]
Mode 2: Item Model Conversion
Original file (assets/minecraft/models/item/stick.json):
/give @p minecraft:stick[custom_model_data={floats:[19002]}]
/give @p minecraft:stick[custom_model_data={floats:[19003]}]
Converted files:
1. assets/minecraft/items/custom_items/cat_hat/cat_hat_black.json:
/give @s itemname[item_model="custom_items/cat_hat/cat_hat_british_shorthair"]
Mode 3: Damage Conversion
This mode is designed specifically for pure damage-based conversions.
If your initial file is in a custom model data + damage format,
please use Mode 1 or Mode 2 instead.
Old format (1.14 ~ 1.21.3):
{
"parent": "item/handheld",
"textures": {
"layer0": "item/wood_sword"
},
"overrides": [
{"predicate": {"damaged": 1, "damage": 0.25}, "model":"custom_items/wood_sword1"},
{"predicate": {"damaged": 1, "damage": 0.50}, "model":"custom_items/wood_sword2"}
]
}
/give @s minecraft:wood_sword{damage:30}
/give @s minecraft:wood_sword{damage:45}
New format (1.21.4+):
{
"model": {
"type": "range_dispatch",
"property": "damage",
"fallback": {
"type": "model",
"model": "items/wood_sword"
},
"entries": [
{
"threshold": 0.25,
"model": {
"type": "model",
"model": "custom_items/wood_sword1"
}
},
{
"threshold": 0.50,
"model": {
"type": "model",
"model": "custom_items/wood_sword2"
}
}
]
}
}
/give @s minecraft:wood_sword[damage=30]
/give @s minecraft:wood_sword[damage=45]
Requirements
Old format (1.14 ~ 1.21.3):
Code (Text):
{
"parent": "item/handheld",
"textures": {
"layer0": "item/stick"
},
"overrides": [
{"predicate": {"custom_model_data": 19002}, "model":"custom_items/cat_hat/cat_hat_black"}
]
}
"parent": "item/handheld",
"textures": {
"layer0": "item/stick"
},
"overrides": [
{"predicate": {"custom_model_data": 19002}, "model":"custom_items/cat_hat/cat_hat_black"}
]
}
New format (1.21.4+):
Code (Text):
{
"model": {
"type": "range_dispatch",
"property": "custom_model_data",
"fallback": {
"type": "model",
"model": "item/stick"
},
"entries": [
{
"threshold": 19002,
"model": {
"type": "model",
"model": "custom_items/cat_hat/cat_hat_black"
}
}
]
}
}
"model": {
"type": "range_dispatch",
"property": "custom_model_data",
"fallback": {
"type": "model",
"model": "item/stick"
},
"entries": [
{
"threshold": 19002,
"model": {
"type": "model",
"model": "custom_items/cat_hat/cat_hat_black"
}
}
]
}
}
Mode 2: Item Model Conversion
Original file (assets/minecraft/models/item/stick.json):
Code (Text):
{
"parent": "item/handheld",
"textures": {
"layer0": "item/stick"
},
"overrides": [
{"predicate": {"custom_model_data": 19002}, "model":"custom_items/cat_hat/cat_hat_black"},
{"predicate": {"custom_model_data": 19003}, "model":"custom_items/cat_hat/cat_hat_british_shorthair"}
]
}
"parent": "item/handheld",
"textures": {
"layer0": "item/stick"
},
"overrides": [
{"predicate": {"custom_model_data": 19002}, "model":"custom_items/cat_hat/cat_hat_black"},
{"predicate": {"custom_model_data": 19003}, "model":"custom_items/cat_hat/cat_hat_british_shorthair"}
]
}
/give @p minecraft:stick[custom_model_data={floats:[19003]}]
Converted files:
1. assets/minecraft/items/custom_items/cat_hat/cat_hat_black.json:
Code (Text):
{
"model": {
"type": "model",
"model": "custom_items/cat_hat/cat_hat_black"
}
}
"model": {
"type": "model",
"model": "custom_items/cat_hat/cat_hat_black"
}
}
/give @s itemname[item_model="custom_items/cat_hat/cat_hat_black"]
2. assets/minecraft/items/custom_items/cat_hat/cat_hat_british_shorthair.json:
Code (Text):
{
"model": {
"type": "model",
"model": "custom_items/cat_hat/cat_hat_british_shorthair"
}
}
"model": {
"type": "model",
"model": "custom_items/cat_hat/cat_hat_british_shorthair"
}
}
Mode 3: Damage Conversion
This mode is designed specifically for pure damage-based conversions.
If your initial file is in a custom model data + damage format,
please use Mode 1 or Mode 2 instead.
Old format (1.14 ~ 1.21.3):
Code (Text):
{
"parent": "item/handheld",
"textures": {
"layer0": "item/wood_sword"
},
"overrides": [
{"predicate": {"damaged": 1, "damage": 0.25}, "model":"custom_items/wood_sword1"},
{"predicate": {"damaged": 1, "damage": 0.50}, "model":"custom_items/wood_sword2"}
]
}
/give @s minecraft:wood_sword{damage:45}
New format (1.21.4+):
Code (Text):
{
"model": {
"type": "range_dispatch",
"property": "damage",
"fallback": {
"type": "model",
"model": "items/wood_sword"
},
"entries": [
{
"threshold": 0.25,
"model": {
"type": "model",
"model": "custom_items/wood_sword1"
}
},
{
"threshold": 0.50,
"model": {
"type": "model",
"model": "custom_items/wood_sword2"
}
}
]
}
}
/give @s minecraft:wood_sword[damage=45]
Requirements
- Python 3.6 or newer
- pip (Python package manager)
Automatically installed packages:
- rich (for progress bar display)
- pyinstaller (If you are building the executable)
Detailed Usage Steps- pip (Python package manager)
Automatically installed packages:
- rich (for progress bar display)
- pyinstaller (If you are building the executable)
1. Prepare resource pack:
Conversion Rules
Place your complete resource pack content in the input folder
Maintain the original folder structure
2. Run conversion:
Maintain the original folder structure
Windows: Double-click run.py or use command python run.py
Mac/Linux: Execute python3 run.py in terminal
3. View results:
Mac/Linux: Execute python3 run.py in terminal
The program generates a timestamped ZIP file (e.g., converted_20240326_123456.zip)
This ZIP file can be directly used as a Minecraft 1.21.4+ resource pack
This ZIP file can be directly used as a Minecraft 1.21.4+ resource pack
1. Two Conversion Modes:
Important Notes
- Custom Model Data Mode: Updates to 1.21.4+ new item model format
- Item Model Mode: Creates individual model files based on CustomModelData paths
2. Path Handling:
- Item Model Mode: Creates individual model files based on CustomModelData paths
- minecraft:item/* paths maintain their prefix
- item/* paths maintain original format
- namespace : path format is preserved in item model conversion
- Automatically adjusts item model storage location
3. Folder Structure Adjustment:
- item/* paths maintain original format
- namespace : path format is preserved in item model conversion
- Automatically adjusts item model storage location
- Moves files from models/item/* to items/*
- Creates subdirectories based on model paths in Item Model mode
- Preserves other folder structures
- Creates subdirectories based on model paths in Item Model mode
- Preserves other folder structures
1. Always backup your original resource pack before conversion
2. Ensure correct input resource pack structure
3. Test all custom item models in-game after conversion
4. Check error messages if any issues are found
Troubleshooting2. Ensure correct input resource pack structure
3. Test all custom item models in-game after conversion
4. Check error messages if any issues are found
If you encounter issues, check:
Contributing
1. Input folder structure correctness
2. JSON file format validity
3. Python version compatibility
4. File read/write permissions
2. JSON file format validity
3. Python version compatibility
4. File read/write permissions
Issues and Pull Requests are welcome to help improve this tool. Main areas for contribution:
License
- Support for more model formats
- Conversion efficiency improvements
- Error handling enhancements
- User experience improvements
- Conversion efficiency improvements
- Error handling enhancements
- User experience improvements
GNU General Public License v3.0
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.14, 1.15, 1.16
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
Minecraft-ResourcePack-Migrator 1.14 ~ 1.21.4+ is a free Minecraft Java mod. Compatible with Minecraft 1.14, 1.15, 1.16, 1.17 and newer. Downloaded 3,913 times (via Spigot). Download it and open it directly in the game.