TOP_SPEED = 500 function GM:SetupMove(ply, mv) if not ply:Alive() then return end if ply:KeyDown(IN_SPEED) and ply:GetModel() == "models/player/police.mdl" then ply.Velocity = ply:GetVelocity() local additive = ply:GetVelocity() additive.x = math.Clamp(additive.z,-300,300) additive.y = math.Clamp(additive.z,-300,300) additive.z = math.Clamp(additive.z,-100,100) ply.JetPack:EmitSound(JetSound,100,math.random(150,155)) ply.Velocity.z = math.Approach(ply.Velocity.z, TOP_SPEED, 5) mv:SetVelocity( additive + ply.Velocity + (ply:GetAimVector() * (ply.Velocity.z/3))) local edata = EffectData() edata:SetOrigin(ply:GetPos() + (ply:GetForward() * -10)) util.Effect("jetpack_smoke", edata) else ply.Velocity = math.Approach(ply.Velocity or 1000, 10, -5) end end