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



