addHook("MobjThinker", function(mo) if not mo.player then return end if mo.player.brakeSensitivity == nil mo.player.brakeSensitivity = 100 end if P_IsObjectOnGround(mo) mo.autoBrake = true end if mo.state == S_PLAY_SPRING or mo.state == S_PLAY_PAIN or mo.state == S_PLAY_DIE or mo.player.pflags & PF_SPINNING mo.autoBrake = false end if mo.player.cmd.forwardmove == 0 and mo.player.cmd.sidemove == 0 and mo.autoBrake and mo.player.brakeSensitivity > 0 local skinAcceleration = mo.player.accelstart + (mo.player.speed/mo.scale) * mo.player.acceleration * mo.player.thrustfactor * mo.player.brakeSensitivity/2 if not P_IsObjectOnGround(mo) skinAcceleration = $1 / 4 end local moveAngle = R_PointToAngle2(0,0,mo.player.rmomx,mo.player.rmomy) P_Thrust(mo, moveAngle, -1*skinAcceleration) end end, MT_PLAYER) local function autoBrakeSensitivity(player, arg) if tonumber(arg) != nil and tonumber(arg) >= 0 and tonumber(arg) <= 100 player.brakeSensitivity = tonumber(arg) else CONS_Printf(player, "AUTOBRAKE <0-100> - Sets auto-brake sensitivity. Current value is "..player.brakeSensitivity) end end COM_AddCommand("AUTOBRAKE", autoBrakeSensitivity, 0)