Repository navigation
Player Models
Salamander supports Just Expressions 1.2.1 and Fresh Moves player packs on Minecraft 1.7.10. It loads their original ZIPs without converting the models.
- Enable the resource pack in Minecraft's normal resource-pack list.
- Prepare your skin using the pack author's eye and eyebrow guides. The extra pixels select and supply the animated facial features. Leave the original face intact, as the guide instructs.
- Upload that prepared skin through your normal skin provider. Other players with prepared skins also animate on your client.
Player models are enabled by default. Set cem.playerModels=false in config/salamander/salamander.cfg and reload resources to disable them while keeping mob CEM enabled. The main cem.enabled setting disables both.
No server component or modern-skin mod is required for this milestone. Salamander preserves the original skin pixels for CEM, including transparency and the lower half of modern skins. Legacy skins are expanded with mirrored left limbs. These CEM textures are separate from the textures used by native rendering.
Wide and slim models use player.jem and player_slim.jem. First-person hands use the pack's geometry with the native hand pose; body animations do not move the hand. Removing the pack or disabling player models restores native rendering.
Enable one Fresh Moves ZIP in the resource-pack list. Both the 3.1 (-1.21.2) and 3.1.1 (+1.21.3) releases are supported, with or without animated eyes. Use the animated-eye edition for the same prepared skins described above. The edition without animated eyes works with ordinary skins.
Fresh Moves and Just Expressions both replace the player model. Choose one for your player animations; combining them does not merge their animations. Pack priority determines which player model loads.
Fresh Moves keeps native arm poses for item use while adding its body animation. Skin overlays follow the body, armor and held items follow the animated bones, and first-person hands retain the native hand pose. player_cape.jem supports existing player capes; Salamander does not supply a cape service. Et Futurum Requiem's elytra model and gliding state are also mapped.
The additional expression features are wraprad, wrapdeg, move_forward, move_strafing, is_climbing, is_gliding, is_crawling, is_swimming, and is_first_person_hand. Movement direction comes from the entity's motion relative to its body heading, including remote players. Vanilla 1.7.10 and the tested EFR version do not supply modern crawling or swimming poses, so those two flags remain false. Entering water still sets is_in_water normally. First-person hands skip body animation evaluation.
The loader checks both optifine/cem and emf/cem, including per-model subdirectories. Resource-pack priority wins; within the same priority, EMF directories win, then subdirectories. Relative JPM imports and the existing CEM animation functions work in either directory. The distance animation input is available for the pack's detail adjustments.
Player-pack support is partial EMF/ETF compatibility. Random entity textures are supported separately. Additional EMF functions and ETF skin features remain later work.
The packaged mod was checked on Forge 1.7.10 with Java 8 in isolated Xvfb clients, both standalone and with Et Futurum Requiem, Angelica 2.2.11, and Complementary Reimagined 5.8.1. Checks covered wide and slim skins, blinking and eye movement, armor and held items, first-person hands, resource reloads, pack removal, and disabling CEM. Fresh Moves checks also covered walking, sprinting, crouching, airborne and climbing states, item use, both cape layouts, and EFR elytra gliding.
Skin checks included original downloaded pixels, dynamic textures, legacy skins, default skins, and slim metadata arriving through the skin callback. The last case also checks that assigning a network entity ID does not lose the selected model. These checks do not establish compatibility with every shader or player-rendering mod.
Explicit WawelAuth compatibility is deferred while draft PR #19 settles. The design review used commit 4458bd2773781f9ef26a5d79c798155d07f8d6f9, which introduces IModelBipedModern and changes overlay visibility and translucent render passes.
Salamander currently uses vanilla player, model, skin-decoding, and texture hooks. It refreshes bindings when a renderer swaps native arm objects. It does not depend on WawelAuth's current implementation or call the draft API. Compatibility with WawelAuth's overlay rendering is not yet established.
The future adapter needs to bind the draft's actual overlay parts, respect each layer's disabled/flat/volumetric state, and coordinate CEM replacements with its translucent passes and voxel meshes.
See Development for tests using the original pack.