ORM - OverrideResourceManager

Quick rating

ORM - OverrideResourceManager

No reviews yet

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.

Mod Loaders
Fabric
Minecraft

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

Compatibility

Supported Environments

Dev Environment
Client Required
Server Unsupported

About

Project Details

Type
Mod
License
MIT License
Latest Version
1.0
Authors

For authors

Embed Badge

If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

Modrinth ID

Resources

External Links

About

Description

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

  1. Install Fabric Loader and Fabric API for Minecraft 1.21.4.
  2. Drop the ORM .jar into your mods/ folder.
  3. 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 texture
  • orm:item/sword/anim/animation — an animated overlay driven by animation.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

Screenshots

Gallery

This project has no gallery images yet.

Versions

Files

Relations

Project Relations

More like this

Similar Mods

Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.

On ModDex

Community snapshot

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

<1,000
Downloads
Last Updated
CurseForge
Modrinth
Created
Last synced
When ModDex last fetched this project from CurseForge or Modrinth. Every project is re-checked on a schedule, and any project that ships a new file is synced automatically within hours of the release.
New file updates sync automatically
How syncing works