# Punchy v2.7-BETA-TEST released.
Focused on first-person animation fluidity, hand equipment transitions, animation reliability, and new animations.
## Added
- Added `enchantment_variants` for Model Parts Items and Tuning. Resource packs can now select item visuals and particle emitters from vanilla enchantments, with level ranges, `match: "any"`, and priority ordering.
- Added dynamic Controls-menu entries for triggerable resource-pack animations. Packs can give each action a friendly title, while players can remap individual actions and keep their preferences.
- Added smooth first-person horse-riding animations with idle, movement, mounting, camera motion, dual-hand support, and blending with attacks, mining, item use, shields, and equipment transitions.
- Added a new first-person movement animation system powered by keyframes. Resource packs can provide custom idle, walking, sprinting, jumping, falling, and landing animations.
- Added `customFlags.movement_influence` for custom animations. Resource packs can keep 0-100% of keyframed and procedural movement behind an action, with smooth action blending and per-hand control.
- Keyframe-based walking and sprinting now support forward, backward, left, right, and diagonal movement, with smooth transitions between directions and speeds.
- Keyframe-based jumping, falling, and landing now blend naturally with movement and return smoothly to the correct movement animation after landing.
- Custom movement animations are optional: any missing animation continues to use the existing procedural movement behavior.
## Improved
- Improved procedural movement timing so walk, sprint, camera motion, and arm movement are simulated consistently per game tick and interpolated smoothly at render time.
- Improved keyframe playback by honoring Catmull-Rom interpolation for position, rotation, and scale channels.
- Updated the default animation blend-in curve to a smooth transition, avoiding unwanted backward overshoot on normal animation changes.
- Improved V2 Start → Loop → End animation handling for mining and item use. Matching boundary keyframes now hand off directly without an idle frame or unnecessary interpolation.
- Improved animation timing for high-speed V2 clips, including sword mining animations that use timeline speed markers.
- Improved sprint composition during mining V2 animations so mining end animations return directly into the running motion instead of briefly falling back to idle/walk.
- Improved Walk on Water V2 Start → Loop transitions with the same exact keyframe handoff used by mining and item-use animations.
## Fixed
- Fixed small visual flickers when V2 Start → Loop animations transition.
- Fixed hand out and hand in animations being skipped when changing tools while mining, including hotbar and mouse-wheel changes.
- Fixed tool changes during mining from incorrectly starting the next tool's mining animation before its equipment transition completed.
- Fixed attacks and mining actions being delayed until hand in completed after swapping hands with the swap key.
- Fixed repeated attacks or mining actions from cutting off the opposite hand's active hand in animation during a swap.
- Fixed V2 Start → Loop → End actions from interrupting the opposite hand's equipment animation during a swap.
- Fixed a second hand swap during an active action from leaving the returned tool animation in a broken state until the item was dropped and picked up again.
- Fixed main-hand hotbar and mouse-wheel changes after a hand swap from immediately cancelling the offhand hand out/hand in animation.
- Fixed swapping hands during Walk on Water V2 from waiting for hand in to finish and then jumping to the water-walk pose.
## Note:
As you all know, we always deliver updates on day one. Nothing new there. Since that’s not really a surprise anymore, we’re going to start making snapshot versions available to you too.
Have fun, love you players ❤️
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }