Roblox/luau_corpus huggingface dataset:
--[[




MessageCreator:DisplayFullScreenMessage(Message)
	Displays a message on the center of the screen

--]]

local MessageCreator = {}

local LogoURL = "http://www.roblox.com/asset/?id=1499731139"
local MessageHeightRelative = 0.15
local MessageDisplayTime = 3

function MessageCreator:DisplayFullScreenMessage(Message)
	local ScreenGui = Instance.new("ScreenGui")
	ScreenGui.Parent = game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui")
	
	local Logo = Instance.new("ImageLabel")
	Logo.SizeConstraint = "RelativeYY"
	Logo.Position = UDim2.new(0.5,0,0.5,0)
	Logo.AnchorPoint = Vector2.new(0.5,0.5)
	Logo.BackgroundTransparency = 1
	Logo.Size = UDim2.new(0,0,0,0)
	Logo.Image = LogoURL
	Logo.Parent = ScreenGui
	
	local TextClips = Instance.new("Frame")
	TextClips.Size = UDim2.new(0,0,MessageHeightRelative,0)
	TextClips.Position = UDim2.new(0.5,0,0.8,0)
	TextClips.AnchorPoint = Vector2.new(0.5,0)
	TextClips.BackgroundTransparency = 1
	TextClips.ClipsDescendants = true
	TextClips.Parent = Logo
	
	local Text = Instance.new("TextLabel")
	Text.Size = UDim2.new(14 * (0.1 / MessageHeightRelative),0,1,0)
	Text.Position = UDim2.new(0.5,0,0,0)
	Text.AnchorPoint = Vector2.new(0.5,0)
	Text.SizeConstraint = "RelativeYY"
	Text.BackgroundTransparency = 1
	Text.Font = "SourceSansBold"
	Text.TextColor3 = Color3.new(1,1,1)
	Text.TextStrokeColor3 = Color3.new(0,0,0)
	Text.TextStrokeTransparency = 0
	Text.TextScaled = true
	Text.Text = Message
	Text.Parent = TextClips
		
	Logo:TweenSize(UDim2.new(0.6,0,0.6,0),"InOut","Quad",0.5,true,function()
		TextClips:TweenSize(UDim2.new(1.4,0,MessageHeightRelative,0),"InOut","Quad",0.5,true,function()
			wait(MessageDisplayTime)
			TextClips:TweenSize(UDim2.new(0,0,MessageHeightRelative,0),"InOut","Quad",0.5,true,function()
				Logo:TweenSize(UDim2.new(0,0,0,0),"InOut","Quad",0.5,true,function()
					ScreenGui:Destroy()
				end)
			end)
		end)
	end)
end

return MessageCreator
-- Initialize move tool
local MoveTool = require(CoreTools:WaitForChild 'Move');
Core.AssignHotkey('Z', Core.Support.Call(Core.EquipTool, MoveTool));
Core.Dock.AddToolButton(Core.Assets.MoveIcon, 'Z', MoveTool, 'MoveInfo');
----- Initialize -----

if IsStudio == true then
	IsLiveCheckActive = true
	coroutine.wrap(function()
		local status, message = pcall(function()
			-- This will error if current instance has no Studio API access:
			DataStoreService:GetDataStore("____PS"):SetAsync("____PS", os.time())
		end)
		local no_internet_access = status == false and string.find(message, "ConnectFail", 1, true) ~= nil
		if no_internet_access == true then
			warn("[ProfileService]: No internet access - check your network connection")
		end
		if status == false and
			(string.find(message, "403", 1, true) ~= nil or -- Cannot write to DataStore from studio if API access is not enabled
				string.find(message, "must publish", 1, true) ~= nil or -- Game must be published to access live keys
				no_internet_access == true) then -- No internet access

			UseMockDataStore = true
			ProfileService._use_mock_data_store = true
			print("[ProfileService]: Roblox API services unavailable - data will not be saved")
		else
			print("[ProfileService]: Roblox API services available - data will be saved")
		end
		IsLiveCheckActive = false
	end)()
end
-- This has to be done so that camera occlusion ignores the vehcile.
local function updateCameraSubject()
	local humanoid = getLocalHumanoid()
	if humanoid and humanoid.SeatPart then
		Workspace.CurrentCamera.CameraSubject = humanoid.SeatPart	
	end
end
updateCameraSubject()
ProximityPromptService.Enabled = false
-- поиск себя
function waitForChild(parent, childName)
	local child = parent:findFirstChild(childName)

	if child then
		return child
	end

	while true do
		print(childName)

		child = parent.ChildAdded:wait()

		if child.Name==childName then
			return child
		end
	end
end
-------------------------
function onClicked()
R.Function1.Disabled = true

FX.ROLL.BrickColor = BrickColor.new("CGA brown")
FX.ROLL.loop.Disabled = true

FX.REVERB.BrickColor = BrickColor.new("CGA brown")
FX.REVERB.loop.Disabled = true

FX.GATE.BrickColor = BrickColor.new("CGA brown")
FX.GATE.loop.Disabled = true

FX.PHASER.BrickColor = BrickColor.new("CGA brown")
FX.PHASER.loop.Disabled = true

FX.ECHO.BrickColor = BrickColor.new("CGA brown")
FX.ECHO.loop.Disabled = true

FX.FILTER.BrickColor = BrickColor.new("CGA brown")
FX.FILTER.loop.Disabled = true

FX.SENDRETURN.BrickColor = BrickColor.new("Really red")
FX.SENDRETURN.loop.Disabled = true

FX.TRANS.BrickColor = BrickColor.new("CGA brown")
FX.TRANS.loop.Disabled = true

FX.MultiTapDelay.BrickColor = BrickColor.new("CGA brown")
FX.MultiTapDelay.loop.Disabled = true

FX.DELAY.BrickColor = BrickColor.new("CGA brown")
FX.DELAY.loop.Disabled = true

FX.REVROLL.BrickColor = BrickColor.new("CGA brown")
FX.REVROLL.loop.Disabled = true
R.loop.Disabled = false
R.Function2.Disabled = false
end
script.Parent.ClickDetector.MouseClick:connect(onClicked)
--Tune

local WheelieButton = "T"
local DeadZone = 70
---
local Livery = true
	
script.Parent.MouseButton1Click:connect(function()
	Livery = not Livery
	if Livery == true then
		script.Parent.BackgroundColor3 = car.Colors.YES.Value
		script.Parent.Parent.Livery1.BackgroundColor3 = car.Colors.NO.Value
		script.Parent.Parent.Livery2.BackgroundColor3 = car.Colors.NO.Value
		script.Parent.Parent.Livery3.BackgroundColor3 = car.Colors.NO.Value
		script.Parent.Parent.Livery4.BackgroundColor3 = car.Colors.NO.Value		
	end
	handler:FireServer("None",Livery)
end)
--- Sets whether or not the console is enabled
function Cmdr:SetEnabled (enabled: boolean)
	self.Enabled = enabled
end
--!nonstrict
local ContextActionService = game:GetService("ContextActionService")
local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserGameSettings = UserSettings():GetService("UserGameSettings")
local VRService = game:GetService("VRService")
local StarterGui = game:GetService("StarterGui")

local player = Players.LocalPlayer

local CAMERA_INPUT_PRIORITY = Enum.ContextActionPriority.Medium.Value
local MB_TAP_LENGTH = 0.3 -- (s) length of time for a short mouse button tap to be registered

local ROTATION_SPEED_KEYS = math.rad(120) -- (rad/s)
local ROTATION_SPEED_MOUSE = Vector2.new(1, 0.77)*math.rad(0.5) -- (rad/s)
local ROTATION_SPEED_POINTERACTION = Vector2.new(1, 0.77)*math.rad(7) -- (rad/s)
local ROTATION_SPEED_TOUCH = Vector2.new(1, 0.66)*math.rad(1) -- (rad/s)
local ROTATION_SPEED_GAMEPAD = Vector2.new(1, 0.77)*math.rad(4) -- (rad/s)

local ZOOM_SPEED_MOUSE = 1 -- (scaled studs/wheel click)
local ZOOM_SPEED_KEYS = 0.1 -- (studs/s)
local ZOOM_SPEED_TOUCH = 0.04 -- (scaled studs/DIP %)

local MIN_TOUCH_SENSITIVITY_FRACTION = 0.25 -- 25% sensitivity at 90°

local FFlagUserResetTouchStateOnMenuOpen
do
	local success, result = pcall(function()
		return UserSettings():IsUserFeatureEnabled("UserResetTouchStateOnMenuOpen")
	end)
	FFlagUserResetTouchStateOnMenuOpen = success and result
end
--[[**
	ensures value is a number where value < max

	@param max The maximum to use

	@returns A function that will return true iff the condition is passed
**--]]
function t.numberMaxExclusive(max)
	return function(value)
		local success = t.number(value)
		if not success then
			return false
		end

		if value < max then
			return true
		else
			return false
		end
	end
end
--[[Run]]

	local build=require(bike.Tuner.README)
	local ver=script.Parent.Version.Value
	
	--Runtime Loops
	
	-- ~60 c/s
	game["Run Service"].Heartbeat:connect(function(dt)	
		_IsOn = script.Parent.IsOn.Value
		_InControls = script.Parent.ControlsOpen.Value
		
		--Steering
		Steering(dt)
		
		--Gear
		Gear()
		
		--Power
		Engine(dt)
		
		--Update External Values
		script.Parent.Values.Gear.Value = _CGear
		script.Parent.Values.RPM.Value = _RPM
		script.Parent.Values.Boost.Value = ((_TBoost/2)*_TPsi)+((_SBoost/2)*_SPsi)
		script.Parent.Values.BoostTurbo.Value = (_TBoost/2)*_TPsi
		script.Parent.Values.BoostSuper.Value = (_SBoost/2)*_SPsi
		script.Parent.Values.HpNatural.Value = _NH
		script.Parent.Values.HpElectric.Value = _EH
		script.Parent.Values.HpTurbo.Value = _TH
		script.Parent.Values.HpSuper.Value = _SH
		script.Parent.Values.HpBoosted.Value = _BH
		script.Parent.Values.Horsepower.Value = _HP
		script.Parent.Values.TqNatural.Value = _NT/_Tune.Ratios[_CGear+1]/fFD/hpScaling
		script.Parent.Values.TqElectric.Value = _ET/_Tune.Ratios[_CGear+1]/fFD/hpScaling
		script.Parent.Values.TqTurbo.Value = _TT/_Tune.Ratios[_CGear+1]/fFD/hpScaling
		script.Parent.Values.TqSuper.Value = _ST/_Tune.Ratios[_CGear+1]/fFD/hpScaling
		script.Parent.Values.TqBoosted.Value = script.Parent.Values.TqTurbo.Value+script.Parent.Values.TqSuper.Value
		script.Parent.Values.Torque.Value = script.Parent.Values.TqNatural.Value+script.Parent.Values.TqElectric.Value+script.Parent.Values.TqBoosted.Value
		script.Parent.Values.TransmissionMode.Value = _TMode
		script.Parent.Values.Throttle.Value = _GThrot
		script.Parent.Values.Brake.Value = _GBrake
		if script.Parent.Values.AutoClutch.Value then
			script.Parent.Values.Clutch.Value = _Clutch
		end
		script.Parent.Values.SteerC.Value = _GSteerC
		script.Parent.Values.SteerT.Value = _GSteerT
		script.Parent.Values.PBrake.Value = _PBrake
		script.Parent.Values.TCS.Value = _TCS
		script.Parent.Values.TCSActive.Value = _TCSActive
		script.Parent.Values.TCSAmt.Value = 1-_TCSAmt
		script.Parent.Values.ABS.Value = _ABS
		script.Parent.Values.ABSActive.Value = _fABSActive or _rABSActive
		script.Parent.Values.MouseSteerOn.Value = _MSteer
		script.Parent.Values.Velocity.Value = bike.DriveSeat.Velocity
	end)
	
	while wait(.0667) do
		if _TMode == "Auto" then Auto() end
	end
--// Loccalllsssss
local _G, game, script, getfenv, setfenv, workspace,
getmetatable, setmetatable, loadstring, coroutine,
rawequal, typeof, print, math, warn, error,  pcall,
xpcall, select, rawset, rawget, ipairs, pairs,
next, Rect, Axes, os, time, Faces, unpack, string, Color3,
newproxy, tostring, tonumber, Instance, TweenInfo, BrickColor,
NumberRange, ColorSequence, NumberSequence, ColorSequenceKeypoint,
NumberSequenceKeypoint, PhysicalProperties, Region3int16,
Vector3int16, require, table, type, wait,
Enum, UDim, UDim2, Vector2, Vector3, Region3, CFrame, Ray, delay, spawn, task, tick, assert =
	_G, game, script, getfenv, setfenv, workspace,
	getmetatable, setmetatable, loadstring, coroutine,
	rawequal, typeof, print, math, warn, error,  pcall,
	xpcall, select, rawset, rawget, ipairs, pairs,
	next, Rect, Axes, os, time, Faces, table.unpack, string, Color3,
	newproxy, tostring, tonumber, Instance, TweenInfo, BrickColor,
	NumberRange, ColorSequence, NumberSequence, ColorSequenceKeypoint,
	NumberSequenceKeypoint, PhysicalProperties, Region3int16,
	Vector3int16, require, table, type, task.wait,
	Enum, UDim, UDim2, Vector2, Vector3, Region3, CFrame, Ray, task.delay, task.defer, task, tick, function(cond, errMsg) return cond or error(errMsg or "assertion failed!", 2) end;

local ServicesWeUse = {
	"Workspace";
	"Players";
	"Lighting";
	"ReplicatedStorage";
	"ReplicatedFirst";
	"ScriptContext";
	"JointsService";
	"LogService";
	"Teams";
	"SoundService";
	"StarterGui";
	"StarterPack";
	"StarterPlayer";
        "GroupService";
        "MarketplaceService";
        "HttpService";
	"TestService";
        "RunService";
	"NetworkClient";
};
-- Length of an input to be considered a tap
local SINGLE_TAP_THRESHOLD = 0.2

local VehicleGui = {}
VehicleGui.__index = VehicleGui

local MAX_SPEED = 130

function VehicleGui.new(car, seat)
	local self = setmetatable({}, VehicleGui)

	self.connections = {}
	self.car = car
	self.localSeatModule = require(ScriptsFolder.LocalVehicleSeating)
	self.chassis = car:WaitForChild("Chassis")
	self.seat = self.chassis:WaitForChild("VehicleSeat")
	self.gui = Gui:Clone()
	self.gui.Name = "ActiveGui"
	self.gui.Parent = script
	self.touchFrame = self.gui:WaitForChild("TouchControlFrame")
		self.accelButton = self.touchFrame:WaitForChild("AccelerateButton")
		self.brakeButton = self.touchFrame:WaitForChild("BrakeButton")
		self.exitButton = self.touchFrame:WaitForChild("ExitButton")

	self.speedoFrame = self.gui:WaitForChild("SpeedoFrame")
		self.speedoFrameOff = self.speedoFrame:WaitForChild("OffFrame")
		self.speedoOff = self.speedoFrameOff:WaitForChild("Speedo")
		self.speedoFrameOn = self.speedoFrame:WaitForChild("OnFrame")
		self.speedoOn = self.speedoFrameOn:WaitForChild("Speedo")
		self.speedText = self.speedoFrame:WaitForChild("SpeedText")
		self.unitText = self.speedoFrame:WaitForChild("UnitText")


	return self
end
------------------------------------------------

UIS.InputBegan:Connect(function(input, processed)
	if not processed then
		if input.KeyCode == Enum.KeyCode.P then
			if UIS:IsKeyDown(Enum.KeyCode.LeftShift) then
				if freeCamEnabled then
					ExitFreecam()
				else
					EnterFreecam()
				end
			end
		elseif input.KeyCode == Enum.KeyCode.L and freeCamEnabled and UIS:IsKeyDown(Enum.KeyCode.LeftShift) then
			letterBoxEnabled = not letterBoxEnabled
			letterbox.Enabled = letterBoxEnabled
		end
	end
end)
-- returns the ascendant ScreenGui of an object
function GetScreen(screen)
	if screen == nil then return nil end
	while not screen:IsA("ScreenGui") do
		screen = screen.Parent
		if screen == nil then return nil end
	end
	return screen
end

do
	local ZIndexLock = {}
	-- Sets the ZIndex of an object and its descendants. Objects are locked so
	-- that SetZIndexOnChanged doesn't spawn multiple threads that set the
	-- ZIndex of the same object.
	function SetZIndex(object,z)
		if not ZIndexLock[object] then
			ZIndexLock[object] = true
			if object:IsA'GuiObject' then
				object.ZIndex = z
			end
			local children = object:GetChildren()
			for i = 1,#children do
				SetZIndex(children[i],z)
			end
			ZIndexLock[object] = nil
		end
	end

	function SetZIndexOnChanged(object)
		return object.Changed:connect(function(p)
			if p == "ZIndex" then
				SetZIndex(object,object.ZIndex)
			end
		end)
	end
end
--Creates a display Gui for the soft shutdown.

return function()
	local ScreenGui = Instance.new("ScreenGui")
	ScreenGui.Name = "SoftShutdownGui"
	ScreenGui.DisplayOrder = 100
	
	--Create background to cover behind top bar.
	local Frame = Instance.new("Frame")
	Frame.BackgroundColor3 = Color3.new(0.164706, 0.164706, 0.164706)
	Frame.Position = UDim2.new(-0.5,0,-0.5,0)
	Frame.Size = UDim2.new(2,0,2,0)
	Frame.ZIndex = 10
	Frame.Parent = ScreenGui
	
	local function CreateTextLabel(Size,Position,Text)
		local TextLabel = Instance.new("TextLabel")
		TextLabel.BackgroundTransparency = 1
		TextLabel.Size = Size
		TextLabel.Position = Position
		TextLabel.Text = Text
		TextLabel.ZIndex = 10
		TextLabel.Font = "SourceSansBold"
		TextLabel.TextScaled = true
		TextLabel.TextColor3 = Color3.new(1,1,1)
		TextLabel.TextStrokeColor3 = Color3.new(1, 1, 1)
		TextLabel.TextStrokeTransparency = 0
		TextLabel.Parent = Frame
	end
	
	--Create text.
	CreateTextLabel(UDim2.new(0.5,0,0.1,0),UDim2.new(0.25,0,0.4,0),"ATTENTION")
	CreateTextLabel(UDim2.new(0.5,0,0.05,0),UDim2.new(0.25,0,0.475,0),"This server is being updated")
	CreateTextLabel(UDim2.new(0.5,0,0.03,0),UDim2.new(0.25,0,0.55,0),"Your SCP Site Roleplay Area 46 Team")
	
	--Return the ScreenGui and the background.
	return ScreenGui,Frame		
end
--[[
	Returns a list of indexes of self.props.images to render. This is to support the circular list effect.
]]
modules.getRenderedIndexes = function(self)
	return function()
		local res = {}
		for i = -(2 * #self.props.images + self.state.offset), (2 * #self.props.images + self.state.offset) do
			local index = self.state.selectedIndex + i

			-- NOTE: Really dislike this modulo pattern for circular indexes.
			-- Taken from: https://stackoverflow.com/questions/52103713/alternative-to-modulus-in-lua
			index = (index + #self.props.images - 1) % #self.props.images + 1

			table.insert(res, index)
		end

		return res
	end
end
-- Decompiled with the Synapse X Luau decompiler.

client = nil;
service = nil;
return function(p1)
	local v1 = {
		Name = p1.Name and "Prompt", 
		Title = p1.Title and "Prompt", 
		Size = p1.Size or { 225, 150 }, 
		SizeLocked = true
	};
	local u1 = nil;
	function v1.OnClose()
		if not u1 then
			u1 = p1.DefaultAnswer and "";
		end;
	end;
	local v2 = client.UI.Make("Window", v1);
	local v3 = v2:Add("TextLabel", {
		Text = p1.Question, 
		Font = "SourceSans", 
		TextScaled = true, 
		BackgroundTransparency = 1, 
		TextWrapped = true, 
		Size = UDim2.new(1, -10, 1, -35)
	});
	local v4 = v2:Add("TextBox", {
		Text = "", 
		TextSize = 18, 
		PlaceholderText = p1.PlaceholderText and "", 
		ClearTextOnFocus = p1.ClearTextOnFocus and false, 
		Size = UDim2.new(1, -40, 0, 25), 
		Position = UDim2.new(0, 5, 1, -30)
	});
	v4.FocusLost:Connect(function(p2)
		if p2 then
			u1 = v4.Text;
			v2:Close();
		end;
	end);
	local v5 = v2:Add("TextButton", {
		Text = ">", 
		Font = "Arial", 
		TextSize = 22, 
		Size = UDim2.new(0, 25, 0, 25), 
		Position = UDim2.new(1, -30, 1, -30), 
		OnClick = function()
			u1 = v4.Text;
			v2:Close();
		end
	});
	local l__gTable__6 = v2.gTable;
	v2:Ready();
	while true do
		wait();
		if u1 then
			break;
		end;	
	end;
	return nil;
end;
--> Connections

camPart.Changed:Connect(function(newValue)
	if newValue ~= nil then
		MoveCamera(newValue)
	end
end)
--[=[
	@return ... any
	@yields

	Yields the current thread until the signal is fired, and returns the arguments fired from the signal.
	```lua
	task.spawn(function()
		local msg, num = signal:Wait()
		print(msg, num) --> "Hello", 32
	end)
	signal:Fire("Hello", 32)
	```
]=]
function Signal:Wait()
	local waitingCoroutine = coroutine.running()
	local cn
	cn = self:Connect(function(...)
		cn:Disconnect()
		task.spawn(waitingCoroutine, ...)
	end)
	return coroutine.yield()
end
-------------------
---[[Variables]]---
-------------------

local CameraShaker = require(game.ReplicatedStorage.Modules.CameraShaker)
local RunService = game:GetService("RunService")

local Gui = script.Parent.Parent
local Board = script.Parent.Parent.Board
local Pointer = Board.Pointer
local Player = game.Players.LocalPlayer
local camera = workspace.Camera

repeat wait(0.1) until Player.Character ~= nil
local Char = Player.Character
local Humanoid = Char:WaitForChild("Humanoid")
local Old_Magnitude = nil


local camShake = CameraShaker.new(Enum.RenderPriority.Camera.Value, function(shakeCf)
	camera.CFrame = camera.CFrame * shakeCf * CFrame.new(0.2,0.2,0.2)
end)
--|| SERVICES ||--
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
--A simple function to check if the car is grounded
local function IsGrounded()
	local hit, position = Raycast.new((car.Chassis.CFrame * CFrame.new(0, 0, (car.Chassis.Size.Z / 2) - 1)).p, car.Chassis.CFrame:vectorToWorldSpace(Vector3.new(0, -1, 0)) * (stats.Height.Value + 0.2))
	if hit and hit.CanCollide then
		return(true)
	end
	return(false)
end

local oldCameraType = camera.CameraType
camera.CameraType = cameraType

spawn(function()
	while character.Humanoid.SeatPart == car.DriveSeat do
		game:GetService("RunService").RenderStepped:wait()
		
		--Broken gyro input
		--[[if userInputService.GyroscopeEnabled then
			local inputObject, cframe = userInputService:GetDeviceRotation()
			local up = cframe:vectorToWorldSpace(Vector3.new(0, 1, 0))
			local angle = (1 - up.Y) * (math.abs(up.X) / up.X)
			movement = Vector2.new(angle, movement.Y)
		end]]
		
		if IsGrounded() then
			if movement.Y ~= 0 then
				local velocity = car.Chassis.CFrame.lookVector * movement.Y * stats.Speed.Value
				car.Chassis.Velocity = car.Chassis.Velocity:Lerp(velocity, 0.1)
				bodyVelocity.maxForce = Vector3.new(0, 0, 0)
			else
				bodyVelocity.maxForce = Vector3.new(mass / 2, mass / 4, mass / 2)
			end
			local rotVelocity = car.Chassis.CFrame:vectorToWorldSpace(Vector3.new(movement.Y * stats.Speed.Value / 50, 0, -car.Chassis.RotVelocity.Y * 5 * movement.Y))
			local speed = -car.Chassis.CFrame:vectorToObjectSpace(car.Chassis.Velocity).unit.Z
			rotation = rotation + math.rad((-stats.Speed.Value / 5) * movement.Y)
			if math.abs(speed) > 0.1 then
				rotVelocity = rotVelocity + car.Chassis.CFrame:vectorToWorldSpace((Vector3.new(0, -movement.X * speed * stats.TurnSpeed.Value, 0)))
				bodyAngularVelocity.maxTorque = Vector3.new(0, 0, 0)
			else
				bodyAngularVelocity.maxTorque = Vector3.new(mass / 4, mass / 2, mass / 4)
			end
			car.Chassis.RotVelocity = car.Chassis.RotVelocity:Lerp(rotVelocity, 0.1)
			
			--bodyVelocity.maxForce = Vector3.new(mass / 3, mass / 6, mass / 3)
			--bodyAngularVelocity.maxTorque = Vector3.new(mass / 6, mass / 3, mass / 6)
		else
			bodyVelocity.maxForce = Vector3.new(0, 0, 0)
			bodyAngularVelocity.maxTorque = Vector3.new(0, 0, 0)
		end
		
		for i, part in pairs(car:GetChildren()) do
			if part.Name == "Thruster" then
				UpdateThruster(part)
			end
		end
	end
	for i, v in pairs(car:GetChildren()) do
		if v:FindFirstChild("BodyThrust") then
			v.BodyThrust:Destroy()
		end
	end
	bodyVelocity:Destroy()
	bodyAngularVelocity:Destroy()
	camera.CameraType = oldCameraType
	userInputService.ModalEnabled = false
	if mobileGui then
		mobileGui:Destroy()
	end
	script:Destroy()
end)
----------------------------------------------------------------
-----------------------SCROLLBAR STUFF--------------------------
----------------------------------------------------------------
----------------------------------------------------------------
local ScrollBarWidth = 16

local ScrollStyles = {
	Background = Color3.fromRGB(37, 37, 42),
	Border = Color3.fromRGB(20, 20, 25),
	Selected = Color3.fromRGB(5, 100, 140),
	BorderSelected = Color3.fromRGB(2, 130, 145),
	Text = Color3.fromRGB(245, 245, 250),
	TextDisabled = Color3.fromRGB(188, 188, 193),
	TextSelected = Color3.fromRGB(255, 255, 255),
	Button = Color3.fromRGB(31, 31, 36),
	ButtonBorder = Color3.fromRGB(133, 133, 138),
	ButtonSelected = Color3.fromRGB(0, 168, 155),
	Field = Color3.fromRGB(37, 37, 42),
	FieldBorder = Color3.fromRGB(50, 50, 55),
	TitleBackground = Color3.fromRGB(11, 11, 16)
}
do
	local ZIndexLock = {}
	function SetZIndex(object,z)
		if not ZIndexLock[object] then
			ZIndexLock[object] = true
			if object:IsA'GuiObject' then
				object.ZIndex = z
			end
			local children = object:GetChildren()
			for i = 1,#children do
				SetZIndex(children[i],z)
			end
			ZIndexLock[object] = nil
		end
	end
end
function SetZIndexOnChanged(object)
	return object.Changed:connect(function(p)
		if p == "ZIndex" then
			SetZIndex(object,object.ZIndex)
		end
	end)
end
---------------------------

ModelWeld(car.Misc.VisionSLR.Weld,car.Misc.VisionSLR.Weld.Base)
MakeWeld(car.Misc.VisionSLR.Weld.Base,car.DriveSeat)

MakeWeld(car.Misc.VisionSLR.Motors.A,car.DriveSeat,"Motor",5).Name="W"
MakeWeld(car.Misc.VisionSLR.Motors.B,car.DriveSeat,"Motor",5).Name="W"
MakeWeld(car.Misc.VisionSLR.Motors.C,car.DriveSeat,"Motor",5).Name="W"
MakeWeld(car.Misc.VisionSLR.Motors.D,car.DriveSeat,"Motor",5).Name="W"
MakeWeld(car.Misc.VisionSLR.Motors.E,car.DriveSeat,"Motor",5).Name="W"
MakeWeld(car.Misc.VisionSLR.Motors.F,car.DriveSeat,"Motor",5).Name="W"
MakeWeld(car.Misc.VisionSLR.Motors.G,car.DriveSeat,"Motor",5).Name="W"

MakeWeld(car.Misc.VisionSLR.Rotating.A,car.Misc.VisionSLR.Motors.A).Name="W"
MakeWeld(car.Misc.VisionSLR.Rotating.B,car.Misc.VisionSLR.Motors.B).Name="W"
MakeWeld(car.Misc.VisionSLR.Rotating.C,car.Misc.VisionSLR.Motors.C).Name="W"
MakeWeld(car.Misc.VisionSLR.Rotating.D,car.Misc.VisionSLR.Motors.D).Name="W"
MakeWeld(car.Misc.VisionSLR.Rotating.E,car.Misc.VisionSLR.Motors.E).Name="W"
MakeWeld(car.Misc.VisionSLR.Rotating.F,car.Misc.VisionSLR.Motors.F).Name="W"
MakeWeld(car.Misc.VisionSLR.Rotating.G,car.Misc.VisionSLR.Motors.G).Name="W"
return MiscWeld