Skip to content

Repository files navigation

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.

Building

./gradlew build

Jar lands in build/libs/.

About

[EXPERIMENTAL] Compat between cpm and sable physics engine ragdolls.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages