Compatibility
Minecraft: Java Edition
Links
Creators
Details
🎮 Dev's Directional Movement Based Textures Template (Minecraft Resource Pack)
This is a template resource pack for Minecraft that allows item textures to dynamically change based on player key input — such as movement keys or sneaking.
It leverages Minecraft’s model predicate system (minecraft:condition and keybind_down) introduced in 1.20.5+ snapshots.
assets/
└── minecraft/
├── items/
│ └── bucket.json <- Main model that loads conditionally
├── models/
│ └── custom_item_models/
│ └── bucket/
│ ├── forwards.json
│ ├── backwards.json
│ ├── left.json
│ ├── right.json
│ ├── sprinting.json
│ ├── sneaking.json
│ └── still.json <- Sub-models per movement key
└── textures/
└── item/
└── custom_item_textures/
└── bucket/
├── forwards.png
├── backwards.png
├── left.png
├── right.png
├── sprinting.png
├── sneaking.png
└── still.png <- Custom textures linked to sub-models
🛠 How It Works
- The
item/bucket.jsonmodel is the entry point, rename this to whatever item you want to edit. - It uses nested
minecraft:conditionlogic to detect active keybinds like:key.forward,key.back,key.left,key.right, andkey.sneak.
- Based on the key pressed, it loads a different model from
custom_item_models/bucket/, which links to a texture incustom_item_textures/bucket/. - It can detect the sneak key, the sprint key and the directional keys.
- The sneak texture overwrites all others then the sprint texture overwrites the rest followed up by the cardinal directions.
✏️ How to Customize
-
Use a Different Item
- Copy and rename
bucket.jsonto another item path (e.g.carrot_on_a_stick.json). - Update paths inside the file to match your new model/texture folder.
- Copy and rename
-
Add More Folders for Modular Support
- Create new folders under
custom_item_models/for each item type (e.g.,sword/,shield/). - Each folder can contain unique movement-based sub-models.
- Create new folders under
-
Link Your Own Textures
- Change the
textures.layer0property in each sub-model (left.json,right.json, etc.) to use your custom textures.
- Change the
-
Add More Conditions
- Include additional states like
key.use,key.jump, etc., by expanding the logic tree in the main.json.
- Include additional states like
-
Use Misode's Item Generator
- (https://misode.github.io/assets/item/).
- Copy and paste the contents of
bucket.jsonto the bottom right of the website and easily edit the json. - Donate to Misode cause they're cool. (https://ko-fi.com/misode)
⚠️ Limitations
-
Experimental Feature:
This uses features only available in Minecraft 1.20.5+. -
Client-Side Only:
It works based on local keybind inputs, not actual movement, velocity, or server-side conditions. -
One Input at a Time:
The system processes inputs sequentially, so combining multiple simultaneous key presses is complex without deep nesting. -
Keybinds Only:
Only supports detecting keys like:key.forward,key.back,key.left,key.right,key.jump,key.sneaketc.- It does not detect mouse movement or other conditions.
✅ Great For
- Tools that visually indicate player movement.
- Gadgets or accessories with reactive visuals.
- Animated HUD-style items (compass-like behavior, indicators, etc.).
📌 License
You may use this template freely. Attribution is required unless otherwise stated.
🔗 Links
-
My other packs
- CurseForge (https://www.curseforge.com/members/theonetruedev/projects)
- Modrinth (https://modrinth.com/dashboard/projects)
-
Donations <3



