promotional bannermobile promotional banner

sable-x-cpm

Compatibility between sable physics engine ragdolls and cpm (Customizable Player Models)

sable-x-cpm

Renders Customizable Player Models outfits on Sable player ragdolls and corpses.

Without this, ragdolls show the vanilla skin: each ragdoll piece is drawn with a standalone PlayerModel that CPM never hooks. This mod binds the dead player's CPM model to that PlayerModel through CPM's plugin api right before each piece renders, so the ragdoll wears the outfit.

Requirements

  • NeoForge 1.21.1
  • Kotlin for Forge 5+
  • Customizable Player Models 0.6.20+
  • Sable: Player Ragdoll 0.7+

Client side only. Also covers Sable: Ragdoll Corpse, which reuses the same renderer.

Sources are Kotlin except the two mixin classes, which stay Java: the mixin processor merges class bytecode into the target and Kotlin metadata is not safe there.

Known limits

  • Capes and elytra on ragdolls stay vanilla (the ragdoll renders them outside the player model).
  • CPM parts far offset from their parent bone can look detached at piece seams, since each piece simulates separately.

The sable-x-cpm Team

profile avatar
Owner
  • 4
    Projects
  • 295
    Downloads

More from Earu