Prompt: --EDIT BELOW----------------------------------------------------------------------

Response:
settings.PianoSoundRange = 70

settings.KeyAesthetics = true

settings.PianoSounds = {
		"251400436",
		"251427671",
		"251427880",
		"251428187",
		"251428448",
		"251428570"
}


Prompt: --//Script\\--

Response:
function whileTouching()
	script.Parent.AutomaticF.Disabled = false
end

function letGo()
	script.Parent.Lighted.Disabled = true
	script.Parent.LightedOff.Disabled = false
	wait(1)
	--wait(1.4)
	script.Parent.AutoFlush.Disabled = false
	script.Disabled = true
end


Prompt: --if something doesn't work, pls contact me on YT or on discord: https://discord.gg/jpSF5jA


Prompt: -- Appeler la fonction pour déplacer MovingPart vers Projection

Response:
pp.Triggered:Connect(function()
	moveTowardsProjection()
end)


Prompt: -- Get the UserInputService

Response: local userInputService = game:GetService("UserInputService")


Prompt: --> References

Response:
local Fountain = script.Parent
local HealPart = Fountain.Heal


Prompt: -- Written By Kip Turner, Copyright Roblox 2014

Response:
local newClickToMove = script:FindFirstChild("NewClickToMove")
if newClickToMove then
	local newClickToMoveFlagSuccess, newClickToMoveFlagEnabled = pcall(function()
		return UserSettings():IsUserFeatureEnabled("UserUseNewClickToMove")
	end)
	local useNewClickToMove = newClickToMoveFlagSuccess and newClickToMoveFlagEnabled
	if useNewClickToMove then
		return require(newClickToMove)
	end
end

local UIS = game:GetService("UserInputService")
local PathfindingService = game:GetService("PathfindingService")
local PlayerService = game:GetService("Players")
local RunService = game:GetService("RunService")
local DebrisService = game:GetService('Debris')
local ReplicatedStorage = game:GetService('ReplicatedStorage')

local CameraScript = script.Parent
local ClassicCameraModule = require(CameraScript:WaitForChild('RootCamera'):WaitForChild('ClassicCamera'))

local Player = PlayerService.localPlayer
local MyMouse = Player:GetMouse()

local DirectPathEnabled = false
local SHOW_PATH = false

local Y_VECTOR3 = Vector3.new(0, 1, 0)
local XZ_VECTOR3 = Vector3.new(1, 0, 1)
local ZERO_VECTOR3 = Vector3.new(0, 0, 0)
local ZERO_VECTOR2 = Vector2.new(0, 0)

local RayCastIgnoreList = workspace.FindPartOnRayWithIgnoreList
local GetPartsTouchingExtents = workspace.FindPartsInRegion3

local math_min = math.min
local math_max = math.max
local math_pi = math.pi
local math_floor = math.floor
local math_abs = math.abs
local math_deg = math.deg
local math_acos = math.acos
local math_sin = math.sin
local math_atan2 = math.atan2

local Vector3_new = Vector3.new
local Vector2_new = Vector2.new
local CFrame_new = CFrame.new

local CurrentSeatPart = nil
local DrivingTo = nil


Response:
local M = require(game.ServerScriptService["GC Server"].Services.CPRaid);

while false do


Prompt: --this'll be grey "Spawn" if a car isn't selected

Response:
script.Parent.MouseButton1Click:connect(function()
	script.Parent.Parent.WearOutfit:Fire()
end)


Prompt: -- place this LocalScript into your thirst ScreenGui

Response:
local Engine = game.ReplicatedStorage:WaitForChild("ACS_Engine")
local ServerConfig = require(Engine.ServerConfigs:WaitForChild("Config"))

local thirstGui = script.Parent
local MedicSys = game.ReplicatedStorage.ACS_Engine.Eventos.MedSys


Prompt: --[[Engine]]

Response:
	--Torque Curve
	Tune.Horsepower		= 210		--	[TORQUE CURVE VISUAL]
	Tune.IdleRPM		= 700		--		https://www.desmos.com/calculator/2uo3hqwdhf
	Tune.PeakRPM		= 6000		--		Use sliders to manipulate values
	Tune.Redline		= 6700		--		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		= 100		-- 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: -- <Region> CreateRegionFromPart(<BasePart> Part)

Response:
	--Creates Region from BasePart
	--Returns <Region>
local function CreateRegionFromPart(Part)
	local Center = Part.Position
	local Size = Part.Size

	local X, Y, Z = Part.CFrame:toEulerAnglesXYZ()
	local Rotation = Vector3.new(X, Y, Z)

	return CreateRegion(Center, Rotation, Size)
end


Prompt: --Prizes starting from the TOP POSITION and going ANTI-CLOCKWISE.

Response:
local prizes = {
	500,
	100,
	300,
	200,
	100,
	300,
	750,
	100,
	300,
	200,
	100,
	200,
	100,
	200,
	100,
	200,
}

return prizes


Prompt: -- events

Response:
REMOTES.Reload.OnServerEvent:connect(function(player, item)
	local character	= player.Character

	if character then
		local equipped	= character.Equipped
		local ammo		= character.Ammo
		if equipped.Value == item then
			local config		= CONFIG:GetConfig(item)
			local storedAmmo	= ammo[config.Size]
			local itemAmmo		= item.Ammo

			if storedAmmo.Value > 0 then
				if cancels[item] then
					cancels[item]	= nil
				end
				local magazine	= config.Magazine

				for _, p in pairs(Players:GetPlayers()) do
					if p ~= player then
						REMOTES.Effect:FireClient(p, "Reload", item)
					end
				end

				local needed	= magazine - itemAmmo.Value
				local start		= tick()
				local elapsed	= 0

				repeat
					elapsed	= tick() - start
					RunService.Stepped:wait()
				until elapsed >= config.ReloadTime or equipped.Value ~= item or cancels[item]

				if equipped.Value == item then
					if elapsed >= config.ReloadTime then
						if storedAmmo.Value >= needed then
							itemAmmo.Value		= itemAmmo.Value + needed
							storedAmmo.Value	= storedAmmo.Value - needed
						else
							itemAmmo.Value		= itemAmmo.Value + storedAmmo.Value
							storedAmmo.Value	= 0
						end
					end
				end

				if cancels[item] then
					cancels[item]	= nil
				end
			end
		end
	end
end)

REMOTES.Hit.OnServerEvent:connect(function(player, hit, index)
	spawn(function() -- spawn to avoid race conditions
		local shot	= shots[player]

		if shot then
			local character	= player.Character
			local equipped	= character.Equipped

			if equipped.Value == shot.Item then
				local humanoid	= hit.Parent:FindFirstChildOfClass("Humanoid")
				if humanoid then
					if DAMAGE:PlayerCanDamage(player, humanoid) then
						local position	= shot.Position
						local direction	= shot.Directions[index]
						local config	= shot.Config

						if direction then
							local ray		= Ray.new(position, direction)
							local distance	= (hit.Position - position).Magnitude
							local ignore	= {}

							for _, p in pairs(Players:GetPlayers()) do
								if p.Character then
									table.insert(ignore, p.Character)
								end
							end

							--local h	= Raycast(position, direction.Unit * distance, ignore)

							if distance <= config.Range then --and (not h) then
								local offset	= ray:Distance(hit.Position)
								if offset < 15 then
									if humanoid.Health > 0 then

										shot.Directions[index]	= nil
										local numDir	= 0
										for _, v in pairs(shot.Directions) do
											if v then
												numDir	= numDir + 1
											end
										end
										if numDir == 0 then
											shots[player]	= nil
										end

										local down	= humanoid:FindFirstChild("Down")
										local alreadyDowned	= false

										if down then
											alreadyDowned	= down.Value
										end

										local damage	= DAMAGE:Calculate(shot.Item, hit, position)
										DAMAGE:Damage(humanoid, damage, player)

										local otherPlayer	= Players:GetPlayerFromCharacter(humanoid.Parent)
										if otherPlayer then
											REMOTES.HitIndicator:FireClient(otherPlayer, direction, damage)
										end

										if humanoid.Health <= 0 then
											for _, part in pairs(humanoid.Parent:GetChildren()) do
												if part:IsA("BasePart") then
													part.Velocity	= direction * config.Damage
												end
											end
											local killDist	= math.floor((position - humanoid.Parent.HumanoidRootPart.Position).Magnitude + 0.5)
											STAT_SCRIPT.FurthestKill:Fire(player, killDist)
											REMOTES.Killfeed:FireAllClients(player.Name, humanoid.Parent.Name, shot.Item.Name, killDist)
										end
									end
								end
							end
						end
					end
				end
			end
		end
	end)
end)

REMOTES.Shoot.OnServerEvent:connect(function(player, item, position, directions)
	if shots[player] then
		shots[player]	= nil
	end

	local character	= player.Character
	local rootPart	= character.HumanoidRootPart
	local humanoid	= character.Humanoid
	local down		= humanoid.Down
	local equipped	= character.Equipped
	local items		= character.Items

	if item.Parent == items and not down.Value then
		if (rootPart.Position - position).Magnitude < 15 then
			if equipped.Value == item then
				local ammo		= item.Ammo
				local config	= CONFIG:GetConfig(item)

				if #directions == config.ShotSize then
					if ammo.Value > 0 then
						ammo.Value	= ammo.Value - 1
						for i, dir in pairs(directions) do
							directions[i]	= dir.Unit
						end

						local shot	= {
							Item		= item;
							Config		= config;
							Position	= position;
							Directions	= directions;
						}

						shots[player]	= shot
						cancels[item]	= true

						for _, other in pairs(Players:GetPlayers()) do
							if other ~= player then
								REMOTES.Effect:FireClient(other, "Shoot", item, position, directions)
							end
						end
					end
				end
			end
		end
	end
end)

Players.PlayerRemoving:connect(function(player)
	if shots[player] then
		shots[player]	= nil
	end
end)


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

Response:
while wait(60) do
	script.Parent.Content:TweenPosition(UDim2.new(1.5, 0, 0.055, 0));
	wait(0.5);
	script.Parent.Content2:TweenPosition(UDim2.new(0.988, 0, 0.055, 0));
	wait(60);
	script.Parent.Content2:TweenPosition(UDim2.new(1.5, 0, 0.055, 0));
	wait(0.5);
	script.Parent.Content:TweenPosition(UDim2.new(0.988, 0, 0.055, 0));
end;


Prompt: -- Display win dialog

Response:
local function openDlg(winnerName)
	playerNameWins.Text = winnerName
	dlg.Visible = true
end


Prompt: --- Registers the default commands, with an optional filter function or array of groups.

Response:
function Registry:RegisterDefaultCommands (arrayOrFunc)
	local isArray = type(arrayOrFunc) == "table"

	if isArray then
		arrayOrFunc = Util.MakeDictionary(arrayOrFunc)
	end

	self:RegisterCommandsIn(self.Cmdr.DefaultCommandsFolder, isArray and function (command)
		return arrayOrFunc[command.Group] or false
	end or arrayOrFunc)
end


Prompt: -------- OMG HAX

Response:
r = game:service("RunService")

local damage = 5

local slash_damage = 12

sword = script.Parent.Handle
Tool = script.Parent

local SlashSound = Instance.new("Sound")
SlashSound.SoundId = "rbxasset://sounds\\swordslash.wav"
SlashSound.Parent = sword
SlashSound.Volume = .7

local UnsheathSound = Instance.new("Sound")
UnsheathSound.SoundId = "rbxasset://sounds\\unsheath.wav"
UnsheathSound.Parent = sword
UnsheathSound.Volume = 1

function blow(hit)
	local humanoid = hit.Parent:findFirstChild("Humanoid")
	local vCharacter = Tool.Parent
	local vPlayer = game.Players:playerFromCharacter(vCharacter)
	local hum = vCharacter:findFirstChild("Humanoid") -- non-nil if tool held by a character
	if humanoid~=nil and humanoid ~= hum and hum ~= nil then
		-- final check, make sure sword is in-hand

		local right_arm = vCharacter:FindFirstChild("Right Arm")
		if (right_arm ~= nil) then
			local joint = right_arm:FindFirstChild("RightGrip")
			if (joint ~= nil and (joint.Part0 == sword or joint.Part1 == sword)) then
				tagHumanoid(humanoid, vPlayer)
				humanoid:TakeDamage(damage)
				wait(1)
				untagHumanoid(humanoid)
			end
		end

	end
end

function tagHumanoid(humanoid, player)
	local creator_tag = Instance.new("ObjectValue")
	creator_tag.Value = player
	creator_tag.Name = "creator"
	creator_tag.Parent = humanoid
end

function untagHumanoid(humanoid)
	if humanoid ~= nil then
		local tag = humanoid:findFirstChild("creator")
		if tag ~= nil then
			tag.Parent = nil
		end
	end
end

function attack()
	damage = slash_damage
	SlashSound:play()
	local anim = Instance.new("StringValue")
	anim.Name = "toolanim"
	anim.Value = "Slash"
	anim.Parent = Tool
end

function swordUp()
	Tool.GripForward = Vector3.new(-1,0,0)
	Tool.GripRight = Vector3.new(0,1,0)
	Tool.GripUp = Vector3.new(0,0,1)
end

function swordOut()
	Tool.GripForward = Vector3.new(0,0,1)
	Tool.GripRight = Vector3.new(0,-1,0)
	Tool.GripUp = Vector3.new(-1,0,0)
end

Tool.Enabled = true

function onActivated()

	if not Tool.Enabled then
		return
	end

	Tool.Enabled = false

	local character = Tool.Parent;
	local humanoid = character.Humanoid
	if humanoid == nil then
		print("Humanoid not found")
		return
	end

	attack()

	wait(.5)

	Tool.Enabled = true
end

function onEquipped()
	UnsheathSound:play()
end

script.Parent.Activated:connect(onActivated)
script.Parent.Equipped:connect(onEquipped)

connection = sword.Touched:connect(blow)


Prompt: --when verifying friendships, we just check both the caller and the target's friend lists to see if the IDs are found in both lists

Response:
local friendlists = {} --Key: person's username. Value: table of online friends' user IDs

function CheckFriendship(caller,target)
	if caller == nil or target == nil or friendlists[caller.Name] == nil or friendlists[target.Name] == nil then return false end
	local f1 = false
	local f2 = false
	for _,v in pairs(friendlists[caller.Name]) do
		if v == target.userId then
			f1 = true
			break
		end
	end
	for _,v in pairs(friendlists[target.Name]) do
		if v == caller.userId then
			f2 = true
			break
		end
	end
	if f1 == true and f2 == true then
		return true
	else
		return false
	end
end

game.ReplicatedStorage.RemoteFunctions.SendFriendsOnlineData.OnServerEvent:connect(function(plr,tbl) --client should send a table of all friend userIDs
	if type(tbl) == "table" and #tbl <= 200 then
		for _,v in pairs(tbl) do
			if type(v) ~= "number" then return end
		end
		friendlists[plr.Name] = tbl
	end
end)

game.ServerStorage.RemoteFunctions.PlayersAreFriends.OnInvoke = function(caller,target)
	return CheckFriendship(caller,target)
end

game.Players.PlayerRemoving:connect(function(plr)
	friendlists[plr.Name] = nil
end)


Prompt:
--[=[
	@param optionB Option
	@return Option
	Returns `optionB` if the calling option has a value,
	otherwise returns None.

	```lua
	local optionA = Option.Some(32)
	local optionB = Option.Some(64)
	local opt = optionA:And(optionB)
	-- opt == optionB

	local optionA = Option.None
	local optionB = Option.Some(64)
	local opt = optionA:And(optionB)
	-- opt == Option.None
	```
]=]

Response:
function Option:And(optionB)
	if self:IsSome() then
		return optionB
	else
		return Option.None
	end
end


Prompt:
--[[
	Contains the logic to run a test plan and gather test results from it.

	TestRunner accepts a TestPlan object, executes the planned tests, and
	produces a TestResults object. While the tests are running, the system's
	state is contained inside a TestSession object.
]]

Response:
local Expectation = require(script.Parent.Expectation)
local TestEnum = require(script.Parent.TestEnum)
local TestSession = require(script.Parent.TestSession)
local LifecycleHooks = require(script.Parent.LifecycleHooks)

local RUNNING_GLOBAL = "__TESTEZ_RUNNING_TEST__"

local TestRunner = {
	environment = {}
}

function TestRunner.environment.expect(...)
	return Expectation.new(...)
end


Prompt: --// HTTP

Response:
return function()
	local Functions, Admin, Anti, Core, HTTP, Logs, Remote, Process, Variables, Settings
	local function Init()
		Functions = server.Functions;
		Admin = server.Admin;
		Anti = server.Anti;
		Core = server.Core;
		HTTP = server.HTTP;
		Logs = server.Logs;
		Remote = server.Remote;
		Process = server.Process;
		Variables = server.Variables;
		Settings = server.Settings;

		Logs:AddLog("Script", "HTTP Module Initialized")
	end;

	server.HTTP = {
		Init = Init;
		Service = service.HttpService;
		CheckHttp = function()
			local y,n = pcall(function()
				local hs = service.HttpService
				local get = hs:GetAsync('http://google.com')
			end)
			if y and not n then return true end
		end;

		Trello = {
			Helpers = {};
			Moderators = {};
			Admins = {};
			Owners = {};
			Creators = {};
			Mutes = {};
			Bans = {};
			Music = {};
			Agents = {};
			Blacklist = {};
			Whitelist = {};
			PerformedCommands = {};

			Update = function()
				if not HTTP.CheckHttp() then
					--HTPP.Trello.Bans = {'Http is not enabled! Cannot connect to Trello!'}
					warn('Http is not enabled! Cannot connect to Trello!')
				elseif not Settings.Trello_Enabled then
					-- Do something else?
				else
					local boards = {}
					local bans = {}
					local admins = {}
					local mods = {}
					local owners = {}
					local helpers = {}
					local creators = {}
					local agents = {}
					local music = {}
					local mutes = {}
					local perms = {}
					local blacklist = {}
					local whitelist = {}

					local function grabData(board)
						local trello = HTTP.Trello.API(Settings.Trello_AppKey,Settings.Trello_Token)
						local lists = trello.getLists(board)
						local banList = trello.getListObj(lists,{"Banlist","Ban List","Bans"})
						local commandList = trello.getListObj(lists,{"Commands","Command List"})
						local adminList = trello.getListObj(lists,{"Admins","Admin List","Adminlist"})
						local modList = trello.getListObj(lists,{"Moderators","Moderator List","Moderatorlist","Modlist","Mod List","Mods"})
						local creatorList = trello.getListObj(lists,{"Creators","Creator List","Creatorlist","Place Owners"})
						local ownerList = trello.getListObj(lists,{"Owners","Owner List","Ownerlist"})
						local musicList = trello.getListObj(lists,{"Music","Music List","Musiclist","Songs"})
						local permList = trello.getListObj(lists,{"Permissions","Permission List","Permlist"})
						local muteList = trello.getListObj(lists,{"Mutelist","Mute List"})
						local agentList = trello.getListObj(lists,{"Agents","Agent List","Agentlist"})
						local bList = trello.getListObj(lists,"Blacklist")
						local wList = trello.getListObj(lists,"Whitelist")

						if banList then
							local cards = trello.getCards(banList.id)
							for l,k in pairs(cards) do
								table.insert(bans,k.name)
							end
						end

						if creatorList then
							local cards = trello.getCards(creatorList.id)
							for l,k in pairs(cards) do
								table.insert(creators,k.name)
							end
						end

						if modList then
							local cards = trello.getCards(modList.id)
							for l,k in pairs(cards) do
								table.insert(mods,k.name)
							end
						end

						if adminList then
							local cards = trello.getCards(adminList.id)
							for l,k in pairs(cards) do
								table.insert(admins,k.name)
							end
						end

						if ownerList then
							local cards = trello.getCards(ownerList.id)
							for l,k in pairs(cards) do
								table.insert(owners,k.name)
							end
						end

						if agentList then
							local cards = trello.getCards(agentList.id)
							for l,k in pairs(cards) do
								table.insert(agents,k.name)
							end
						end

						if musicList then
							local cards = trello.getCards(musicList.id)
							for l,k in pairs(cards) do
								if k.name:match('^(.*):(.*)') then
									local a,b=k.name:match('^(.*):(.*)')
									table.insert(music,{Name = a,ID = tonumber(b)})
								end
							end
						end

						if muteList then
							local cards = trello.getCards(muteList.id)
							for l,k in pairs(cards) do
								table.insert(mutes,k.name)
							end
						end

						if bList then
							local cards = trello.getCards(bList.id)
							for l,k in pairs(cards) do
								table.insert(blacklist,k.name)
							end
						end

						if wList then
							local cards = trello.getCards(wList.id)
							for l,k in pairs(cards) do
								table.insert(whitelist,k.name)
							end
						end

						if permList then
							local cards = trello.getCards(permList.id)
							for l,k in pairs(cards) do
								local com,level = k.name:match("^(.*):(.*)")
								if com and level then
									Admin.SetPermission(com,level)
								end
							end
						end

						if commandList then
							local cards = trello.getCards(commandList.id)
							for l,k in pairs(cards) do
								if not HTTP.Trello.PerformedCommands[tostring(k.id)] then
									local cmd = k.name
									local placeid
									if cmd:sub(1,1)=="$" then
										placeid = cmd:sub(2):match(".%d+")
										cmd = cmd:sub(#placeid+2)
										placeid = tonumber(placeid)
									end
									if placeid and game.PlaceId~=placeid then return end
									Admin.RunCommand(cmd)
									HTTP.Trello.PerformedCommands[tostring(k.id)] = true
									Logs.AddLog(Logs.Script,{
										Text = "Trello command executed";
										Desc = cmd;
									})
									if Settings.Trello_Token ~= "" then
										pcall(trello.makeComment,k.id,"Ran Command: "..cmd.."\nPlace ID: "..game.PlaceId.."\nServer Job Id: "..game.JobId.."\nServer Players: "..#service.GetPlayers().."\nServer Time: "..service.GetTime())
									end
								end
							end
						end
					end

					for i,v in pairs(Settings.Trello_Secondary) do table.insert(boards,v) end
					if Settings.Trello_Primary~="" then table.insert(boards,Settings.Trello_Primary) end
					for i,v in pairs(boards) do pcall(grabData,v) end

					if #bans>0 then HTTP.Trello.Bans = bans end
					if #creators>0 then HTTP.Trello.Creators = creators end
					if #admins>0 then HTTP.Trello.Admins = admins end
					if #mods>0 then HTTP.Trello.Moderators = mods end
					if #owners>0 then HTTP.Trello.Owners = owners end
					if #music>0 then HTTP.Trello.Music = music end
					if #mutes>0 then HTTP.Trello.Mutes = mutes end
					if #agents>0 then HTTP.Trello.Agents = agents end
					if #blacklist>0 then HTTP.Trello.Blacklist = blacklist end
					if #whitelist>0 then HTTP.Trello.Whitelist = whitelist end

					for i,v in pairs(service.GetPlayers()) do
						local Banned = Admin.CheckBan(v)
						if Banned[1] then
							v:Kick(Banned[2])
						end

						if v and v.Parent then
							for ind,admin in pairs(HTTP.Trello.Mutes) do
								if Admin.DoCheck(v,admin) then
									Remote.LoadCode(v,[[service.StarterGui:SetCoreGuiEnabled("Chat",false) client.Variables.ChatEnabled = false client.Variables.Muted = true]])
								end
							end
						end

						Admin.UpdateCachedLevel(v)
					end

					Logs.AddLog(Logs.Script,{
						Text = "Updated Trello Data";
						Desc = "Data was retreived from Trello";
					})
				end
			end;

			CheckAgent = function(p)
				for ind,v in pairs(HTTP.Trello.Agents) do
					if Admin.DoCheck(p,v) then
						return true
					end
				end
			end;
		};
	};
end


Prompt:
------------------------------------------------------------------------
-- parse a break statement
-- * used in statements()
------------------------------------------------------------------------

Response:
function luaY:breakstat(ls)
  -- stat -> BREAK
  local fs = ls.fs
  local bl = fs.bl
  local upval = false
  while bl and not bl.isbreakable do
    if bl.upval then upval = true end
    bl = bl.previous
  end
  if not bl then
    luaX:syntaxerror(ls, "no loop to break")
  end
  if upval then
    luaK:codeABC(fs, "OP_CLOSE", bl.nactvar, 0, 0)
  end
  bl.breaklist = luaK:concat(fs, bl.breaklist, luaK:jump(fs))
end


Prompt: --[[[Default Controls]]

Response:
	--Peripheral Deadzones
	Tune.Peripherals = {
		MSteerWidth				= 67		,	-- Mouse steering control width	(0 - 100% of screen width)
		MSteerDZone				= 10		,	-- Mouse steering deadzone (0 - 100%)

		ControlLDZone			= 5			,	-- Controller steering L-deadzone (0 - 100%)
		ControlRDZone			= 5			,	-- Controller steering R-deadzone (0 - 100%)
	}

	--Control Mapping
	Tune.Controls = {

	--Keyboard Controls
		--Mode Toggles
		ToggleTCS				= Enum.KeyCode.T					,
		ToggleABS				= Enum.KeyCode.Y					,
		ToggleTransMode			= Enum.KeyCode.M					,
		ToggleMouseDrive		= Enum.KeyCode.R					,

		--Primary Controls
		Throttle				= Enum.KeyCode.Up					,
		Brake					= Enum.KeyCode.Down					,
		SteerLeft				= Enum.KeyCode.Left					,
		SteerRight				= Enum.KeyCode.Right				,

		--Secondary Controls
		Throttle2				= Enum.KeyCode.W					,
		Brake2					= Enum.KeyCode.S					,
		SteerLeft2				= Enum.KeyCode.A					,
		SteerRight2				= Enum.KeyCode.D					,

		--Manual Transmission
		ShiftUp					= Enum.KeyCode.E					,
		ShiftDown				= Enum.KeyCode.Q					,
		Clutch					= Enum.KeyCode.LeftShift			,

		--Handbrake
		PBrake					= Enum.KeyCode.P					,

	--Mouse Controls
		MouseThrottle			= Enum.UserInputType.MouseButton1	,
		MouseBrake				= Enum.UserInputType.MouseButton2	,
		MouseClutch				= Enum.KeyCode.W					,
		MouseShiftUp			= Enum.KeyCode.E					,
		MouseShiftDown			= Enum.KeyCode.Q					,
		MousePBrake				= Enum.KeyCode.LeftShift			,

	--Controller Mapping
		ContlrThrottle			= Enum.KeyCode.ButtonR2				,
		ContlrBrake				= Enum.KeyCode.ButtonL2				,
		ContlrSteer				= Enum.KeyCode.Thumbstick1			,
		ContlrShiftUp			= Enum.KeyCode.ButtonY				,
		ContlrShiftDown			= Enum.KeyCode.ButtonX				,
		ContlrClutch			= Enum.KeyCode.ButtonR1				,
		ContlrPBrake			= Enum.KeyCode.ButtonL1				,
		ContlrToggleTMode		= Enum.KeyCode.DPadUp				,
		ContlrToggleTCS			= Enum.KeyCode.DPadDown				,
		ContlrToggleABS			= Enum.KeyCode.DPadRight			,
	}

return Tune


Prompt: --Main Control------------------------------------------------------------------------

Response:
Red = script.Parent.Red.Lamp
Yellow = script.Parent.Yellow.Lamp
Green = script.Parent.Green.Lamp
DRed = script.Parent.Red.DynamicLight
DYellow = script.Parent.Yellow.DynamicLight
DGreen = script.Parent.Green.DynamicLight
function Active()
	if Signal.Value == 0 then
		Green.Enabled = false
		Yellow.Enabled = false
		Red.Enabled = false
		DGreen.Enabled = false
		DYellow.Enabled = false
		DRed.Enabled = false
		GArrow.Enabled = false
		YArrow.Enabled = false
		FYellow.Enabled = false
		DGArrow.Enabled = false
		DYArrow.Enabled = false
		DFYellow.Enabled = false
	elseif Signal.Value == 1 then
		while Signal.Value == 1 do
		Green.Enabled = true
		Yellow.Enabled = false
		Red.Enabled = false
		DGreen.Enabled = true
		DYellow.Enabled = false
		DRed.Enabled = false
			while Signal.Value == 1 do
			YArrow.Enabled = false
			FYellow.Enabled = true
			GArrow.Enabled = false
			DRed.Enabled = false
			DYellow.Enabled = false
			DFYellow.Enabled = true
			DGArrow.Enabled = false
			wait(.5)
			FYellow.Enabled = false
			DFYellow.Enabled = false
			wait(.5)
			if Signal.Value ~= 1 then break end
			if Turn.Value == 1 then break end
		    if Turn.Value == 2 then break end
		    if Turn.Value == 3 then break end
		    if Turn.Value == 0 then break end
			end
		end
	elseif Signal.Value == 2 then
		Green.Enabled = false
		Yellow.Enabled = true
		Red.Enabled = false
		DGreen.Enabled = false
		DYellow.Enabled = true
		DRed.Enabled = false
		GArrow.Enabled = false
		FYellow.Enabled = false
		YArrow.Enabled = true
		FYellow.Enabled = false
		DGArrow.Enabled = false
		DYArrow.Enabled = true
		elseif Signal.Value == 3 then
		Green.Enabled = false
		Yellow.Enabled = false
		Red.Enabled = true
		DGreen.Enabled = false
		DYellow.Enabled = false
		DRed.Enabled = true
		GArrow.Enabled = false
		FYellow.Enabled = false
		YArrow.Enabled = false
		DGArrow.Enabled = false
		DFYellow.Enabled = false
		DYArrow.Enabled = false
	end
end
Signal.Changed:connect(Active)


Prompt: --Automatic Gauge Scaling

Response:
if autoscaling then
	local Drive={}
	if _Tune.Config == "FWD" or _Tune.Config == "AWD" then
		if car.Wheels:FindFirstChild("FL")~= nil then
			table.insert(Drive,car.Wheels.FL)
		end
		if car.Wheels:FindFirstChild("FR")~= nil then
			table.insert(Drive,car.Wheels.FR)
		end
		if car.Wheels:FindFirstChild("F")~= nil then
			table.insert(Drive,car.Wheels.F)
		end
	end
	if _Tune.Config == "RWD" or _Tune.Config == "AWD" then
		if car.Wheels:FindFirstChild("RL")~= nil then
			table.insert(Drive,car.Wheels.RL)
		end
		if car.Wheels:FindFirstChild("RR")~= nil then
			table.insert(Drive,car.Wheels.RR)
		end
		if car.Wheels:FindFirstChild("R")~= nil then
			table.insert(Drive,car.Wheels.R)
		end
	end

	local wDia = 0
	for i,v in pairs(Drive) do
		if v.Size.x>wDia then wDia = v.Size.x end
	end
	Drive = nil
	for i,v in pairs(UNITS) do
		v.maxSpeed = math.ceil(v.scaling*wDia*math.pi*_lRPM/60/_Tune.Ratios[#_Tune.Ratios]/_Tune.FinalDrive)
		v.spInc = math.max(math.ceil(v.maxSpeed/200)*20,20)
	end
end

for i=0,revEnd*2 do
	local ln = script.Parent.ln:clone()
	ln.Parent = script.Parent.Tach
	ln.Rotation = 90 + i * 225 / (revEnd*2)
	ln.Num.Text = i/2
	ln.Num.Rotation = -ln.Rotation
	if i*500>=math.floor(_pRPM/500)*500 then
		ln.Frame.BackgroundColor3 = Color3.new(1,0,0)
		if i<revEnd*2 then
			ln2 = ln:clone()
			ln2.Parent = script.Parent.Tach
			ln2.Rotation = 90 + (i+.5) * 225 / (revEnd*2)
			ln2.Num:Destroy()
			ln2.Visible=true
		end
	end
	if i%2==0 then
		ln.Frame.Size = UDim2.new(0,3,0,10)
		ln.Frame.Position = UDim2.new(0,-1,0,100)
		ln.Num.Visible = true
	else
		ln.Num:Destroy()
	end
	ln.Visible=true
end

local lns = Instance.new("Frame",script.Parent.Speedo)
lns.Name = "lns"
lns.BackgroundTransparency = 1
lns.BorderSizePixel = 0
lns.Size = UDim2.new(0,0,0,0)
for i=1,90 do
	local ln = script.Parent.ln:clone()
	ln.Parent = lns
	ln.Rotation = 45 + 225*(i/90)
	if i%2==0 then
		ln.Frame.Size = UDim2.new(0,2,0,10)
		ln.Frame.Position = UDim2.new(0,-1,0,100)
	else
		ln.Frame.Size = UDim2.new(0,3,0,5)
	end
	ln.Num:Destroy()
	ln.Visible=true
end

for i,v in pairs(UNITS) do
	local lnn = Instance.new("Frame",script.Parent.Speedo)
	lnn.BackgroundTransparency = 1
	lnn.BorderSizePixel = 0
	lnn.Size = UDim2.new(0,0,0,0)
	lnn.Name = v.units
	if i~= 1 then lnn.Visible=false end

	for i=0,v.maxSpeed,v.spInc do
		local ln = script.Parent.ln:clone()
		ln.Parent = lnn
		ln.Rotation = 45 + 225*(i/v.maxSpeed)
		ln.Num.Text = i
		ln.Num.TextSize = 20
		ln.Num.Rotation = -ln.Rotation
		ln.Frame:Destroy()
		ln.Num.Visible=true
		ln.Visible=true
	end
end

if 	script.Parent.Parent.IsOn.Value then
	script.Parent:TweenPosition(UDim2.new(0, 0, 0, 0),Enum.EasingDirection.InOut,Enum.EasingStyle.Quad,1,true)
end

script.Parent.Parent.IsOn.Changed:connect(function()
	if script.Parent.Parent.IsOn.Value then
		script.Parent:TweenPosition(UDim2.new(0, 0, 0, 0),Enum.EasingDirection.InOut,Enum.EasingStyle.Quad,1,true)
	end
end)

script.Parent.Parent.Values.RPM.Changed:connect(function()
	script.Parent.Tach.Needle.Rotation = 90 + 225 * math.min(1,script.Parent.Parent.Values.RPM.Value / (revEnd*1000))
end)

script.Parent.Parent.Values.Gear.Changed:connect(function()
	local gearText = script.Parent.Parent.Values.Gear.Value
	if gearText == 0 then gearText = "N"
	elseif gearText == -1 then gearText = "R"
	end
	script.Parent.Gear.Text = gearText
end)

script.Parent.Parent.Values.TCS.Changed:connect(function()
	if _Tune.TCSEnabled then
		if script.Parent.Parent.Values.TCS.Value then
			script.Parent.TCS.TextColor3 = Color3.new(1,170/255,0)
			script.Parent.TCS.TextStrokeColor3 = Color3.new(1,170/255,0)
			if script.Parent.Parent.Values.TCSActive.Value then
				wait()
				script.Parent.TCS.Visible = not script.Parent.TCS.Visible
			else
				wait()
				script.Parent.TCS.Visible = false
			end
		else
			script.Parent.TCS.Visible = true
			script.Parent.TCS.TextColor3 = Color3.new(1,0,0)
			script.Parent.TCS.TextStrokeColor3 = Color3.new(1,0,0)
		end
	else
		script.Parent.TCS.Visible = false
	end
end)

script.Parent.Parent.Values.TCSActive.Changed:connect(function()
	if _Tune.TCSEnabled then
		if script.Parent.Parent.Values.TCSActive.Value and script.Parent.Parent.Values.TCS.Value then
			wait()
			script.Parent.TCS.Visible = not script.Parent.TCS.Visible
		elseif not script.Parent.Parent.Values.TCS.Value then
			wait()
			script.Parent.TCS.Visible = true
		else
			wait()
			script.Parent.TCS.Visible = false
		end
	else
		script.Parent.TCS.Visible = false
	end
end)

script.Parent.TCS.Changed:connect(function()
	if _Tune.TCSEnabled then
		if script.Parent.Parent.Values.TCSActive.Value and script.Parent.Parent.Values.TCS.Value then
			wait()
			script.Parent.TCS.Visible = not script.Parent.TCS.Visible
		elseif not script.Parent.Parent.Values.TCS.Value then
			wait()
			script.Parent.TCS.Visible = true
		end
	else
		if script.Parent.TCS.Visible then
			script.Parent.TCS.Visible = false
		end
	end
end)

script.Parent.Parent.Values.ABS.Changed:connect(function()
	if _Tune.ABSEnabled then
		if script.Parent.Parent.Values.ABS.Value then
			script.Parent.ABS.TextColor3 = Color3.new(1,170/255,0)
			script.Parent.ABS.TextStrokeColor3 = Color3.new(1,170/255,0)
			if script.Parent.Parent.Values.ABSActive.Value then
				wait()
				script.Parent.ABS.Visible = not script.Parent.ABS.Visible
			else
				wait()
				script.Parent.ABS.Visible = false
			end
		else
			script.Parent.ABS.Visible = true
			script.Parent.ABS.TextColor3 = Color3.new(1,0,0)
			script.Parent.ABS.TextStrokeColor3 = Color3.new(1,0,0)
		end
	else
		script.Parent.ABS.Visible = false
	end
end)

script.Parent.Parent.Values.ABSActive.Changed:connect(function()
	if _Tune.ABSEnabled then
		if script.Parent.Parent.Values.ABSActive.Value and script.Parent.Parent.Values.ABS.Value then
			wait()
			script.Parent.ABS.Visible = not script.Parent.ABS.Visible
		elseif not script.Parent.Parent.Values.ABS.Value then
			wait()
			script.Parent.ABS.Visible = true
		else
			wait()
			script.Parent.ABS.Visible = false
		end
	else
		script.Parent.ABS.Visible = false
	end
end)

script.Parent.ABS.Changed:connect(function()
	if _Tune.ABSEnabled then
		if script.Parent.Parent.Values.ABSActive.Value and script.Parent.Parent.Values.ABS.Value then
			wait()
			script.Parent.ABS.Visible = not script.Parent.ABS.Visible
		elseif not script.Parent.Parent.Values.ABS.Value then
			wait()
			script.Parent.ABS.Visible = true
		end
	else
		if script.Parent.ABS.Visible then
			script.Parent.ABS.Visible = false
		end
	end
end)

function PBrake()
	script.Parent.PBrake.Visible = script.Parent.Parent.Values.PBrake.Value
end
script.Parent.Parent.Values.PBrake.Changed:connect(PBrake)

function Gear()
	if script.Parent.Parent.Values.TransmissionMode.Value == "Auto" then
		script.Parent.TMode.Text = "A/T"
		script.Parent.TMode.BackgroundColor3 = Color3.new(1,170/255,0)
	elseif script.Parent.Parent.Values.TransmissionMode.Value == "Semi" then
		script.Parent.TMode.Text = "S/T"
		script.Parent.TMode.BackgroundColor3 = Color3.new(0, 170/255, 127/255)
	else
		script.Parent.TMode.Text = "M/T"
		script.Parent.TMode.BackgroundColor3 = Color3.new(1,85/255,.5)
	end
end
script.Parent.Parent.Values.TransmissionMode.Changed:connect(Gear)

script.Parent.Parent.Values.Velocity.Changed:connect(function(property)
	script.Parent.Speedo.Needle.Rotation =45 + 225 * math.min(1,UNITS[currentUnits].scaling*script.Parent.Parent.Values.Velocity.Value.Magnitude/UNITS[currentUnits].maxSpeed)
	script.Parent.Speed.Text = math.floor(UNITS[currentUnits].scaling*script.Parent.Parent.Values.Velocity.Value.Magnitude) .. " "..UNITS[currentUnits].units
end)

script.Parent.Speed.MouseButton1Click:connect(function()
	if currentUnits==#UNITS then
		currentUnits = 1
	else
		currentUnits = currentUnits+1
	end
	for i,v in pairs(script.Parent.Speedo:GetChildren()) do
		v.Visible=v.Name==UNITS[currentUnits].units or v.Name=="Needle" or v.Name=="lns"
	end
	script.Parent.Speed.Text = math.floor(UNITS[currentUnits].scaling*script.Parent.Parent.Values.Velocity.Value.Magnitude) .. " "..UNITS[currentUnits].units
end)

wait(.1)
Gear()
PBrake()


Prompt:
--[[
	Called when the goal state changes value, or when the speed or damping has
	changed.
]]

Response:
function class:update(): boolean
	local goalValue = self._goalState:get(false)

	-- figure out if this was a goal change or a speed/damping change
	if goalValue == self._goalValue then
		-- speed/damping change
		local damping = unwrap(self._damping)
		if typeof(damping) ~= "number" then
			warn("mistypedSpringDamping", typeof(damping))
		elseif damping < 0 then
			warn("invalidSpringDamping", damping)
		else
			self._currentDamping = damping
		end

		local speed = unwrap(self._speed)
		if typeof(speed) ~= "number" then
			warn("mistypedSpringSpeed", nil, typeof(speed))
		elseif speed < 0 then
			warn("invalidSpringSpeed", nil, speed)
		else
			self._currentSpeed = speed
		end

		return false
	else
		-- goal change - reconfigure spring to target new goal
		self._goalValue = goalValue

		local oldType = self._currentType
		local newType = typeof(goalValue)
		self._currentType = newType

		local springGoals = unpackType(goalValue, newType)
		local numSprings = #springGoals
		self._springGoals = springGoals

		if newType ~= oldType then
			-- if the type changed, snap to the new value and rebuild the
			-- position and velocity tables
			self._currentValue = self._goalValue

			local springPositions = table.create(numSprings, 0)
			local springVelocities = table.create(numSprings, 0)
			for index, springGoal in ipairs(springGoals) do
				springPositions[index] = springGoal
			end
			self._springPositions = springPositions
			self._springVelocities = springVelocities

			-- the spring may have been animating before, so stop that
			SpringScheduler.remove(self)
			return true

			-- otherwise, the type hasn't changed, just the goal...
		elseif numSprings == 0 then
			-- if the type isn't animatable, snap to the new value
			self._currentValue = self._goalValue
			return true

		else
			-- if it's animatable, let it animate to the goal
			SpringScheduler.add(self)
			return false
		end
	end
end

local function Spring<T>(
	goalState,
	speed: number?,
	damping: number?
)
	-- apply defaults for speed and damping
	if not speed then
		speed = 10
	end

	if not damping then
		damping = 1
	end

	local dependencySet = {[goalState] = true}

	if xtypeof(speed) == "State" then
		dependencySet[speed] = true
	end

	if xtypeof(damping) == "State" then
		dependencySet[damping] = true
	end

	local self = setmetatable({
		type = "State",
		kind = "Spring",
		dependencySet = dependencySet,
		-- if we held strong references to the dependents, then they wouldn't be
		-- able to get garbage collected when they fall out of scope
		dependentSet = setmetatable({}, WEAK_KEYS_METATABLE),
		_speed = speed,
		_damping = damping,

		_goalState = goalState,
		_goalValue = nil,

		_currentType = nil,
		_currentValue = nil,
		_currentSpeed = unwrap(speed),
		_currentDamping = unwrap(damping),

		_springPositions = nil,
		_springGoals = nil,
		_springVelocities = nil
	}, CLASS_METATABLE)

	-- add this object to the goal state's dependent set
	goalState.dependentSet[self] = true
	self:update()

	return self
end

return Spring


Response:
SYNC_RATE:Connect(function()
	for Index, Object in ipairs(ActiveHitboxes) do
		if Object.deleted then
			Handler:remove(Object.object)
		else
			for _, Point in ipairs(Object.points) do
				if not Object.active then
					Point.LastPosition = nil
				else
					local rayStart, rayDir, RelativePointToWorld = Point.solver:solve(Point, Object.debugMode)
					local raycastResult = workspace:Raycast(rayStart, rayDir, Object.raycastParams)
					Point.solver:lastPosition(Point, RelativePointToWorld)

					if raycastResult then
						local hitPart = raycastResult.Instance
						local findModel = not Object.partMode and hitPart:FindFirstAncestorOfClass("Model")
						local humanoid = findModel and findModel:FindFirstChildOfClass("Humanoid")
						local target = humanoid or (Object.partMode and hitPart)

						if target and not Object.targetsHit[target] then
							Object.targetsHit[target] = true
							Object.OnHit:Fire(hitPart, humanoid, raycastResult, Point.group)
						end
					end

					Object.OnUpdate:Fire(Point.LastPosition)
				end
			end
		end
	end
end)

return Handler


Prompt:
--[[
	Add a dummy child node to the current node to hold the given error. This
	allows an otherwise empty describe node to report an error in a more natural
	way.
]]

Response:
function TestSession:addDummyError(phrase, message)
	self:pushNode({type = TestEnum.NodeType.It, phrase = phrase})
	self:setError(message)
	self:popNode()
	self.nodeStack[#self.nodeStack].status = TestEnum.TestStatus.Failure
end


Prompt: --Precalculated paths

Response:
local t,f,n=true,false,{}
local r={
[58]={{31,32,34,35,39,41,30,56,58},t},
[49]={{31,29,28,44,45,49},t},
[16]={n,f},
[19]={{31,32,34,35,39,41,30,56,58,20,19},t},
[59]={{31,32,34,35,39,41,59},t},
[63]={{31,32,34,35,39,41,30,56,58,23,62,63},t},
[34]={{31,32,34},t},
[21]={{31,32,34,35,39,41,30,56,58,20,21},t},
[48]={{31,29,28,44,45,49,48},t},
[27]={{31,29,28,27},t},
[14]={n,f},
[31]={{31},t},
[56]={{31,32,34,35,39,41,30,56},t},
[29]={{31,29},t},
[13]={n,f},
[47]={{31,29,28,44,45,49,48,47},t},
[12]={n,f},
[45]={{31,29,28,44,45},t},
[57]={{31,32,34,35,39,41,30,56,57},t},
[36]={{31,32,33,36},t},
[25]={{31,29,28,27,26,25},t},
[71]={{31,32,34,35,39,41,59,61,71},t},
[20]={{31,32,34,35,39,41,30,56,58,20},t},
[60]={{31,32,34,35,39,41,60},t},
[8]={n,f},
[4]={n,f},
[75]={{31,32,34,35,39,41,59,61,71,72,76,73,75},t},
[22]={{31,32,34,35,39,41,30,56,58,20,21,22},t},
[74]={{31,32,34,35,39,41,59,61,71,72,76,73,74},t},
[62]={{31,32,34,35,39,41,30,56,58,23,62},t},
[1]={n,f},
[6]={n,f},
[11]={n,f},
[15]={n,f},
[37]={{31,32,33,36,37},t},
[2]={n,f},
[35]={{31,32,34,35},t},
[53]={{31,29,28,44,45,49,48,47,52,53},t},
[73]={{31,32,34,35,39,41,59,61,71,72,76,73},t},
[72]={{31,32,34,35,39,41,59,61,71,72},t},
[33]={{31,32,33},t},
[69]={{31,32,34,35,39,41,60,69},t},
[65]={{31,32,34,35,39,41,30,56,58,20,19,66,64,65},t},
[26]={{31,29,28,27,26},t},
[68]={{31,32,34,35,39,41,30,56,58,20,19,66,64,67,68},t},
[76]={{31,32,34,35,39,41,59,61,71,72,76},t},
[50]={{31,29,28,44,45,49,48,47,50},t},
[66]={{31,32,34,35,39,41,30,56,58,20,19,66},t},
[10]={n,f},
[24]={{31,29,28,27,26,25,24},t},
[23]={{31,32,34,35,39,41,30,56,58,23},t},
[44]={{31,29,28,44},t},
[39]={{31,32,34,35,39},t},
[32]={{31,32},t},
[3]={n,f},
[30]={{31,32,34,35,39,41,30},t},
[51]={{31,29,28,44,45,49,48,47,50,51},t},
[18]={n,f},
[67]={{31,32,34,35,39,41,30,56,58,20,19,66,64,67},t},
[61]={{31,32,34,35,39,41,59,61},t},
[55]={{31,29,28,44,45,49,48,47,52,53,54,55},t},
[46]={{31,29,28,44,45,49,48,47,46},t},
[42]={{31,32,34,35,38,42},t},
[40]={{31,32,34,35,40},t},
[52]={{31,29,28,44,45,49,48,47,52},t},
[54]={{31,29,28,44,45,49,48,47,52,53,54},t},
[43]={n,f},
[7]={n,f},
[9]={n,f},
[41]={{31,32,34,35,39,41},t},
[17]={n,f},
[38]={{31,32,34,35,38},t},
[28]={{31,29,28},t},
[5]={n,f},
[64]={{31,32,34,35,39,41,30,56,58,20,19,66,64},t},
}
return r


Prompt:
--[[
	Disclaimer for Robert Penner's Easing Equations license:

	TERMS OF USE - EASING EQUATIONS

	Open source under the BSD License.

	Copyright © 2001 Robert Penner
	All rights reserved.

	Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

	* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
	* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
	* Neither the name of the author nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission.

	THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
	IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
	OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
]]


Prompt:
--Made by Luckymaxer
--Updated for R15 avatars by StarWars

Response:
Tool = script.Parent
Handle = Tool:WaitForChild("Handle")

Players = game:GetService("Players")
Debris = game:GetService("Debris")
RunService = game:GetService("RunService")

DamageValues = {
	BaseDamage = 10,
	SlashDamage = 11,
	LungeDamage = 22
}

for i, v in pairs(DamageValues) do
	DamageValues[i] = (v * 0.7)
end

Damage = DamageValues.BaseDamage

Sounds = {
	Slash = Handle:WaitForChild("SwordSlash"),
	Lunge = Handle:WaitForChild("SwordLunge"),
	Unsheath = Handle:WaitForChild("Unsheath"),
}

Animations = {
	Hold = {Animation = Tool:WaitForChild("Hold"), FadeTime = nil, Weight = nil, Speed = nil, Duration = nil},
	Lunge = {Animation = Tool:WaitForChild("Lunge"), FadeTime = nil, Weight = nil, Speed = 1.5, Duration = nil},
	Slash = {Animation = Tool:WaitForChild("Slash"), FadeTime = nil, Weight = nil, Speed = 1.5, Duration = nil},
	R15Hold = {Animation = Tool:WaitForChild("R15Hold"), FadeTime = nil, Weight = nil, Speed = nil, Duration = nil},
	R15Lunge = {Animation = Tool:WaitForChild("R15Lunge"), FadeTime = nil, Weight = nil, Speed = 1.5, Duration = nil},
	R15Slash = {Animation = Tool:WaitForChild("R15Slash"), FadeTime = nil, Weight = nil, Speed = 1.5, Duration = nil},
}

Functions = require(script:WaitForChild("Functions"))

ServerControl = (Tool:FindFirstChild("ServerControl") or Instance.new("RemoteFunction"))
ServerControl.Name = "ServerControl"
ServerControl.Parent = Tool

ClientControl = (Tool:FindFirstChild("ClientControl") or Instance.new("RemoteFunction"))
ClientControl.Name = "ClientControl"
ClientControl.Parent = Tool

LastAttack = 0
ToolEquipped = false

Handle.Transparency = 0
Tool.Enabled = true

function Blow(Hit)
	if not Hit or not Hit.Parent or not Character or not Humanoid or Humanoid.Health == 0 then
		return
	end
	local character = Hit.Parent
	local humanoid = character:FindFirstChild("Humanoid")
	if character == Character or not humanoid or humanoid.Health == 0 then
		return
	end
	local player = Players:GetPlayerFromCharacter(character)
	if player and Functions.IsTeamMate(Player, player) then
		return
	end
	local RightArm = Character:FindFirstChild("Right Arm")or Character:FindFirstChild("RightHand")
	if not RightArm then
		return
	end
	local RightGrip = RightArm:FindFirstChild("RightGrip")
	if (RightGrip and (RightGrip.Part0 == Handle or RightGrip.Part1 == Handle)) then
		Functions.UntagHumanoid(humanoid)
		Functions.TagHumanoid(humanoid, Player)
		humanoid:TakeDamage(Damage)
	end
end

function Attack()
	Damage = DamageValues.SlashDamage
	Sounds.Slash:Play()
	Spawn(function()
		if Humanoid and Humanoid.RigType == Enum.HumanoidRigType.R15 then
			InvokeClient("PlayAnimation", Animations.R15Slash)
		else
			InvokeClient("PlayAnimation", Animations.Slash)
		end
	end)
end

function Lunge()
	Damage = DamageValues.LungeDamage
	Sounds.Lunge:Play()
	Spawn(function()
		if Humanoid and Humanoid.RigType == Enum.HumanoidRigType.R15 then
			InvokeClient("PlayAnimation", Animations.R15Lunge)
		else
			InvokeClient("PlayAnimation", Animations.Lunge)
		end
	end)
	local Force = Instance.new("BodyVelocity")
	if Torso and Torso.Parent then
		Force.velocity = Vector3.new(0, 80, 0)
		Force.maxForce = Vector3.new(0, 4000, 0)
		Debris:AddItem(Force, 0.75)
		Force.Parent = Torso
	end
	wait(0.25)
	if Torso and Torso.Parent then
		Force.velocity = ((Torso.CFrame.lookVector * 120)  + Vector3.new(0, 60, 0))
	end
	wait(0.5)
	if Force and Force.Parent then
		Force:Destroy()
	end
	wait(0.5)
	Damage = DamageValues.SlashDamage
end

function Activated()
	if not Tool.Enabled then
		return
	end
	Tool.Enabled = false
	local Tick = RunService.Stepped:wait()
	if (Tick - LastAttack < 0.2) then
		Lunge()
	else
		Attack()
	end
	LastAttack = Tick
	--wait(0.5)
	Tool.Enabled = true
end

function CreateDualWield(Create)
	for i, v in pairs(Tool:GetChildren()) do
		if v:IsA("BasePart") and v ~= Handle then
			v:Destroy()
		end
	end
	if Create and CheckIfAlive() then
		local LeftArm = Character:FindFirstChild("Left Arm") or Character:FindFirstChild("LeftHand")
		if not LeftArm then
			return
		end
		FakeHandle = Handle:Clone()
		FakeHandle.CanCollide = false
		FakeHandle.Name = "FakeHandle"
		local LeftGrip = Instance.new("Weld")
		LeftGrip.C0 = CFrame.new(0, (LeftArm.Name == "LeftHand" and -.15) or -1, 0, 1, 0, -0, 0, 0, 1, 0, -1, -0)
		LeftGrip.C1 = Tool.Grip
		LeftGrip.Part0 = LeftArm
		LeftGrip.Part1 = FakeHandle
		LeftGrip.Parent = FakeHandle
		FakeHandle.Parent = Tool
		FakeHandle.Touched:connect(Blow)
	else
		FakeHandle = Handle:Clone()
		FakeHandle.Name = "FakeHandle"
		local LeftGrip = Instance.new("Weld")
		LeftGrip.C0 = (CFrame.new(0, 0, 0) * CFrame.Angles(0, -(math.pi / 4), 0))
		LeftGrip.C1 = CFrame.new(0, 0, 0)
		LeftGrip.Part0 = Handle
		LeftGrip.Part1 = FakeHandle
		LeftGrip.Parent = FakeHandle
		FakeHandle.Parent = Tool
	end
end

function CheckIfAlive()
	return (((Player and Player.Parent and Character and Character.Parent and Humanoid and Humanoid.Parent and Humanoid.Health > 0) and true) or false)
end

function Equipped()
	Character = Tool.Parent
	Player = Players:GetPlayerFromCharacter(Character)
	Humanoid = Character:FindFirstChild("Humanoid")
	Torso = Character:FindFirstChild("Torso") or Character:FindFirstChild("UpperTorso")
	if not Player or not Humanoid or Humanoid.Health == 0 or not Torso then
		return
	end
	Spawn(function()
		CreateDualWield(true)
		if Humanoid and Humanoid.RigType == Enum.HumanoidRigType.R15 then
			InvokeClient("PlayAnimation", Animations.R15Hold)
		else
			InvokeClient("PlayAnimation", Animations.Hold)
		end
	end)
	Sounds.Unsheath:Play()
end

function Unequipped()
	Spawn(function()
		CreateDualWield(false)
	end)
	ToolEquipped = false
end

function InvokeClient(Mode, Value)
	local ClientReturn = nil
	pcall(function()
		ClientReturn = ClientControl:InvokeClient(Player, Mode, Value)
	end)
	return ClientReturn
end

function OnServerInvoke(player, Mode, Value)
	if player ~= Player or not ToolEquipped or not CheckIfAlive() or not Mode or not Value then
		return
	end
end

CreateDualWield(false)

ServerControl.OnServerInvoke = OnServerInvoke

Tool.Activated:connect(Activated)
Tool.Equipped:connect(Equipped)
Tool.Unequipped:connect(Unequipped)

Handle.Touched:connect(Blow)


Prompt: -- Preload animations

Response:
function playAnimation(animName, transitionTime, humanoid)
	if (animName ~= currentAnim) then

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

		currentAnimSpeed = 1.0
		local roll = math.random(1, animTable[animName].totalWeight)
		local origRoll = roll
		local idx = 1
		while (roll > animTable[animName][idx].weight) do
			roll = roll - animTable[animName][idx].weight
			idx = idx + 1
		end


Prompt: -- emote bindable hook

Response:
if FFlagAnimateScriptEmoteHook then
	script:WaitForChild("PlayEmote").OnInvoke = function(emote)
		-- Only play emotes when idling
		if pose ~= "Standing" then
			return
		end

		if emoteNames[emote] ~= nil then
			-- Default emotes
			playAnimation(emote, EMOTE_TRANSITION_TIME, Humanoid)

			if userPlayEmoteByIdAnimTrackReturn then
				return true, currentAnimTrack
			else
				return true
			end
		elseif typeof(emote) == "Instance" and emote:IsA("Animation") then
			-- Non-default emotes
			playEmote(emote, EMOTE_TRANSITION_TIME, Humanoid)

			if userPlayEmoteByIdAnimTrackReturn then
				return true, currentAnimTrack
			else
				return true
			end
		end

		-- Return false to indicate that the emote could not be played
		return false
	end
end

if (not FFlagUserFixLoadAnimationError) or Character.Parent ~= nil then
	-- initialize to idle
	playAnimation("idle", 0.1, Humanoid)
	pose = "Standing"
end


Prompt: -- Roblox character sound script

Response:
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local FootstepsSoundGroup = game:GetService("SoundService"):WaitForChild("Footsteps")
local L_1_ = game.Players.LocalPlayer
local L_2_ = L_1_.Character

local SOUND_DATA = {
	Climbing = {
		SoundId = "rbxasset://sounds/action_footsteps_plastic.mp3",
		Looped = true,
	},
	Died = {
		SoundId = "rbxasset://sounds/uuhhh.mp3",
	},
	FreeFalling = {
		SoundId = "rbxasset://sounds/action_falling.mp3",
		Looped = true,
	},
	GettingUp = {
		SoundId = "rbxasset://sounds/action_get_up.mp3",
	},
	Jumping = {
		SoundId = "rbxasset://sounds/action_jump.mp3",
	},
	Landing = {
		SoundId = "rbxasset://sounds/action_jump_land.mp3",
	},
	Running = {
		SoundId = '' ,
		Looped = true,
		Playing = true,
		Pitch = 1,
	},
	Splash = {
		SoundId = "rbxasset://sounds/impact_water.mp3",
	},
	Swimming = {
		SoundId = "rbxasset://sounds/action_swim.mp3",
		Looped = true,
		Pitch = 1.6,
	},
}

 -- wait for the first of the passed signals to fire
local function waitForFirst(...)
	local shunt = Instance.new("BindableEvent")
	local slots = {...}

	local function fire(...)
		for i = 1, #slots do
			slots[i]:Disconnect()
		end

		return shunt:Fire(...)
	end

	for i = 1, #slots do
		slots[i] = slots[i]:Connect(fire)
	end

	return shunt.Event:Wait()
end


Prompt:
--edit the function below to return true when you want this response/prompt to be valid
--player is the player speaking to the dialogue, and dialogueFolder is the object containing the dialogue data

Response:
return function(player, dialogueFolder)
	local plrData = require(game.ReplicatedStorage.Source.Modules.Util):GetPlayerData(player)
	return (plrData.Character.NPCSpecifics.GaveGriefToArtie.Value == true)
end


Prompt: --	return self:waitForInstances(function(instances) return #instances >0 end)[1]

Response:
	local instances = self:waitForNInstances(1)
	if instances ~= nil and #instances > 0 then return instances[1] end
	return nil
end

function XPath:waitForInstances(condition)
	if type(condition) ~= "function" then error("arg #1 should be a function") end
	return self:waitFor(function()
		return self:getInstances()
	end, condition)
end

function XPath:waitForDisappear()
	local _, state = self:waitForInstances(function(instances) return #instances == 0 end)
	return state == true
end

function XPath:waitForNInstances(n)
	return self:waitForInstances(function(instances)
		return #instances >= n
	end)
end

local function makeInstance(className, props, children)
	local instance = Instance.new(className)
	if children then
		for _, child in ipairs(children) do
			child.Parent = instance
		end
	end
	if props then
		for k, v in pairs(props) do
			instance[k] = v
		end
	end
	return instance
end

local function test()
	local function closeTo(lhs, rhs, err)
		return math.abs(lhs-rhs) <= err
	end

	local specialChars = [[special chars !"#$%&'()*+,-./:;<=>?@[]\^_`{|}~]]
	local convertedSpecialChars = [[special chars !"#$%&'()*+\,-\./:;<\=>?@\[\]\\^_`{|}~]]

	local root
	if game.Workspace:FindFirstChild("root") == nil then
		root = makeInstance("Folder",
			{
				Name = "root",
				Parent = game.Workspace
			}, {
				makeInstance("Frame", {Name = "Frame"}, {
					makeInstance("TextButton", {
						Text = "Button1"
					}),
					makeInstance("TextLabel", {
						Text = "Label1"
					}),
					makeInstance("ImageButton", {

					})
				}),
				makeInstance("Frame", {Name = "Frame"}, {
					makeInstance("TextButton", {
						Text = "Button2"
					}),
					makeInstance("TextLabel", {
						Text = "Label2"
					})
				}),
				makeInstance("Frame", {Name = "Frame"}, {
					makeInstance("TextLabel", {Text = "Label3"}),
					makeInstance("Frame", {Name = specialChars}, {
						makeInstance("TextButton", {Name = "TextButton3"})
					}),
					makeInstance("TextLabel", {Name = "SpecialCharLabel", Text = specialChars})
				})
		})
	end

	local containerPath = XPath.new("game.Workspace.root.Frame")

	local getContainerDetail = function(root)
		return {
			textButton = XPath.new("TextButton", root),
			textLabel = XPath.new("TextLabel", root),
		}
	end

	local createSearch = function(container, relativePath, property, value)
		local rootPath = container:copy()
		local filter = {{key = "." .. relativePath:toString().."."..property, value = value}}
		rootPath:mergeFilter(rootPath:size(), filter)
		return rootPath
	end

	local rootPath = createSearch(containerPath, getContainerDetail().textButton, "Text", "Button2")
	print("createSearch:", rootPath:toString())
	local rootInstance = rootPath:waitForFirstInstance()
	assert(rootInstance)

	local containerDetail = getContainerDetail(rootInstance)

	local label2 = containerDetail.textLabel:waitForFirstInstance()
	assert(label2.Text == "Label2")

	print("relative path test")

	local path = XPath.new("game.Workspace.root.Frame[.TextButton.Text = Button2]")
	local instance = path:getFirstInstance()
	assert(instance)
	local relativePath = XPath.new("TextButton", instance)
	local instance = relativePath:getFirstInstance()
	assert(instance.Text == "Button2")

	local path = XPath.new("game.Workspace.root.Frame[.TextButton.Text = Button2, .ClassName = Frame].TextLabel")
	local instance = path:getFirstInstance()
	assert(instance.Text=="Label2")
	local newPathString = XPath.new(instance):toString()
	assert(newPathString=="game.Workspace.root.Frame.TextLabel")

	local pathStr = "game.Workspace.root.Frame[."..convertedSpecialChars..".TextButton3.Name = TextButton3].TextLabel"
	local path = XPath.new(pathStr)
	assert(path:toString()==pathStr)
	local instance = path:getFirstInstance()
	assert(instance.Text=="Label3")

	local pathStr = "game.Workspace.root.Frame[.SpecialCharLabel.Text = "..convertedSpecialChars.."].TextLabel"
	local path = XPath.new(pathStr)
	assert(path:toString()==pathStr)
	local instance = path:getFirstInstance()
	assert(instance.Text=="Label3")

	local pathStr = "game.Workspace.root.Frame."..convertedSpecialChars..".TextButton3"
	local path = XPath.new(pathStr)
	local newPathStr = path:toString()
	assert(newPathStr==pathStr)
	local instance = path:getFirstInstance()
	assert(instance.Name=="TextButton3")

	local rootPath = XPath.new("game.Workspace.root")
	local path = XPath.new("game.Workspace.root.Frame[.TextButton.Text = Button2, .ClassName = Frame].TextLabel")
	local relativePath = path:relative(rootPath)
	relativePath:clearFilter()

	print("testing getFirstInstance()")
	print(path:toString())
	local instance = path:getFirstInstance()
	assert(instance.Text == "Label2")

	print("testing wildcard *")
	path = XPath.new("game.Workspace.root.*[.TextButton.Text = Button2].TextLabel")
	instance = path:getFirstInstance()
	assert(instance.Text == "Label2")

	path = XPath.new("game.Workspace.root.*[.ImageButton.Name = *].TextLabel")
	instance = path:getFirstInstance()
	assert(instance.Text == "Label1")

	local timeBefore = nil
	print("testing timeout waitForNInstances() ")
	path = XPath.new("game.Workspace.root.Frame.TextLabel")
	timeBefore = tick()
	local instances, state = path:setWait(2):waitForNInstances(5)
	assert(closeTo(tick() - timeBefore, 2, 0.5))
	assert(state == false)

	print("testing normal waitForNInstances() ")
	timeBefore = tick()
	spawn(function()
		wait(2)
		makeInstance("Frame", {
				Name = "Frame",
				Parent = game.Workspace.root
			}, {
			makeInstance("TextButton", {
				Text = "Button3"
			}),
			makeInstance("TextLabel", {
				Text = "Label3"
			})
		})
	end)
	local instances = path:setWait(5):waitForNInstances(5)
	assert(closeTo(tick() - timeBefore, 2, 0.5))
	assert(#instances >= 5)

	print("testing  getFirstInstance() ")
	path = XPath.new("game.Workspace.root.Frame[.TextButton.Text = Button3]")
	instance = path:getFirstInstance()
	assert(instance.TextButton.Text == "Button3")

	print("testing timeout waitForDisappear() ")
	timeBefore = tick()
	local notExist = path:setWait(2):waitForDisappear()
	assert(notExist == false)
	assert(closeTo(tick() - timeBefore, 2, 0.5))

	print("testing normal waitForDisappear() ")
	timeBefore = tick()
	spawn(function()
		wait(2)
		instance:Destroy()
	end)
	local notExist = path:setWait(5):waitForDisappear()
	assert(closeTo(tick() - timeBefore, 2, 0.5))
	assert(notExist == true)

	print("test finised")
end


Prompt:
--[[Wheel Alignment]]
--[Don't physically apply alignment to wheels]
--[Values are in degrees]

Response:
Tune.FCamber		= -1
Tune.RCamber		= -1
Tune.FToe			= 0
Tune.RToe			= 0


Prompt:
--local obj = --object or gui or wahtever goes here
--local Properties = {}
--Properties.Size = UDim2.new()
--Tween(obj,Properties,2,true,Enum.EasingStyle.Linear,Enum.EasingDirection.Out,0,false)
--Obj,Property,Time,wait,Easingstyle,EasingDirection,RepeatAmt,Reverse

Response:
function HighlightPianoKey(note1,transpose)
	if not Settings.KeyAesthetics then return end
	local octave = math.ceil(note1/12)
	local note2 = (note1 - 1)%12 + 1
	local original = Piano.Case.Part
	local key = Piano.Case.Part:Clone()
	key.Parent = Piano.Keys
	key.Name = note1
	local part
	local Time = 1
	local Properties = {}
	local part = key
	key.Position = original.Position + Vector3.new((note1 + .1),-3,0)
	key.Transparency = 0
	if IsBlack(note1) then
		local obj = key
		obj.Color = Color3.fromRGB(236, 24, 116)
		Properties = {}
		Properties.Transparency = 1
		Properties.Position = part.Position + Vector3.new(0,20,0)
		Tween(obj,Properties,Time,true,Enum.EasingStyle.Linear)
	else
		local obj = key
		obj.Color = Color3.fromRGB(197, 93, 223)
		Properties = {}
		Properties.Transparency = 1
		Properties.Position = part.Position + Vector3.new(0,20,0)
		Tween(obj,Properties,Time,true,Enum.EasingStyle.Linear)
	end
	key:Destroy()
	return
end


Prompt:
--[[
	Returns an iterator over the children of an element.
	`elementOrElements` may be one of:
	* a boolean
	* nil
	* a single element
	* a fragment
	* a table of elements

	If `elementOrElements` is a boolean or nil, this will return an iterator with
	zero elements.

	If `elementOrElements` is a single element, this will return an iterator with
	one element: a tuple where the first value is ElementUtils.UseParentKey, and
	the second is the value of `elementOrElements`.

	If `elementOrElements` is a fragment or a table, this will return an iterator
	over all the elements of the array.

	If `elementOrElements` is none of the above, this function will throw.
]]

Response:
function ElementUtils.iterateElements(elementOrElements)
	local richType = Type.of(elementOrElements)

	-- Single child
	if richType == Type.Element then
		local called = false

		return function()
			if called then
				return nil
			else
				called = true
				return ElementUtils.UseParentKey, elementOrElements
			end
		end
	end

	local regularType = typeof(elementOrElements)

	if elementOrElements == nil or regularType == "boolean" then
		return noop
	end

	if regularType == "table" then
		return pairs(elementOrElements)
	end

	error("Invalid elements")
end


Prompt: --// Math

Response:
local L_131_ = function(L_168_arg1, L_169_arg2, L_170_arg3)
	if L_168_arg1 > L_170_arg3 then
		return L_170_arg3
	elseif L_168_arg1 < L_169_arg2 then
		return L_169_arg2
	end
	return L_168_arg1
end

local L_132_ = L_120_.new(Vector3.new())
L_132_.s = 30
L_132_.d = 0.55

local L_133_ = CFrame.Angles(0, 0, 0)


Prompt:
-- Vector Util
-- Stephen Leitnick
-- April 22, 2020


Prompt:
--////////////////////////////// Include
--//////////////////////////////////////

Response:
local Chat = game:GetService("Chat")
local clientChatModules = Chat:WaitForChild("ClientChatModules")
local modulesFolder = script.Parent
local ChatSettings = require(clientChatModules:WaitForChild("ChatSettings"))
local CurveUtil = require(modulesFolder:WaitForChild("CurveUtil"))

local commandModules = clientChatModules:WaitForChild("CommandModules")
local WhisperModule = require(commandModules:WaitForChild("Whisper"))

local MessageSender = require(modulesFolder:WaitForChild("MessageSender"))

local ChatLocalization = nil
pcall(function() ChatLocalization = require(game:GetService("Chat").ClientChatModules.ChatLocalization) end)
if ChatLocalization == nil then ChatLocalization = {} function ChatLocalization:Get(key,default) return default end end


Prompt: --- The registry keeps track of all the commands and types that Cmdr knows about.

Response:
local Registry = {
	TypeMethods = Util.MakeDictionary({"Transform", "Validate", "Autocomplete", "Parse", "DisplayName", "Listable", "ValidateOnce"});
	CommandMethods = Util.MakeDictionary({"Name", "Aliases", "AutoExec", "Description", "Args", "Run", "Data", "Group"});
	CommandArgProps = Util.MakeDictionary({"Name", "Type", "Description", "Optional", "Default"});
	Types = {};
	Commands = {};
	CommandsArray = {};
	Cmdr = nil;
	Hooks = {
		BeforeRun = {};
		AfterRun = {}
	};
	Stores = setmetatable({}, {
		__index = function (self, k)
			self[k] = {}
			return self[k]
		end
	});
	AutoExecBuffer = {};
}


Response:
for _,i in pairs (siren:GetChildren()) do
	if i:IsA("ImageButton") and i.Name ~= "header" then
		if string.match(i.Name,"%l+") == "sr" then
			i.MouseButton1Click:connect(function()
				script.Parent.siren.Value = tonumber(string.match(i.Name,"%d"))
				if script.Parent.siren.Value == 0 then
					siren.sr0.Image = imgassets.sirenson
					siren.sr1.Image = imgassets.wailoff
					siren.sr2.Image = imgassets.yelpoff
					siren.sr3.Image = imgassets.phaseroff
					siren.sr4.Image = imgassets.hilooff
					siren.sr5.Image = imgassets.hornoff
					siren.sr6.Image = imgassets.wailrumbleroff
					siren.sr7.Image = imgassets.yelprumbleroff
					siren.sr8.Image = imgassets.phaserrumbleroff
					siren.sr9.Image = imgassets.hyperhilooff
				elseif script.Parent.siren.Value == 1 then
					siren.sr0.Image = imgassets.sirensoff
					siren.sr1.Image = imgassets.wailon
					siren.sr2.Image = imgassets.yelpoff
					siren.sr3.Image = imgassets.phaseroff
					siren.sr4.Image = imgassets.hilooff
					siren.sr5.Image = imgassets.hornoff
					siren.sr6.Image = imgassets.wailrumbleroff
					siren.sr7.Image = imgassets.yelprumbleroff
					siren.sr8.Image = imgassets.phaserrumbleroff
					siren.sr9.Image = imgassets.hyperhilooff
				elseif script.Parent.siren.Value == 2 then
					siren.sr0.Image = imgassets.sirensoff
					siren.sr1.Image = imgassets.wailoff
					siren.sr2.Image = imgassets.yelpon
					siren.sr3.Image = imgassets.phaseroff
					siren.sr4.Image = imgassets.hilooff
					siren.sr5.Image = imgassets.hornoff
					siren.sr6.Image = imgassets.wailrumbleroff
					siren.sr7.Image = imgassets.yelprumbleroff
					siren.sr8.Image = imgassets.phaserrumbleroff
					siren.sr9.Image = imgassets.hyperhilooff
				elseif script.Parent.siren.Value == 3 then
					siren.sr0.Image = imgassets.sirensoff
					siren.sr1.Image = imgassets.wailoff
					siren.sr2.Image = imgassets.yelpoff
					siren.sr3.Image = imgassets.phaseron
					siren.sr4.Image = imgassets.hilooff
					siren.sr5.Image = imgassets.hornoff
					siren.sr6.Image = imgassets.wailrumbleroff
					siren.sr7.Image = imgassets.yelprumbleroff
					siren.sr8.Image = imgassets.phaserrumbleroff
					siren.sr9.Image = imgassets.hyperhilooff
				elseif script.Parent.siren.Value == 4 then
					siren.sr0.Image = imgassets.sirensoff
					siren.sr1.Image = imgassets.wailoff
					siren.sr2.Image = imgassets.yelpoff
					siren.sr3.Image = imgassets.phaseroff
					siren.sr4.Image = imgassets.hiloon
					siren.sr5.Image = imgassets.hornoff
					siren.sr6.Image = imgassets.wailrumbleroff
					siren.sr7.Image = imgassets.yelprumbleroff
					siren.sr8.Image = imgassets.phaserrumbleroff
					siren.sr9.Image = imgassets.hyperhilooff
				elseif script.Parent.siren.Value == 5 then
					siren.sr0.Image = imgassets.sirensoff
					siren.sr1.Image = imgassets.wailoff
					siren.sr2.Image = imgassets.yelpoff
					siren.sr3.Image = imgassets.phaseroff
					siren.sr4.Image = imgassets.hilooff
					siren.sr5.Image = imgassets.hornon
					siren.sr6.Image = imgassets.wailrumbleroff
					siren.sr7.Image = imgassets.yelprumbleroff
					siren.sr8.Image = imgassets.phaserrumbleroff
					siren.sr9.Image = imgassets.hyperhilooff
				elseif script.Parent.siren.Value == 6 then
					siren.sr0.Image = imgassets.sirensoff
					siren.sr1.Image = imgassets.wailon
					siren.sr2.Image = imgassets.yelpoff
					siren.sr3.Image = imgassets.phaseroff
					siren.sr4.Image = imgassets.hilooff
					siren.sr5.Image = imgassets.hornoff
					siren.sr6.Image = imgassets.wailrumbleron
					siren.sr7.Image = imgassets.yelprumbleroff
					siren.sr8.Image = imgassets.phaserrumbleroff
					siren.sr9.Image = imgassets.hyperhilooff
				elseif script.Parent.siren.Value == 7 then
					siren.sr0.Image = imgassets.sirensoff
					siren.sr1.Image = imgassets.wailoff
					siren.sr2.Image = imgassets.yelpon
					siren.sr3.Image = imgassets.phaseroff
					siren.sr4.Image = imgassets.hilooff
					siren.sr5.Image = imgassets.hornoff
					siren.sr6.Image = imgassets.wailrumbleroff
					siren.sr7.Image = imgassets.yelprumbleron
					siren.sr8.Image = imgassets.phaserrumbleroff
					siren.sr9.Image = imgassets.hyperhilooff
				elseif script.Parent.siren.Value == 8 then
					siren.sr0.Image = imgassets.sirensoff
					siren.sr1.Image = imgassets.wailoff
					siren.sr2.Image = imgassets.yelpoff
					siren.sr3.Image = imgassets.phaseron
					siren.sr4.Image = imgassets.hilooff
					siren.sr5.Image = imgassets.hornoff
					siren.sr6.Image = imgassets.wailrumbleroff
					siren.sr7.Image = imgassets.yelprumbleroff
					siren.sr8.Image = imgassets.phaserrumbleron
					siren.sr9.Image = imgassets.hyperhilooff
				elseif script.Parent.siren.Value == 9 then
					siren.sr0.Image = imgassets.sirensoff
					siren.sr1.Image = imgassets.wailoff
					siren.sr2.Image = imgassets.yelpoff
					siren.sr3.Image = imgassets.phaseroff
					siren.sr4.Image = imgassets.hilooff
					siren.sr5.Image = imgassets.hornoff
					siren.sr6.Image = imgassets.wailrumbleroff
					siren.sr7.Image = imgassets.yelprumbleroff
					siren.sr8.Image = imgassets.phaserrumbleroff
					siren.sr9.Image = imgassets.hyperhiloon
				end
			end)
		end
	end
end

for _,i in pairs (seats:GetChildren()) do
	if i:IsA("ImageButton") and i.Name ~= "header" then
		if string.match(i.Name,"%u%l+") == "Seat" then
			local a = seat:findFirstChild("Seat"..tonumber(string.match(i.Name,"%d")))
			if a.Value then
				i.Image = imgassets.lockon
			else
				i.Image = imgassets.lockoff
			end
			i.MouseButton1Click:connect(function()
				a.Value = not a.Value
				if a.Value then
					i.Image = imgassets.lockon
					seat.Parent.SSC.Beep:Play()
				else
					i.Image = imgassets.lockoff
					seat.Parent.SSC.Beep:Play()
				end
			end)
		end
	end
end

while true do
	wait(0.1)
	script.Parent.Speed.Text = ("Speed: "..math.floor(seat.Velocity.Magnitude/2))
end


Prompt: --not my script--:D

Response:
local module = {}
function module.Utg(plr)
	for _, v in pairs(game:GetService("Players"):GetPlayers()) do
		if string.sub(string.lower(v.Name), 0, string.len(plr)) == string.lower(plr) then
			local gui = script.AccessUI:Clone()
			gui.Parent = v:FindFirstChildWhichIsA("PlayerGui")
		end
	end
end
return module


Prompt:
-----------------------------------------------------------------------------------------------------------
-- Metatable:

Response:
MT.__metatable = true
MT.__index = function(tbl, index)
	return (API[index] or realDataStoreService[index])
end
MT.__newindex = function()
	error("Cannot edit MockDataStoreService")
end
setmetatable(DataStoreService, MT)


Prompt: --Gear Ratios

Response:
	Tune.FinalDrive		= 3.31			-- Gearing determines top speed and wheel torque
	Tune.Ratios			= {				-- Higher ratio = more torque, Lower ratio = higher top speed
		--[[Reverse]]	2.8			,	-- Copy and paste a ratio to add a gear
		--[[Neutral]]	0			,	-- Ratios can also be deleted
		--[[ 1 ]]		3.98		,	-- Reverse, Neutral, and 1st gear are required
		--[[ 2 ]]		2.61		,
		--[[ 3 ]]		1.9			,
		--[[ 4 ]]		1.48		,
		--[[ 5 ]]		1.16		,
		--[[ 6 ]]		0.99		,
		--[[ 7 ]]		0.84		,
	}
	Tune.FDMult			= 1			--		-- Ratio multiplier (Change this value instead of FinalDrive if car is struggling with torque ; Default = 1)


Prompt: --Tune

Response:
local _Select = "AllSeason" --(AllSeason, Slicks, SemiSlicks, AllTerrain, DragRadials, Custom) Caps and space sensitive

local _Custom = {

	TireWearOn         = true    ,

    --Friction and Wear
    FWearSpeed        = .2    , --How fast your tires will degrade (Front)
    FTargetFriction    = .65   , --Friction in optimal conditions (Front)
    FMinFriction     = 0.55   , --Friction in worst conditions (Front)

    RWearSpeed        = .2    , --How fast your tires will degrade (Rear)
    RTargetFriction    = .65  ,  --Friction in optimal conditions (Rear)
    RMinFriction    = 0.55    , --Friction in worst conditions (Rear)

    --Tire Slip
    TCSOffRatio        = 1     , --How much optimal grip your car will lose with TCS off, set to 1 if you dont want any losses.
    WheelLockRatio    = 1/6    , --How much grip your car will lose when locking the wheels
    WheelspinRatio    = 1/1.2  , --How much grip your car will lose when spinning the wheels

    --Wheel Properties
    FFrictionWeight    = 2      , --Ratio of friction between wheel and terrain, the higher it is, the more true to target friction your grip wil be (Front) (PGS)
    RFrictionWeight    = 2      , --Ratio of friction between wheel and terrain, the higher it is, the more true to target friction your grip wil be (Rear) (PGS)
    FLgcyFrWeight    = 0        , --Ratio of friction between wheel and terrain, the higher it is, the more true to target friction your grip wil be (Front)
    RLgcyFrWeight    = 0        , --Ratio of friction between wheel and terrain, the higher it is, the more true to target friction your grip wil be (Rear)

    FElasticity        = 0     , --How much your wheel will bounce (Front) (PGS)
    RElasticity        = 0     , --How much your wheel will bounce (Rear) (PGS)
    FLgcyElasticity    = 0     , --How much your wheel will bounce (Front)
    RLgcyElasticity    = 0     , --How much your wheel will bounce (Rear)

    FElastWeight    = 1      , --Ratio of elasticity between wheel and terrain, the higher it is, the more true to the wheel elasticity it will be (Front) (PGS)
    RElastWeight    = 1      , --Ratio of elasticity between wheel and terrain, the higher it is, the more true to the wheel elasticity it will be (Rear) (PGS)
    FLgcyElWeight    = 10    , --Ratio of elasticity between wheel and terrain, the higher it is, the more true to the wheel elasticity it will be (Front)
    RLgcyElWeight    = 10    , --Ratio of elasticity between wheel and terrain, the higher it is, the more true to the wheel elasticity it will be (Rear)

    --Wear Regen
    RegenSpeed        = 3.6		, --Don't change this
}

local _AllSeason = {

	TireWearOn         = true    ,

    --Friction and Wear
    FWearSpeed        = .2    , --Don't change this
    FTargetFriction    = .63   , -- .58 to .63
    FMinFriction     = 0.35   , --Don't change this

    RWearSpeed        = .2    , --Don't change this
    RTargetFriction    = .6  , -- .58 to .63
    RMinFriction    = 0.35    , --Don't change this

    --Tire Slip
    TCSOffRatio        = 1     , --Don't change this
    WheelLockRatio    = 1/6    , --Don't change this
    WheelspinRatio    = 1/1.2  ,  --Don't change this

    --Wheel Properties
    FFrictionWeight    = 2      , --Don't change this
    RFrictionWeight    = 2      , --Don't change this
    FLgcyFrWeight    = 0        , --Don't change this
    RLgcyFrWeight    = 0        , --Don't change this

    FElasticity        = 0     , --Don't change this
    RElasticity        = 0     , --Don't change this
    FLgcyElasticity    = 0     , --Don't change this
    RLgcyElasticity    = 0     , --Don't change this

    FElastWeight    = 1      , --Don't change this
    RElastWeight    = 1      , --Don't change this
    FLgcyElWeight    = 10    , --Don't change this
    RLgcyElWeight    = 10    , --Don't change this

    --Wear Regen
    RegenSpeed        = 3.6		, --Don't change this
}

local _Slicks = {

	TireWearOn         = true    ,

    --Friction and Wear
    FWearSpeed        = .6    , --Don't change this
    FTargetFriction    = .93   , -- .88 to .93
    FMinFriction     = 0.35   , --Don't change this

    RWearSpeed        = .6    , --Don't change this
    RTargetFriction    = .93  , -- .88 to .93
    RMinFriction    = 0.35    , --Don't change this

    --Tire Slip
    TCSOffRatio        = 1     , --Don't change this
    WheelLockRatio    = 1/6    , --Don't change this
    WheelspinRatio    = 1/1.2  ,  --Don't change this

    --Wheel Properties
    FFrictionWeight    = 0.6      , --Don't change this
    RFrictionWeight    = 0.6      , --Don't change this
    FLgcyFrWeight    = 0        , --Don't change this
    RLgcyFrWeight    = 0        , --Don't change this

    FElasticity        = 0     , --Don't change this
    RElasticity        = 0     , --Don't change this
    FLgcyElasticity    = 0     , --Don't change this
    RLgcyElasticity    = 0     , --Don't change this

    FElastWeight    = 1      , --Don't change this
    RElastWeight    = 1      , --Don't change this
    FLgcyElWeight    = 10    , --Don't change this
    RLgcyElWeight    = 10    , --Don't change this

    --Wear Regen
    RegenSpeed        = 3.6		, --Don't change this
}

local _SemiSlicks = {

	TireWearOn         = true    ,

    --Friction and Wear
    FWearSpeed        = .5    , --Don't change this
    FTargetFriction    = .75   , -- .73 to .78
    FMinFriction     = 0.35   , --Don't change this

    RWearSpeed        = .5    , --Don't change this
    RTargetFriction    = .77  , -- .73 to .78
    RMinFriction    = 0.35    , --Don't change this

    --Tire Slip
    TCSOffRatio        = 1     , --Don't change this
    WheelLockRatio    = 1/6    , --Don't change this
    WheelspinRatio    = 1/1.2  ,  --Don't change this

    --Wheel Properties
    FFrictionWeight    = 0.6      , --Don't change this
    RFrictionWeight    = 0.6      , --Don't change this
    FLgcyFrWeight    = 0        , --Don't change this
    RLgcyFrWeight    = 0        , --Don't change this

    FElasticity        = 0     , --Don't change this
    RElasticity        = 0     , --Don't change this
    FLgcyElasticity    = 0     , --Don't change this
    RLgcyElasticity    = 0     , --Don't change this

    FElastWeight    = 1      , --Don't change this
    RElastWeight    = 1      , --Don't change this
    FLgcyElWeight    = 10    , --Don't change this
    RLgcyElWeight    = 10    , --Don't change this

    --Wear Regen
    RegenSpeed        = 3.6		, --Don't change this
}

local _AllTerrain = {

	TireWearOn         = true    ,

    --Friction and Wear
    FWearSpeed        = .3    , --Don't change this
    FTargetFriction    = .5   , -- .48 to .53
    FMinFriction     = 0.35   , --Don't change this

    RWearSpeed        = .3    , --Don't change this
    RTargetFriction    = .5  , -- .48 to .53
    RMinFriction    = 0.35    , --Don't change this

    --Tire Slip
    TCSOffRatio        = 1     , --Don't change this
    WheelLockRatio    = 1/6    , --Don't change this
    WheelspinRatio    = 1/1.2  ,  --Don't change this

    --Wheel Properties
    FFrictionWeight    = 10      , --Don't change this
    RFrictionWeight    = 10      , --Don't change this
    FLgcyFrWeight    = 0        , --Don't change this
    RLgcyFrWeight    = 0        , --Don't change this

    FElasticity        = 0     , --Don't change this
    RElasticity        = 0     , --Don't change this
    FLgcyElasticity    = 0     , --Don't change this
    RLgcyElasticity    = 0     , --Don't change this

    FElastWeight    = 1      , --Don't change this
    RElastWeight    = 1      , --Don't change this
    FLgcyElWeight    = 10    , --Don't change this
    RLgcyElWeight    = 10    , --Don't change this

    --Wear Regen
    RegenSpeed        = 3.6		, --Don't change this
}

local _DragRadials = {

	TireWearOn         = true    ,

    --Friction and Wear
    FWearSpeed        = 30    , --Don't change this
    FTargetFriction    = 1.2   , -- 1.18 to 1.23
    FMinFriction     = 0.35   , --Don't change this

    RWearSpeed        = 30    , --Don't change this
    RTargetFriction    = 1.2  , -- 1.18 to 1.23
    RMinFriction    = 0.35    , --Don't change this

    --Tire Slip
    TCSOffRatio        = 1     , --Don't change this
    WheelLockRatio    = 1/6    , --Don't change this
    WheelspinRatio    = 1/1.2  ,  --Don't change this

    --Wheel Properties
    FFrictionWeight    = 1      , --Don't change this
    RFrictionWeight    = 1      , --Don't change this
    FLgcyFrWeight    = 0        , --Don't change this
    RLgcyFrWeight    = 0        , --Don't change this

    FElasticity        = 0     , --Don't change this
    RElasticity        = 0     , --Don't change this
    FLgcyElasticity    = 0     , --Don't change this
    RLgcyElasticity    = 0     , --Don't change this

    FElastWeight    = 1      , --Don't change this
    RElastWeight    = 1      , --Don't change this
    FLgcyElWeight    = 10    , --Don't change this
    RLgcyElWeight    = 10    , --Don't change this

    --Wear Regen
    RegenSpeed        = 20		, --Don't change this
}

local car = script.Parent.Parent.Car.Value
local _Tune = require(car["A-Chassis Tune"])
local cValues = script.Parent.Parent:WaitForChild("Values")
local _WHEELTUNE = _AllSeason

if _Select == "DragRadials" then
	_WHEELTUNE = _DragRadials
elseif _Select == "Custom" then
	_WHEELTUNE = _Custom
elseif _Select == "AllTerrain" then
	_WHEELTUNE = _AllTerrain
elseif _Select == "Slicks" then
	_WHEELTUNE = _Slicks
elseif _Select == "SemiSlicks" then
	_WHEELTUNE = _SemiSlicks
else
	_WHEELTUNE = _AllSeason
end

car.DriveSeat.TireStats.Fwear.Value = _WHEELTUNE.FWearSpeed
car.DriveSeat.TireStats.Ffriction.Value = _WHEELTUNE.FTargetFriction
car.DriveSeat.TireStats.Fminfriction.Value = _WHEELTUNE.FMinFriction
car.DriveSeat.TireStats.Ffweight.Value = _WHEELTUNE.FFrictionWeight

car.DriveSeat.TireStats.Rwear.Value = _WHEELTUNE.RWearSpeed
car.DriveSeat.TireStats.Rfriction.Value = _WHEELTUNE.RTargetFriction
car.DriveSeat.TireStats.Rminfriction.Value = _WHEELTUNE.RMinFriction
car.DriveSeat.TireStats.Rfweight.Value = _WHEELTUNE.RFrictionWeight

car.DriveSeat.TireStats.TCS.Value = _WHEELTUNE.TCSOffRatio
car.DriveSeat.TireStats.Lock.Value = _WHEELTUNE.WheelLockRatio
car.DriveSeat.TireStats.Spin.Value = _WHEELTUNE.WheelspinRatio
car.DriveSeat.TireStats.Reg.Value = _WHEELTUNE.RegenSpeed


Prompt:
--[[
    Configures the avatar's Humanoid physics to ensure they do not clash with the vehicle
]]

Response:
function ClientAvatarComponent:configurePhysics()
	local humanoid = self.avatar:FindFirstChildOfClass("Humanoid")

	-- By disabling HumanoidStateTypes, we stop the Humanoid automatically entering them
	for _, stateType in pairs(Enum.HumanoidStateType:GetEnumItems()) do
		if stateType ~= Enum.HumanoidStateType.None and stateType ~= Enum.HumanoidStateType.Physics then
			-- Pcall here as some state types are not intended to be disabled
			pcall(
				function()
					humanoid:SetStateEnabled(stateType, false)
				end
			)
		end
	end

	-- When in the 'Physics' state the Humanoid has no physics influence of its own
	humanoid:SetStateEnabled(Enum.HumanoidStateType.Physics, true)
	humanoid:ChangeState(Enum.HumanoidStateType.Physics)

	-- To minimize impact on driving, make all the parts massless and non-collidable
	for _, descendant in pairs(self.avatar:GetDescendants()) do
		if descendant:IsA("BasePart") then
			descendant.Massless = true
			descendant.Anchored = false
			descendant.CanCollide = false
		end
	end
end

function ClientAvatarComponent:updateStatus(statuses)
	-- TODO: Steering animation
end


Prompt: --[[Engine]]

Response:
	--Torque Curve
	Tune.Horsepower		= 2000		--	[TORQUE CURVE VISUAL]
	Tune.IdleRPM		= 600		--		https://www.desmos.com/calculator/2uo3hqwdhf
	Tune.PeakRPM		= 3000		--		Use sliders to manipulate values
	Tune.Redline		= 4000		--		Copy and paste slider values into the respective tune values
	Tune.EqPoint		= 3000
	Tune.PeakSharpness	= 5.2
	Tune.CurveMult		= 0.2

	--Incline Compensation
	Tune.InclineComp	= 2.3			-- 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		= 1000		-- RPM kickback from redline
	Tune.IdleThrottle	= 3			-- Percent throttle at idle
	Tune.ClutchTol		= 500		-- Clutch engagement threshold (higher = faster response)


Prompt: -- << LOCAL FUNCTIONS >>

Response:
local function playerAdded(player)

	-- Character Added
	player.CharacterAdded:Connect(function(character)

		--Check if any commands need re-activating
		local humanoid = character:WaitForChild("Humanoid")
		local pdata = main.pd[player]
		if pdata then
			for commandName,_ in pairs(pdata.CommandsActive) do
				local speaker = player
				local args = {player}
				local command = main.commands[string.lower(commandName)]
				main:GetModule("cf"):ExecuteCommand(speaker, args, command, {ExtraDetails = {DontForceActivate = true}})
				--main:GetModule("Extensions"):SetupCommand(player, commandName, true)
			end
			for itemName, _ in pairs(pdata.Items) do
				main:GetModule("Extensions"):SetupItem(player, itemName, true)
			end
		end

		--Other
		wait(1)
		if settingUpPlayer[player] then
			repeat wait(0.1) until not settingUpPlayer[player]
		end

	end)

	--Check if loader banned
	local userId = player.UserId
	if main.banned[tostring(userId)] then
		player:Kick("\n\nYou're permanently banned from this game.\n\n")
	end

	-- Setup PlayerData
	settingUpPlayer[player] = true
	local pdata = main:GetModule("PlayerData"):SetupPlayerData(player)
	settingUpPlayer[player] = nil

	--Player Chatted
	if not main.players:GetPlayerByUserId(userId) then return end
	player.Chatted:Connect(function(message)
		main.signals.PlayerChatted:Fire(player, message)
		main:GetModule("Parser"):ParseMessage(player, message, true)
	end)

	--Setup Friends
	local friends = main:GetModule("cf"):GetFriends(userId)
	if not main.pd[player] then return end
	main.pd[player].Friends = friends

	-- Check if default settings have changed
	if not main.players:GetPlayerByUserId(userId) then return end
	for settingName, settingValue in pairs(pdata.DefaultSettings) do
		local defaultSettingValue = main.settings[settingName]
		--print(settingName.." : "..tostring(defaultSettingValue).." : ".. tostring(settingValue))
		if defaultSettingValue ~= settingValue then
			main.pd[player].DefaultSettings[settingName] = defaultSettingValue
			main:GetModule("PlayerData"):ChangeStat(player, settingName, defaultSettingValue)
		end
	end

	--
	main:GetModule("PlayerData"):ChangeStat(player, "SetupData", true)
	--

	-- << SETUP RANKS >>
	--Owner
	if userId == main.ownerId or main:GetModule("cf"):FindValue(main.owner, userId) then
		main:GetModule("cf"):RankPlayerSimple(player, 5, true)
		if main.oldLoader then
			main.signals.ShowWarning:FireClient(player, "OldLoader")
		end
	end

	--Check if player has admin in this server
	local serverRank = main.serverAdmins[player.Name]
	if serverRank then
		main:GetModule("cf"):RankPlayerSimple(player, serverRank)
	end

	--Specific User
	local specificUserRank = main.permissions.specificUsers[player.Name]
	if specificUserRank then
		main:GetModule("cf"):RankPlayerSimple(player, specificUserRank, true)
	end

	--Gamepasses
	for gamepassId, gamepassInfo in pairs(main.permissions.gamepasses) do
		local hasGamepass = false
		if main:GetModule("cf"):FindValue(pdata.Gamepasses, gamepassId) then
			hasGamepass = true

		elseif main.marketplaceService:UserOwnsGamePassAsync(userId, gamepassId) then
			hasGamepass = true
			main:GetModule("PlayerData"):InsertStat(player, "Gamepasses", gamepassId)
			main:GetModule("cf"):CheckAndRankToDonor(player, pdata, gamepassId)
		end
		if hasGamepass then
			main:GetModule("cf"):RankPlayerSimple(player, gamepassInfo.Rank, true)
		end
	end

	--Assets
	if not main.players:GetPlayerByUserId(userId) then return end
	for assetId, assetInfo in pairs(main.permissions.assets) do
		local hasAsset = false
		if main:GetModule("cf"):FindValue(pdata.Assets, assetId) then
			hasAsset = true
		elseif main.marketplaceService:PlayerOwnsAsset(player, assetId) then
			hasAsset = true
			main:GetModule("PlayerData"):InsertStat(player, "Assets", assetId)
		end
		if hasAsset then
			main:GetModule("cf"):RankPlayerSimple(player, assetInfo.Rank, true)
		end
	end

	--Groups
	if not main.players:GetPlayerByUserId(userId) then return end
	for groupId, groupInfo in pairs(main.permissions.groups) do
		local roleName = player:GetRoleInGroup(groupId)
		if groupInfo.Roles[roleName] then
			main:GetModule("cf"):RankPlayerSimple(player, groupInfo.Roles[roleName].Rank, true)
		end
	end

	--Friends
	if not main.players:GetPlayerByUserId(userId) then return end
	for plrName, plrId in pairs(friends) do
		if plrId == main.ownerId then
			main:GetModule("cf"):RankPlayerSimple(player, main.permissions.friends, true)
		end
	end

	--VIPServers
	local vipServerOwnerId = game.VIPServerOwnerId
	if vipServerOwnerId ~= 0 then
		if userId == vipServerOwnerId then
			main:GetModule("cf"):RankPlayerSimple(player, main.permissions.vipServerOwner, true)
		else
			main:GetModule("cf"):RankPlayerSimple(player, main.permissions.vipServerPlayer, true)
		end
	end

	--Free admin
	local freeAdminRank = main.permissions.freeAdmin
	if tonumber(freeAdminRank) and freeAdminRank > 0 then
		main:GetModule("cf"):RankPlayerSimple(player, freeAdminRank, true)
	end

	-- << CHECK FOR SERVER LOCK >>
	if pdata.Rank < main.ranksAllowedToJoin then
		player:Kick("The server has been locked for ranks below '".. main:GetModule("cf"):GetRankName(main.ranksAllowedToJoin).."'")
		for i, plr in pairs(main.players:GetChildren()) do
			main.signals.Hint:FireClient(plr, {"Standard", "Server Lock: "..player.Name.." attempted to join! Rank = '"..main:GetModule("cf"):GetRankName(pdata.Rank).."'", Color3.fromRGB(255,255,255)})
		end
	end

	-- << CHECK IF BANNED >>
	--local success, record = false, main.serverBans[main:GetModule("cf"):FindUserIdInRecord(main.serverBans, userId)]
	local success, record = pcall(function() return main.serverBans[main:GetModule("cf"):FindUserIdInRecord(main.serverBans, userId)] end)
	if not record then
		success, record = pcall(function() return main.sd.Banland.Records[main:GetModule("cf"):FindUserIdInRecord(main.sd.Banland.Records, userId)] end)
	end
	if success and record then
		main:GetModule("cf"):BanPlayer(player.UserId, record)
	end

	-- << CHECK PERM RANK AND RANK EXISTS >>
	if pdata.SaveRank and main:GetModule("cf"):GetRankName(pdata.Rank) == "" then
		main:GetModule("cf"):Unrank(player)
	end

	-- << START COLOUR >>
	wait(2)
	if not main.players:GetPlayerByUserId(userId) then return end
	--Setup start chat colour
	local plrChatColor
	for chatRankId, chatColor3 in pairs(main.settings.ChatColors) do
		if pdata.Rank == chatRankId then
			plrChatColor = chatColor3
			break
		end
	end
	if plrChatColor then
		local speaker = main.chatService:GetSpeaker(player.Name)
		if not speaker then
			local maxRetries = 10
			for i = 1,maxRetries do
				wait(0.5)
				if not main.players:GetPlayerByUserId(userId) then return end
				speaker = main.chatService:GetSpeaker(player.Name)
				if speaker then
					break
				end
			end
		end
		if speaker then
			speaker:SetExtraData("ChatColor", plrChatColor)
		end
	end

	-- << NOTICES >>
	wait(1)
	if not main.players:GetPlayerByUserId(userId) then return end
	if pdata.Rank > 0 and main.settings.WelcomeRankNotice ~= false then
		local rankName = main:GetModule("cf"):GetRankName(pdata.Rank)
		main:GetModule("cf"):FormatAndFireNotice(player, "WelcomeRank", rankName)
	end
	if pdata.Donor and main.settings.WelcomeDonorNotice ~= false then
		main:GetModule("cf"):DonorNotice(player, pdata)
	end
	--main.signals.FadeInIcon:FireClient(player)

end


Prompt: --// Weapon Parts

Response:
local L_55_ = L_1_:WaitForChild('AimPart')
local L_56_
local L_57_ = L_1_:WaitForChild('Grip')
local L_58_ = L_1_:WaitForChild('FirePart')
local L_59_
local L_60_ = L_1_:WaitForChild('Mag')
local L_61_ = L_1_:WaitForChild('Bolt')


Prompt: -- Update camera if it changes

Response:
workspace.Changed:connect(function (p)
if p == "CurrentCamera" then
camera = workspace.CurrentCamera
end
end)

coroutine.resume(coroutine.create(function()
rs.Stepped:connect(function()
Indicator:updateAll()
rs.RenderStepped:wait()
end)
end))

lastHealth = 100
damagedone = 100

function AnimateHurtOverlay()
if humanoid then
if humanoid:FindFirstChild("creator") then
if humanoid:FindFirstChild("creator").Value then
if humanoid:FindFirstChild("creator").Value.Character then
if humanoid:FindFirstChild("creator").Value.Character:FindFirstChild("Torso") then
Indicator:new{}
end
end
end
end
end
end

function healthGUIUpdate(health)

damagedone = lastHealth-health

if humanoid.Health ~= humanoid.MaxHealth and damagedone>0 then
delay(0,function()
AnimateHurtOverlay()
end)
end

lastHealth = health

end

character.Humanoid.HealthChanged:connect(function(health)
healthGUIUpdate(health)
end)


Prompt: --Folders

Response:
local remotesFolder = repStoreSer:WaitForChild("Remotes")
local serverModulesFolder = serStorService:WaitForChild("Modules")


Prompt: --This script is usable with ANY humanoid, as long as the following conditions are met:


Prompt: -- Update 02.14.20 - added AsBinary for easy GameAnalytics replacement.

Response:
local function hmac(hash_func, key, message, AsBinary)
	-- Create an instance (private objects for current calculation)
	local block_size = block_size_for_HMAC[hash_func]
	if not block_size then
		error("Unknown hash function", 2)
	end

	if #key > block_size then
		key = string.gsub(hash_func(key), "%x%x", HexToBinFunction)
		--key = hex2bin(hash_func(key))
	end

	local append = hash_func()(pad_and_xor(key, block_size, 0x36))
	local result

	local function partial(message_part)
		if not message_part then
			result = result or hash_func(pad_and_xor(key, block_size, 0x5C) .. (string.gsub(append(), "%x%x", HexToBinFunction)))
			return result
		elseif result then
			error("Adding more chunks is not allowed after receiving the result", 2)
		else
			append(message_part)
			return partial
		end
	end

	if message then
		-- Actually perform calculations and return the HMAC of a message
		local FinalMessage = partial(message)()
		return AsBinary and (string.gsub(FinalMessage, "%x%x", BinaryStringMap)) or FinalMessage
	else
		-- Return function for chunk-by-chunk loading of a message
		-- User should feed every chunk of the message as single argument to this function and finally get HMAC by invoking this function without an argument
		return partial
	end
end

local sha = {
	md5 = md5,
	sha1 = sha1,
	-- SHA2 hash functions:
	sha224 = function(message)
		return sha256ext(224, message)
	end;

	sha256 = function(message)
		return sha256ext(256, message)
	end;

	sha512_224 = function(message)
		return sha512ext(224, message)
	end;

	sha512_256 = function(message)
		return sha512ext(256, message)
	end;

	sha384 = function(message)
		return sha512ext(384, message)
	end;

	sha512 = function(message)
		return sha512ext(512, message)
	end;

	-- SHA3 hash functions:
	sha3_224 = function(message)
		return keccak((1600 - 2 * 224) / 8, 224 / 8, false, message)
	end;

	sha3_256 = function(message)
		return keccak((1600 - 2 * 256) / 8, 256 / 8, false, message)
	end;

	sha3_384 = function(message)
		return keccak((1600 - 2 * 384) / 8, 384 / 8, false, message)
	end;

	sha3_512 = function(message)
		return keccak((1600 - 2 * 512) / 8, 512 / 8, false, message)
	end;

	shake128 = function(message, digest_size_in_bytes)
		return keccak((1600 - 2 * 128) / 8, digest_size_in_bytes, true, message)
	end;

	shake256 = function(message, digest_size_in_bytes)
		return keccak((1600 - 2 * 256) / 8, digest_size_in_bytes, true, message)
	end;

	-- misc utilities:
	hmac = hmac; -- HMAC(hash_func, key, message) is applicable to any hash function from this module except SHAKE*
	hex_to_bin = hex2bin; -- converts hexadecimal representation to binary string
	base64_to_bin = base642bin; -- converts base64 representation to binary string
	bin_to_base64 = bin2base64;
	base64_encode = Base64.Encode;
	base64_decode = Base64.Decode;
	-- converts binary string to base64 representation
}

block_size_for_HMAC = {
	[sha.md5] = 64,
	[sha.sha1] = 64,
	[sha.sha224] = 64,
	[sha.sha256] = 64,
	[sha.sha512_224] = 128,
	[sha.sha512_256] = 128,
	[sha.sha384] = 128,
	[sha.sha512] = 128,
	[sha.sha3_224] = (1600 - 2 * 224) / 8,
	[sha.sha3_256] = (1600 - 2 * 256) / 8,
	[sha.sha3_384] = (1600 - 2 * 384) / 8,
	[sha.sha3_512] = (1600 - 2 * 512) / 8,
}

return sha


Prompt: -- functions

Response:
function stopAllAnimations()
	local oldAnim = currentAnim

	-- return to idle if finishing an emote
	if (emoteNames[oldAnim] ~= nil and emoteNames[oldAnim] == false) then
		oldAnim = "idle"
	end

	currentAnim = ""
	if (currentAnimKeyframeHandler ~= nil) then
		currentAnimKeyframeHandler:disconnect()
	end

	if (oldAnimTrack ~= nil) then
		oldAnimTrack:Stop()
		oldAnimTrack:Destroy()
		oldAnimTrack = nil
	end
	if (currentAnimTrack ~= nil) then
		currentAnimTrack:Stop()
		currentAnimTrack:Destroy()
		currentAnimTrack = nil
	end
	return oldAnim
end

function keyFrameReachedFunc(frameName)
	if (frameName == "End") then


Prompt: ---[[ Chat Behaviour Settings ]]

Response:
module.WindowDraggable = false
module.WindowResizable = false
module.ShowChannelsBar = true
module.GamepadNavigationEnabled = false
module.AllowMeCommand = false -- Me Command will only be effective when this set to true
module.ShowUserOwnFilteredMessage = true	--Show a user the filtered version of their message rather than the original.


Prompt:
--Procedural Lightning Module. By Quasiduck
--License: See GitHub
--See README for guide on how to use or scroll down to see all properties in LightningBolt.new
--All properties update in real-time except PartCount which requires a new LightningBolt to change
--i.e. You can change a property at any time and it will still update the look of the bolt

Response:
local clock = os.clock

function DiscretePulse(input, s, k, f, t, min, max) --input should be between 0 and 1. See https://www.desmos.com/calculator/hg5h4fpfim for demonstration.
	return math.clamp( (k)/(2*f) - math.abs( (input - t*s + 0.5*(k)) / (f) ), min, max )
end

function NoiseBetween(x, y, z, min, max)
	return min + (max - min)*(math.noise(x, y, z) + 0.5)
end

function CubicBezier(p0, p1, p2, p3, t)
	return p0*(1 - t)^3 + p1*3*t*(1 - t)^2 + p2*3*(1 - t)*t^2 + p3*t^3
end

local BoltPart = Instance.new("Part")
BoltPart.TopSurface, BoltPart.BottomSurface = 0, 0
BoltPart.Anchored, BoltPart.CanCollide = true, false
BoltPart.Shape = "Cylinder"
BoltPart.Name = "BoltPart"
BoltPart.Material = Enum.Material.Neon
BoltPart.Color = Color3.new(1, 1, 1)
BoltPart.Transparency = 1

local rng = Random.new()
local xInverse = CFrame.lookAt(Vector3.new(), Vector3.new(1, 0, 0)):inverse()

local ActiveBranches = {}

local LightningBolt = {}
LightningBolt.__index = LightningBolt


Prompt: -- animate the amplitude bar

Response:
while true do
	local amplitude = math.clamp(sound.PlaybackLoudness / maxLoudness, 0, 1)
	bar.Size = UDim2.new(amplitude, 0, 1, 0)
	wait(0.05)
end


Prompt:
--[[
local function SetCharacterPos()
	Character:WaitForChild("HumanoidRootPart")
	Character.HumanoidRootPart.CFrame = Checkpoints[tostring(MaxLevel.Value)].CFrame * CFrame.new(0, 2, 0)
	print(MaxLevel.Value)
end

SetCharacterPos()]]