Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for RICE0707

A tool designed to convert Minecraft resource packs from older versions (1.14) to 1.21.4+ format.

Report ItemModel_PackConverter?

Minecraft-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.

image

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
  • Supports both English and Chinese interfaces

Supported Versions

  • Input: Minecraft resource packs from 1.14 to 1.21.3
  • Output: Minecraft 1.21.4+ compatible format

Installation & Usage

  1. Download the latest release from the Releases page
  2. Run the executable file (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 Code

  1. Clone the repository:
git clone https://github.com/BrilliantTeam/Minecraft-ResourcePack-Migrator
cd minecraft-resourcepack-migrator
  1. Install requirements:
pip install rich
  1. Run the program:
    • GUI Version: python gui_app.py
    • Command Line Version: python run.py

Method 3: Build Your Own Executable

  1. Clone the repository and install requirements:
git clone https://github.com/BrilliantTeam/Minecraft-ResourcePack-Migrator
cd minecraft-resourcepack-migrator
pip install pyinstaller rich
  1. Run the build script:
python build.py
  1. The executable will be available in the dist folder

Note: Building the executable requires administrator privileges.

Format Conversion Examples

Mode 1: Custom Model Data Conversion

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]}]

Mode 2: Item Model Conversion

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:

  1. 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"]

  1. 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"]

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"}
    ]
}

Command: /give @s minecraft:wood_sword{damage:30}
Command: /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"
                }
            }
        ]
    }
}

Command: /give @s minecraft:wood_sword[damage=30]
Command: /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 building executable)

Conversion Rules

  1. 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
  2. Path Handling:

    • 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:

    • Moves files from models/item/* to items/*
    • Creates subdirectories based on model paths in Item Model mode
    • Preserves other folder structures

Important Notes

  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

Contributing

Issues and Pull Requests are welcome. Main areas for contribution:

  • Support for more model formats
  • Conversion efficiency improvements
  • Error handling enhancements
  • User experience improvements

License

GNU General Public License v3.0

Information

CategoryDeveloper Tools
Published onDecember 7, 2024
LicenseGPL
Downloads139
Stars3
Watchers1
Supports Folia

Pinned Versions

Members