Compatibility
Minecraft: Java Edition
Links
Tags
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


