README LANGUAGES [ English | 中文 ]
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.
- Supports two conversion modes:
- Custom Model Data Conversion: Converts old CustomModelData format to new format
- Item Model Conversion: Converts to individual model files based on CustomModelData paths
- Automatically adjusts folder structure (
assets/minecraft/models/item/*
→assets/minecraft/items/*
) - Intelligently handles
minecraft:item/
,minecraft:block/
anditem/
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
- Supports both English and Chinese interfaces
- Input: Minecraft resource packs from 1.14 to 1.21.3
- Output: Minecraft 1.21.4+ compatible format
- Download the latest release from the Releases page
- Run the executable file (MCPackConverter.exe)
- Choose your preferred language (English/中文)
- 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
- Clone the repository:
git clone https://github.com/BrilliantTeam/Minecraft-ResourcePack-Migrator
cd minecraft-resourcepack-migrator
- Install requirements:
pip install rich
- Run the program:
- GUI Version:
python gui_app.py
- Command Line Version:
python run.py
- GUI Version:
- Clone the repository and install requirements:
git clone https://github.com/BrilliantTeam/Minecraft-ResourcePack-Migrator
cd minecraft-resourcepack-migrator
pip install pyinstaller rich
- Run the build script:
python build.py
- The executable will be available in the
dist
folder
Note: Building the executable requires administrator privileges.
Old format (1.14 ~ 1.21.3):
{
"parent": "item/handheld",
"textures": {
"layer0": "item/stick"
},
"overrides": [
{"predicate": {"custom_model_data": 19002}, "model":"custom_items/cat_hat/cat_hat_black"}
]
}
Command: /give @s minecraft:stick{CustomModelData:19002}
New format (1.21.4+):
{
"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"
}
}
]
}
}
Command: /give @p minecraft:stick[custom_model_data={floats:[19002]}]
Original file (assets/minecraft/models/item/stick.json
):
{
"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"}
]
}
Command: /give @p minecraft:stick[custom_model_data={floats:[19002]}]
Command: /give @p minecraft:stick[custom_model_data={floats:[19003]}]
Converted files:
assets/minecraft/items/custom_items/cat_hat/cat_hat_black.json
:
{
"model": {
"type": "model",
"model": "custom_items/cat_hat/cat_hat_black"
}
}
Command: /give @s itemname[item_model="custom_items/cat_hat/cat_hat_black"]
assets/minecraft/items/custom_items/cat_hat/cat_hat_british_shorthair.json
:
{
"model": {
"type": "model",
"model": "custom_items/cat_hat/cat_hat_british_shorthair"
}
}
Command: /give @s itemname[item_model="custom_items/cat_hat/cat_hat_british_shorthair"]
- Python 3.6 or newer
- pip (Python package manager)
Automatically installed packages:
- rich (for progress bar display)
- pyinstaller (if building executable)
-
Two Conversion Modes:
- Custom Model Data Mode: Updates to 1.21.4+ new item model format
- Item Model Mode: Creates individual model files based on CustomModelData paths
-
Path Handling:
minecraft:item/*
paths maintain their prefixitem/*
paths maintain original formatnamespace:path
format is preserved in item model conversion- Automatically adjusts item model storage location
-
Folder Structure Adjustment:
- Moves files from
models/item/*
toitems/*
- Creates subdirectories based on model paths in Item Model mode
- Preserves other folder structures
- Moves files from
- Always backup your original resource pack before conversion
- Ensure correct input resource pack structure
- Test all custom item models in-game after conversion
- Check error messages if any issues are found
Issues and Pull Requests are welcome. Main areas for contribution:
- Support for more model formats
- Conversion efficiency improvements
- Error handling enhancements
- User experience improvements
GNU General Public License v3.0