addHook("ThinkFrame", do
    for player in players.iterate
	   if (player.mo and player.mo.skin == "s3tails")

	   if not (player.mo.usedown) then
	   player.mo.usedown = 0
	   end
	   
	   if not (player.mo.flydrop) then
	   player.mo.flydrop = 0
	   end
	  
	   if (player.cmd.buttons & BT_CUSTOM1)
	   and (player.mo.usedown == 0)
	   and not P_IsObjectOnGround(player.mo)
	   player.mo.usedown = 1
	   player.mo.flydrop = 1
	   player.mo.state = S_PLAY_JUMP
	   player.pflags = $1|PF_JUMPED
	   end
	   
	   if not (player.cmd.buttons & BT_CUSTOM1)
	   and (player.mo.usedown == 1)
	   player.mo.usedown = 0
	   end
	   
	    end
	end
end)

addHook("PlayerCanDamage", function(player, mobj)
	if player.mo and player.mo.skin == "s3tails"
	and player.mo.state == S_PLAY_ROLL
	and (mobj.flags&MF_ENEMY or mobj.flags&MF_BOSS or mobj.flags&MF_MONITOR) return true end
end, MT_PLAYER)