Vanilla Tweaks reference
Fixes an issue where some items appear to float above the player's hand.

Bedrock feasibility
|
|
| Verdict |
partial (medium confidence) |
| Checked |
2026-07-25 by agent |
Bedrock's display-transform field exists but cannot be pointed at a vanilla item, so repositioning a held item still means replacing its held rendering wholesale with an attachable - possible, but very high effort per item.
How it would work on Bedrock. Java fixes this by editing display.firstperson_righthand / thirdperson_righthand in each item's model JSON. Bedrock's nearest equivalent is item_display_transforms, a geometry-file field added in geometry format version 1.21.0 that takes translation, rotation, scale, rotation_pivot and scale_pivot for the firstperson_righthand, firstperson_lefthand, thirdperson_righthand, thirdperson_lefthand, gui, ground, fixed, head, embedded and shelf contexts. It is not usable here for two independent reasons: it requires the Upcoming Creator Features experimental toggle, and there is no vanilla item geometry file to put it in — Mojang/bedrock-samples ships no resource_pack/items/ directory and resource_pack/models/ holds only entity/ and mobs.json, so vanilla items get their held form from engine sprite extrusion, not from a geometry document a pack could override. The only real resource-pack lever remains the attachable: a file under resource_pack/attachables/ whose minecraft:attachable/description/identifier matches an existing vanilla item id replaces that item's held model, with placement coming from a resource_pack/models/entity/*.geo.json whose root bone is bound with "binding": "query.item_slot_to_bone_name(context.item_slot)" plus first- and third-person hold animations selected by context.is_first_person. This repo's resource_packs/files/3d/3d_mace and resource_packs/files/unobtrusive/smaller_utilities are working production examples of exactly that shape, and neither uses item_display_transforms. The vanilla pack ships attachables only for armour, bow, crossbow, elytra, shield, trident and turtle-shell helmet (55 files, no swords, tools, food, totem or fireworks), so every affected item needs hand-authored geometry and animations.
Caveats. Re-checked 2026-07-25 against the maintainer's item_display_transforms hypothesis; verdict unchanged, mechanism prose corrected. The earlier wording "Bedrock has no per-item display transforms" was wrong as written — the field exists in the geometry schema, it just has no vanilla item geometry to live in and is experiment-gated. Whether an attachable's geometry honours item_display_transforms at all is undocumented and unverified; the documented tutorial scopes the field to custom block geometry, and animations are the proven route. You still lose the engine's automatic sprite extrusion and must rebuild each item's held model by hand, including the enchantment-glint material. It is also unverified that Bedrock reproduces the Java "floats above the hand" offset at all - check the affected items in-game before anyone starts work; if Bedrock places them correctly there is nothing to port.
Sources
Maintained by tools/vt-diff. Edits inside this block are overwritten on the next run.
Vanilla Tweaks reference
ItemHoldFix)fixes_and_consistency26.2Bedrock feasibility
Bedrock's display-transform field exists but cannot be pointed at a vanilla item, so repositioning a held item still means replacing its held rendering wholesale with an attachable - possible, but very high effort per item.
How it would work on Bedrock. Java fixes this by editing
display.firstperson_righthand/thirdperson_righthandin each item's model JSON. Bedrock's nearest equivalent isitem_display_transforms, a geometry-file field added in geometry format version 1.21.0 that takestranslation,rotation,scale,rotation_pivotandscale_pivotfor thefirstperson_righthand,firstperson_lefthand,thirdperson_righthand,thirdperson_lefthand,gui,ground,fixed,head,embeddedandshelfcontexts. It is not usable here for two independent reasons: it requires theUpcoming Creator Featuresexperimental toggle, and there is no vanilla item geometry file to put it in —Mojang/bedrock-samplesships noresource_pack/items/directory andresource_pack/models/holds onlyentity/andmobs.json, so vanilla items get their held form from engine sprite extrusion, not from a geometry document a pack could override. The only real resource-pack lever remains the attachable: a file underresource_pack/attachables/whoseminecraft:attachable/description/identifiermatches an existing vanilla item id replaces that item's held model, with placement coming from aresource_pack/models/entity/*.geo.jsonwhose root bone is bound with"binding": "query.item_slot_to_bone_name(context.item_slot)"plus first- and third-person hold animations selected bycontext.is_first_person. This repo'sresource_packs/files/3d/3d_maceandresource_packs/files/unobtrusive/smaller_utilitiesare working production examples of exactly that shape, and neither usesitem_display_transforms. The vanilla pack ships attachables only for armour, bow, crossbow, elytra, shield, trident and turtle-shell helmet (55 files, no swords, tools, food, totem or fireworks), so every affected item needs hand-authored geometry and animations.Caveats. Re-checked 2026-07-25 against the maintainer's
item_display_transformshypothesis; verdict unchanged, mechanism prose corrected. The earlier wording "Bedrock has no per-item display transforms" was wrong as written — the field exists in the geometry schema, it just has no vanilla item geometry to live in and is experiment-gated. Whether an attachable's geometry honoursitem_display_transformsat all is undocumented and unverified; the documented tutorial scopes the field to custom block geometry, and animations are the proven route. You still lose the engine's automatic sprite extrusion and must rebuild each item's held model by hand, including the enchantment-glint material. It is also unverified that Bedrock reproduces the Java "floats above the hand" offset at all - check the affected items in-game before anyone starts work; if Bedrock places them correctly there is nothing to port.Sources
Maintained by
tools/vt-diff. Edits inside this block are overwritten on the next run.