This is a small but helpful tool that allows you to convert CIT/OptiFine resource packs to a vanilla compatible ones.
Since snapshot 25w03a, a feature has been added that allows Minecraft client to select a specific model of an item among others, depending on its component value.
For example, using a minecraft:custom_name component allows us to specify an item name in order to use this model
This is a table of what is can be ported and what is not:
| Feature | Is Supported |
|---|---|
| Basic Items | ✅ |
| Potions | ✅ |
| Enchantments | ✅ |
| Bows/Crossbows | ✅ |
| Item Damage* | ✅ |
| Blocks | |
| Armor | Planned** |
| Entities | ❌(not supported) |
| Paintings |
- Either
damageorcomponentcan be used at once. You can't mix both now. -
- For armor models, you will probably need to install generated datapack in world folder, + obtaining these armor items will require operator permissions (to execute
/givecommand)
- For armor models, you will probably need to install generated datapack in world folder, + obtaining these armor items will require operator permissions (to execute
expressions like iregex:(Text A | Text B) will be replaced with Text A, and case-insensitivity is not supported.
- Download the latest release from the releases page
- Install .NET 9.0 Runtime from the official website
- Start
VaniFine.exe - Select resource pack
- *magic happens*
As a result a new folder will be created in .minecraft/resourcepacks with the converted resource pack.
And as a bonus, a names.txt file will be created in that folder, with all available item names/enchantments.
Poster on a wall. КСЕПСП
Bundles! Bundled
Telescope. КСЕПСП
Renaming an apple to lemon.
Converting a pack.
Enchanted books. Enchanted+
- Add armor support
- Parse this:
nbt.StoredEnchantments.0.id=pattern:*
This project is licensed under the MIT License. You can use this project in your own projects, but you must credit me as the original author.





