All pastes #6B5VVuabJZ Raw Edit

Custom Player Body Yaw Code (Bypass yBodyRot bugs)

public unlisted javascript v1 · immutable
·published 2026-11-02 15:12 UTC
rendered paste body
if (entity instanceof net.minecraft.world.entity.player.Player player) {    net.mcreator.[yourmodname].network.YourModVariables.PlayerVariables vars = player.getCapability(net.mcreator.[yourmodname].network.YourModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new net.mcreator.[yourmodname].network.YourModVariables.PlayerVariables());    float currentBodyYaw = (float) [global_bodyYaw];    if (currentBodyYaw == 0.0f && player.getYRot() != 0.0f) {        currentBodyYaw = player.getYRot();    }    float headYaw = player.getYRot();    double dx = player.getX() - [global_lastX];    double dz = player.getZ() - [global_lastZ];    int moveGrace = player.getPersistentData().getInt("move_grace");    if (dx * dx + dz * dz > 0.001) {        moveGrace = 5;        float moveYaw = (float)(Math.atan2(-dx, dz) * (180.0 / Math.PI));        float relativeYaw = net.minecraft.util.Mth.wrapDegrees(moveYaw - headYaw);        player.getPersistentData().putFloat("last_rel_yaw", relativeYaw);                [global_lastX] = player.getX();        [global_lastZ] = player.getZ();    } else if (moveGrace > 0) {        moveGrace--;    }    player.getPersistentData().putInt("move_grace", moveGrace);    boolean isMoving = moveGrace > 0;    float idealBodyYaw = headYaw;    if (isMoving) {        float relYaw = player.getPersistentData().getFloat("last_rel_yaw");                if (Math.abs(relYaw) < 135.0f) {            if (relYaw > 50.0f) relYaw = 50.0f;            if (relYaw < -50.0f) relYaw = -50.0f;            idealBodyYaw = headYaw + relYaw;        }    }    float diffIdeal = net.minecraft.util.Mth.wrapDegrees(idealBodyYaw - currentBodyYaw);    boolean isInteracting = player.swinging || player.isUsingItem();    if (isInteracting) {        currentBodyYaw += diffIdeal * 0.4f;    } else if (isMoving) {        currentBodyYaw += diffIdeal * 0.4f;    }    float diffHeadBody = net.minecraft.util.Mth.wrapDegrees(headYaw - currentBodyYaw);    if (diffHeadBody > 50.0f) {        currentBodyYaw = headYaw - 50.0f;    } else if (diffHeadBody < -50.0f) {        currentBodyYaw = headYaw + 50.0f;    }    [global_bodyYaw] = (double) net.minecraft.util.Mth.wrapDegrees(currentBodyYaw);    vars.syncPlayerVariables(player);}