function Steering()if _MSteer then local B=math.max(1,(mouse.ViewSizeX*_Tune.Peripherals.MSteerWidth)/200)local v=_Tune.Peripherals.MSteerDZone/100 local C=(mouse.X-mouse.ViewSizeX/2)/B if math.abs(C)<=v then _GSteerT=0 else _GSteerT=(math.max(math.min(math.abs(C)-v,1-v),0)/(1-v))^_Tune.MSteerExp*(C/math.abs(C))end end if _GSteerC<_GSteerT then if _GSteerC<0 then _GSteerC=math.min(_GSteerT,_GSteerC+_Tune.ReturnSpeed)else _GSteerC=math.min(_GSteerT,_GSteerC+_Tune.SteerSpeed)end else if _GSteerC>0 then _GSteerC=math.max(_GSteerT,_GSteerC-_Tune.ReturnSpeed)else _GSteerC=math.max(_GSteerT,_GSteerC-_Tune.SteerSpeed)end end local B=1-math.min(car.Body.CarName.Value.VehicleSeat.Velocity.Magnitude/_Tune.SteerDecay,1-_Tune.MinSteer/100)for v,C in pairs(car.Wheels:GetChildren())do if C.Name=="\070"then C.Arm.Steer.CFrame=car.Wheels.F.Base.CFrame*CFrame.Angles(0,-math.rad((_GSteerC*_Tune.SteerInner)*B),0)elseif C.Name=="\070\076"then if _GSteerC>=0 then C.Arm.Steer.CFrame=car.Wheels.FL.Base.CFrame*CFrame.Angles(0,-math.rad((_GSteerC*_Tune.SteerOuter)*B),0)else C.Arm.Steer.CFrame=car.Wheels.FL.Base.CFrame*CFrame.Angles(0,-math.rad((_GSteerC*_Tune.SteerInner)*B),0)end elseif C.Name=="\070\082"then if _GSteerC>=0 then C.Arm.Steer.CFrame=car.Wheels.FR.Base.CFrame*CFrame.Angles(0,-math.rad((_GSteerC*_Tune.SteerInner)*B),0)else C.Arm.Steer.CFrame=car.Wheels.FR.Base.CFrame*CFrame.Angles(0,-math.rad((_GSteerC*_Tune.SteerOuter)*B),0)end end end end


	function Steering()
		--Mouse Steer
		if _MSteer then
			local msWidth = math.max(1,mouse.ViewSizeX*_Tune.Peripherals.MSteerWidth/200)
			local mdZone = _Tune.Peripherals.MSteerDZone/100
			local mST = ((mouse.X-mouse.ViewSizeX/2)/msWidth)
			if math.abs(mST)<=mdZone then
				_GSteerT = 0
			else
				_GSteerT = (math.max(math.min((math.abs(mST)-mdZone),(1-mdZone)),0)/(1-mdZone))^_Tune.MSteerExp * (mST / math.abs(mST))
			end
		end
		
		--Interpolate Steering
		if _GSteerC < _GSteerT then
			if _GSteerC<0 then
				_GSteerC = math.min(_GSteerT,_GSteerC+_Tune.ReturnSpeed)
			else
				_GSteerC = math.min(_GSteerT,_GSteerC+_Tune.SteerSpeed)
			end
		else
			if _GSteerC>0 then
				_GSteerC = math.max(_GSteerT,_GSteerC-_Tune.ReturnSpeed)
			else
				_GSteerC = math.max(_GSteerT,_GSteerC-_Tune.SteerSpeed)
			end
		end
		
		--Steer Decay Multiplier
		local sDecay = (1-math.min(car.Body.CarName.Value.VehicleSeat.Velocity.Magnitude/_Tune.SteerDecay,1-(_Tune.MinSteer/100)))
		
		--Apply Steering
		for i,v in pairs(car.Wheels:GetChildren()) do
			if v.Name=="F" then
				v.Arm.Steer.CFrame=car.Wheels.F.Base.CFrame*CFrame.Angles(0,-math.rad(_GSteerC*_Tune.SteerInner*sDecay),0)
			elseif v.Name=="FL" then
				if _GSteerC>= 0 then
					v.Arm.Steer.CFrame=car.Wheels.FL.Base.CFrame*CFrame.Angles(0,-math.rad(_GSteerC*_Tune.SteerOuter*sDecay),0)
				else
					v.Arm.Steer.CFrame=car.Wheels.FL.Base.CFrame*CFrame.Angles(0,-math.rad(_GSteerC*_Tune.SteerInner*sDecay),0)
				end
			elseif v.Name=="FR" then
				if _GSteerC>= 0 then
					v.Arm.Steer.CFrame=car.Wheels.FR.Base.CFrame*CFrame.Angles(0,-math.rad(_GSteerC*_Tune.SteerInner*sDecay),0)
				else
					v.Arm.Steer.CFrame=car.Wheels.FR.Base.CFrame*CFrame.Angles(0,-math.rad(_GSteerC*_Tune.SteerOuter*sDecay),0)
				end
			end
		end
	end


