๐ฎ 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.
๐ Directory Structure
This doesn't render properly, look on github if you want to see the directory structure. Github
๐ How It Works
- The
item/bucket.json model is the entry point, rename this to whatever item you want to edit.
- It uses nested
minecraft:condition logic to detect active keybinds like:
key.forward, key.back, key.left, key.right, and key.sneak.
- Based on the key pressed, it loads a different model from
custom_item_models/bucket/, which links to a texture in custom_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.json to another item path (e.g. carrot_on_a_stick.json).
- Update paths inside the file to match your new model/texture folder.
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.
Link Your Own Textures
- Change the
textures.layer0 property in each sub-model (left.json, right.json, etc.) to use your custom textures.
Add More Conditions
- Include additional states like
key.use, key.jump, etc., by expanding the logic tree in the main .json.
Use Misode's Item Generator
โ ๏ธ 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
Donations <3