
ORM - OverrideResourceManager
Minecraft Fabric 1.21.4 mod that adds runtime overriding of item textures and 3D models without resource packs. Supports CustomModelData, NBT, animated textures, Blockbench models, and hot reload via F3+T.
About this Mod
ORM - OverrideResourceManager
A client-side Fabric mod for Minecraft 1.21.4 that lets you replace item textures and models at runtime — no resource pack required. Overrides live in plain files under config/orm/ and reload with the resource stack (F3+T).
Features
| Feature | Description |
|---|---|
| Texture override | Replace a vanilla item's texture with any .png from config/orm/textures/ |
| 3D model override | Swap an item's model with a Blockbench-exported .json from config/orm/models/ |
| Animated textures | Drop a .png.mcmeta next to your texture to get MC-standard frame animation |
| Per-instance matching | Match by item name, CustomModelData, or NBT — multiple items of the same type can have different overrides |
| Priority system | More specific entries win: item < item+name < item+cmd < item+cmd+nbt |
| Quick-add keybind | Middle-click an item in any inventory screen to auto-generate its config entry |
Installation
- Install Fabric Loader and Fabric API for Minecraft 1.21.4.
- Drop the ORM
.jarinto yourmods/folder. - Launch the game —
config/orm/is created automatically.
File Layout
config/orm/
├── overrides.json ← main config (list of override entries)
├── models/
│ └── <name>.json ← custom Blockbench/JSON models
└── textures/
└── item/
└── <name>.png ← texture files (+ optional .png.mcmeta for animation)
Models and textures are referenced in overrides.json using the orm: namespace:
"model": "orm:sword"→config/orm/models/sword.json"texture": "orm:item/texture2d/apple"→config/orm/textures/item/texture2d/apple.png
Subdirectories are fully supported and their structure is preserved:
config/orm/textures/item/sword/anim/animation.png
→ orm:item/sword/anim/animation
overrides.json Reference
Each entry is a JSON object. Fields:
| Field | Type | Required | Description |
|---|---|---|---|
item |
string | yes | Minecraft item ID, e.g. "minecraft:netherite_sword" |
name |
string | no | Match by exact display name |
customModelData |
int | no | Match by CustomModelData value |
nbtCondition |
object | no | Match by NBT key/value pairs |
texture |
string | no | Texture override path: "orm:<path>" |
model |
string | no | Model override ID: "orm:<name>" |
target |
string | no | Explicit target texture ID from a modded item model |
At least one of texture or model should be set.
Example Usage
The example below is taken from a real working config. It overrides two tools with custom Diablo-style 3D models (each with an animated texture layer) and replaces the Golden Apple with a flat 2D texture.
config/orm/overrides.json
[
{
"item": "minecraft:netherite_sword",
"name": "Netherite Sword",
"model": "orm:sword"
},
{
"item": "minecraft:netherite_pickaxe",
"name": "Netherite Pickaxe",
"model": "orm:pickaxe"
},
{
"item": "minecraft:golden_apple",
"name": "Golden Apple",
"texture": "orm:item/texture2d/apple"
}
]
File structure for the example above
config/orm/
├── overrides.json
├── models/
│ ├── sword.json
│ └── pickaxe.json
└── textures/
└── item/
├── sword/
│ ├── diablo_texture.png ← static base texture
│ └── anim/
│ ├── animation.png ← animated overlay frames
│ └── animation.png.mcmeta ← frame timing
├── pickaxe/
│ ├── diablo_texture.png
│ └── anim/
│ ├── animation.png
│ └── animation.png.mcmeta
└── texture2d/
└── apple.png ← flat 2D replacement
How each entry works
Netherite Sword / Pickaxe — "model": "orm:sword" loads models/sword.json. The model itself references two texture layers:
orm:item/sword/diablo_texture— a static 128×128 detailed textureorm:item/sword/anim/animation— an animated overlay driven byanimation.png.mcmeta
Both are matched by display name ("name": "Netherite Sword") so only items with that exact name are affected. Rename the item in an anvil to anything else and the vanilla model returns.
Golden Apple — "texture": "orm:item/texture2d/apple" replaces the vanilla golden_apple.png globally (no name filter), so every golden apple in the world uses textures/item/texture2d/apple.png.
Animated texture .mcmeta format
{
"animation": {
"frametime": 3,
"frames": [0, 1, 2, 3]
}
}
Place the .mcmeta file next to the .png with the same name plus .mcmeta suffix.
Keybind: Quick-Add
Open any inventory screen and middle-click an item slot. ORM reads the item's ID, display name, and CustomModelData, appends a new entry to overrides.json, and prints a chat confirmation. The generated entry uses the texture field with a path derived from the item ID — replace the placeholder texture value with your actual file.
Default binding: Middle Mouse Button (rebindable under Controls → Override Resource Manager).
Reloading
Press F3+T to reload resource packs. ORM re-reads overrides.json, rescans models/ and textures/, and rebuilds the override registry without restarting the game.
Requirements
- Minecraft 1.21.4
- Fabric Loader 0.19.2+
- Fabric API 0.119.4+1.21.4
Available Versions
How to Install ORM - OverrideResourceManager on Your Server
Order Server
Order a Minecraft Java server with at least 3 GB RAM (4 GB recommended).
Set fabric Loader
In the panel under "Egg", select the fabric loader and matching Minecraft version (1.21.4).
Install Mod
Open the mod browser in the dashboard and search for "ORM - OverrideResourceManager". Click "Install" – done! Alternatively, upload the .jar via SFTP to the /mods folder.
Compatibility
Mod Loaders
Minecraft Versions
1.21.4
Server-side
✗ UnsupportedRecommended RAM
4 GB(min. 3 GB)Frequently Asked Questions
ORM - OverrideResourceManager server crashes on startup – what to do?
Most common cause: wrong fabric version or insufficient RAM. Check the server log (latest.log) for "OutOfMemoryError" or "Mixin" errors. With Mado Hosting: ensure at least 3 GB RAM is allocated and the loader matches the mod version (1.21.4). You can switch loaders with one click in the panel.
Is ORM - OverrideResourceManager compatible with fabric?
ORM - OverrideResourceManager officially supports fabric for Minecraft 1.21.4. The Mado dashboard automatically detects incompatible loader combinations.
Server lagging with ORM - OverrideResourceManager – how to optimize performance?
Recommended RAM: 4 GB (per 8 players). Use /spark profiler to check if ORM - OverrideResourceManager consumes the most tick time. Common fixes: reduce server view-distance to 8-10, install "performant" or "starlight" as supplementary mods on Forge. With Mado Hosting, your server runs on NVMe SSDs with dedicated CPU cores for minimal latency.
Similar Mods
Rent Modded Server
Install ORM - OverrideResourceManager with just one click on your server.