local THOKSPEED = 60 * FRACUNIT addHook("ThinkFrame", function(player) for player in players.iterate() local mo = player.mo if player and mo and mo.valid and player.playerstate == PST_LIVE and player.cmd.buttons & BT_CUSTOM1 and (player.pflags & PF_JUMPED) and not (player.pflags & PF_THOKKED) P_InstaThrust(mo, mo.angle, THOKSPEED) player.pflags = $ | PF_THOKKED player.pflags = $ & ~PF_NOJUMPDAMAGE mo.state = S_PLAY_ROLL S_StartSound(mo, sfx_thok) local trail = P_SpawnGhostMobj(mo) trail.state = S_THOK end end end)