Carry Mechanics

Pick up, carry, and place blocks and entities with your bare hands! A lightweight, configurable successor to Carry On.
Back to Files

Carry Mechanics (0.0.0-beta.43)

File namecarry_mechanics-26.1.2-neoforge-0.0.0-beta.43.jar
Uploader
LlaGuiT0LlaGuiT0
Uploaded
Jul 30, 2026
Downloads
18
Size
3.1 MB
Mod Loaders
NeoForge
File ID
8540322
Type
B
Beta
Supported game versions
  • 26.1.2

Curse Maven Snippet

NeoForge

implementation "curse.maven:carry-mechanics-1608286:8540322"

Learn more about Curse Maven

What's new

v0.0.0-beta.43 — Carried block now renders as a real held item

Fix

  • Root cause of the broken block visuals: the carried block was rendered as a raw BlockModelRenderState via BlockDisplayContext.create(). In this Minecraft version that class carries no held-in-hand transform at all (no scale, rotation or offset), so the previous first/third-person positioning relied on hand-picked translate/rotate values that never matched the player's actual hand bone — hence invisible in first person and floating inside the body in third person.
  • First person: the carried block is now resolved and rendered as an ItemStack of the block via ItemModelResolver with ItemDisplayContext.FIRST_PERSON_RIGHT_HAND, using the same base transform vanilla uses for a held item (ItemInHandRenderer#applyItemArmTransform). The display context already carries the correct scale/rotation, so no manual guesswork offsets are needed anymore.
  • Third person: same item-based approach with ItemDisplayContext.THIRD_PERSON_RIGHT_HAND, anchored to the player model's hand bone via PlayerModel#translateToHand plus the same small offset vanilla's ItemInHandLayer#submitArmWithItem applies for a right-hand item — matching how every other held item is drawn, instead of a full-block-sized offset from the feet.

Technical Changes

  • CarriedBlockRenderer — now resolves an ItemStackRenderState for new ItemStack(blockState.getBlock().asItem()) via ItemModelResolver.updateForLiving(...) instead of a BlockModelRenderState.
  • ICarryOnRenderState / PlayerRenderStateMixin — added a cached ItemStackRenderState on the avatar render state, resolved once per frame during extractRenderState (where the entity is available) and consumed during submit.
  • AvatarExtractorMixin — resolves the carried block's item render state with ItemDisplayContext.THIRD_PERSON_RIGHT_HAND.
  • CarryingItemRenderLayer — anchors to the hand bone and submits the resolved ItemStackRenderState instead of drawing a block model with manual offsets.
  • ItemInHandRendererMixin — resolves and submits the item with ItemDisplayContext.FIRST_PERSON_RIGHT_HAND, using vanilla's own arm-transform offset instead of hand-picked rotation/scale values.

This mod has no additional files