-- gotta go faster -- local TOPSPEED = 100*FRACUNIT -- Cap speed for dashmode. local RUNTIME = 20*FRACUNIT -- How long do you have to run for to activate dashmode. local DEFNORMALSPEED = 39*FRACUNIT -- Put your default normal speed here. local OVERRIDESPEED = 85*FRACUNIT -- Automaticly activates dashmode at a certain speed. local MAXJUMPHIGHT = 1*FRACUNIT -- Maximum jump power when in dashmode. local SKIN = "sonic" -- Your character's skin name goes here. local function ResetVars(player) -- Resets vars player.runtime = 0 player.normalspeed = DEFNORMALSPEED player.fakenormalspeed = DEFNORMALSPEED player.jumpfactor = 1*FRACUNIT player.maxspeedentersound = false end addHook("PlayerThink", function(player) if player.mo.skin == SKIN then if player.fakenormalspeed == nil then player.fakenormalspeed = DEFNORMALSPEED return end -- Xmom Support if player.fakenormalspeed < TOPSPEED and player.speeddash == true and player.isxmomentum player.fakenormalspeed = $1 + 1*FRACUNIT/5 -- This is what gets you get faster when in dashmode. end if player.normalspeed < TOPSPEED and player.speeddash == true and not player.isxmomentum player.normalspeed = $1 + 1*FRACUNIT/5 -- This is what gets you get faster when in dashmode. end if player.jumpfactor < MAXJUMPHIGHT and player.speeddash == true player.jumpfactor = $1 + 1*FRACUNIT/100 end if player.speed > 27*FRACUNIT and not (leveltime % 5) -- Checks if you are running. if player.runtime == nil then player.runtime = 0 return true end player.runtime = $ + 1*FRACUNIT end if player.speed < 25*FRACUNIT and P_IsObjectOnGround(player.mo) or P_PlayerInPain(player) -- Disables dashmode if player.speeddash == true then S_StartSound(player.mo, sfx_kc65) -- Exiting dashmode soundeffect. player.speeddash = false end ResetVars(player) end if player.speeddash == true local ghost = P_SpawnGhostMobj(player.mo) -- Spawns ghosts ghost.fuse = 2 player.charflags = $1|SF_RUNONWATER -- Enables Running on water. else player.charflags = $1 & ~SF_RUNONWATER end if player.speeddash == true and P_IsObjectOnGround(player.mo) then P_SpawnSkidDust(player, 13*FRACUNIT, sfx_none) -- Spawns rundust end if P_IsObjectOnGround(player.mo) and player.runtime >= (RUNTIME/2) then P_SpawnSkidDust(player, 13*FRACUNIT, sfx_none) -- Spawns rundust end if player.speed >= 70*FRACUNIT and player.speeddash == true and P_IsObjectOnGround(player.mo) then P_SpawnSkidDust(player, 13*FRACUNIT, sfx_none) -- Spawns rundust P_SpawnSkidDust(player, 13*FRACUNIT, sfx_none) -- Spawns rundust P_SpawnSkidDust(player, 13*FRACUNIT, sfx_none) -- Spawns rundust end local skin = skins[player.mo.skin] if player.speed >= 60*FRACUNIT then player.camerascale = skin.camerascale*5/4 -- Moves the camera back allowing the player to see more. elseif player.speed >= 80*FRACUNIT then player.camerascale = skin.camerascale*9/8 -- Moves the camera back allowing the player to see more. else player.camerascale = skin.camerascale -- Resets camera. end end end) addHook("PlayerThink", function(player) -- Default Dashmode Activation if player.mo.skin == SKIN then if player.runtime == nil then player.runtime = 0 return true end if not player.speeddash == true and player.runtime >= RUNTIME and P_IsObjectOnGround(player.mo) S_StartSound(player.mo, sfx_s3ka2) -- Entering dashmode soundeffect player.speeddash = true if not player.xmomentum player.normalspeed = player.speed else player.fakenormalspeed = player.speed end end end end) addHook("PlayerThink", function(player) -- Override Activation. if player.mo.skin == SKIN then if player.runtime == nil then player.runtime = 0 return true end if player.speed >= OVERRIDESPEED and player.speeddash == false S_StartSound(player.mo, sfx_s3ka2) -- Entering dashmode soundeffect player.speeddash = true if not player.xmomentum player.normalspeed = player.speed else player.fakenormalspeed = player.speed end end end end)