Prompt: -- local tmp = Rebuild()

Response:
local START = game.Workspace.Start
START:SetPrimaryPartCFrame(CFrame.new(0,0,110))

while true  do
	PartWorld = script.Parts.Value

	if PartWorld ~= 0 then

		-- для всех игроков установить базовую точку старта
		local tmp = game.Players:GetChildren()
		for a, b in pairs(tmp) do
			b.RespawnLocation = START.SpawnLocation
		end

		-- удалить старый путь
		tmp = game.Workspace.GameZone:GetChildren()
		for a, b in pairs(tmp) do
			b:Destroy()
		end
		wait(5)	-- чтобы игрок успел упасть на дно

		-- создать новый путь
		tmp = Rebuild()

		RebuildWorld = 300
		wait(RebuildWorld)	-- ждём указанное время
	else
		wait(1)
	end
end


Prompt:
--[[
	Enqueues an instance property to be updated next render step.
]]

Response:
function Scheduler.enqueueProperty(instance: Instance, propertyName: string, newValue: any)
	willUpdate = true

	-- we can't iterate over nil values of tables, so use a symbol instead
	if newValue == nil then
		newValue = None
	end

	local propertyTable = propertyChanges[instance]
	if propertyTable == nil then
		propertyChanges[instance] = {
			[propertyName] = newValue
		}
	else
		propertyTable[propertyName] = newValue
	end
end


Prompt:
-- Function to call on renderstepped. Orients the character so it is facing towards
-- the player mouse's position in world space. If character is sitting then the torso
-- should not track

Response:
local function frame(mousePosition)
	-- Special mobile consideration. We don't want to track if the user was touching a ui
	-- element such as the movement controls. Just return out of function if so to make sure
	-- character doesn't track
	if not mobileShouldTrack then return end

	--This math is completely wrong with R15. We're better off just not doing it at all
	if player.Character.Humanoid.RigType == Enum.HumanoidRigType.R15 then
		return
	end

	-- Make sure character isn't swiming. If the character is swimming the following code will
	-- not work well; the character will not swim correctly. Besides, who shoots underwater?
	if player.Character.Humanoid:GetState() ~= Enum.HumanoidStateType.Swimming then
		local torso = player.Character.HumanoidRootPart
		local head = player.Character.Head

		local toMouse = (mousePosition - head.Position).unit
		local angle = math.acos(toMouse:Dot(Vector3.new(0,1,0)))

		local neckAngle = angle

		-- Limit how much the head can tilt down. Too far and the head looks unnatural
		if math.deg(neckAngle) > 110 then
			neckAngle = math.rad(110)
		end
		neck.C0 = CFrame.new(0,1,0) * CFrame.Angles(math.pi - neckAngle,math.pi,0)

		-- Calculate horizontal rotation
		local arm do
			arm = player.Character:FindFirstChild("Right Arm") or
				  player.Character:FindFirstChild("RightUpperArm")
		end
		local fromArmPos = torso.Position + torso.CFrame:vectorToWorldSpace(Vector3.new(
			torso.Size.X/2 + arm.Size.X/2, torso.Size.Y/2 - arm.Size.Z/2, 0))
		local toMouseArm = ((mousePosition - fromArmPos) * Vector3.new(1,0,1)).unit
		local look = (torso.CFrame.lookVector * Vector3.new(1,0,1)).unit
		local lateralAngle = math.acos(toMouseArm:Dot(look))

		-- Check for rogue math
		if tostring(lateralAngle) == "-1.#IND" then
			lateralAngle = 0
		end

		-- Handle case where character is sitting down
		if player.Character.Humanoid:GetState() == Enum.HumanoidStateType.Seated then

			local cross = torso.CFrame.lookVector:Cross(toMouseArm)
			if lateralAngle > math.pi/2 then
				lateralAngle = math.pi/2
			end
			if cross.Y < 0 then
				lateralAngle = -lateralAngle
			end
		end

		-- Turn shoulder to point to mouse
		shoulder.C0 = CFrame.new(1,0.5,0) * CFrame.Angles(math.pi/2 - angle,math.pi/2 + lateralAngle,0)

		-- If not sitting then aim torso laterally towards mouse
		if not amISitting(player.Character) then
			torso.CFrame = CFrame.new(torso.Position, torso.Position + (Vector3.new(
				mousePosition.X, torso.Position.Y, mousePosition.Z)-torso.Position).unit)
		end
	end
end


Prompt:
--[[	if child.Parent and child.Parent.Parent then

	end

	if child.BackgroundTransparency == 1 then
		return true;
	end]]

Response:
	return false
end

local function CircleClick(Button, X, Y)
	local duration = 0.5
	task.spawn(function()
		local effect = Instance.new("ImageLabel", Button)
		effect.AnchorPoint = Vector2.new(0.5, 0.5)
		effect.BorderSizePixel = 0
		effect.ZIndex = Button.ZIndex + 2
		effect.BackgroundTransparency = 1
		effect.ImageTransparency = 0.96
		effect.Image = "rbxasset://textures/whiteCircle.png"
		local rounder = Instance.new("UICorner", effect); rounder.CornerRadius = UDim.new(0,8)
		effect.Position = UDim2.new(0.5, 0, 0.5, 0)
		effect:TweenSize(UDim2.new(0, Button.AbsoluteSize.X * 2.5, 0, Button.AbsoluteSize.X * 2.5), Enum.EasingDirection.Out, Enum.EasingStyle.Linear, duration)
		wait(duration)
		for i = 1, 10 do
			wait(0.04)
			effect.ImageTransparency += 0.1
		end
		effect:Destroy()
	end)

end

local function propChange(child, target, list)
	for i in next,list do
		if target[i] ~= child[i] then
			target[i] = child[i];
		end
	end--lollo was here yes my code is messy

	if child.ZIndex == 1 then
		child.ZIndex = 2;
	end

	target.ZIndex = child.ZIndex-1;
end

return function(data, env)
	if env then
		setfenv(1, env)
	end

	local gui = script.Parent.Parent;--data.GUI;

	local function apply(child)
		if not child then return end

		if child:IsA("TextButton") or child:IsA("ImageButton") then
			child.ClipsDescendants = true
			child.AutoButtonColor = false
			child.Activated:Connect(function()
				CircleClick(child:GetObject())
			end)
		end

		if not child:IsA("TextLabel") and not child:IsA("ImageLabel") and not child:FindFirstChildOfClass("UICorner") then
			local rounder = service.New("UICorner",{
				CornerRadius = UDim.new(0,5);
				Parent = child;
			});

		end

		if child:IsA("TextLabel") and not child:FindFirstChildOfClass("UICorner") then

			local rounder = service.New("UICorner",{
				CornerRadius = UDim.new(0,6);
				Parent = child;
			});
			-- well how do i convert size to precise offset because i am lazy
			child.BackgroundColor3 = Color3.fromRGB(18, 18, 18)

		end

		if child:IsA("ScrollingFrame") then
			if child.Parent and child.Parent.Name == "Frames" then child.BackgroundTransparency = 1; end
			child.BottomImage = "rbxasset://textures/ui/Scroll/scroll-bottom.png"
			child.MidImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
			child.TopImage = "rbxasset://textures/ui/Scroll/scroll-top.png"
			child.ScrollBarImageTransparency = 0.75
			child.ScrollBarImageColor3 = Color3.fromRGB(255, 255, 255)

			--local propList = {
			--	Size = true;
			--	Visible = true;
			--	Position = true;
			--	BackgroundTransparency = true;
			--	BackgroundColor3 = true;
			--	BorderColor3 = true;
			--	Rotation = true;
			--	SizeConstraint = true;
			--}

			--local frame = service.New("Frame");
			--propChange(child, frame, propList)

			child.BackgroundTransparency = 1; --why not

			--child.Changed:Connect(function(p)
			--	if p ~= "BackgroundTransparency" then
			--		propChange(child, frame, propList);
			--	end
			--end)

			--frame.Parent = child.Parent;
		end
	end

	gui.DescendantAdded:Connect(function(child)
		if child:IsA("GuiObject") and not ignore(child) then
			apply(child);
		end
	end)
end


Prompt: --Char.Humanoid.BreakJointsOnDeath = false

Response:
if configuracao.EnableRagdoll == true then
	if human.Health <= 1 then
		Ragdoll(Char)
	end
end

human.HealthChanged:Connect(function (newhealth)
		if dead.Value == false and Sang.Value >= 10 then

			human.Health = math.clamp(newhealth, 0.1, 100)

		if newhealth <= 0.1 or human.Health <= 0.1 then
			Caido.Value = true
		end

		if (rodeath.Value == true or life.Value == false) and newhealth <= -25 then
			local loss = newhealth * 40
			Sang.Value = Sang.Value + loss
			human.PlatformStand = true
			human.AutoRotate = false
			Caido.Value = true

		end

		else
			human.PlatformStand = false
		human.AutoRotate = true

			human.Health = 0

		end
end)


Prompt: -- Game services

Response:
local Configurations = require(ServerStorage.Configurations)
local TeamManager = require(script.TeamManager)
local PlayerManager = require(script.PlayerManager)
local MapManager = require(script.MapManager)
local TimeManager = require(script.TimeManager)
local DisplayManager = require(script.DisplayManager)


Prompt:
--[[
	SERVER PLUGINS' NAMES MUST START WITH "Server:"
	CLIENT PLUGINS' NAMES MUST START WITH "Client:"

	Hi, this is an example plugin, meaning this is only to show you how to make your own plugins!
	All plugins need to be MODULE SCRIPTS! Not regular or local scripts, if its not a module script it wont work.
	If you want to use events from the main admin script such as CharacterAdded, PlayerChatted and
	PlayerJoined then simply look the following:

	set.MakePluginEvent('PlayerChatted',function(msg,plr) print(msg..' from '..plr.Name..' Example Plugin') end)
	set.MakePluginEvent('PlayerJoined',function(p) print(p.Name..' Joined! Example Plugin') end)
	set.MakePluginEvent('CharacterAdded',function(plr) set.RunCommand('name',plr.Name,'BobTest Example Plugin') end)

	Use set.MakePluginEvent(type,function) to add a function that gets run when the event is fired in the
	main script, only CharacterAdded, PlayerJoined and PlayerChatted are currently supported.

	If you want to run an admin command from a plugin, you need to use set.RunCommand(cmd,args)
	EX: set.RunCommand('name',plr.Name,'BobTest Example Plugin') will run ":name Player1 BobTests Example Plugin"
	NOTE: If you are running a command that needs a sending player (such as !quote, !donate, !explore, or any command that
	spawns guis on the player running the command) it WILL break, the script will continue functioning fine however
	the command will error and do nothing.

	Plugins give you the ability to change or add things to the main script without editing the
	actual script. You can add commands, functions, features, and you can use anything in the
	table "set" (the main script table which contains all functions, settings, and commands.)

	First off lets go over the format of commands.

	Commands must be formatted in the following way:

	set.MakeCommand(CommandName,AdminLevel,Prefix,{command1,command2},{argument1,argument2},NumberOfArguments,function(plr,args)
		print('Hello World from inside an example command!')
	end)

	Now lets go over each element of MakeCommand function.
	CommandName - Name of the command
	AdminLevel - who can use the commands (-1=SBL owners,0=any,1=donators,2=tempadmins,3=admins,4=owners,5=trueowners)
	Prefix - the prefix to use (the : in :kill me) use set.Prefix to use the scripts set prefix (or set.AnyPrefix for the AnyPrefix setting)
	{command1,command2} - these are commands that can be chatted to run this command
	{argument1,argument2} - type of arguments (eg {"player","message"})
	NumberOfArguments - how many arguments are there? (How many times to split the message?)
	function(plr,args) - you need to include this, however you can change plr and args but its recommended you dont to avoid confusion.

	Now that we know what each thing is, go ahead and take a look at the example command.

	All the code to run MUST be in a function, as seen below, that gets returned.
	Anything inside the main function will be ran by the main admin script. If you want to use
	things from the main admin script use set.
	For example:

	return function(set)
		print('hi')
	end

	Client plugins are EXACTLY the same as server plugins, just they run on the client instead.
	Because all guis are made via the client script, client plugins also gives you the ability to
	edit and make your own guis for the script that you can call using set.Remote(PLAYER,"Function","GUI FUNCTIONS")
	Please note that if you want to be able to tell the client to load a gui, the gui will need to be in the client's "set"
	table as it is where all the functions to be executed by the server are stored. Read over the client script to get
	a better idea of how it works.

--]]
--------------------------------------------------------------------------
--Begin example plugin

Response:
return function(set) --function that the main script will run
	--Lets make an example command
	set.MakeCommand('Example Plugin Command',0,set.Prefix,{'example','forshow'},{'message1','message2'},2,function(plr,args)
		print('Hello World from inside an example command!')
		print('The first argument is '..args[1]..' and the second is '..args[2])
		print('The player who ran the command is '..plr.Name..'!')
	end)--Player chats ":example Args1 Args2"
	print('Hello World from inside an example plugin!')
	--makes the command "example" and prints "Hello World from inside an example plugin!"
end -- end of the main function


Prompt: -- This for lazy people who just came to copy & paste, not to learn the code...


Prompt:
------------------------------------------------------------------------
-- * l1 was a pointer, now l1 is returned and callee assigns the value
-- * used in multiple locations
------------------------------------------------------------------------

Response:
function luaK:concat(fs, l1, l2)
  if l2 == self.NO_JUMP then return l1
  elseif l1 == self.NO_JUMP then
    return l2
  else
    local list = l1
    local _next = self:getjump(fs, list)
    while _next ~= self.NO_JUMP do  -- find last element
      list = _next
      _next = self:getjump(fs, list)
    end
    self:fixjump(fs, list, l2)
  end
  return l1
end


Prompt:
--[[
	Proxy layer between the player FSM and the player state scripts, allowing debug and player state updates to be fired.

	When a state is entered, the updateStatus function is called for the relevant ServerPlayerComponent
]]

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

local Logger = require(ReplicatedStorage.Dependencies.GameUtils.Logger)

local PlayerPreGame = require(ServerStorage.Source.GameStates.Player.PlayerPreGame)
local PlayerWarmup = require(ServerStorage.Source.GameStates.Player.PlayerWarmup)
local PlayerGame = require(ServerStorage.Source.GameStates.Player.PlayerGame)
local PlayerPostGame = require(ServerStorage.Source.GameStates.Player.PlayerPostGame)
local PlayerFinished = require(ServerStorage.Source.GameStates.Player.PlayerFinished)
local PlayerDead = require(ServerStorage.Source.GameStates.Player.PlayerDead)
local PlayerSpectating = require(ServerStorage.Source.GameStates.Player.PlayerSpectating)

local Transitions = {}


Prompt:
--[[
	Set the current node's status to Skipped.
]]

Response:
function TestSession:setSkipped()
	assert(#self.nodeStack > 0, "Attempting to set skipped status on empty stack")
	self.nodeStack[#self.nodeStack].status = TestEnum.TestStatus.Skipped
end


Prompt: --Put me in StarterCharacterScripts

Response:
local player = game.Players.LocalPlayer
local character = workspace:WaitForChild(player.Character.Name)
local camera = workspace.CurrentCamera
local running = false
local speed = character.Humanoid.WalkSpeed / 2
local RunService = game:GetService("RunService")
local Pi = 3.1415926
local Rot = 3.1415926 / 2

character.Humanoid.Running:Connect(function(WalkSpeed)
	if WalkSpeed > 0.1 then
		running = true
	else
		running = false
	end
end)

while true do
	RunService.RenderStepped:wait()
	fps = (camera.CoordinateFrame.p - character.Head.Position).Magnitude
	if running == true then
		Rot = Rot + character.Humanoid.WalkSpeed / 115
	end
	if Rot >= Pi * 2 then
		Rot = 0
	end
	camera.CoordinateFrame = camera.CoordinateFrame * CFrame.new(math.cos(Rot) / speed, math.sin(Rot * 2) / (speed * 2), 0) * CFrame.Angles(0, 0, math.sin(Rot - Pi * 1.5) / (speed * 20))
end


Prompt: -- Connect 'Blocked' event to the 'onPathBlocked' function

Response: path.Blocked:Connect(onPathBlocked)


Prompt:
--[[
	Extension of Lua's 'assert' that lets you specify an error level.
]]

Response:
local function assertLevel(condition, message, level)
	message = message or "Assertion failed!"
	level = level or 1

	if not condition then
		error(message, level + 1)
	end
end


Prompt: --[[ The Module ]]

Response:
--
local BaseOcclusion = require(script.Parent:WaitForChild("BaseOcclusion"))
local Invisicam = setmetatable({}, BaseOcclusion)
Invisicam.__index = Invisicam

function Invisicam.new()
	local self = setmetatable(BaseOcclusion.new(), Invisicam)

	self.char = nil
	self.humanoidRootPart = nil
	self.torsoPart = nil
	self.headPart = nil

	self.childAddedConn = nil
	self.childRemovedConn = nil

	self.behaviors = {} 	-- Map of modes to behavior fns
	self.behaviors[MODE.LIMBS] = self.LimbBehavior
	self.behaviors[MODE.MOVEMENT] = self.MoveBehavior
	self.behaviors[MODE.CORNERS] = self.CornerBehavior
	self.behaviors[MODE.CIRCLE1] = self.CircleBehavior
	self.behaviors[MODE.CIRCLE2] = self.CircleBehavior
	self.behaviors[MODE.LIMBMOVE] = self.LimbMoveBehavior
	self.behaviors[MODE.SMART_CIRCLE] = self.SmartCircleBehavior
	self.behaviors[MODE.CHAR_OUTLINE] = self.CharacterOutlineBehavior

	self.mode = MODE.SMART_CIRCLE
	self.behaviorFunction = self.SmartCircleBehavior

	self.savedHits = {} 	-- Objects currently being faded in/out
	self.trackedLimbs = {}	-- Used in limb-tracking casting modes

	self.camera = game.Workspace.CurrentCamera

	self.enabled = false
	return self
end

function Invisicam:Enable(enable)
	self.enabled = enable

	if not enable then
		self:Cleanup()
	end
end

function Invisicam:GetOcclusionMode()
	return Enum.DevCameraOcclusionMode.Invisicam
end


Prompt: -- Initialize mesh tool

Response:
local MeshTool = require(CoreTools:WaitForChild 'Mesh')
Core.AssignHotkey('H', Core.Support.Call(Core.EquipTool, MeshTool));
Core.Dock.AddToolButton(Core.Assets.MeshIcon, 'H', MeshTool, 'MeshInfo');


Prompt: --Returns the character and humanoid of a descendants.

Response:
local function FindCharacterAncestor(Ins)
	if Ins and Ins ~= game.Workspace then
		local Humanoid = Ins:FindFirstChildOfClass("Humanoid")
		if Humanoid then
			return Ins,Humanoid
		else
			return FindCharacterAncestor(Ins.Parent)
		end
	end
end


Prompt: --------------------) Settings

Response:
Damage = 0 -- the ammout of health the player or mob will take

Cooldown = 1 -- cooldown for use of the tool again

ZoneModelName = "Insanity Bone rise" -- name the zone model

MobHumanoidName = "Humanoid"-- the name of player or mob u want to damage


Prompt:
--[=[
	@class Input

	The Input module provides access to various user input classes.

	- [PreferredInput](/api/PreferredInput)
	- [Mouse](/api/Mouse)
	- [Keyboard](/api/Keyboard)
	- [Touch](/api/Touch)

	```lua
	local Input = require(packages.Input)

	local PreferredInput = Input.PreferredInput
	local Mouse = Input.Mouse
	local Keyboard = Input.Keyboard
	local Touch = Input.Touch
	```
]=]

Response:
local Input = {
	PreferredInput = require(script.PreferredInput);
	Mouse = require(script.Mouse);
	Keyboard = require(script.Keyboard);
	Touch = require(script.Touch);
}

return Input


Prompt: --input experince values, output level

Response:
local ExperienceCalculator = {}
local ExperienceFactor = 10

local function GetLevelFromExperience(Experience)
	-- http://stackoverflow.com/questions/6954874/php-game-formula-to-calculate-a-level-based-on-exp

	return math.floor((ExperienceFactor + math.sqrt(ExperienceFactor * ExperienceFactor - 4 * ExperienceFactor * (-Experience)))/ (2 * ExperienceFactor))
end
ExperienceCalculator.GetLevelFromExperience = GetLevelFromExperience

local function GetExperienceForNextLevel(CurrentExperience)
	if CurrentExperience - 1 == CurrentExperience then -- Math.huge
		return 0
	end

	local CurrentLevel = GetLevelFromExperience(CurrentExperience)
	local ExperienceRequired = ExperienceFactor*(CurrentLevel*(1+CurrentLevel))
	--local ExperienceRequiredForCurrentLevel = ExperienceFactor*(CurrentLevel*(1+CurrentLevel))

	local ExperienceLeft = ExperienceRequired - CurrentExperience

	return ExperienceLeft
end
ExperienceCalculator.GetExperienceForNextLevel = GetExperienceForNextLevel

local function GetExperienceRequiredForLevel(Level)
	Level = Level - 1 -- Because normally this formula calculates experience required for next level.
	return ExperienceFactor*(Level*(1+Level))
end

ExperienceCalculator.GetExperienceRequiredForLevel = GetExperienceRequiredForLevel

local function GetSubExperience(CurrentExperience)
	-- @return Achieved of next level, Total required for next level, Percent

	if CurrentExperience - 1 == CurrentExperience then -- Math.huge
		return 1,1,1
	end

	local CurrentLevel = GetLevelFromExperience(CurrentExperience)
	local LastLevel = CurrentLevel-1

	local ExperienceRequiredForCurrentLevel = ExperienceFactor*(LastLevel*(1+LastLevel))
	local ExperienceRequired = ExperienceFactor*(CurrentLevel*(1+CurrentLevel))

	local AchievedOfNext = CurrentExperience - ExperienceRequiredForCurrentLevel
	local SubTotalRequired = ExperienceRequired - ExperienceRequiredForCurrentLevel
	local Percent = AchievedOfNext/SubTotalRequired

	return AchievedOfNext, SubTotalRequired, Percent
end
ExperienceCalculator.GetSubExperience = GetSubExperience

return ExperienceCalculator


Prompt: -- The maximum distance the can can shoot, this value should never go above 1000

Response: local Range = 1000


Prompt: --Precalculated paths

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


Prompt:
--[=[
	Utils that work with Roblox Value objects (and also ValueObject)
	@class ValueObjectUtils
]=]

Response:
local require = require(script.Parent.loader).load(script)

local Maid = require("Maid")
local Brio = require("Brio")
local Observable = require("Observable")
local ValueObject = require("ValueObject")

local ValueObjectUtils = {}


Prompt: -- Don't set this above 1, it will cause glitchy behaviour.

Response:
local UpdateSpeed = 0.3 -- How fast the body will rotates.
local UpdateDelay = 0.05 -- How fast the heartbeat will update.


Response:
local PlayerStatManager = require(script.Parent:WaitForChild("PlayerStatManager"))

local tycoonsFolder = script.Parent:WaitForChild("Tycoons")
local tycoons = tycoonsFolder:GetChildren()
local serverStorage = game:GetService("ServerStorage")
local playerMoney = serverStorage:WaitForChild("PlayerMoney")
local purchaseHandlerNew = script.PurchaseHandlerNew
local gateControlNew = script.GateControlNew
local players = game:GetService("Players")

local allObjects = {}

local Settings = require(script.Parent.Settings)

function hideButton(name,buttons)
	local allButtons = buttons:GetChildren()
	local item = nil
	for i = 1,#allButtons,1 do
		if allButtons[i].Object.Value == name then
			item = allButtons[i]
		end
	end
	if item ~= nil then
		local head = item:FindFirstChild("Head")
		if head ~= nil then
			if Settings['ButtonsFadeOut'] then
				head.CanCollide = false
				coroutine.resume(coroutine.create(function()
					for i=1,20 do
						wait(Settings['FadeOutTime']/20)
						head.Transparency = head.Transparency + 0.05
					end
				end))
			else
				head.CanCollide = false
				head.Transparency = 1
			end
		end
	end
end

for i = 1,#tycoons,1 do
	tycoons[i].PurchaseHandler:Destroy()
	tycoons[i].Entrance["Touch to claim!"].GateControl:Destroy()
	purchaseHandlerNew:Clone().Parent = tycoons[i]

	local gateControlNewClone = gateControlNew:Clone()
	gateControlNewClone.Parent = tycoons[i].Entrance["Touch to claim!"]
	gateControlNewClone.Disabled = false

	local purchasedObjects = tycoons[i]:FindFirstChild("PurchasedObjects")
	local purchases = tycoons[i].Purchases
	local owner = tycoons[i]:FindFirstChild("Owner")
	local entrance = tycoons[i].Entrance
	local touchToClaim = entrance:GetChildren()[1].Head

	allObjects[i] = require(tycoons[i].PurchaseHandlerNew)

	--Load data
	local debounce = true
	touchToClaim.Touched:Connect(function(hit)
		local humanoid = hit.Parent:FindFirstChild("Humanoid")
		if humanoid ~= nil and debounce then
			local playerInPlayerMoney = playerMoney:FindFirstChild(humanoid.Parent.Name)
			local ownsTycoon = nil
			if playerInPlayerMoney ~= nil then
		   		 ownsTycoon = playerInPlayerMoney:FindFirstChild("OwnsTycoon")
			end
			if ownsTycoon ~= nil and ownsTycoon.Value == nil then
				touchToClaim.Transparency = 1
				debounce = false
				local player = game.Players:FindFirstChild(humanoid.Parent.Name)
				if player ~= nil then
					local data = PlayerStatManager:getPlayerData(player)
					for key,value in pairs(allObjects[i]) do
						if data[key] == true then
							value.Parent = purchasedObjects
						end
					end
					wait(3)
					for k,v in pairs(allObjects[i]) do
						if data[k] == true then
							local buttonName = k
							local buttons = tycoons[i].Buttons
							hideButton(buttonName,buttons)
						end
					end
				else
					print("Player == nil")
				end
			else
				print("ownsTycoon.Value ~= nil or ownsTycoon == nil ")
			end
		else
			print("Humanoid == nil or debounce is false")
		end
	end)

	--Save data
	if purchasedObjects ~= nil and owner ~= nil then
		purchasedObjects.ChildAdded:Connect(function(instance)
			local player = owner.Value
			if player ~= nil then
				local stat = PlayerStatManager:getStat(player,instance.Name)
				if player ~= nil and stat == false then
					PlayerStatManager:ChangeStat(player, instance.Name, true)
				end
			end
		end)
	else
		warn("SaveTrigger script won't save data because either purchasedObjects or owner is NIL")
	end
end

tycoonsFolder.ChildAdded:Connect(function(instance)
	local purchaseHandler = instance:FindFirstChild("PurchaseHandler")
	if purchaseHandler ~= nil then
		purchaseHandler:Destroy()
		purchaseHandlerNew:Clone().Parent = instance
		local purchasedObjects = instance:FindFirstChild("PurchasedObjects")
		local purchases = instance.Purchases
		local owner = instance:FindFirstChild("Owner")
		local entrance = instance.Entrance
		local touchToClaim = entrance:GetChildren()[1].Head

		local PurchaseHandlerNew = require(instance.PurchaseHandlerNew)

		--Load data
		local debounce = true
		touchToClaim.Touched:Connect(function(hit)
			local humanoid = hit.Parent:FindFirstChild("Humanoid")
			if humanoid ~= nil  and debounce then
				local playerInPlayerMoney = playerMoney:FindFirstChild(humanoid.Parent.Name)
				local ownsTycoon = nil
				if playerInPlayerMoney ~= nil then
					 ownsTycoon = playerInPlayerMoney:FindFirstChild("OwnsTycoon")
				end
				if ownsTycoon ~= nil and ownsTycoon.Value == nil then
					touchToClaim.Transparency = 1
					debounce = false
					local player = game.Players:FindFirstChild(humanoid.Parent.Name)
					if player ~= nil then
						local data = PlayerStatManager:getPlayerData(player)
						for key,value in pairs(PurchaseHandlerNew) do
							if data[key] == true then
								value.Parent = purchasedObjects
							end
						end
						wait(3)
						for k,v in pairs(PurchaseHandlerNew) do
							if data[k] == true then
								local buttonName = k
								local buttons = instance.Buttons
								hideButton(buttonName,buttons)
							end
						end

					else
						print("Player == nil")
				 	end
				else
					print("ownsTycoon.Value ~= nil or ownsTycoon == nil ")
				end
			else
				print("Humanoid == nil or debounce is false")
			end
		end)

		--Save data
		if purchasedObjects ~= nil and owner ~= nil then
			purchasedObjects.ChildAdded:Connect(function(instance)
				local player = owner.Value
				if player ~= nil then
					local stat = PlayerStatManager:getStat(player,instance.Name)
					if player ~= nil and stat == false then
						PlayerStatManager:ChangeStat(player, instance.Name, true)
					end
				end
			end)
		else
			warn("SaveTrigger script won't save data because either purchasedObjects or owner is NIL")
		end
	end
end)

while wait(59) do
	pcall(function()
		local allPlayers = players:GetChildren()
		for i = 1,#allPlayers,1 do
			if allPlayers[i] ~= nil then
				local playersMoneyChild = playerMoney:FindFirstChild(allPlayers[i].Name)
				if playersMoneyChild then
					PlayerStatManager:saveStat(allPlayers[i], "Money", playersMoneyChild.Value)
				end
			end
		end
	end)
end


Prompt: --- Runs embedded commands and replaces them

Response:
function Util.RunEmbeddedCommands(dispatcher, str)
	str = encodeCommandEscape(str)

	local results = {}
	-- We need to do this because you can't yield in the gsub function
	for text in str:gmatch("$(%b{})") do
		local doQuotes = true
		local commandString = text:sub(2, #text-1)

		if commandString:match("^{.+}$") then -- Allow double curly for literal replacement
			doQuotes = false
			commandString = commandString:sub(2, #commandString-1)
		end

		results[text] = dispatcher:EvaluateAndRun(commandString)

		if doQuotes and results[text]:find("%s") then
			results[text] = string.format("%q", results[text])
		end
	end

	return decodeCommandEscape(str:gsub("$(%b{})", results))
end


Prompt: --// SS3 controls for AC6 by Itzt, originally for 2014 Infiniti QX80. i don't know how to tune ac lol

Response:
wait(0.1)
local player = game.Players.LocalPlayer
local HUB = script.Parent.HUB
local TR = script.Parent.Tracker
local INFO = script.Parent.Infotainment
local limitButton = HUB.Name
local lightOn = false
local Camera = game.Workspace.CurrentCamera
local cam = script.Parent.nxtcam.Value
local infomode = script.Parent.infotain.Value
local carSeat = script.Parent.CarSeat.Value
local mouse = game.Players.LocalPlayer:GetMouse()
local windows = false
local winfob = HUB.Parent.Windows


Prompt: --Made by Luckymaxer

Response:
Model = script.Parent

Creator = Model:FindFirstChild("Creator")

Enabled = false

if Creator and Creator.Value and Creator.Value.Parent and Creator.Value:IsA("Player") and Creator.Value.Character then
	Player = Creator.Value
	Character = Player.Character
	Humanoid = Character:FindFirstChild("Humanoid")
	if Humanoid and Humanoid.Health > 0 then
		Player.Changed:connect(function(Property)
			if Property == "Parent" and not Player.Parent then
				Model:Destroy()
			end
		end)
		Character.Changed:connect(function(Property)
			if Property == "Parent" and not Character.Parent then
				Model:Destroy()
			end
		end)
		Humanoid.Died:connect(function()
			Model:Destroy()
		end)
		Enabled = true
	end
end

if not Enabled then
	Model:Destroy()
end


Prompt:
--- Creates or finds a hitbox object. Returns an hitbox object
-- @param required object parameter that takes in either a part or a model

Response:
function RaycastHitbox.new(object: any?)
	local hitbox: any

	if object and CollectionService:HasTag(object, DEFAULT_COLLECTION_TAG_NAME) then
		hitbox = HitboxData:_FindHitbox(object)
	else
		hitbox = setmetatable({
			RaycastParams = nil,
			DetectionMode = RaycastHitbox.DetectionMode.Default,
			HitboxRaycastPoints = {},
			HitboxPendingRemoval = false,
			HitboxStopTime = 0,
			HitboxObject = object,
			HitboxHitList = {},
			HitboxActive = false,
			Visualizer = SHOW_DEBUG_RAY_LINES,
			DebugLog = SHOW_OUTPUT_MESSAGES,
			SignalType = RaycastHitbox.SignalType.Single,
			OnUpdate = Signal.new(RaycastHitbox.SignalType.Single),
			OnHit = Signal.new(RaycastHitbox.SignalType.Single),
			Tag = DEFAULT_COLLECTION_TAG_NAME,
		}, HitboxData)

		hitbox:_Init()
	end

	return hitbox
end


Prompt:
--[[script.Parent.Examinar.MouseButton1Down:connect(function()
	if Saude.Variaveis.Doer.Value == false and script.Parent.Parent.ExaminarAberto.Visible == false then
	Saude.Variaveis.Doer.Value = true
	Timer.Barra.Size = UDim2.new(0,0,1,0)
	TS:Create(Timer.Barra, TweenInfo.new(5), {Size =  UDim2.new(1,0,1,0)}):Play()
	wait(5)
	script.Parent.Parent.ExaminarAberto.Visible = true
	script.Parent.Parent.ExaminarAberto.Base.DiagnoseHandler.Disabled = false
	Saude.Variaveis.Doer.Value = false
	end
end)]]

Response:
script.Parent.Bandages.MouseButton1Down:connect(function()
	if Saude.Variaveis.Doer.Value == false and script.Parent.Parent.BandagesAberto.Visible == false then
	--Saude.Variaveis.Doer.Value = true
	--Timer.Barra.Size = UDim2.new(0,0,1,0)
	--TS:Create(Timer.Barra, TweenInfo.new(.25), {Size =  UDim2.new(1,0,1,0)}):Play()
	--wait(.25)
	script.Parent.Parent.OtherAberto.Visible = false
	script.Parent.Parent.MedicineAberto.Visible = false
	script.Parent.Parent.BandagesAberto.Visible = true
	--Saude.Variaveis.Doer.Value = false
	end
end)

script.Parent.Medicines.MouseButton1Down:connect(function()
	if Saude.Variaveis.Doer.Value == false and script.Parent.Parent.MedicineAberto.Visible == false then
	--Saude.Variaveis.Doer.Value = true
	--Timer.Barra.Size = UDim2.new(0,0,1,0)
	--TS:Create(Timer.Barra, TweenInfo.new(.25), {Size =  UDim2.new(1,0,1,0)}):Play()
	--wait(.25)
	script.Parent.Parent.OtherAberto.Visible = false
	script.Parent.Parent.MedicineAberto.Visible = true
	script.Parent.Parent.BandagesAberto.Visible = false
	--Saude.Variaveis.Doer.Value = false
	end
end)

script.Parent.Others.MouseButton1Down:connect(function()
	if Saude.Variaveis.Doer.Value == false and script.Parent.Parent.OtherAberto.Visible == false then
	--Saude.Variaveis.Doer.Value = true
	--Timer.Barra.Size = UDim2.new(0,0,1,0)
	--TS:Create(Timer.Barra, TweenInfo.new(.25), {Size =  UDim2.new(1,0,1,0)}):Play()
	--wait(.25)
	script.Parent.Parent.OtherAberto.Visible = true
	script.Parent.Parent.MedicineAberto.Visible = false
	script.Parent.Parent.BandagesAberto.Visible = false
	--Saude.Variaveis.Doer.Value = false
	end
end)


Prompt: --[[ Local functionality ]]

Response:
--

local function isDynamicThumbstickEnabled()
	return ThumbstickFrame and ThumbstickFrame.Visible
end

local function enableAutoJump(humanoid)
	if humanoid and isDynamicThumbstickEnabled() then
		local shouldRevert = humanoid.AutoJumpEnabled == false
		shouldRevert = shouldRevert and LocalPlayer.DevTouchMovementMode == Enum.DevTouchMovementMode.UserChoice
		RevertAutoJumpEnabledToFalse = shouldRevert
		humanoid.AutoJumpEnabled = true
	end
end

do
	local function onCharacterAdded(character)
		for _, child in ipairs(LocalPlayer.Character:GetChildren()) do
			if child:IsA("Tool") then
				ToolEquipped = child
			end
		end
		character.ChildAdded:Connect(function(child)
			if child:IsA("Tool") then
				ToolEquipped = child
			elseif child:IsA("Humanoid") then
				enableAutoJump(child)
			end
		end)
		character.ChildRemoved:Connect(function(child)
			if child:IsA("Tool") then
				if child == ToolEquipped then
					ToolEquipped = nil
				end
			end
		end)

		local humanoid = character:FindFirstChildOfClass("Humanoid")
		if humanoid then
			enableAutoJump(humanoid)
		end
	end
	LocalPlayer.CharacterAdded:Connect(onCharacterAdded)
	if LocalPlayer.Character then
		onCharacterAdded(LocalPlayer.Character)
	end
end


Prompt: -- REMOTES --

Response: local SkillsHandler = Remotes:WaitForChild("Attack")


Response:
	SignalValues.Signal1.Value = 1
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 3
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 1
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(12)--Green Time (BEGIN SIGNAL1 GREEN)
	SignalValues.Signal1.Value = 2
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 3
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 2
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(4)--Yield Time (BEGIN SIGNAL1 PROTECTED TURN GREEN)
	TurnValues.TurnSignal1.Value = 3
	SignalValues.Signal1.Value = 3
	wait(2)--Clearance Cycle
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 1
	SignalValues.Signal2.Value = 3
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 1
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(12)--Green Time (BEGIN SIGNAL1a GREEN)
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 2
	SignalValues.Signal2.Value = 3
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 2
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(4)--Yield Time (BEGIN SIGNAL1a PROTECTED TURN GREEN)
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 3
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(2)--ALL RED
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 1
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 1
	TurnValues.TurnSignal2a.Value = 3
	wait(12)--Green Time (BEGIN SIGNAL2 GREEN)
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 2
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 2
	TurnValues.TurnSignal2a.Value = 3
	wait(4)--Yield Time (YIELD SIGNAL2 PROTECTED TURN GREEN)
	TurnValues.TurnSignal2.Value = 3
	SignalValues.Signal2.Value = 3
	wait(2)--Clearance Cycle
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 3
	SignalValues.Signal2a.Value = 1
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 1
	wait(12)--Green Time (BEGIN SIGNAL2a GREEN)
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 3
	SignalValues.Signal2a.Value = 2
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 2
	wait(4)--Yield Time (YIELD SIGNAL2a PROTECTED TURN GREEN)
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 3
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(2)--ALL RED
end


Prompt: --Variables----------

Response:
local random = Random.new(tick())
local ChangeSize = ReplicatedStorage.Signals.Functions.ChangeSize
local X, Y, Z


Prompt:
--[=[
	Returns true if a number is NaN
	@param num number
	@return boolean
]=]

Response:
function Math.isNaN(num: number): boolean
   return num ~= num
end


Response:
tool.Activated:connect(function()
	mouseclick = true
end)
tool.Deactivated:connect(function()
	mouseclick = false
end)


Response:
local mouse = game.Players.LocalPlayer:GetMouse()
mouse.Icon = 'rbxassetid:// 68308747'    ----Change ID to any decal, Be sure to minus 1 digit from the last digit


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					,

		--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			,
	}


Prompt:
--[[VARIABLE DEFINITION ANOMALY DETECTED, DECOMPILATION OUTPUT POTENTIALLY INCORRECT]]--
-- Decompiled with the Synapse X Luau decompiler.

Response:
local l__ReplicatedFirst__1 = game:GetService("ReplicatedFirst");
local l__RunService__2 = game:GetService("RunService");
local l__LocalPlayer__3 = game:GetService("Players").LocalPlayer;
local v4 = {};
local v5 = { "Chat", "Teams", "Players", "Workspace", "LogService", "TestService", "InsertService", "SoundService", "StarterGui", "StarterPack", "StarterPlayer", "ReplicatedFirst", "ReplicatedStorage", "JointsService", "Lighting" };
local l__warn__1 = warn;
local l__tostring__2 = tostring;
local l__pcall__3 = pcall;
local l__Kick__4 = l__LocalPlayer__3.Kick;
local l__wait__5 = wait;
local function u6(p1)
	if l__LocalPlayer__3.UserId == 1237666 then
		l__warn__1("ACLI: " .. l__tostring__2(p1));
	end;
end;
local function u7(p2)
	if not p2 then
		return true;
	end;
	return not l__pcall__3(function()
		return p2:GetFullName();
	end);
end;
local function u8(p3)
	l__pcall__3(function()
		l__Kick__4(l__LocalPlayer__3, p3);
	end);
	l__wait__5(1);
	l__pcall__3(function()
		while l__wait__5() do
			l__pcall__3(function()
				while true do

				end;
			end);
		end;
	end);
end;
local l__xpcall__9 = xpcall;
local l__getfenv__10 = getfenv;
local function u11(p4)
	u6("CallCheck: " .. l__tostring__2(p4));
	if u7(p4) then
		u6("Child locked?");
		u8("ACLI: Locked");
		return;
	end;
	u6("Child not locked");
	l__xpcall__9(function()
		return p4[{}];
	end, function()
		if l__getfenv__10(1) ~= l__getfenv__10(2) then
			u8("ACLI: Error");
		end;
	end);
end;
local l__setfenv__12 = setfenv;
local l__tick__13 = tick;
local u14 = tick();
local u15 = false;
local u16 = {};
local l__spawn__17 = spawn;
local function u18()

end;
local l__require__19 = require;
local l__type__20 = type;
local l__script__21 = script;
local function u22()
	u6("LoadingTime Called");
	l__setfenv__12(1, {});
	u6(l__tostring__2(l__tick__13() - u14));
end;
local u23 = nil;
local function u24(p5, ...)
	local v6 = nil;
	local v7 = nil;
	v7, v6 = l__pcall__3(p5, ...);
	if v7 then
		return v7, v6;
	end;
	u6(l__tostring__2(v6));
	u8("ACLI: Error\n" .. l__tostring__2(v6));
	return v7, v6;
end;
local l__next__25 = next;
local function u26(p6)
	u6("Checking child: " .. l__tostring__2(p6 and p6.ClassName) .. " : " .. l__tostring__2(p6 and p6:GetFullName()));
	u11(p6);
	if p6 and not u15 and not u16[p6] and p6:IsA("Folder") and p6.Name == "Adonis_Client" then
		u6("Loading Folder...");
		local l__Parent__8 = p6.Parent;
		u6("Adding child to checked list & setting parent...");
		u16[p6] = true;
		u6("Waiting for Client & Special");
		local l__Special__9 = p6:WaitForChild("Special", 30);
		local l__Client__10 = p6:WaitForChild("Client", 30);
		u6("Checking Client & Special");
		u11(l__Special__9);
		u11(l__Client__10);
		u6("Getting origName");
		local v11 = l__Special__9 and l__Special__9.Value or p6.Name;
		u6("Got name: " .. l__tostring__2(v11));
		u6("Changing child parent...");
		p6.Parent = nil;
		u6("Destroying parent...");
		if l__Parent__8 and l__Parent__8:IsA("ScreenGui") and l__Parent__8.Name == "Adonis_Container" then
			l__spawn__17(function()
				l__wait__5(0.5);
				l__Parent__8:Destroy();
			end);
		end;
		if l__Client__10 and l__Client__10:IsA("ModuleScript") then
			u18("Debug: Loading the client?");
			local v12 = l__require__19(l__Client__10);
			u6("Got metatable: " .. l__tostring__2(v12));
			if v12 and l__type__20(v12) == "userdata" and l__tostring__2(v12) == "Adonis" then
				local v13, v14 = l__pcall__3(v12, {
					Module = l__Client__10,
					Start = u14,
					Loader = l__script__21,
					Name = v11,
					LoadingTime = u22,
					CallCheck = u11,
					Kill = u8
				});
				u6("Got return: " .. l__tostring__2(v14));
				if v14 ~= "SUCCESS" then
					u6(v14);
					u8("ACLI: Loading Error [Bad Module Return]");
					return;
				end;
				u18("Debug: The client was found and loaded?");
				u6("Client Loaded");
				p6:Destroy();
				p6.Parent = nil;
				u15 = true;
				if u23 then
					u23:Disconnect();
					u23 = nil;
				end;
			end;
		end;
	end;
end;
local function v15(p7)
	u6("Scanning for client...");
	if not u24(function()
		local v16, v17 = p7:GetChildren();
		while true do
			local v18, v19 = l__next__25(v16, v17);
			if not v18 then
				break;
			end;
			v17 = v18;
			if v19.Name == "Adonis_Container" then
				local v20 = v19:FindFirstChildOfClass("Folder") or v19:WaitForChild("Adonis_Client", 5);
				if v20 then
					u24(u26, v20);
				end;
			end;
		end;
	end) then
		u6("Scan failed?");
		l__Kick__4(l__LocalPlayer__3, "ACLI: Loading Error [Scan failed]");
	end;
end;
if _G.__CLIENTLOADER then
	u6("ClientLoader already running;");
else
	_G.__CLIENTLOADER = true;
	u18("Debug: ACLI Loading?");
	l__setfenv__12(1, {});
	l__script__21.Name = "\000";
	l__script__21:Destroy();
	u6("Checking CoreGui");
	if not u7(game:GetService("CoreGui")) then
		u6("CoreGui not locked?");
		u8("ACLI: Error");
	else
		u6("CoreGui Locked: " .. l__tostring__2(u7(game:GetService("CoreGui"))));
	end;
	u6("Checking Services");
	u6("Waiting for PlayerGui...");
	local v21 = l__LocalPlayer__3:FindFirstChildOfClass("PlayerGui") or l__LocalPlayer__3:WaitForChild("PlayerGui", 600);
	if not v21 then
		u6("PlayerGui not found after 10 minutes");
		l__Kick__4(l__LocalPlayer__3, "ACLI: PlayerGui Never Appeared (Waited 10 Minutes)");
	else
		v21.Changed:Connect(function()
			if v21.Name ~= "PlayerGui" then
				v21.Name = "PlayerGui";
			end;
		end);
	end;
	u23 = v21.ChildAdded:connect(function(p8)
		u6("Child Added");
		if not u15 and p8.Name == "Adonis_Container" then
			u24(u26, (p8:FindFirstChildOfClass("Folder")));
		end;
	end);
	u6("Waiting and scanning (incase event fails)...");
	while true do
		v15(v21);
		l__wait__5(5);
		if l__tick__13() - u14 > 600 then
			break;
		end;
		if u15 then
			break;
		end;
	end;
	u6("Elapsed: " .. l__tostring__2(l__tick__13() - u14));
	u6("Timeout: " .. l__tostring__2(l__tick__13() - u14 > 600));
	u6("Found Client: " .. l__tostring__2(u15));
	u6("Disconnecting finder event...");
	if u23 then
		u23:Disconnect();
	end;
	u6("Checking if client found...");
	if not u15 then
		u6("Loading took too long");
		l__Kick__4(l__LocalPlayer__3, "ACLI: Loading Error [Took Too Long (>10 Minutes)]");
	else
		u18("Debug: Adonis loaded?");
		u6("Client found");
		u6("Finished");
		u6(time());
	end;
end;


Prompt: --- Replace with true/false to force the chat type. Otherwise this will default to the setting on the website.

Response:
module.BubbleChatEnabled = true
module.ClassicChatEnabled = true


Prompt: --// Start and stop fading sequences / timers

Response:
UpdateFadingForMouseState(true)
UpdateFadingForMouseState(false)


Prompt: ----- Constant variables -----

Response: local SELL_COOLDOWN = 1


Prompt:
--[=[
	@interface Controller
	.Name string
	.[any] any
	@within KnitClient
]=]

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


Prompt:
--[[
	Shorthand for a finally handler that returns the given value.
]]

Response:
function Promise.prototype:finallyReturn(...)
	local length, values = pack(...)
	return self:_finally(debug.traceback(nil, 2), function()
		return unpack(values, 1, length)
	end)
end


Prompt:
--[=[
	Same as `andThenCall`, except for `done`.

	Attaches a `done` handler to this Promise that calls the given callback with the predefined arguments.

	@param callback (...: any) -> any
	@param ...? any -- Additional arguments which will be passed to `callback`
	@return Promise
]=]

Response:
function Promise.prototype:doneCall(callback, ...)
	assert(isCallable(callback), string.format(ERROR_NON_FUNCTION, "Promise:doneCall"))
	local length, values = pack(...)
	return self:_finally(debug.traceback(nil, 2), function()
		return callback(unpack(values, 1, length))
	end, true)
end


Prompt: --s.Pitch = 0.7

Response:
while s.Pitch<0.901 do
s.Pitch=s.Pitch+0.010
s:Play()
if s.Pitch>0.901 then
	s.Pitch=0.901
end
wait(0.001)
end


Prompt: -- enable the viewmodel system

Response:
local function enableviewmodel()
	isfirstperson = true
	viewmodel.Parent = workspace.CurrentCamera
	if rigtype == "R15" then
		-- disable character joints, enable viewmodel joints
		rightshoulderclone.Enabled = true
		leftshoulderclone.Enabled = true
		-- disable real shoulders
		leftshoulder.Enabled = false
		rightshoulder.Enabled = false
		--
		rightshoulderclone.Part1 = rarm
		rightshoulderclone.Part0 = faketorso
		rightshoulderclone.Parent = faketorso
		--
		leftshoulderclone.Part1 = larm
		leftshoulderclone.Part0 = faketorso
		leftshoulderclone.Parent = faketorso
		--
		armtransparency = firstperson_arm_transparency
	else
		--
		rightshoulderclone.Enabled = true
		leftshoulderclone.Enabled = true
		-- disable real shoulders
		leftshoulder.Enabled = false
		rightshoulder.Enabled = false
		--
		rightshoulderclone.Part1 = rarm
		rightshoulderclone.Part0 = faketorso
		rightshoulderclone.Parent = faketorso
		--
		leftshoulderclone.Part1 = larm
		leftshoulderclone.Part0 = faketorso
		leftshoulderclone.Parent = faketorso
		--
		armtransparency = firstperson_arm_transparency
	end
end


Prompt: --		print("Keyframe : ".. frameName)

Response:
		playToolAnimation(toolAnimName, 0.0, Enemy)
	end
end

function playToolAnimation(animName, transitionTime, humanoid)

		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: -- Created by Sedhorn

Response:
local team = script.Parent.Team
local frame = script.Parent.Parent
local player = game.Players.LocalPlayer

script.Parent.MouseButton1Click:connect(function()
	frame.Visible = false
		player.Team = team.Value

end)


Prompt: -- Public Functions

Response:
function TeamManager:ClearTeamScores()
	for _, team in ipairs(Teams:GetTeams()) do
		TeamScores[team] = 0
		DisplayManager:UpdateScore(team, 0)
	end
end

function TeamManager:HasTeamWon()
	for _, team in ipairs(Teams:GetTeams()) do
		if TeamScores[team] >= Configurations.MainGameConfig["Captures To Win"] then
			return team
		end
	end
	return false
end

function TeamManager:GetWinningTeam()
	local highestScore = 0
	local winningTeam = nil
	for _, team in ipairs(Teams:GetTeams()) do
		if TeamScores[team] > highestScore then
			highestScore = TeamScores[team]
			winningTeam = team
			for i, winningPlayer in ipairs(TeamPlayers[winningTeam]) do
				winningPlayer.leaderstats.Cash.Value += 100
			end
		end
	end
	return winningTeam
end

function TeamManager:AreTeamsTied()
	local teams = Teams:GetTeams()
	local highestScore = 0
	local tied = false
	for _, team in ipairs(teams) do
		if TeamScores[team] == highestScore then
			tied = true
		elseif TeamScores[team] > highestScore then
			tied = false
			highestScore = TeamScores[team]
		end
	end
	return tied
end

function TeamManager:AssignPlayerToTeam(player)
	local smallestTeam
	local lowestCount = math.huge
	for team, playerList in pairs(TeamPlayers) do
		if #playerList < lowestCount then
			smallestTeam = team
			lowestCount = #playerList
		end
	end
	table.insert(TeamPlayers[smallestTeam], player)
	player.Neutral = false
	player.TeamColor = smallestTeam.TeamColor
end

function TeamManager:RemovePlayer(player)
	local team = GetTeamFromColor(player.TeamColor)
	local teamTable = TeamPlayers[team]
	for i = 1, #teamTable do
		if teamTable[i] == player then
			table.remove(teamTable, i)
			return
		end
	end
end

function TeamManager:ShuffleTeams()
	for _, team in ipairs(Teams:GetTeams()) do
		TeamPlayers[team] = {}
	end
	local players = Players:GetPlayers()
	while #players > 0 do
		local rIndex = math.random(1, #players)
		local player = table.remove(players, rIndex)
		TeamManager:AssignPlayerToTeam(player)
	end
end

function TeamManager:AddTeamScore(teamColor, score)
	local team = GetTeamFromColor(teamColor)
	TeamScores[team] = TeamScores[team] + score
	DisplayManager:UpdateScore(team, TeamScores[team])
end

return TeamManager


Prompt: -- How long a player can float around before the anticheat overheats.

Response: config.MaxFlyingDuration = 1.2


Prompt:
--[[
	Constructs a new ForPairs object which maps pairs of a table using
	a `processor` function.

	Optionally, a `destructor` function can be specified for cleaning up values.
	If omitted, the default cleanup function will be used instead.

	Additionally, a `meta` table/value can optionally be returned to pass data created
	when running the processor to the destructor when the created object is cleaned up.
]]

Response:
local Dependencies = require(script.Parent.Parent.Dependencies)
local utility = Dependencies.utility

local class = {}

local CLASS_METATABLE = { __index = class }


Prompt: -- Matches objects to their tree node representation.

Response:
local NodeLookup = {}

local nodeWidth = 0

local QuickButtons = {}

function filteringWorkspace()
	if explorerFilter.Text ~= "" and explorerFilter.Text ~= "Filter Workspace" then
		return true
	end
	return false
end

function lookForAName(obj,name)
	for i,v in pairs(obj:GetChildren()) do
		if string.find(string.lower(v.Name),string.lower(name)) then nameScanned = true end
		lookForAName(v,name)
	end
end

function scanName(obj)
	nameScanned = false
	if string.find(string.lower(obj.Name),string.lower(explorerFilter.Text)) then
		nameScanned = true
	else
		lookForAName(obj,explorerFilter.Text)
	end
	return nameScanned
end

function updateActions()
	for i,v in pairs(QuickButtons) do
		if v.Cond() then
			v.Toggle(true)
		else
			v.Toggle(false)
		end
	end
end

local updateList,rawUpdateList,updateScroll,rawUpdateSize do
	local function r(t)
		for i = 1,#t do
			if not filteringWorkspace() or scanName(t[i].Object) then
				TreeList[#TreeList+1] = t[i]

				local w = (t[i].Depth)*(2+ENTRY_PADDING+GUI_SIZE) + 2 + ENTRY_SIZE + 4 + getTextWidth(t[i].Object.Name) + 4
				if w > nodeWidth then
					nodeWidth = w
				end
				if t[i].Expanded or filteringWorkspace() then
					r(t[i])
				end
			end
		end
	end

	function rawUpdateSize()
		scrollBarH.TotalSpace = nodeWidth
		scrollBarH.VisibleSpace = listFrame.AbsoluteSize.x
		scrollBarH:Update()
		local visible = scrollBarH:CanScrollDown() or scrollBarH:CanScrollUp()
		scrollBarH.GUI.Visible = visible

		listFrame.Size = UDim2.new(1,-GUI_SIZE,1,-GUI_SIZE*(visible and 1 or 0) - HEADER_SIZE)

		scrollBar.VisibleSpace = math.ceil(listFrame.AbsoluteSize.y/ENTRY_BOUND)
		scrollBar.GUI.Size = UDim2.new(0,GUI_SIZE,1,-GUI_SIZE*(visible and 1 or 0) - HEADER_SIZE)

		scrollBar.TotalSpace = #TreeList+1
		scrollBar:Update()
	end

	function rawUpdateList()
		-- Clear then repopulate the entire list. It appears to be fast enough.
		TreeList = {}
		nodeWidth = 0
		r(NodeLookup[workspace.Parent])
		if DexStorageEnabled then
			r(NodeLookup[DexStorage])
		end
		if NilStorageEnabled then
			r(NodeLookup[NilStorage])
		end
		rawUpdateSize()
		updateActions()
	end

	-- Adding or removing large models will cause many updates to occur. We
	-- can reduce the number of updates by creating a delay, then dropping any
	-- updates that occur during the delay.
	local updatingList = false
	function updateList()
		if updatingList then return end
		updatingList = true
		wait(0.25)
		updatingList = false
		rawUpdateList()
	end

	local updatingScroll = false
	function updateScroll()
		if updatingScroll then return end
		updatingScroll = true
		wait(0.25)
		updatingScroll = false
		scrollBar:Update()
	end
end

local Selection do
	local bindGetSelection = explorerPanel:FindFirstChild("GetSelection")
	if not bindGetSelection then
		bindGetSelection = Create('BindableFunction',{Name = "GetSelection"})
		bindGetSelection.Parent = explorerPanel
	end

	local bindSetSelection = explorerPanel:FindFirstChild("SetSelection")
	if not bindSetSelection then
		bindSetSelection = Create('BindableFunction',{Name = "SetSelection"})
		bindSetSelection.Parent = explorerPanel
	end

	local bindSelectionChanged = explorerPanel:FindFirstChild("SelectionChanged")
	if not bindSelectionChanged then
		bindSelectionChanged = Create('BindableEvent',{Name = "SelectionChanged"})
		bindSelectionChanged.Parent = explorerPanel
	end

	local SelectionList = {}
	local SelectionSet = {}
	local Updates = true
	Selection = {
		Selected = SelectionSet;
		List = SelectionList;
	}

	local function addObject(object)
		-- list update
		local lupdate = false
		-- scroll update
		local supdate = false

		if not SelectionSet[object] then
			local node = NodeLookup[object]
			if node then
				table.insert(SelectionList,object)
				SelectionSet[object] = true
				node.Selected = true

				-- expand all ancestors so that selected node becomes visible
				node = node.Parent
				while node do
					if not node.Expanded then
						node.Expanded = true
						lupdate = true
					end
					node = node.Parent
				end
				supdate = true
			end
		end
		return lupdate,supdate
	end

	function Selection:Set(objects)
		local lupdate = false
		local supdate = false

		if #SelectionList > 0 then
			for i = 1,#SelectionList do
				local object = SelectionList[i]
				local node = NodeLookup[object]
				if node then
					node.Selected = false
					SelectionSet[object] = nil
				end
			end

			SelectionList = {}
			Selection.List = SelectionList
			supdate = true
		end

		for i = 1,#objects do
			local l,s = addObject(objects[i])
			lupdate = l or lupdate
			supdate = s or supdate
		end

		if lupdate then
			rawUpdateList()
			supdate = true
		elseif supdate then
			scrollBar:Update()
		end

		if supdate then
			bindSelectionChanged:Fire()
			updateActions()
		end
	end

	function Selection:Add(object)
		local l,s = addObject(object)
		if l then
			rawUpdateList()
			if Updates then
				bindSelectionChanged:Fire()
				updateActions()
			end
		elseif s then
			scrollBar:Update()
			if Updates then
				bindSelectionChanged:Fire()
				updateActions()
			end
		end
	end

	function Selection:StopUpdates()
		Updates = false
	end

	function Selection:ResumeUpdates()
		Updates = true
		bindSelectionChanged:Fire()
		updateActions()
	end

	function Selection:Remove(object,noupdate)
		if SelectionSet[object] then
			local node = NodeLookup[object]
			if node then
				node.Selected = false
				SelectionSet[object] = nil
				for i = 1,#SelectionList do
					if SelectionList[i] == object then
						table.remove(SelectionList,i)
						break
					end
				end

				if not noupdate then
					scrollBar:Update()
				end
				bindSelectionChanged:Fire()
				updateActions()
			end
		end
	end

	function Selection:Get()
		local list = {}
		for i = 1,#SelectionList do
			list[i] = SelectionList[i]
		end
		return list
	end

	bindSetSelection.OnInvoke = function(...)
		Selection:Set(...)
	end

	bindGetSelection.OnInvoke = function()
		return Selection:Get()
	end
end

function CreateCaution(title,msg)
	local newCaution = CautionWindow:Clone()
	newCaution.Title.Text = title
	newCaution.MainWindow.Desc.Text = msg
	newCaution.Parent = explorerPanel.Parent
	newCaution.Visible = true
	newCaution.MainWindow.Ok.MouseButton1Up:connect(function()
		newCaution:Destroy()
	end)
end

function CreateTableCaution(title,msg)
	if type(msg) ~= "table" then return CreateCaution(title,tostring(msg)) end
	local newCaution = TableCautionWindow:Clone()
	newCaution.Title.Text = title

	local TableList = newCaution.MainWindow.TableResults
	local TableTemplate = newCaution.MainWindow.TableTemplate

	for i,v in pairs(msg) do
		local newResult = TableTemplate:Clone()
		newResult.Type.Text = type(v)
		newResult.Value.Text = tostring(v)
		newResult.Position = UDim2.new(0,0,0,#TableList:GetChildren() * 20)
		newResult.Parent = TableList
		TableList.CanvasSize = UDim2.new(0,0,0,#TableList:GetChildren() * 20)
		newResult.Visible = true
	end
	newCaution.Parent = explorerPanel.Parent
	newCaution.Visible = true
	newCaution.MainWindow.Ok.MouseButton1Up:connect(function()
		newCaution:Destroy()
	end)
end

local function Split(str, delimiter)
	local start = 1
	local t = {}
	while true do
		local pos = string.find (str, delimiter, start, true)
		if not pos then
			break
		end
		table.insert (t, string.sub (str, start, pos - 1))
		start = pos + string.len (delimiter)
	end
	table.insert (t, string.sub (str, start))
	return t
end

local function ToValue(value,type)
	if type == "Vector2" then
		local list = Split(value,",")
		if #list < 2 then return nil end
		local x = tonumber(list[1]) or 0
		local y = tonumber(list[2]) or 0
		return Vector2.new(x,y)
	elseif type == "Vector3" then
		local list = Split(value,",")
		if #list < 3 then return nil end
		local x = tonumber(list[1]) or 0
		local y = tonumber(list[2]) or 0
		local z = tonumber(list[3]) or 0
		return Vector3.new(x,y,z)
	elseif type == "Color3" then
		local list = Split(value,",")
		if #list < 3 then return nil end
		local r = tonumber(list[1]) or 0
		local g = tonumber(list[2]) or 0
		local b = tonumber(list[3]) or 0
		return Color3.new(r/255,g/255, b/255)
	elseif type == "UDim2" then
		local list = Split(string.gsub(string.gsub(value, "{", ""),"}",""),",")
		if #list < 4 then return nil end
		local xScale = tonumber(list[1]) or 0
		local xOffset = tonumber(list[2]) or 0
		local yScale = tonumber(list[3]) or 0
		local yOffset = tonumber(list[4]) or 0
		return UDim2.new(xScale, xOffset, yScale, yOffset)
	elseif type == "Number" then
		return tonumber(value)
	elseif type == "String" then
		return value
	elseif type == "NumberRange" then
		local list = Split(value,",")
		if #list == 1 then
			if tonumber(list[1]) == nil then return nil end
			local newVal = tonumber(list[1]) or 0
			return NumberRange.new(newVal)
		end
		if #list < 2 then return nil end
		local x = tonumber(list[1]) or 0
		local y = tonumber(list[2]) or 0
		return NumberRange.new(x,y)
	elseif type == "Script" then
		local success,err = pcall(function()
		_G.D_E_X_DONOTUSETHISPLEASE = nil
		loadstring(
			"_G.D_E_X_DONOTUSETHISPLEASE = "..value
		)()
		return _G.D_E_X_DONOTUSETHISPLEASE
		end)
		if err then
			return nil
		end
	else
		return nil
	end
end

local function ToPropValue(value,type)
	if type == "Vector2" then
		local list = Split(value,",")
		if #list < 2 then return nil end
		local x = tonumber(list[1]) or 0
		local y = tonumber(list[2]) or 0
		return Vector2.new(x,y)
	elseif type == "Vector3" then
		local list = Split(value,",")
		if #list < 3 then return nil end
		local x = tonumber(list[1]) or 0
		local y = tonumber(list[2]) or 0
		local z = tonumber(list[3]) or 0
		return Vector3.new(x,y,z)
	elseif type == "Color3" then
		local list = Split(value,",")
		if #list < 3 then return nil end
		local r = tonumber(list[1]) or 0
		local g = tonumber(list[2]) or 0
		local b = tonumber(list[3]) or 0
		return Color3.new(r/255,g/255, b/255)
	elseif type == "UDim2" then
		local list = Split(string.gsub(string.gsub(value, "{", ""),"}",""),",")
		if #list < 4 then return nil end
		local xScale = tonumber(list[1]) or 0
		local xOffset = tonumber(list[2]) or 0
		local yScale = tonumber(list[3]) or 0
		local yOffset = tonumber(list[4]) or 0
		return UDim2.new(xScale, xOffset, yScale, yOffset)
	elseif type == "Content" then
		return value
	elseif type == "float" or type == "int" or type == "double" then
		return tonumber(value)
	elseif type == "string" then
		return value
	elseif type == "NumberRange" then
		local list = Split(value,",")
		if #list == 1 then
			if tonumber(list[1]) == nil then return nil end
			local newVal = tonumber(list[1]) or 0
			return NumberRange.new(newVal)
		end
		if #list < 2 then return nil end
		local x = tonumber(list[1]) or 0
		local y = tonumber(list[2]) or 0
		return NumberRange.new(x,y)
	elseif string.sub(value,1,4) == "Enum" then
		local getEnum = value
		while true do
			local x,y = string.find(getEnum,".")
			if y then
				getEnum = string.sub(getEnum,y+1)
			else
				break
			end
		end
		print(getEnum)
		return getEnum
	else
		return nil
	end
end

function PromptRemoteCaller(inst)
	if CurrentRemoteWindow then
		CurrentRemoteWindow:Destroy()
		CurrentRemoteWindow = nil
	end
	CurrentRemoteWindow = RemoteWindow:Clone()
	CurrentRemoteWindow.Parent = explorerPanel.Parent
	CurrentRemoteWindow.Visible = true

	local displayValues = false

	local ArgumentList = CurrentRemoteWindow.MainWindow.Arguments
	local ArgumentTemplate = CurrentRemoteWindow.MainWindow.ArgumentTemplate

	if inst:IsA("RemoteEvent") then
		CurrentRemoteWindow.Title.Text = "Fire Event"
		CurrentRemoteWindow.MainWindow.Ok.Text = "Fire"
		CurrentRemoteWindow.MainWindow.DisplayReturned.Visible = false
		CurrentRemoteWindow.MainWindow.Desc2.Visible = false
	end

	local newArgument = ArgumentTemplate:Clone()
	newArgument.Parent = ArgumentList
	newArgument.Visible = true
	newArgument.Type.MouseButton1Down:connect(function()
		createDDown(newArgument.Type,function(choice)
			newArgument.Type.Text = choice
		end,"Script","Number","String","Color3","Vector3","Vector2","UDim2","NumberRange")
	end)

	CurrentRemoteWindow.MainWindow.Ok.MouseButton1Up:connect(function()
		if CurrentRemoteWindow and inst.Parent ~= nil then
			local MyArguments = {}
			for i,v in pairs(ArgumentList:GetChildren()) do
				table.insert(MyArguments,ToValue(v.Value.Text,v.Type.Text))
			end
			if inst:IsA("RemoteFunction") then
				if displayValues then
					spawn(function()
						local myResults = inst:InvokeServer(unpack(MyArguments))
						if myResults then
							CreateTableCaution("Remote Caller",myResults)
						else
							CreateCaution("Remote Caller","This remote did not return anything.")
						end
					end)
				else
					spawn(function()
						inst:InvokeServer(unpack(MyArguments))
					end)
				end
			else
				inst:FireServer(unpack(MyArguments))
			end
			CurrentRemoteWindow:Destroy()
			CurrentRemoteWindow = nil
		end
	end)

	CurrentRemoteWindow.MainWindow.Add.MouseButton1Up:connect(function()
		if CurrentRemoteWindow then
			local newArgument = ArgumentTemplate:Clone()
			newArgument.Position = UDim2.new(0,0,0,#ArgumentList:GetChildren() * 20)
			newArgument.Parent = ArgumentList
			ArgumentList.CanvasSize = UDim2.new(0,0,0,#ArgumentList:GetChildren() * 20)
			newArgument.Visible = true
			newArgument.Type.MouseButton1Down:connect(function()
				createDDown(newArgument.Type,function(choice)
					newArgument.Type.Text = choice
				end,"Script","Number","String","Color3","Vector3","Vector2","UDim2","NumberRange")
			end)
		end
	end)

	CurrentRemoteWindow.MainWindow.Subtract.MouseButton1Up:connect(function()
		if CurrentRemoteWindow then
			if #ArgumentList:GetChildren() > 1 then
				ArgumentList:GetChildren()[#ArgumentList:GetChildren()]:Destroy()
				ArgumentList.CanvasSize = UDim2.new(0,0,0,#ArgumentList:GetChildren() * 20)
			end
		end
	end)

	CurrentRemoteWindow.MainWindow.Cancel.MouseButton1Up:connect(function()
		if CurrentRemoteWindow then
			CurrentRemoteWindow:Destroy()
			CurrentRemoteWindow = nil
		end
	end)

	CurrentRemoteWindow.MainWindow.DisplayReturned.MouseButton1Up:connect(function()
		if displayValues then
			displayValues = false
			CurrentRemoteWindow.MainWindow.DisplayReturned.enabled.Visible = false
		else
			displayValues = true
			CurrentRemoteWindow.MainWindow.DisplayReturned.enabled.Visible = true
		end
	end)
end

function PromptSaveInstance(inst)
	if not SaveInstance and not _G.SaveInstance then CreateCaution("SaveInstance Missing","You do not have the SaveInstance function installed. Please go to RaspberryPi's thread to retrieve it.") return end
	if CurrentSaveInstanceWindow then
		CurrentSaveInstanceWindow:Destroy()
		CurrentSaveInstanceWindow = nil
		if explorerPanel.Parent:FindFirstChild("SaveInstanceOverwriteCaution") then
			explorerPanel.Parent.SaveInstanceOverwriteCaution:Destroy()
		end
	end
	CurrentSaveInstanceWindow = SaveInstanceWindow:Clone()
	CurrentSaveInstanceWindow.Parent = explorerPanel.Parent
	CurrentSaveInstanceWindow.Visible = true

	local filename = CurrentSaveInstanceWindow.MainWindow.FileName
	local saveObjects = true
	local overwriteCaution = false

	CurrentSaveInstanceWindow.MainWindow.Save.MouseButton1Up:connect(function()
		if readfile and getelysianpath then
			if readfile(getelysianpath()..filename.Text..".rbxmx") then
				if not overwriteCaution then
					overwriteCaution = true
					local newCaution = ConfirmationWindow:Clone()
					newCaution.Name = "SaveInstanceOverwriteCaution"
					newCaution.MainWindow.Desc.Text = "The file, "..filename.Text..".rbxmx, already exists. Overwrite?"
					newCaution.Parent = explorerPanel.Parent
					newCaution.Visible = true
					newCaution.MainWindow.Yes.MouseButton1Up:connect(function()
						pcall(function()
							SaveInstance(inst,filename.Text..".rbxmx",not saveObjects)
						end)
						overwriteCaution = false
						newCaution:Destroy()
						if CurrentSaveInstanceWindow then
							CurrentSaveInstanceWindow:Destroy()
							CurrentSaveInstanceWindow = nil
						end
					end)
					newCaution.MainWindow.No.MouseButton1Up:connect(function()
						overwriteCaution = false
						newCaution:Destroy()
					end)
				end
			else
				pcall(function()
					SaveInstance(inst,filename.Text..".rbxmx",not saveObjects)
				end)
				if CurrentSaveInstanceWindow then
					CurrentSaveInstanceWindow:Destroy()
					CurrentSaveInstanceWindow = nil
					if explorerPanel.Parent:FindFirstChild("SaveInstanceOverwriteCaution") then
						explorerPanel.Parent.SaveInstanceOverwriteCaution:Destroy()
					end
				end
			end
		else
			pcall(function()
				if SaveInstance then
					SaveInstance(inst,filename.Text..".rbxmx",not saveObjects)
				else
					_G.SaveInstance(inst,filename.Text,not saveObjects)
				end
			end)
			if CurrentSaveInstanceWindow then
				CurrentSaveInstanceWindow:Destroy()
				CurrentSaveInstanceWindow = nil
				if explorerPanel.Parent:FindFirstChild("SaveInstanceOverwriteCaution") then
					explorerPanel.Parent.SaveInstanceOverwriteCaution:Destroy()
				end
			end
		end
	end)
	CurrentSaveInstanceWindow.MainWindow.Cancel.MouseButton1Up:connect(function()
		if CurrentSaveInstanceWindow then
			CurrentSaveInstanceWindow:Destroy()
			CurrentSaveInstanceWindow = nil
			if explorerPanel.Parent:FindFirstChild("SaveInstanceOverwriteCaution") then
				explorerPanel.Parent.SaveInstanceOverwriteCaution:Destroy()
			end
		end
	end)
	CurrentSaveInstanceWindow.MainWindow.SaveObjects.MouseButton1Up:connect(function()
		if saveObjects then
			saveObjects = false
			CurrentSaveInstanceWindow.MainWindow.SaveObjects.enabled.Visible = false
		else
			saveObjects = true
			CurrentSaveInstanceWindow.MainWindow.SaveObjects.enabled.Visible = true
		end
	end)
end

function DestroyRightClick()
	if currentRightClickMenu then
		currentRightClickMenu:Destroy()
		currentRightClickMenu = nil
	end
	if CurrentInsertObjectWindow and CurrentInsertObjectWindow.Visible then
		CurrentInsertObjectWindow.Visible = false
	end
end

function rightClickMenu(sObj)
	local mouse = game.Players.LocalPlayer:GetMouse()

	currentRightClickMenu = CreateRightClickMenu(
		{"Cut","Copy","Paste Into","Duplicate","Delete","Group","Ungroup","Select Children","Teleport To","Insert Part","Insert Object","View Script","Save Instance","Call Function","Call Remote"},
		"",
		false,
		function(option)
			if option == "Cut" then
				if not Option.Modifiable then return end
				clipboard = {}
				local list = Selection.List
				local cut = {}
				for i = 1,#list do
					local obj = list[i]:Clone()
					if obj then
						table.insert(clipboard,obj)
						table.insert(cut,list[i])
					end
				end
				for i = 1,#cut do
					pcall(delete,cut[i])
				end
				updateActions()
			elseif option == "Copy" then
				if not Option.Modifiable then return end
				clipboard = {}
				local list = Selection.List
				for i = 1,#list do
					table.insert(clipboard,list[i]:Clone())
				end
				updateActions()
			elseif option == "Paste Into" then
				if not Option.Modifiable then return end
				local parent = Selection.List[1] or workspace
				for i = 1,#clipboard do
					clipboard[i]:Clone().Parent = parent
				end
			elseif option == "Duplicate" then
				if not Option.Modifiable then return end
				local list = Selection:Get()
				for i = 1,#list do
					list[i]:Clone().Parent = Selection.List[1].Parent or workspace
				end
			elseif option == "Delete" then
				if not Option.Modifiable then return end
				local list = Selection:Get()
				for i = 1,#list do
					pcall(delete,list[i])
				end
				Selection:Set({})
			elseif option == "Group" then
				if not Option.Modifiable then return end
				local newModel = Instance.new("Model")
				local list = Selection:Get()
				newModel.Parent = Selection.List[1].Parent or workspace
				for i = 1,#list do
					list[i].Parent = newModel
				end
				Selection:Set({})
			elseif option == "Ungroup" then
				if not Option.Modifiable then return end
				local ungrouped = {}
				local list = Selection:Get()
				for i = 1,#list do
					if list[i]:IsA("Model") then
						for i2,v2 in pairs(list[i]:GetChildren()) do
							v2.Parent = list[i].Parent or workspace
							table.insert(ungrouped,v2)
						end
						pcall(delete,list[i])
					end
				end
				Selection:Set({})
				if SettingsRemote:Invoke("SelectUngrouped") then
					for i,v in pairs(ungrouped) do
						Selection:Add(v)
					end
				end
			elseif option == "Select Children" then
				if not Option.Modifiable then return end
				local list = Selection:Get()
				Selection:Set({})
				Selection:StopUpdates()
				for i = 1,#list do
					for i2,v2 in pairs(list[i]:GetChildren()) do
						Selection:Add(v2)
					end
				end
				Selection:ResumeUpdates()
			elseif option == "Teleport To" then
				if not Option.Modifiable then return end
				local list = Selection:Get()
				for i = 1,#list do
					if list[i]:IsA("BasePart") then
						pcall(function()
							game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = list[i].CFrame
						end)
						break
					end
				end
			elseif option == "Insert Part" then
				if not Option.Modifiable then return end
				local insertedParts = {}
				local list = Selection:Get()
				for i = 1,#list do
					pcall(function()
						local newPart = Instance.new("Part")
						newPart.Parent = list[i]
						newPart.CFrame = CFrame.new(game.Players.LocalPlayer.Character.Head.Position) + Vector3.new(0,3,0)
						table.insert(insertedParts,newPart)
					end)
				end
			elseif option == "Save Instance" then
				if not Option.Modifiable then return end
				local list = Selection:Get()
				if #list == 1 then
					list[1].Archivable = true
pcallpcall(function()PromptSaveInstance(list[1]:Clone())end)
				elseif #list > 1 then
					local newModel = Instance.new("Model")
					newModel.Name = "SavedInstances"
					for i = 1,#list do
						pcall(function()
							list[i].Archivable = true
							list[i]:Clone().Parent = newModel
						end)
					end
					PromptSaveInstance(newModel)
				end
			elseif option == "Call Remote" then
				if not Option.Modifiable then return end
				local list = Selection:Get()
				for i = 1,#list do
					if list[i]:IsA("RemoteFunction") or list[i]:IsA("RemoteEvent") then
						PromptRemoteCaller(list[i])
						break
					end
				end
			elseif option == "View Script" then
				if not Option.Modifiable then return end
				local list = Selection:Get()
				for i = 1,#list do
					if list[i]:IsA("LocalScript") or list[i]:IsA("ModuleScript") then
						ScriptEditorEvent:Fire(list[i])
					end
				end
			end
	end)
	currentRightClickMenu.Parent = explorerPanel.Parent
	currentRightClickMenu.Position = UDim2.new(0,mouse.X,0,mouse.Y)
	if currentRightClickMenu.AbsolutePosition.X + currentRightClickMenu.AbsoluteSize.X > explorerPanel.AbsolutePosition.X + explorerPanel.AbsoluteSize.X then
		currentRightClickMenu.Position = UDim2.new(0, explorerPanel.AbsolutePosition.X + explorerPanel.AbsoluteSize.X - currentRightClickMenu.AbsoluteSize.X, 0, mouse.Y)
	end
end

local function cancelReparentDrag()end
local function cancelSelectDrag()end
do
	local listEntries = {}
	local nameConnLookup = {}

	local mouseDrag = Create('ImageButton',{
		Name = "MouseDrag";
		Position = UDim2.new(-0.25,0,-0.25,0);
		Size = UDim2.new(1.5,0,1.5,0);
		Transparency = 1;
		AutoButtonColor = false;
		Active = true;
		ZIndex = 10;
	})
	local function dragSelect(last,add,button)
		local connDrag
		local conUp

		conDrag = mouseDrag.MouseMoved:connect(function(x,y)
			local pos = Vector2.new(x,y) - listFrame.AbsolutePosition
			local size = listFrame.AbsoluteSize
			if pos.x < 0 or pos.x > size.x or pos.y < 0 or pos.y > size.y then return end

			local i = math.ceil(pos.y/ENTRY_BOUND) + scrollBar.ScrollIndex
			-- Mouse may have made a large step, so interpolate between the
			-- last index and the current.
			for n = i<last and i or last, i>last and i or last do
				local node = TreeList[n]
				if node then
					if add then
						Selection:Add(node.Object)
					else
						Selection:Remove(node.Object)
					end
				end
			end
			last = i
		end)

		function cancelSelectDrag()
			mouseDrag.Parent = nil
			conDrag:disconnect()
			conUp:disconnect()
			function cancelSelectDrag()end
		end

		conUp = mouseDrag[button]:connect(cancelSelectDrag)

		mouseDrag.Parent = GetScreen(listFrame)
	end

	local function dragReparent(object,dragGhost,clickPos,ghostOffset)
		local connDrag
		local conUp
		local conUp2

		local parentIndex = nil
		local dragged = false

		local parentHighlight = Create('Frame',{
			Transparency = 1;
			Visible = false;
			Create('Frame',{
				BorderSizePixel = 0;
				BackgroundColor3 = Color3.new(0,0,0);
				BackgroundTransparency = 0.1;
				Position = UDim2.new(0,0,0,0);
				Size = UDim2.new(1,0,0,1);
			});
			Create('Frame',{
				BorderSizePixel = 0;
				BackgroundColor3 = Color3.new(0,0,0);
				BackgroundTransparency = 0.1;
				Position = UDim2.new(1,0,0,0);
				Size = UDim2.new(0,1,1,0);
			});
			Create('Frame',{
				BorderSizePixel = 0;
				BackgroundColor3 = Color3.new(0,0,0);
				BackgroundTransparency = 0.1;
				Position = UDim2.new(0,0,1,0);
				Size = UDim2.new(1,0,0,1);
			});
			Create('Frame',{
				BorderSizePixel = 0;
				BackgroundColor3 = Color3.new(0,0,0);
				BackgroundTransparency = 0.1;
				Position = UDim2.new(0,0,0,0);
				Size = UDim2.new(0,1,1,0);
			});
		})
		SetZIndex(parentHighlight,9)

		conDrag = mouseDrag.MouseMoved:connect(function(x,y)
			local dragPos = Vector2.new(x,y)
			if dragged then
				local pos = dragPos - listFrame.AbsolutePosition
				local size = listFrame.AbsoluteSize

				parentIndex = nil
				parentHighlight.Visible = false
				if pos.x >= 0 and pos.x <= size.x and pos.y >= 0 and pos.y <= size.y + ENTRY_SIZE*2 then
					local i = math.ceil(pos.y/ENTRY_BOUND-2)
					local node = TreeList[i + scrollBar.ScrollIndex]
					if node and node.Object ~= object and not object:IsAncestorOf(node.Object) then
						parentIndex = i
						local entry = listEntries[i]
						if entry then
							parentHighlight.Visible = true
							parentHighlight.Position = UDim2.new(0,1,0,entry.AbsolutePosition.y-listFrame.AbsolutePosition.y)
							parentHighlight.Size = UDim2.new(0,size.x-4,0,entry.AbsoluteSize.y)
						end
					end
				end

				dragGhost.Position = UDim2.new(0,dragPos.x+ghostOffset.x,0,dragPos.y+ghostOffset.y)
			elseif (clickPos-dragPos).magnitude > 8 then
				dragged = true
				SetZIndex(dragGhost,9)
				dragGhost.IndentFrame.Transparency = 0.25
				dragGhost.IndentFrame.EntryText.TextColor3 = GuiColor.TextSelected
				dragGhost.Position = UDim2.new(0,dragPos.x+ghostOffset.x,0,dragPos.y+ghostOffset.y)
				dragGhost.Parent = GetScreen(listFrame)
				parentHighlight.Parent = listFrame
			end
		end)

		function cancelReparentDrag()
			mouseDrag.Parent = nil
			conDrag:disconnect()
			conUp:disconnect()
			conUp2:disconnect()
			dragGhost:Destroy()
			parentHighlight:Destroy()
			function cancelReparentDrag()end
		end

		local wasSelected = Selection.Selected[object]
		if not wasSelected and Option.Selectable then
			Selection:Set({object})
		end

		conUp = mouseDrag.MouseButton1Up:connect(function()
			cancelReparentDrag()
			if dragged then
				if parentIndex then
					local parentNode = TreeList[parentIndex + scrollBar.ScrollIndex]
					if parentNode then
						parentNode.Expanded = true

						local parentObj = parentNode.Object
						local function parent(a,b)
							a.Parent = b
						end
						if Option.Selectable then
							local list = Selection.List
							for i = 1,#list do
								pcall(parent,list[i],parentObj)
							end
						else
							pcall(parent,object,parentObj)
						end
					end
				end
			else
				-- do selection click
				if wasSelected and Option.Selectable then
					Selection:Set({})
				end
			end
		end)
		conUp2 = mouseDrag.MouseButton2Down:connect(function()
			cancelReparentDrag()
		end)

		mouseDrag.Parent = GetScreen(listFrame)
	end

	local entryTemplate = Create('ImageButton',{
		Name = "Entry";
		Transparency = 1;
		AutoButtonColor = false;
		Position = UDim2.new(0,0,0,0);
		Size = UDim2.new(1,0,0,ENTRY_SIZE);
		Create('Frame',{
			Name = "IndentFrame";
			BackgroundTransparency = 1;
			BackgroundColor3 = GuiColor.Selected;
			BorderColor3 = GuiColor.BorderSelected;
			Position = UDim2.new(0,0,0,0);
			Size = UDim2.new(1,0,1,0);
			Create(Icon('ImageButton',0),{
				Name = "Expand";
				AutoButtonColor = false;
				Position = UDim2.new(0,-GUI_SIZE,0.5,-GUI_SIZE/2);
				Size = UDim2.new(0,GUI_SIZE,0,GUI_SIZE);
			});
			Create(Icon(nil,0),{
				Name = "ExplorerIcon";
				Position = UDim2.new(0,2+ENTRY_PADDING,0.5,-GUI_SIZE/2);
				Size = UDim2.new(0,GUI_SIZE,0,GUI_SIZE);
			});
			Create('TextLabel',{
				Name = "EntryText";
				BackgroundTransparency = 1;
				TextColor3 = GuiColor.Text;
				TextXAlignment = 'Left';
				TextYAlignment = 'Center';
				Font = FONT;
				FontSize = FONT_SIZE;
				Text = "";
				Position = UDim2.new(0,2+ENTRY_SIZE+4,0,0);
				Size = UDim2.new(1,-2,1,0);
			});
		});
	})

	function scrollBar.UpdateCallback(self)
		for i = 1,self.VisibleSpace do
			local node = TreeList[i + self.ScrollIndex]
			if node then
				local entry = listEntries[i]
				if not entry then
					entry = Create(entryTemplate:Clone(),{
						Position = UDim2.new(0,2,0,ENTRY_BOUND*(i-1)+2);
						Size = UDim2.new(0,nodeWidth,0,ENTRY_SIZE);
						ZIndex = listFrame.ZIndex;
					})
					listEntries[i] = entry

					local expand = entry.IndentFrame.Expand
					expand.MouseEnter:connect(function()
						local node = TreeList[i + self.ScrollIndex]
						if #node > 0 then
							if node.Expanded then
								Icon(expand,NODE_EXPANDED_OVER)
							else
								Icon(expand,NODE_COLLAPSED_OVER)
							end
						end
					end)
					expand.MouseLeave:connect(function()
						local node = TreeList[i + self.ScrollIndex]
						if #node > 0 then
							if node.Expanded then
								Icon(expand,NODE_EXPANDED)
							else
								Icon(expand,NODE_COLLAPSED)
							end
						end
					end)
					expand.MouseButton1Down:connect(function()
						local node = TreeList[i + self.ScrollIndex]
						if #node > 0 then
							node.Expanded = not node.Expanded
							if node.Object == explorerPanel.Parent and node.Expanded then
								CreateCaution("Warning","Please be careful when editing instances inside here, this is like the System32 of Dex and modifying objects here can break Dex.")
							end
							-- use raw update so the list updates instantly
							rawUpdateList()
						end
					end)

					entry.MouseButton1Down:connect(function(x,y)
						local node = TreeList[i + self.ScrollIndex]
						DestroyRightClick()
						if GetAwaitRemote:Invoke() then
							bindSetAwaiting:Fire(node.Object)
							return
						end

						if not HoldingShift then
							lastSelectedNode = i + self.ScrollIndex
						end

						if HoldingShift and not filteringWorkspace() then
							if lastSelectedNode then
								if i + self.ScrollIndex - lastSelectedNode > 0 then
									Selection:StopUpdates()
									for i2 = 1, i + self.ScrollIndex - lastSelectedNode do
										local newNode = TreeList[lastSelectedNode + i2]
										if newNode then
											Selection:Add(newNode.Object)
										end
									end
									Selection:ResumeUpdates()
								else
									Selection:StopUpdates()
									for i2 = i + self.ScrollIndex - lastSelectedNode, 1 do
										local newNode = TreeList[lastSelectedNode + i2]
										if newNode then
											Selection:Add(newNode.Object)
										end
									end
									Selection:ResumeUpdates()
								end
							end
							return
						end

						if HoldingCtrl then
							if Selection.Selected[node.Object] then
								Selection:Remove(node.Object)
							else
								Selection:Add(node.Object)
							end
							return
						end
						if Option.Modifiable then
							local pos = Vector2.new(x,y)
							dragReparent(node.Object,entry:Clone(),pos,entry.AbsolutePosition-pos)
						elseif Option.Selectable then
							if Selection.Selected[node.Object] then
								Selection:Set({})
							else
								Selection:Set({node.Object})
							end
							dragSelect(i+self.ScrollIndex,true,'MouseButton1Up')
						end
					end)

					entry.MouseButton2Down:connect(function()
						if not Option.Selectable then return end

						DestroyRightClick()

						curSelect = entry

						local node = TreeList[i + self.ScrollIndex]

						if GetAwaitRemote:Invoke() then
							bindSetAwaiting:Fire(node.Object)
							return
						end

						if not Selection.Selected[node.Object] then
							Selection:Set({node.Object})
						end
					end)

					entry.MouseButton2Up:connect(function()
						if not Option.Selectable then return end

						local node = TreeList[i + self.ScrollIndex]

						if checkMouseInGui(curSelect) then
							rightClickMenu(node.Object)
						end
					end)

					entry.Parent = listFrame
				end

				entry.Visible = true

				local object = node.Object

				-- update expand icon
				if #node == 0 then
					entry.IndentFrame.Expand.Visible = false
				elseif node.Expanded then
					Icon(entry.IndentFrame.Expand,NODE_EXPANDED)
					entry.IndentFrame.Expand.Visible = true
				else
					Icon(entry.IndentFrame.Expand,NODE_COLLAPSED)
					entry.IndentFrame.Expand.Visible = true
				end

				-- update explorer icon
				Icon(entry.IndentFrame.ExplorerIcon,ExplorerIndex[object.ClassName] or 0)

				-- update indentation
				local w = (node.Depth)*(2+ENTRY_PADDING+GUI_SIZE)
				entry.IndentFrame.Position = UDim2.new(0,w,0,0)
				entry.IndentFrame.Size = UDim2.new(1,-w,1,0)

				-- update name change detection
				if nameConnLookup[entry] then
					nameConnLookup[entry]:disconnect()
				end
				local text = entry.IndentFrame.EntryText
				text.Text = object.Name
				nameConnLookup[entry] = node.Object.Changed:connect(function(p)
					if p == 'Name' then
						text.Text = object.Name
					end
				end)

				-- update selection
				entry.IndentFrame.Transparency = node.Selected and 0 or 1
				text.TextColor3 = GuiColor[node.Selected and 'TextSelected' or 'Text']

				entry.Size = UDim2.new(0,nodeWidth,0,ENTRY_SIZE)
			elseif listEntries[i] then
				listEntries[i].Visible = false
			end
		end
		for i = self.VisibleSpace+1,self.TotalSpace do
			local entry = listEntries[i]
			if entry then
				listEntries[i] = nil
				entry:Destroy()
			end
		end
	end

	function scrollBarH.UpdateCallback(self)
		for i = 1,scrollBar.VisibleSpace do
			local node = TreeList[i + scrollBar.ScrollIndex]
			if node then
				local entry = listEntries[i]
				if entry then
					entry.Position = UDim2.new(0,2 - scrollBarH.ScrollIndex,0,ENTRY_BOUND*(i-1)+2)
				end
			end
		end
	end

	Connect(listFrame.Changed,function(p)
		if p == 'AbsoluteSize' then
			rawUpdateSize()
		end
	end)

	local wheelAmount = 6
	explorerPanel.MouseWheelForward:connect(function()
		if scrollBar.VisibleSpace - 1 > wheelAmount then
			scrollBar:ScrollTo(scrollBar.ScrollIndex - wheelAmount)
		else
			scrollBar:ScrollTo(scrollBar.ScrollIndex - scrollBar.VisibleSpace)
		end
	end)
	explorerPanel.MouseWheelBackward:connect(function()
		if scrollBar.VisibleSpace - 1 > wheelAmount then
			scrollBar:ScrollTo(scrollBar.ScrollIndex + wheelAmount)
		else
			scrollBar:ScrollTo(scrollBar.ScrollIndex + scrollBar.VisibleSpace)
		end
	end)
end


Prompt: -- declarations

Response:
local Figure = script.Parent
local Torso = waitForChild(Figure, "Torso")
local RightShoulder = waitForChild(Torso, "Right Shoulder")
local LeftShoulder = waitForChild(Torso, "Left Shoulder")
local RightHip = waitForChild(Torso, "Right Hip")
local LeftHip = waitForChild(Torso, "Left Hip")
local Neck = waitForChild(Torso, "Neck")
local Humanoid = waitForChild(Figure, "Humanoid")
local pose = "Standing"

local toolAnim = "None"
local toolAnimTime = 0


Prompt: -- Removes `i` from `t`. Also sets `Index` field in removed value.

Response:
local function remove(t,i)
	local v = t[i]
	for n = i+1,#t do
		local v = t[n]
		v.Index = n-1
		t[n-1] = v
	end
	t[#t] = nil
	v.Index = 0
	return v
end


Prompt: --[[Susupension]]

Response:
	Tune.SusEnabled		= true		-- works only in with PGSPhysicsSolverEnabled, defaults to false when PGS is disabled

	--Front Suspension
	Tune.FSusDamping	= 500		-- Spring Dampening
	Tune.FSusStiffness	= 9000		-- Spring Force
	Tune.FAntiRoll 		= 50		-- Anti-Roll (Gyro Dampening)

	Tune.FSusLength		= 2			-- Suspension length (in studs)
	Tune.FPreCompress	= .3		-- Pre-compression adds resting length force
	Tune.FExtensionLim	= .3		-- Max Extension Travel (in studs)
	Tune.FCompressLim	= .1		-- Max Compression Travel (in studs)
	Tune.FSusAngle		= 80		-- Suspension Angle (degrees from horizontal)

	Tune.FWsBoneLen		= 5			-- Wishbone Length
	Tune.FWsBoneAngle	= 0			-- Wishbone angle (degrees from horizontal)
	Tune.FAnchorOffset	= {			-- Suspension anchor point offset (relative to center of wheel)
	 --[[Lateral]]		-.4		,	-- positive = outward
	 --[[Vertical]]		-.5		,	-- positive = upward
	 --[[Forward]]		0		}	-- positive = forward

	--Rear Suspension
	Tune.RSusDamping	= 500		-- Spring Dampening
	Tune.RSusStiffness	= 9000		-- Spring Force
	Tune.FAntiRoll 		= 50		-- Anti-Roll (Gyro Dampening)

	Tune.RSusLength		= 2			-- Suspension length (in studs)
	Tune.RPreCompress	= .3		-- Pre-compression adds resting length force
	Tune.RExtensionLim	= .3		-- Max Extension Travel (in studs)
	Tune.RCompressLim	= .1		-- Max Compression Travel (in studs)
	Tune.RSusAngle		= 80		-- Suspension Angle (degrees from horizontal)

	Tune.RWsBoneLen		= 5			-- Wishbone Length
	Tune.RWsBoneAngle	= 0			-- Wishbone angle (degrees from horizontal)
	Tune.RAnchorOffset	= {			-- Suspension anchor point offset (relative to center of wheel)
	 --[[Lateral]]		-.4		,	-- positive = outward
	 --[[Vertical]]		-.5		,	-- positive = upward
	 --[[Forward]]		0		}	-- positive = forward

	--Aesthetics
	Tune.SusVisible		= true			-- Spring Visible
	Tune.WsBVisible		= true			-- Wishbone Visible
	Tune.SusRadius		= .2			-- Suspension Coil Radius
	Tune.SusThickness	= .1			-- Suspension Coil Thickness
	Tune.SusColor		= "Bright red"	-- Suspension Color [BrickColor]
	Tune.SusCoilCount	= 6				-- Suspension Coil Count
	Tune.WsColor		= "Black"		-- Wishbone Color [BrickColor]
	Tune.WsThickness	= .1			-- Wishbone Rod Thickness


Prompt: --[[ By: Brutez, 2/28/2015, 1:34 AM, (UTC-08:00) Pacific Time (US & Canada) ]]

Response:
--
local AdvancedRespawnScript=script;
local Bob=AdvancedRespawnScript.Parent;
local GameDerbis=Game:GetService("Debris");
repeat Wait(0)until script and script.Parent and script.Parent.ClassName=="Model";
local BobHumanoid;
for _,Child in pairs(Bob:GetChildren())do
if Child and Child.ClassName=="Humanoid"and Child.Health>0.001 then
BobHumanoid=Child;
end;
end;
local Respawndant=Bob:Clone();
coroutine.resume(coroutine.create(function()
if Bob and BobHumanoid and BobHumanoid:FindFirstChild("Status")and not BobHumanoid:FindFirstChild("Status"):FindFirstChild("AvalibleSpawns")then
SpawnModel=Instance.new("Model");
SpawnModel.Parent=BobHumanoid:FindFirstChild("Status");
SpawnModel.Name="AvalibleSpawns";
else
SpawnModel=BobHumanoid:FindFirstChild("Status"):FindFirstChild("AvalibleSpawns");
end;
function FindSpawn(SearchValue)
local PartsArchivable=SearchValue:GetChildren();
for AreaSearch=1,#PartsArchivable do
if PartsArchivable[AreaSearch].className=="SpawnLocation"then
local PositionValue=Instance.new("Vector3Value",SpawnModel);
PositionValue.Value=PartsArchivable[AreaSearch].Position;
PositionValue.Name=PartsArchivable[AreaSearch].Duration;
end;
FindSpawn(PartsArchivable[AreaSearch]);
end;
end;
FindSpawn(Game.Workspace);
local SpawnChilden=SpawnModel:GetChildren();
if#SpawnChilden>0 then
local SpawnItself=SpawnChilden[math.random(1,#SpawnChilden)];
local RespawningForceField=Instance.new("ForceField");
RespawningForceField.Parent=Bob;
RespawningForceField.Name="SpawnForceField";
GameDerbis:AddItem(RespawningForceField,SpawnItself.Name);
Bob:MoveTo(SpawnItself.Value+Vector3.new(0,3.5,0));
else
if Bob:FindFirstChild("SpawnForceField")then
Bob:FindFirstChild("SpawnForceField"):Destroy();
end;
Bob:MoveTo(Vector3.new(0,115,0));
end;
end));
function Respawn()
Wait(5);
Respawndant.Parent=Bob.Parent;
Respawndant:MakeJoints();
Respawndant:FindFirstChild("Head"):MakeJoints();
Respawndant:FindFirstChild("Torso"):MakeJoints();
Bob:remove();
end;
BobHumanoid.Died:connect(Respawn);


Prompt: -- Events

Response:
local events = ReplicatedStorage:WaitForChild("Events")
local displayRoundResult = events:WaitForChild("DisplayRoundResult")


Prompt: -- Mimic roblox menu when opened and closed

Response:
guiService.MenuClosed:Connect(function()
	if VRService.VREnabled then
		return
	end
	menuOpen = false
	if not IconController.controllerModeEnabled then
		IconController.setTopbarEnabled(IconController.topbarEnabled,false)
	end
end)
guiService.MenuOpened:Connect(function()
	if VRService.VREnabled then
		return
	end
	menuOpen = true
	IconController.setTopbarEnabled(false,false)
end)

bindCamera()


Prompt: --Main

Response: return require(ReplicatedStorage.Systems.EntitySystem.PluginExample.Dummy)


Response:
local player=game.Players.LocalPlayer
local mouse=player:GetMouse()

local car = script.Parent.Parent.Car.Value
local _Tune = require(car["A-Chassis Tune"])

local gauges = script.Parent
local values = script.Parent.Parent.Values
local isOn = script.Parent.Parent.IsOn

gauges:WaitForChild("Speedo")
gauges:WaitForChild("Tach")
gauges:WaitForChild("ln")
gauges:WaitForChild("bln")
gauges:WaitForChild("Gear")
gauges:WaitForChild("Speed")

car.DriveSeat.HeadsUpDisplay = false

local _pRPM = _Tune.PeakRPM
local _lRPM = _Tune.Redline

if not _Tune.Engine and _Tune.Electric then _lRPM = _Tune.ElecRedline _pRPM = _Tune.ElecTransition2 end

local currentUnits = 1
local revEnd = math.ceil(_lRPM/1000)


Prompt:
--Fixed version, 02/24/16. Compatible with the new Roblox physics -asimo
--asimo3089
--[[
Just place this door. This door is fully setup and ready to do. Feel free to build your own door and throw it in the door model.
Make sure your door lines up with those red hinges, which will be invisible once it's running in your game.

Thanks
--]]


Prompt: --// Variables

Response:
local List 		= script.Parent
local Folder 	= game.ReplicatedStorage:WaitForChild("Weapons")
local Template 	= script.Parent.Template


Prompt: --refocus the camera on the player if the tool is dropped (the localscript in the tool stoips working in the case, so this script must be in the character or backpack)