addHook("PlayerThink", function(player)
	local NOTME = {}
NOTME["adventuresonic"]=true
NOTME["adventuretails"]=true
NOTME["adventureknux"]=true
NOTME["adventureamy"]=true
NOTME["adventureshadow"]=true
NOTME["adventurerouge"]=true
NOTME["xsonic"]=true
NOTME["xsonicserious"]=true
NOTME["xsonicc"]=true
NOTME["samus"]=true
NOTME["basesamus"]=true
NOTME["sms"]=true
NOTME["modernsonic"]=true
NOTME["doomguy"]=true

	for player in players.iterate
	if not (NOTME[player.mo.skin] == true) then
	if player.mo.skin != "mario" and player.mo.skin != "luigi" and player.mo.skin != "pacman" then
	player.acceleration = 30
	end
		if (player.pflags == PF_SLIDING) return end
		if player and player.valid then
			if (player.speed > player.normalspeed) then
			if player.cmd.forwardmove != 0 or player.cmd.sidemove != 0 then
			player.mo.friction = FRACUNIT
					if player.speed > 70 * FRACUNIT then
					player.charflags = $ | SF_RUNONWATER
						if P_IsObjectOnGround(player.mo)then
						if player.mo.skin == "metalsonic" then
						player.mo.state = S_PLAY_DASH
						if player.dashmode < 3*TICRATE then
						player.dashmode = 4*TICRATE
						end
						end
						if not(player.mo.eflags == MFE_TOUCHWATER)
						if not (player.mo.skin == "metalsonic") then
						P_SpawnSkidDust(player, 13*FRACUNIT, sfx_none)
						end
						end
						end
						else
					player.charflags = $ &~SF_RUNONWATER
				end
			end
		end
		end
	end
	end
end)