addHook("PlayerThink", function()
for player in players.iterate do
	local spin_pressed = (player.cmd.buttons & BT_SPIN) ~= 0
	if player.mo.valid
	and (player.mo.skin == "beggman") and P_IsObjectOnGround(player.mo) and not (gametype == GT_LTMMURDERMYSTERY) and (player.mo.state == S_PLAY_WALK or player.mo.state == S_PLAY_RUN) and spin_pressed and player.speed >= 15 * FRACUNIT then
		player.mo.state = S_PLAY_ROLL
		player.pflags = $ |PF_SPINNING
		end
	if P_IsObjectOnGround(player.mo) and player.mo.state == S_PLAY_ROLL and (player.mo.skin == "beggman") then 
	P_SpawnMobjFromMobj(player.mo, 0 * FRACUNIT, P_RandomRange(-10, 10) * FRACUNIT, 0 * FRACUNIT, MT_SPINDUST)
	P_SpawnMobjFromMobj(player.mo, 0 * FRACUNIT, P_RandomRange(-10, 10) * FRACUNIT, 0 * FRACUNIT, MT_SPINDUST)
	S_StartSound(player.mo, sfx_buzz4)
	end
	end
end)