Skip to content

Player poses

NeoForge 26.1.2, 1.21.1 and 26.2. These are client resources, so they go in a resource pack, not a datapack.

Item bindings

How players hold an item. File: assets/<item ns>/player_pose/<item path>.json. Every field is optional.

{
  "arms": "support",
  "when": "always",
  "main": [-45, -25, 0],
  "support": [0, 0, 3],
  "hold": "mymod:greatsword_idle",
  "fire": "mymod:greatsword_slam",
  "cues": {"cast": "mymod:cast", "swing": ["mymod:swing_a", "mymod:swing_b"]},
  "first_person": {"arm": "grip", "grip": [0.4, -0.6, -1.2], "angles": [18, 30, 0], "swing": true}
}
Field Meaning
arms third-person hold: two_handed, bow, pistol, staff, support (off hand on a point of the item), spear, block or item; no binding means vanilla's
main / support the main arm's angles and the support hand's point on the item
hold, fire, reload, charge clips to play in those states
cues named clips the server starts with Poses.cue(entity, "cast")
rest the clip between actions
first_person the player's own arms in first person (below)

First-person arms

Field Meaning
arm grip (fist on a handle), palm (open hand under a floating item), gun / wand (fist on a grip frame) or none
grip pixels in the held item's frame
angles degrees: pitch up, yaw inward, roll
fist_in, swing fine-tuning
support the other hand, drawn while the off hand is empty (same fields)

Clips

Blockbench or GeckoLib animations at assets/<ns>/player_anim/<name>.json, with bones right_arm, left_arm and first_person (which moves the item and arms together).