Pinkstack/roblox-luau-corpus-text huggingface dataset:
--[[
	Provides a client API to connect and disconnect UILayers from Zones.
	A connected UILayer opens on the local player's screen when the player enters the connected zone.
--]]



local CollectionService = game:GetService("CollectionService")
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local UIHandler = require(script.Parent.UIHandler)
local UILayerId = require(ReplicatedStorage.Source.SharedConstants.UILayerId)
local ZoneIdTag = require(ReplicatedStorage.Source.SharedConstants.CollectionServiceTag.ZoneIdTag)

local localPlayer = Players.LocalPlayer :: Player

type ConnectionsByName = {
	-- [ConnectionName] = Connection
	[string]: RBXScriptConnection,
}

type ConnectionsByLayerId = {
	-- [UILayerId]
	[string]: ConnectionsByName,
}
type ConnectionsByZoneId = {
	-- [ZoneId]
	[string]: ConnectionsByLayerId,
}

local UIZoneHandler = {}
UIZoneHandler._uiConnectionsByZoneId = {} :: ConnectionsByZoneId

function UIZoneHandler.connectUiToZone(uiLayerId: UILayerId.EnumType, zoneId: ZoneIdTag.EnumType)
	local characterMaybe = localPlayer.Character

	if characterMaybe and CollectionService:HasTag(characterMaybe, zoneId) then
		UIHandler.show(uiLayerId)
	else
		UIHandler.hide(uiLayerId)
	end

	local connectionsByLayerId: ConnectionsByLayerId = UIZoneHandler._uiConnectionsByZoneId[zoneId] or {}
	local connectionsByName: ConnectionsByName = connectionsByLayerId[uiLayerId] or {}

	if not connectionsByName.instanceAddedSignal then
		connectionsByName.instanceAddedSignal = CollectionService:GetInstanceAddedSignal(zoneId)
			:Connect(function(instance: Instance)
				if instance ~= localPlayer.Character then
					return
				end

				UIHandler.show(uiLayerId)
			end)
	end

	if not connectionsByName.instanceRemovedSignal then
		connectionsByName.instanceRemovedSignal = CollectionService:GetInstanceRemovedSignal(zoneId)
			:Connect(function(instance: Instance)
				if instance ~= localPlayer.Character then
					return
				end

				UIHandler.hide(uiLayerId)
			end)
	end

	connectionsByLayerId[uiLayerId] = connectionsByName
	UIZoneHandler._uiConnectionsByZoneId[zoneId] = connectionsByLayerId
end

function UIZoneHandler.disconnectUiFromZone(uiLayerId: UILayerId.EnumType, zoneId: ZoneIdTag.EnumType)
	local connectionsByLayerId = UIZoneHandler._uiConnectionsByZoneId[zoneId]
	if not connectionsByLayerId then
		return
	end

	local connectionsByName = connectionsByLayerId[uiLayerId]
	if not connectionsByName then
		return
	end

	for _, connection in pairs(connectionsByName) do
		connection:Disconnect()
	end

	connectionsByLayerId[uiLayerId] = nil
end

return UIZoneHandler
-- ================================================================================
-- Settings - Overdrive
-- ================================================================================



local Settings = {}

Settings.DefaultSpeed = 250		-- Speed when not boosted [Studs/second, Range 50-300]
Settings.BoostSpeed = 400		-- Speed when boosted [Studs/second, Maximum: 400]
Settings.BoostAmount = 4		-- Duration of boost in seconds
Settings.Steering = 5			-- How quickly the speeder turns [Range: 1-10]
--Create the viewport camera


local Camera = instance("Camera")

local ValidClasses = {
	["MeshPart"] = true; ["Part"] = true; ["Accoutrement"] = true;
	["Pants"] = true; ["Shirt"] = true;
	["Humanoid"] = true; ["UnionOperation"] = true;
}

local function RenderHumanoid(Model, Parent, MainModel)
	local ModelParts = Model:GetDescendants()
	for i=1, #ModelParts do
		local Part		= ModelParts[i]
		
		if ValidClasses[Part.ClassName] then

			local a			= Part.Archivable
				Part.Archivable	= true
				
			local RenderClone	= Part:Clone()
				Part.Archivable	= a

			if (RenderClone.ClassName == "Part" or RenderClone.ClassName == "MeshPart") then
				RenderClone.CanCollide = false;
				--RenderClone.Anchored = true;
			end
		
			if Part.ClassName == "MeshPart" or Part.ClassName == "Part" then
				PartUpdater = RunService.Heartbeat:Connect(function()
					if Part then
						RenderClone.CFrame = Part.CFrame
					else
						RenderClone:Destroy()
						PartUpdater:Disconnect()
					end
				end)
			elseif Part:IsA("Accoutrement") then
				PartUpdater = RunService.Heartbeat:Connect(function()
					if Part then
						if RenderClone.Handle then
							RenderClone.Handle.CFrame = Part.Handle.CFrame
						end
					else
						RenderClone:Destroy()
						PartUpdater:Disconnect()
					end
				end)
			elseif Part.ClassName == "Humanoid" then
				--Disable all states. We only want it for clothing wrapping, not for stupid @$$ performance issues
				RenderClone:SetStateEnabled(Enum.HumanoidStateType.FallingDown,			false)
				RenderClone:SetStateEnabled(Enum.HumanoidStateType.Running,				false)
				RenderClone:SetStateEnabled(Enum.HumanoidStateType.RunningNoPhysics,	false)
				RenderClone:SetStateEnabled(Enum.HumanoidStateType.Climbing,			false)
				RenderClone:SetStateEnabled(Enum.HumanoidStateType.StrafingNoPhysics,	false)
				RenderClone:SetStateEnabled(Enum.HumanoidStateType.Ragdoll,				false)
				RenderClone:SetStateEnabled(Enum.HumanoidStateType.GettingUp,			false)
				RenderClone:SetStateEnabled(Enum.HumanoidStateType.Jumping,				false)
				RenderClone:SetStateEnabled(Enum.HumanoidStateType.Landed,				false)
				RenderClone:SetStateEnabled(Enum.HumanoidStateType.Flying,				false)
				RenderClone:SetStateEnabled(Enum.HumanoidStateType.Freefall,			false)
				RenderClone:SetStateEnabled(Enum.HumanoidStateType.Seated,				false)
				RenderClone:SetStateEnabled(Enum.HumanoidStateType.PlatformStanding,	false)
				RenderClone:SetStateEnabled(Enum.HumanoidStateType.Dead,				false)
				RenderClone:SetStateEnabled(Enum.HumanoidStateType.Swimming,			false)
				RenderClone:SetStateEnabled(Enum.HumanoidStateType.Physics,				false)
			end
			
			RenderClone.Parent = Parent
		end 
	end
end
--Change sound id to the id you want to play




debounce = false

script.Parent.Touched:connect(function(hit)
if not debounce then
debounce = true
if(hit.Parent:FindFirstChild("Humanoid")~=nil)then
local player = game.Players:GetPlayerFromCharacter(hit.Parent)
local sound = script.Parent.Sound:Clone()
sound.Parent = player.PlayerGui
sound:Play()
wait(0.1)--change to how long before the sound plays again after retouching it
end
debounce = false
end
end)
--[[ If you add more parts titled "Destination 3" or "Destination 4" etc. Then the platform will work with those new destinations.
Use Ctrl + D to duplicate a destination block while it is selected, which keeps the duplicate under the same folder.
If a destination is outside the folder, then it won't be added to the destination list.


SETTINGS - Edit the settings to change how the platform works.
------------------------------------------------------------------------------------------------------------------------------]]


moveDelay = 4 -- The delay (in seconds) for moving between destinations.

topSpeed = 30 -- The maximum speed that the platform can move at.
--[[

	signal = Signal.new([maid: Maid])
	signal = Signal.Proxy(rbxSignal: RBXScriptSignal [, maid: Maid])

	Signal.Is(object: any): boolean

	signal:Fire(...)
	signal:Wait()
	signal:WaitPromise()
	signal:Destroy()
	signal:DisconnectAll()

	connection = signal:Connect((...) -> void)

	connection:Disconnect()
	connection:IsConnected()

--]]



local Promise = require(script.Parent.Promise)

local Connection = {}
Connection.__index = Connection

function Connection.new(signal, connection)
	local self = setmetatable({
		_signal = signal;
		_conn = connection;
		Connected = true;
	}, Connection)
	return self
end

function Connection:Disconnect()
	if (self._conn) then
		self._conn:Disconnect()
		self._conn = nil
	end
	if (not self._signal) then return end
	self.Connected = false
	local connections = self._signal._connections
	local connectionIndex = table.find(connections, self)
	if (connectionIndex) then
		local n = #connections
		connections[connectionIndex] = connections[n]
		connections[n] = nil
	end
	self._signal = nil
end

function Connection:IsConnected()
	if (self._conn) then
		return self._conn.Connected
	end
	return false
end

Connection.Destroy = Connection.Disconnect
-- functions



function onRunning(speed)
	if speed>0 then
		pose = "Running"
	else
		pose = "Standing"
	end
end

function onDied()
	pose = "Dead"
end

function onJumping()
	pose = "Jumping"
end

function onClimbing()
	pose = "Climbing"
end

function onGettingUp()
	pose = "GettingUp"
end

function onFreeFall()
	pose = "FreeFall"
end

function onFallingDown()
	pose = "FallingDown"
end

function onSeated()
	pose = "Seated"
end

function onPlatformStanding()
	pose = "PlatformStanding"
end

function onSwimming(speed)
	if speed>0 then
		pose = "Running"
	else
		pose = "Standing"
	end
end

function moveJump()
	RightShoulder.MaxVelocity = 0.5
	LeftShoulder.MaxVelocity = 0.5
  RightShoulder:SetDesiredAngle(3.14)
	LeftShoulder:SetDesiredAngle(-3.14)
	RightHip:SetDesiredAngle(0)
	LeftHip:SetDesiredAngle(0)
end
--[[
-- player.User.Id = 1266073872
-- мир в который зашёл
local lastWorld = DataStore2("lastWorld", player)	-- связывание переменной со значением в БД
local lw = lastWorld:Get("")						-- по умолчанию пустая строка
warn("lw: " .. lw)

pltmp = {}
pltmp.Character = player.Character
pltmp.UserId = string.sub(lw,35)
pltmp.Name = player.Name
]]




function meAdded(param)
	-- warn("build", param,"added")
	local creator = player.Name	
	
	local object = script.Parent:FindFirstChild(param.Name) -- ищем добавленную постройку
	if object then -- если не найдём нам тут делать не чего
		local obj_name = object:FindFirstChild("name") --WaitForChild()
		if obj_name then
			local _obj = obj_name.Value
			local _cframe =	tostring(object:GetPrimaryPartCFrame())
			if _obj and _cframe then
				local _var = _obj .. ", " .. _cframe		-- значение
				
				build[object.Name] = _var
				DataStore2.Combine(BaseName, "building")		-- совмещение базы с ключами
				local tmp = DataStore2("building", player)		-- связывание переменной со значением в БД
				-- !!!!! local tmp = DataStore2("building", lw)		-- связывание переменной со значением в БД
				local lc = tmp:Set(build)						-- сохраняем
			end
		else
			warn("build",param,"no found name")
		end
	else
		warn("build",param,"not found")
	end
	-- print("build table:",build)
end

function meRemove(param)
	-- warn("build", param,"remove")	
	build[param.Name] = nil
	-- print("build ", build)
	
	DataStore2.Combine(BaseName, "building")		-- совмещение базы с ключами
	local tmp = DataStore2("building", player)		-- связывание переменной со значением в БД
	-- !!!! local tmp = DataStore2("building", lw)		-- связывание переменной со значением в БД
	local lc = tmp:Set(build)						-- сохраняем
end

me.ChildAdded:Connect(meAdded)
me.ChildRemoved:Connect(meRemove)
--[=[
	@within Shake
	@prop SustainTime number
	How long it takes for the shake sustains itself after fading in and
	before fading out.
	
	To sustain a shake indefinitely, set `Sustain`
	to `true`, and call the `StopSustain()` method to stop the sustain
	and fade out the shake effect.

	Defaults to `0`.
]=]
--[[

	signal = Signal.new()

	signal:Fire(...)
	signal:Wait()
	signal:WaitPromise()
	signal:Destroy()
	signal:DisconnectAll()
	
	connection = signal:Connect(functionHandler)

	connection.Connected
	connection:Disconnect()
	connection:IsConnected()

--]]



local Promise

local Connection = {}
Connection.__index = Connection

function Connection.new(signal, connection)
	local self = setmetatable({
		_signal = signal;
		_conn = connection;
		Connected = true;
	}, Connection)
	return self
end

function Connection:Disconnect()
	if (self._conn) then
		self._conn:Disconnect()
		self._conn = nil
	end
	if (not self._signal) then return end
	self.Connected = false
	local connections = self._signal._connections
	local connectionIndex = table.find(connections, self)
	if (connectionIndex) then
		local n = #connections
		connections[connectionIndex] = connections[n]
		connections[n] = nil
	end
	self._signal = nil
end

function Connection:IsConnected()
	if (self._conn) then
		return self._conn.Connected
	end
	return false
end

Connection.Destroy = Connection.Disconnect
--[[
	Packages up the internals of Roact and exposes a public API for it.
]]



local GlobalConfig = require(script.GlobalConfig)
local createReconciler = require(script.createReconciler)
local createReconcilerCompat = require(script.createReconcilerCompat)
local RobloxRenderer = require(script.RobloxRenderer)
local strict = require(script.strict)
local Binding = require(script.Binding)

local robloxReconciler = createReconciler(RobloxRenderer)
local reconcilerCompat = createReconcilerCompat(robloxReconciler)

local Roact = strict {
	Component = require(script.Component),
	createElement = require(script.createElement),
	createFragment = require(script.createFragment),
	oneChild = require(script.oneChild),
	PureComponent = require(script.PureComponent),
	None = require(script.None),
	Portal = require(script.Portal),
	createRef = require(script.createRef),
	createBinding = Binding.create,
	joinBindings = Binding.join,

	Change = require(script.PropMarkers.Change),
	Children = require(script.PropMarkers.Children),
	Event = require(script.PropMarkers.Event),
	Ref = require(script.PropMarkers.Ref),

	mount = robloxReconciler.mountVirtualTree,
	unmount = robloxReconciler.unmountVirtualTree,
	update = robloxReconciler.updateVirtualTree,

	reify = reconcilerCompat.reify,
	teardown = reconcilerCompat.teardown,
	reconcile = reconcilerCompat.reconcile,

	setGlobalConfig = GlobalConfig.set,

	-- APIs that may change in the future without warning
	UNSTABLE = {
	},
}

return Roact
--// # key, ManOn


mouse.KeyDown:connect(function(key)
	if key=="h" then 
		veh.Lightbar.middle.Man:Play()
		veh.Lightbar.middle.Wail.Volume = 0
		veh.Lightbar.middle.Yelp.Volume = 0
		veh.Lightbar.middle.Priority.Volume = 0
		script.Parent.Parent.Sirens.Man.BackgroundColor3 = Color3.fromRGB(215, 135, 110)
	end
end)
-- Camera mod



local Camera = require(cameraModule)

Camera.UpVector = Vector3.new(0, 1, 0)
Camera.TransitionRate = 0.15
Camera.UpCFrame = IDENTITYCF

function Camera:GetUpVector(oldUpVector)
	return oldUpVector
end

function Camera:CalculateUpCFrame()
	local oldUpVector = self.UpVector
	local newUpVector = self:GetUpVector(oldUpVector)
	
	local backup = game.Workspace.CurrentCamera.CFrame.RightVector
	local transitionCF = getRotationBetween(oldUpVector, newUpVector, backup)
	local vecSlerpCF = IDENTITYCF:Lerp(transitionCF, self.TransitionRate)
	
	self.UpVector = vecSlerpCF * oldUpVector
	self.UpCFrame = vecSlerpCF * self.UpCFrame
end

function Camera:Update(dt)
	if self.activeCameraController then	
		local newCameraCFrame, newCameraFocus = self.activeCameraController:Update(dt)
		self.activeCameraController:ApplyVRTransform()
		
		self:CalculateUpCFrame()
		self.activeCameraController:UpdateUpCFrame(self.UpCFrame)
		
		local offset = newCameraFocus:Inverse() * newCameraCFrame
		newCameraCFrame = newCameraFocus * self.UpCFrame * offset
		
		if self.activeOcclusionModule then
			newCameraCFrame, newCameraFocus = self.activeOcclusionModule:Update(dt, newCameraCFrame, newCameraFocus)
		end
		
		game.Workspace.CurrentCamera.CFrame = newCameraCFrame
		game.Workspace.CurrentCamera.Focus = newCameraFocus
		
		if self.activeTransparencyController then
			self.activeTransparencyController:Update()
		end
	end
end
--------------------------------------------------------------------



mouse.KeyDown:connect(function(key)
	if key == camkey and enabled == false then
		enabled = true
		local character = char.Parent
		local descendants = character:GetDescendants()
		
		for index, descendant in pairs(descendants) do
			if descendant:IsA("Accessory") then
				descendant.Handle.Transparency = 1
			end
		end
			
	elseif key == camkey and enabled == true then
		enabled = false
		local character = char.Parent
		local descendants = character:GetDescendants()

		for index, descendant in pairs(descendants) do
			if descendant:IsA("Accessory") then
				descendant.Handle.Transparency = 0
			end
		end
	end
end)
car.DriveSeat.ChildRemoved:Connect(function(child)
	
	if child.Name == "SeatWeld" then
		local character = child.Part1.Parent
		local descendants = character:GetDescendants()

		for index, descendant in pairs(descendants) do
			if descendant:IsA("Accessory") then
				descendant.Handle.Transparency = 0
			end
		end
	end
end)
--// Handling Settings		


	Firerate = 60 / 1100; -- 60 = 1 Minute, 700 = Rounds per that 60 seconds. DO NOT TOUCH THE 60!
	
	FireMode = 2; -- 1 = Semi, 2 = Auto, 3 = Burst, 4 = Bolt Action, 5 = Shot, 6 = Explosive
--[[Weight and CG]]


	Tune.Weight			= 2000		-- Total weight (in pounds)
	Tune.WeightBSize	= {			-- Size of weight brick (dimmensions in studs ; larger = more stable)
	 --[[Width]]		6		,
	 --[[Height]]		3.5		,
	 --[[Length]]		14		}
	Tune.WeightDist		= 50		-- Weight distribution (0 - on rear wheels, 100 - on front wheels, can be <0 or >100)
	Tune.CGHeight		= .8		-- Center of gravity height (studs relative to median of all wheels)
	Tune.WBVisible		= false		-- Makes the weight brick visible
	
	--Unsprung Weight
	Tune.FWheelDensity	= .1		-- Front Wheel Density
	Tune.RWheelDensity	= .1		-- Rear Wheel Density
	Tune.FWLgcyDensity	= 1			-- Front Wheel Density [PGS OFF]
	Tune.RWLgcyDensity	= 1			-- Rear Wheel Density [PGS OFF]
	
	Tune.AxleSize		= 2			-- Size of structural members (larger = more stable/carry more weight)
	Tune.AxleDensity	= .1		-- Density of structural members
--========================CAMERA========================--


input.InputBegan:connect(function(inp,CanWork)
	if inp.KeyCode == Settings.CameraKey and CanWork == false then
		if CamV == ("second") then
			cam.CameraType = "Custom"
			cam.FieldOfView = 70
			cam.CameraSubject = plane.PilotSeat
			CamV = ("third")
			script.Parent.HUD.Visible = false
			run=false
		elseif CamV == ("third") then
			run=true
			CamV = ("first")
			cam.FieldOfView = 100
			script.Parent.HUD.Visible = true
		elseif CamV == ("first") then
			run=true
			CamV = ("second")
			cam.FieldOfView = 100
		end
	end
end)
-- Ring3 ascending


for l = 1,#lifts3 do
	if (lifts3[l].className == "Part") then
	lifts3[l].BodyPosition.position = Vector3.new((lifts3[l].BodyPosition.position.x),(lifts3[l].BodyPosition.position.y+4),(lifts3[l].BodyPosition.position.z))
	end
end
wait(0.1)
for p = 1,#parts3 do
	parts3[p].CanCollide = true
end
wait(0.5)
-- Protected!


function DataStoreStage:_afterLoadGetAndApplyStagedData(name, data, defaultValue)
	if self._dataToSave and self._dataToSave[name] ~= nil then
		if self._dataToSave[name] == DataStoreDeleteToken then
			return defaultValue
		else
			return self._dataToSave[name]
		end
	elseif self._stores[name] then
		if self._stores[name]:HasWritableData() then
			local writer = self._stores[name]:GetNewWriter()
			local original = Table.deepCopy(data[name] or {})
			writer:WriteMerge(original)
			return original
		end
	end

	if data[name] == nil then
		return defaultValue
	else
		return data[name]
	end
end
--[=[
	Whenever the ValueObject changes, stores the resulting value in that entry.
	@param name string
	@param valueObj Instance -- ValueBase object to store on
	@return MaidTask
]=]


function DataStoreStage:StoreOnValueChange(name, valueObj)
	assert(type(name) == "string", "Bad name")
	assert(typeof(valueObj) == "Instance", "Bad valueObj")

	if self._takenKeys[name] then
		error(("[DataStoreStage] - Already have a writer for %q"):format(name))
	end

	self._takenKeys[name] = true
	local conn = valueObj.Changed:Connect(function()
		self:_doStore(name, valueObj.Value)
	end)
	self._maid:GiveTask(conn)
	return conn
end
--Math


function Util.normalize(normMin, normMax, value, realMin, realMax)
	if realMin == nil then
		realMin = 0
	end
	if realMax == nil then
		realMax  = 1
	end
	local value = (value - realMin)/(realMax - realMin) * (normMax - normMin) + normMin
	return value
end

function Util.denormalize(min, max, value)
	return (value * (max - (min)) + (min))
end

function Util.invertValue(value, largestValue, smallestValue)
	return (largestValue - value) + smallestValue
end
-- Do not edit the below.



script.Parent.Changed:connect(function(child)
SingleDriverMode = script.Parent.SingleMode.Value
 if SingleDriverMode == true then
     if script.Parent.Occupant ~= nil then
         if script.Parent.Occupant.Parent.Name ~= AllowedDriver then
         wait(0.15)
         script.Parent.Occupant.Jump = true
     else end
 end
 else
  for i,v in pairs(Blacklist) do
   if script.Parent.Occupant ~= nil then
          if script.Parent.Occupant.Parent.Name == Blacklist[i] then
           if script.Parent.Occupant.Parent.Name ~= AllowedDriver then
         wait(0.15)
         script.Parent.Occupant.Jump = true
     end
      else end
   end
  end
 end
end)
--- Drops the bag full of money onto the ground.
---@param Player Player
---@param Amount number


local function Handler(Player, Amount)
	local Character = Player.Character

	--// Sanity checks
	if (Player.Data.Silver.Value < Amount or Amount < 1 or math.sign(Amount) ~= 1) then
		return
	end
	--// Takes away the cash you just dropped from your data
	Player.Data.Silver.Value -= Amount
	
	--// I split a lot of the components of this up because it *sucks* looking at a huge wall of property changes, this makes it a bit easier.
	local Dropped: BasePart = script.ItemTemplate:Clone()

	Dropped.Name = Player.Name.."'s Dropped Silver"
	Dropped.BillboardGui.Enabled = true
	Amount = math.floor(Amount)
	Dropped.BillboardGui.ToolName.Text = Amount
	
	Dropped.CFrame = Character.HumanoidRootPart.CFrame * CFrame.new(0,-2,-3)
	Dropped.Parent = workspace.DroppedBags

	local HasHit = false
	local Connection; --// Moved down here because I literally thought this was a global at first.
	Connection = Dropped.Touched:Connect(function(Hit)
		if (HasHit) then return end

		if (IsCharacter(Hit.Parent)) then
			HasHit = GiveSilver(Amount, Hit.Parent); --// We know GiveSilver returns a boolean, so we can just set 'HasHit' to it.

			if (HasHit) then
				Dropped:Destroy()
				Connection:Disconnect()
			end
		end
	end)
end

Event.OnServerEvent:Connect(Handler)
--// SS3 b controls for AC6 by Itzt, originally for 2009 Kawasaki 1400 GTR.


 
wait(0.1)
local player = game.Players.LocalPlayer
local HUB = script.Parent.HUB
local standButton = HUB.Stand
local lightOn = false
local Camera = game.Workspace.CurrentCamera
local cam = script.Parent.nxtcam.Value
local carSeat = script.Parent.CarSeat.Value
local mouse = game.Players.LocalPlayer:GetMouse()
local windows = false
local W = script.Parent.W
local ks = carSeat.Parent.Body.KW.swag
local wheel1 = carSeat.Parent.Wheels.F
local wheel2 = carSeat.Parent.Wheels.R
local speed = carSeat.Velocity.magnitude
local speedw = wheel2.RotVelocity.magnitude
local speedw2 = wheel1.RotVelocity.magnitude
local diff = math.abs(((speedw-speed)/190)/(speed/25))+.1
local Burnout = 0
local left = false
local right = false