Prompt:
--[[
	Provides an interface to quickly run and report tests from a given object.
]]

Response:
local TestPlanner = require(script.Parent.TestPlanner)
local TestRunner = require(script.Parent.TestRunner)
local TextReporter = require(script.Parent.Reporters.TextReporter)

local TestBootstrap = {}

local function stripSpecSuffix(name)
	return (name:gsub("%.spec$", ""))
end
local function isSpecScript(aScript)
	return aScript:IsA("ModuleScript") and aScript.Name:match("%.spec$")
end

local function getPath(module, root)
	root = root or game

	local path = {}
	local last = module

	if last.Name == "init.spec" then
		-- Use the directory's node for init.spec files.
		last = last.Parent
	end

	while last ~= nil and last ~= root do
		table.insert(path, stripSpecSuffix(last.Name))
		last = last.Parent
	end
	table.insert(path, stripSpecSuffix(root.Name))

	return path
end

local function toStringPath(tablePath)
	local stringPath = ""
	local first = true
	for _, element in ipairs(tablePath) do
		if first then
			stringPath = element
			first = false
		else
			stringPath = element .. " " .. stringPath
		end
	end
	return stringPath
end

function TestBootstrap:getModulesImpl(root, modules, current)
	modules = modules or {}
	current = current or root

	if isSpecScript(current) then
		local method = require(current)
		local path = getPath(current, root)
		local pathString = toStringPath(path)

		table.insert(modules, {
			method = method,
			path = path,
			pathStringForSorting = pathString:lower()
		})
	end
end


Prompt: --//Controller//--

Response:
Tool.Activated:Connect(function()
	if Configuration.OnCD.Value == false then
		ToolEvent:FireServer()

	end
end)


Prompt: -- Await initialization

Response:
repeat wait() until _G[Tool];
Plugin = _G[Tool].Plugin;


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

Response:
local FE = workspace.FilteringEnabled
local car = script.Parent.Car.Value
local handler = car:WaitForChild("AC6_FE_Sounds")
local _Tune = require(car["A-Chassis Tune"])
local on = 0
local mult=0
local det=0
local trm=0
local trmmult=0
local trmon=0
local throt=0
local redline=0
local shift=0

script:WaitForChild("Rev")

script.Parent.Values.Gear.Changed:connect(function()
	mult=1
	if script.Parent.Values.RPM.Value>5000 then
		shift=.2
	end
end)

for i,v in pairs(car.DriveSeat:GetChildren()) do
	for _,a in pairs(script:GetChildren()) do
		if v.Name==a.Name then v:Stop() wait() v:Destroy() end
	end
end

handler:FireServer("newSound","Rev",car.DriveSeat,script.Rev.SoundId,0,script.Rev.Volume,true)
handler:FireServer("playSound","Rev")
car.DriveSeat:WaitForChild("Rev")

while wait() do
	mult=math.max(0,mult-.1)
	local _RPM = script.Parent.Values.RPM.Value

	if script.Parent.Values.Throttle.Value <= _Tune.IdleThrottle/100 then
		throt = math.max(.3,throt-.2)
		trmmult = math.max(0,trmmult-.05)
		trmon = 1
	else
		throt = math.min(1,throt+.1)
		trmmult = 1
		trmon = 0
	end
	shift = math.min(1,shift+.2)
	if script.Parent.Values.RPM.Value > _Tune.Redline-_Tune.RevBounce/4 and script.Parent.Values.Throttle.Value > _Tune.IdleThrottle/100 then
		redline=.5
	else
		redline=1
	end
	if not script.Parent.IsOn.Value then on=math.max(on-.015,0) else on=1 end
	local Volume = (3*throt*shift*redline)+(trm*trmon*trmmult*(3-throt)*math.sin(tick()*50))
	local Pitch = math.max((((script.Rev.SetPitch.Value + script.Rev.SetRev.Value*_RPM/_Tune.Redline))*on^2)+(det*mult*math.sin(80*tick())),script.Rev.SetPitch.Value)
	if FE then
		handler:FireServer("updateSound","Rev",script.Rev.SoundId,Pitch,Volume)
	else
		car.DriveSeat.Rev.Volume = Volume
		car.DriveSeat.Rev.Pitch = Pitch
	end
end


Prompt: --Put in ServerScriptService

Response:
game.Players.PlayerAdded:connect(function(player)
	player.CharacterAdded:connect(function(character)
		--script.ToggleRagdoll:Clone().Parent = character
		script.RagdollRig:Clone().Parent = character
		script.Physics:Clone().Parent = character
		script.WindSetting:Clone().Parent = character
		script.RagdollConnect:Clone().Parent = character
		character:WaitForChild("Humanoid").Died:connect(function()
			character.UpperTorso:SetNetworkOwner(player)
		end)
	end)
end)


Prompt: --//Setup//--

Response:
local JarBody = script.Parent

local Jar = JarBody.Parent


Prompt: -- Make a base cosmetic bullet object. This will be cloned every time we fire off a ray.

Response:
local CosmeticBullet = Instance.new("Part")
CosmeticBullet.Material = Enum.Material.Neon
CosmeticBullet.Color = Color3.fromRGB(0, 196, 255)
CosmeticBullet.CanCollide = false
CosmeticBullet.Anchored = true
CosmeticBullet.Size = Vector3.new(0.75, 0.75, 2.4)


Prompt:
--//Script created by Brer_Bear on 1st of July 2018
--//Do not copy or edit without permission.


Prompt: --Editable Values

Response:
local Drag = .14  	--Drag Coefficient
local F = 125		--Downforce at 300 SPS
local R = 150		--Downforce at 300 SPS
local Vol = 2.5


Prompt: -- ROBLOX NOTE upstream: Added some utilities to support keeping the upstream code consistent

Response:
type unknown = any

local CurrentModule = script.Parent
local Packages = CurrentModule.Parent

local LuauPolyfill = require(Packages.LuauPolyfill)
local inspect = LuauPolyfill.util.inspect
type Array<T> = LuauPolyfill.Array<T>

local typesModule = require(CurrentModule.types)
type InspectOptions = typesModule.InspectOptions

function concatRestArgs(restArgs: Array<unknown>)
	local restStr = ""
	if #restArgs > 0 then
		restStr = " " .. table.concat(restArgs, " ")
	end
	return restStr
end

function getFormattedValue(value: unknown, inspectOptions: InspectOptions?)
	return if type(value) == "string" then value else inspect(value, inspectOptions)
end

function format(...)
	return formatter(nil, ...)
end

function formatWithOptions(inspectOptions: InspectOptions, fmt: unknown, ...)
	return formatter(inspectOptions, fmt, ...)
end

function formatter(inspectOptions: InspectOptions?, fmt: unknown, ...)
	local args = { ... }

	local fmtArgs = {}
	local extraArgs = {}

	if type(fmt) == "string" then
		local _, c = fmt:gsub("%%[sdj%%]", "")

		for key, value in pairs(args) do
			local formattedValue = getFormattedValue(value, inspectOptions)
			if key <= c then
				table.insert(fmtArgs, formattedValue)
			else
				table.insert(extraArgs, formattedValue)
			end
		end
	else
		fmt = inspect(fmt, inspectOptions)
		for _, value in pairs(args) do
			table.insert(extraArgs, getFormattedValue(value, inspectOptions))
		end
	end

	return string.format(fmt, table.unpack(fmtArgs)) .. concatRestArgs(extraArgs)
end

return {
	format = format,
	formatWithOptions = formatWithOptions,
	concatRestArgs = concatRestArgs,
}


Response:
script.Parent.Values.RPM.Changed:connect(function()
	intach.Rotation = -120 + script.Parent.Values.RPM.Value * 250 / 10500
end)

script.Parent.Values.Velocity.Changed:connect(function(property)
end)

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


Prompt: --// Init

Response:
return service.NewProxy({
	__call = function(tab, data)
		local mutex = service.RunService:FindFirstChild("__Adonis_MODULE_MUTEX")
		if mutex then
			warn("\n-----------------------------------------------"
				.."\nAdonis server-side is already running! Aborting..."
				.."\n-----------------------------------------------")
			script:Destroy()
			return "FAILED"
		else
			mutex = service.New("StringValue", {Name = "__Adonis_MODULE_MUTEX", Archivable = false, Value = "Running"})
			local mutexBackup = mutex:Clone()
			local function makePersistent(m)
				local connection1, connection2 = nil, nil
				connection1 = m:GetPropertyChangedSignal("Parent"):Connect(function()
					if not m or m.Parent ~= service.RunService then
						connection1:Disconnect()
						connection2:Disconnect()
						warn("Adonis module mutex removed; Regenerating...")
						makePersistent(mutexBackup)
						mutexBackup.Parent = service.RunService
						mutexBackup = mutexBackup:Clone()
					end
				end)
				connection2 = m:GetPropertyChangedSignal("Name"):Connect(function()
					if m and m.Name ~= "__Adonis_MODULE_MUTEX" then
						warn("Adonis module mutex renamed; Refreshing...")
						m.Name = "__Adonis_MODULE_MUTEX"
					end
				end)
			end
			makePersistent(mutex)
			mutex.Parent = service.RunService
		end

		--// Begin Script Loading
		setfenv(1, setmetatable({}, {__metatable = unique}))
		data = service.Wrap(data or {})

		if not (data and data.Loader) then
			warn("WARNING: MainModule loaded without using the loader!")
		end

		if data and data.ModuleID == 8612978896 then
			warn("Currently using Adonis Nightly MainModule; intended for testing & development only!")
		end

		--// Server Variables
		local setTab = require(server.Deps.DefaultSettings)
		server.Defaults = setTab
		server.Settings = data.Settings or setTab.Settings or {}
		server.OriginalSettings = CloneTable(server.Settings, true)
		server.Descriptions = data.Descriptions or setTab.Descriptions or {}
		server.Messages = data.Messages or setTab.Settings.Messages or {}
		server.Order = data.Order or setTab.Order or {}
		server.Data = data or {}
		server.Model = data.Model or service.New("Model")
		server.ModelParent = data.ModelParent or service.ServerScriptService;
		server.Dropper = data.Dropper or service.New("Script")
		server.Loader = data.Loader or service.New("Script")
		server.Runner = data.Runner or service.New("Script")
		server.LoadModule = LoadModule
		server.LoadPackage = LoadPackage
		server.ServiceSpecific = ServiceSpecific

		server.Shared = Folder.Shared
		server.ServerPlugins = data.ServerPlugins
		server.ClientPlugins = data.ClientPlugins
		server.Client = Folder.Parent.Client

		locals.Settings = server.Settings
		locals.CodeName = server.CodeName

		--// THIS NEEDS TO BE DONE **BEFORE** ANY EVENTS ARE CONNECTED
		if server.Settings.HideScript and data.Model then
			data.Model.Parent = nil
			script:Destroy()
		end

		--// Copy client themes, plugins, and shared modules to the client folder
		local packagesToRunWithPlugins = {}
		local shared = service.New("Folder", {
			Name = "Shared";
			Parent = server.Client;
		})

		for _, module in ipairs(Folder.Shared:GetChildren()) do
			module:Clone().Parent = shared
		end

		for _, module in pairs(data.ClientPlugins or {}) do
			module:Clone().Parent = server.Client.Plugins
		end

		for _, theme in pairs(data.Themes or {}) do
			theme:Clone().Parent = server.Client.UI
		end

		for _, pkg in pairs(data.Packages or {}) do
			LoadPackage(pkg, Folder.Parent, false)
		end

		for setting, value in pairs(server.Defaults.Settings) do
			if server.Settings[setting] == nil then
				server.Settings[setting] = value
			end
		end

		for desc, value in pairs(server.Defaults.Descriptions) do
			if server.Descriptions[desc] == nil then
				server.Descriptions[desc] = value
			end
		end

		--// Bind cleanup
		service.DataModel:BindToClose(CleanUp)
		--server.CleanUp = CleanUp;

		--// Require some dependencies
		server.Typechecker = require(server.Shared.Typechecker)
		server.Changelog = require(server.Shared.Changelog)
		server.Credits = require(server.Shared.Credits)
		do
			local MaterialIcons = require(server.Shared.MatIcons)
			server.MatIcons = setmetatable({}, {
				__index = function(self, ind)
					local materialIcon = MaterialIcons[ind]
					if materialIcon then
						self[ind] = `rbxassetid://{materialIcon}`
						return self[ind]
					end
					return ""
				end,
				__metatable = "Adonis_MatIcons"
			})
		end

		--// Load services
		for ind, serv in ipairs(SERVICES_WE_USE) do
			local temp = service[serv]
		end

		--// Load core modules
		for _, load in ipairs(CORE_LOADING_ORDER) do
			local CoreModule = Folder.Core:FindFirstChild(load)
			if CoreModule then
				LoadModule(CoreModule, true, nil, nil, true) --noenv, CoreModule
			end
		end

		--// Server Specific Service Functions
		ServiceSpecific.GetPlayers = server.Functions.GetPlayers
		--// Experimental, may have issues with Adonis tables that are protected metatables
		--ServiceSpecific.CloneTable = CloneTable

		--// Initialize Cores
		local runLast = {}
		local runAfterInit = {}
		local runAfterPlugins = {}

		for _, name in ipairs(CORE_LOADING_ORDER) do
			local core = server[name]

			if core then
				if type(core) == "table" or (type(core) == "userdata" and getmetatable(core) == "ReadOnly_Table") then
					if core.RunLast then
						table.insert(runLast, core.RunLast)
						core.RunLast = nil
					end

					if core.RunAfterInit then
						table.insert(runAfterInit, core.RunAfterInit)
						core.RunAfterInit = nil
					end

					if core.RunAfterPlugins then
						table.insert(runAfterPlugins, core.RunAfterPlugins)
						core.RunAfterPlugins = nil
					end

					if core.Init then
						core.Init(data)
						core.Init = nil
					end
				end
			end
		end

		--// Variables that rely on core modules being initialized
		server.Logs.Errors = ErrorLogs

		--// Load any afterinit functions from modules (init steps that require other modules to have finished loading)
		for _, f in pairs(runAfterInit) do
			f(data)
		end

		--// Load Plugins; enforced NoEnv policy, make sure your plugins has the 2nd argument defined!
		for _, module in ipairs(server.PluginsFolder:GetChildren()) do
			LoadModule(module, false, {script = module}, true, true) --noenv
		end

		for _, module in pairs(data.ServerPlugins or {}) do
			LoadModule(module, false, {script = module})
		end

		--// We need to do some stuff *after* plugins are loaded (in case we need to be able to account for stuff they may have changed before doing something, such as determining the max length of remote commands)
		for _, f in pairs(runAfterPlugins) do
			f(data)
		end

		--// Below can be used to determine when all modules and plugins have finished loading; service.Events.AllModulesLoaded:Connect(function() doSomething end)
		server.AllModulesLoaded = true
		service.Events.AllModulesLoaded:Fire(os.time())

		--// Queue handler
		--service.StartLoop("QueueHandler","Heartbeat",service.ProcessQueue)

		--// Stuff to run after absolutely everything else has had a chance to run and initialize and all that
		for _, f in pairs(runLast) do
			f(data)
		end

		if data.Loader then
			warn(`Loading Complete; Required by {data.Loader:GetFullName()}`)
		else
			warn("Loading Complete; No loader location provided")
		end

		if server.Logs then
			server.Logs.AddLog(server.Logs.Script, {
				Text = "Finished Loading";
				Desc = "Adonis has finished loading";
			})
		else
			warn("SERVER.LOGS TABLE IS MISSING. THIS SHOULDN'T HAPPEN! SOMETHING WENT WRONG WHILE LOADING CORE MODULES(?)");
		end
		service.Events.ServerInitialized:Fire();

		return "SUCCESS"
	end;
	__tostring = function()
		return "Adonis"
	end;
	__metatable = "Adonis";
})


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

Response: local easings = {}


Prompt: --Unlock or Lock AR/AF timer if enclosure is locked

Response:
function LockButtons()
	ButtonAlert.ProximityPrompt.Enabled = false
	ButtonAttack.ProximityPrompt.Enabled = false
	ButtonCancel.ProximityPrompt.Enabled = false
	ButtonTest.ProximityPrompt.Enabled = false
	ButtonFire.ProximityPrompt.Enabled = false
end

function UnlockButtons()
	ButtonAlert.ProximityPrompt.Enabled = true
	ButtonAttack.ProximityPrompt.Enabled = true
	ButtonCancel.ProximityPrompt.Enabled = true
	ButtonTest.ProximityPrompt.Enabled = true
	ButtonFire.ProximityPrompt.Enabled = true
end

function Check()
	if script.Parent.Locked.Value == true then
		LockButtons()
	else
		UnlockButtons()
	end
end

Check()

script.Parent.Locked.Changed:Connect(function()
	Check()
end)


Prompt: --[[Front]]

Response:
--
	Tune.FSusDamping	= 85 		-- Dampening
	Tune.FSusStiffness	= 2000 		-- Stiffness

	Tune.FSusLength		= 1 		-- Suspension length (in studs)
	Tune.FPreComp		= .25 		-- Vehicle height, relative to your suspension settings
	Tune.FExtLimit		= .8 		-- Max Extension Travel (in studs)
	Tune.FCompLimit		= .4 		-- Max Compression Travel (in studs)

	Tune.FBaseOffset	= {			-- Suspension (steering point) base
		 --[[Lateral]]		0		,	-- positive = outward
		 --[[Vertical]]		0		,	-- positive = upward
		 --[[Forward]]		0.256		}	-- positive = forward
	Tune.FAxleOffset	= {			-- Suspension (axle point) base
		 --[[Lateral]]		0		,	-- positive = outward
		 --[[Vertical]]		0		,	-- positive = upward
		 --[[Forward]]		0		}	-- positive = forward

	Tune.FBricksVisible	= false 	-- Makes the front suspension bricks visible (Debug)
	Tune.FConstsVisible	= false 	-- Makes the front suspension constraints visible (Debug)


Prompt:
--[[
	@class MarketPlaceManager

	Library of utility functions that handle the MarketPlace.
]]

Response:
local Products = require(script.Products)

local module = {}

module.Products = Products

return module


Prompt: --\\Main//--

Response:
for Number, Instance in pairs(game.Workspace:GetChildren()) do
	if Instance:IsA("Part") and Instance.Name == "Base" then
		Instance.Touched:Connect(function(Hit)
			local Player = PlayerService:GetPlayerFromCharacter(Hit.Parent)
			if not Player then return end
			Player.Character:FindFirstChild("Humanoid").Sit = true
		end)
	end
end


Prompt:
--// Commands
--// Highly recommended you disable Intellesense before editing this...

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

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

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

	local RegisterCommandDefinition

	local function Init()
		Functions = server.Functions;
		Admin = server.Admin;
		Anti = server.Anti;
		Core = server.Core;
		HTTP = server.HTTP;
		Logs = server.Logs;
		Remote = server.Remote;
		Process = server.Process;
		Variables = server.Variables;
		Commands = server.Commands;
		Deps = server.Deps;
		t = server.Typechecker;

		local ValidateCommandDefinition = t.interface({
			Prefix = t.string,
			Commands = t.array(t.string),
			Description = t.string,
			AdminLevel = t.union(t.string, t.number, t.nan, t.array(t.union(t.string, t.number, t.nan))),
			Fun = t.boolean,
			Hidden = t.boolean,
			Disabled = t.boolean,
			NoStudio = t.boolean,
			NonChattable = t.boolean,
			AllowDonors = t.boolean,
			Donors = t.boolean,
			Filter = t.boolean,
			Function = t.callback,
			ListUpdater = t.optional(t.union(t.string, t.callback))
		})

		function RegisterCommandDefinition(ind, cmd)
			if type(ind) ~= "string" then
				logError("Non-string command index:", typeof(ind), ind)
				Commands[ind] = nil
				return
			end
			if type(cmd) ~= "table" then
				logError("Non-table command definition:", ind)
				Commands[ind] = nil
				return
			end

			for opt, default in {
				Prefix = Settings.Prefix;
				Commands = {};
				Description = "(No description)";
				Fun = false;
				Hidden = false;
				Disabled = false;
				NoStudio = false;
				NonChattable = false;
				AllowDonors = false;
				Donors = false;
				CrossServerDenied = false;
				IsCrossServer = false;
				Filter = false;
				Function = function(plr)
					Remote.MakeGui(plr, "Output", {Message = "No command implementation"})
				end
				}
			do
				if cmd[opt] == nil then
					cmd[opt] = default
				end
			end

			if cmd.Chattable ~= nil then
				cmd.NonChattable = not cmd.Chattable
				cmd.Chattable = nil
				warn("Deprecated 'Chattable' property found in command "..ind.."; switched to NonChattable = "..tostring(cmd.NonChattable))
			end

			Admin.PrefixCache[cmd.Prefix] = true

			for _, v in cmd.Commands do
				Admin.CommandCache[string.lower(cmd.Prefix..v)] = ind
			end

			cmd.Args = cmd.Args or cmd.Arguments or {}

			local lvl = cmd.AdminLevel
			if type(lvl) == "string" and lvl ~= "Donors" then
				cmd.AdminLevel = Admin.StringToComLevel(lvl)
			elseif type(lvl) == "table" then
				for b, v in lvl do
					lvl[b] = Admin.StringToComLevel(v)
				end
			elseif type(lvl) == "nil" then
				cmd.AdminLevel = 0
			end

			if cmd.ListUpdater then
				Logs.ListUpdaters[ind] = function(plr, ...)
					if not plr or Admin.CheckComLevel(Admin.GetLevel(plr), cmd.AdminLevel) then
						if type(cmd.ListUpdater) == "function" then
							return cmd.ListUpdater(plr, ...)
						end
						return Logs[cmd.ListUpdater]
					end
				end
			end

			local isValid, fault = ValidateCommandDefinition(cmd)
			if not isValid then
				logError("Invalid command definition table "..ind..":", fault)
				Commands[ind] = nil
			end

			rawset(Commands, ind, cmd)
		end

		--// Automatic New Command Caching and Ability to do server.Commands[":ff"]
		setmetatable(Commands, {
			__index = function(_, ind)
				if type(ind) ~= "string" then return nil end
				local targInd = Admin.CommandCache[string.lower(ind)]
				return if targInd then rawget(Commands, targInd) else rawget(Commands, ind)
			end;

			__newindex = function(_, ind, val)
				if val == nil then
					if rawget(Commands, ind) ~= nil then
						rawset(Commands, ind, nil)
						Logs.AddLog("Script", "Removed command definition:", ind)
					end
				elseif rawget(Commands, "RunAfterPlugins") then
					rawset(Commands, ind, val)
				else
					if rawget(Commands, ind) ~= nil then
						Logs.AddLog("Script", "Overwriting command definition:", ind)
					end
					RegisterCommandDefinition(ind, val)
				end
			end;
		})

		Logs.AddLog("Script", "Loading Command Modules...")

		--// Load command modules
		if server.CommandModules then
			local env = GetEnv()
			for i, module in server.CommandModules:GetChildren() do
				local func = require(module)
				local ran, tab = pcall(func, Vargs, env)

				if ran and tab and type(tab) == "table" then
					for ind, cmd in tab do
						Commands[ind] = cmd
					end

					Logs.AddLog("Script", "Loaded Command Module: ".. module.Name)
				elseif not ran then
					warn("CMDMODULE ".. module.Name .. " failed to load:")
					warn(tostring(tab))
					Logs.AddLog("Script", "Loading Command Module Failed: ".. module.Name)
				end
			end
		end

		--// Cache commands
		Admin.CacheCommands()

		rawset(Commands, "Init", nil)
		Logs.AddLog("Script", "Commands Module Initialized")
	end

	local function RunAfterPlugins()
		--// Load custom user-supplied commands in settings.Commands

		local commandEnv = GetEnv(nil, {
			script = server.Config and server.Config:FindFirstChild("Settings") or script;
		})
		for ind, cmd in Settings.Commands or {} do
			if type(cmd) == "table" and cmd.Function then
				setfenv(cmd.Function, commandEnv)
				Commands[ind] = cmd
			end
		end

		--// Change command permissions based on settings
		local Trim = service.Trim
		for ind, cmd in Settings.Permissions or {} do
			local com, level = string.match(cmd, "^(.*):(.*)")
			if com and level then
				if string.find(level, ",") then
					local newLevels = {}
					for lvl in string.gmatch(level, "[^%s,]+") do
						table.insert(newLevels, Trim(lvl))
					end

					Admin.SetPermission(com, newLevels)
				else
					Admin.SetPermission(com, level)
				end
			end
		end

		for ind, cmd in Commands do
			RegisterCommandDefinition(ind, cmd)
		end

		rawset(Commands, "RunAfterPlugins", nil)
	end

	server.Commands = {
		Init = Init;
		RunAfterPlugins = RunAfterPlugins;
	};
end


Prompt:
--[[
	Given a `tweenInfo` and `currentTime`, returns a ratio which can be used to
	tween between two values over time.
]]

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

local function getTweenRatio(tweenInfo: TweenInfo, currentTime: number): number
	local delay = tweenInfo.DelayTime
	local duration = tweenInfo.Time
	local reverses = tweenInfo.Reverses
	local numCycles = 1 + tweenInfo.RepeatCount
	local easeStyle = tweenInfo.EasingStyle
	local easeDirection = tweenInfo.EasingDirection

	local cycleDuration = delay + duration
	if reverses then
		cycleDuration += duration
	end

	if currentTime >= cycleDuration * numCycles then
		return 1
	end

	local cycleTime = currentTime % cycleDuration

	if cycleTime <= delay then
		return 0
	end

	local tweenProgress = (cycleTime - delay) / duration
	if tweenProgress > 1 then
		tweenProgress = 2 - tweenProgress
	end

	local ratio = TweenService:GetValue(tweenProgress, easeStyle, easeDirection)
	return ratio
end

return getTweenRatio


Prompt:
--[[
	Retrieves at most one child from the children passed to a component.

	If passed nil or an empty table, will return nil.

	Throws an error if passed more than one child.
]]

Response:
local function oneChild(children)
	if not children then
		return nil
	end

	local key, child = next(children)

	if not child then
		return nil
	end

	local after = next(children, key)

	if after then
		error("Expected at most child, had more than one child.", 2)
	end

	return child
end

return oneChild


Prompt: -- (Hat Giver Script - Loaded.)

Response:
debounce = true

function onTouched(hit)
	if (hit.Parent:findFirstChild("Humanoid") ~= nil and debounce == true) then
		debounce = false
		h = Instance.new("Hat")
		p = Instance.new("Part")
		h.Name = "Top Hat"
		p.Parent = h
		p.Position = hit.Parent:findFirstChild("Head").Position
		p.Name = "Handle"
		p.formFactor = 0
		p.Size = Vector3.new(2, 1, 1)
		p.BottomSurface = 0
		p.TopSurface = 0
		p.Locked = true
		script.Parent.Mesh:clone().Parent = p
		h.Parent = hit.Parent
		h.AttachmentPos = Vector3.new(0,1,-1)
		wait(5)
		debounce = true
	end
end

script.Parent.Touched:connect(onTouched)


Prompt:
--[[
    Module for obtaining the input state for the vehicle, using UserInputService
]]

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

local ClientVehicleBoosts = require(ReplicatedStorage.Source.ClientVehicleBoosts)
local Flags = require(ReplicatedStorage.Source.Common.Flags)

local FlagEnableBoosts = Flags.EnableBoosts

local UserInput = {}

local throttle = 0
local steer = 0

local actions = {
	Forwards = {Enum.KeyCode.W, Enum.KeyCode.Up},
	Backwards = {Enum.KeyCode.S, Enum.KeyCode.Down},
	Left = {Enum.KeyCode.A, Enum.KeyCode.Left},
	Right = {Enum.KeyCode.D, Enum.KeyCode.Right},
	Boost = {Enum.KeyCode.Space}
}

local function getActionFromInput(inputObject)
	for action, bindings in pairs(actions) do
		for _, keyCode in pairs(bindings) do
			if keyCode == inputObject.KeyCode then
				return action
			end
		end
	end
end

local function isActionHeld(action)
	local bindings = actions[action]
	for _, keyCode in pairs(bindings) do
		if UserInputService:IsKeyDown(keyCode) then
			return true
		end
	end
	return false
end


Response:
equiped=false
sp=script.Parent
RayLength=10000
Spread=0
enabled=true
reloading=false
down=false
r=game:service("RunService")
last=0
last2=0
last3=0
last4=0
last5=0
last6=0

Bullet=Instance.new("Part")
Bullet.Name="Bullet"
Bullet.BrickColor=BrickColor.new("New Yeller")
Bullet.Anchored=true
Bullet.CanCollide=false
Bullet.Locked=true
Bullet.Size=Vector3.new(1,1,1)


Prompt:
--[=[
	@tag Component Class
	`Start` is called when the component is started. At this point in time, it
	is safe to grab other components also bound to the same instance.

	```lua
	local MyComponent = Component.new({Tag = "MyComponent"})
	local AnotherComponent = require(somewhere.AnotherComponent)

	function MyComponent:Start()
		-- e.g., grab another component:
		local another = self:GetComponent(AnotherComponent)
	end
	```
]=]

Response:
function Component:Start()
end


Prompt: --Functions

Response:
local function onTouched(hit)
	local Humanoid = hit.Parent:FindFirstChild("Humanoid")
	local player = game.Players:GetPlayerFromCharacter(hit.Parent)

	if Humanoid and Debounce == false then
		local leaderstats = player:FindFirstChild("leaderstats")
		Debounce = true

		if Debounce == true and leaderstats then
			local sound = script.Parent["Game Sound Correct"]

			if not sound.IsPlaying then
				sound:Play()

			leaderstats.Guesses.Value = leaderstats.Guesses.Value + AMOUNT_GIVEN
				wait(10)

			Debounce = false
		end
	end
end
end


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

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

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

BoneModelName = "OWO zone" -- name the zone model

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


Prompt: --[[Run]]

Response:
	--Print Version
	local ver=require(car["A-Chassis Tune"].README)
	print("//INSPARE: AC6 Loaded - Build "..ver)

	--Runtime Loops

	-- ~60 c/s
	game["Run Service"].Stepped:connect(function()
		--Steering
		Steering()

		--RPM
		RPM()

		--Update External Values
		_IsOn = script.Parent.IsOn.Value
		_InControls = script.Parent.ControlsOpen.Value
		script.Parent.Values.Gear.Value = _CGear
		script.Parent.Values.RPM.Value = _RPM
		script.Parent.Values.Horsepower.Value = _HP
		script.Parent.Values.Torque.Value = _HP * _Tune.EqPoint / _RPM
		script.Parent.Values.TransmissionMode.Value = _TMode
		script.Parent.Values.Throttle.Value = _GThrot
		script.Parent.Values.Brake.Value = _GBrake
		script.Parent.Values.SteerC.Value = _GSteerC*(1-math.min(car.DriveSeat.Velocity.Magnitude/_Tune.SteerDecay,1-(_Tune.MinSteer/100)))
		script.Parent.Values.SteerT.Value = _GSteerT
		script.Parent.Values.PBrake.Value = _PBrake
		script.Parent.Values.TCS.Value = _TCS
		script.Parent.Values.TCSActive.Value = _TCSActive
		script.Parent.Values.ABS.Value = _ABS
		script.Parent.Values.ABSActive.Value = _ABSActive
		script.Parent.Values.MouseSteerOn.Value = _MSteer
		script.Parent.Values.Velocity.Value = car.DriveSeat.Velocity
	end)

	-- ~15 c/s
	while wait(.0667) do
		--Power
		Engine()

		--Flip
		if _Tune.AutoFlip then Flip() end
		if Stats.Fuel == 0 then _IsOn = false end

	end


Prompt: -- Helper function for Determinant of 3x3, not in CameraUtils for performance reasons

Response:
local function Det3x3(a: number,b: number,c: number,d: number,e: number,f: number,g: number,h: number,i: number): number
	return (a*(e*i-f*h)-b*(d*i-f*g)+c*(d*h-e*g))
end


Prompt:
--function moveSit()
--	RightShoulder.MaxVelocity = 0.15
--	LeftShoulder.MaxVelocity = 0.15
--	RightShoulder:SetDesiredAngle(3.14 /2)
--	LeftShoulder:SetDesiredAngle(-3.14 /2)
--	RightHip:SetDesiredAngle(3.14 /2)
--	LeftHip:SetDesiredAngle(-3.14 /2)
--end

Response:
local lastTick = 0

function move(time)
	local amplitude = 1
	local frequency = 1
  	local deltaTime = time - lastTick
  	lastTick = time

	local climbFudge = 0
	local setAngles = false

  	if (jumpAnimTime > 0) then
  		jumpAnimTime = jumpAnimTime - deltaTime
  	end

	if (pose == "FreeFall" and jumpAnimTime <= 0) then
		playAnimation("fall", fallTransitionTime, Humanoid)
	elseif (pose == "Seated") then
		playAnimation("sit", 0.5, Humanoid)
		return
	elseif (pose == "Running") then
		playAnimation("walk", 0.1, Humanoid)
	elseif (pose == "Dead" or pose == "GettingUp" or pose == "FallingDown" or pose == "Seated" or pose == "PlatformStanding") then


Prompt:
--[==[Documentation uses

	excess information container (titles: tip, warning, info):

	:::title
	Information here.
	:::

	code example container:

	```lua

	```

	symbol @ examples:

	@interface Name
	.Variable objectType
	.functionName () -> ()

	@return a, b, ... or DataType | DataType | ... or Class<DataType | DataType | ...>
	@param a, b, ...

	Extra Information:

	Why do you see people doing [=[]=] for comments?
	Answer: preference

	Naming:

	* camelCase unless it is from an API
	* CAPATAL_SNAKECASE	for constant data (exclude outer objects (Instance, Required module))

	Types:

	* Avoid using `any` type, instead use `unknown`
	* `never` is for points in code that will "never" be reached (You will not come across this ever)
]==]


Prompt: --^^^ Made by Anaminus ^^^---

Response:
function module.getSide(p,s)
	local cf = p.CFrame
	if s.x > 0 then
		return (cf*CFrame.fromAxisAngle(Vector3.new(0,-1,0),math.pi/2)).lookVector
	elseif s.x < 0 then
		return (cf*CFrame.fromAxisAngle(Vector3.new(0,1,0),math.pi/2)).lookVector
	end

	if s.y < 0 then
		return (cf*CFrame.fromAxisAngle(Vector3.new(-1,0,0),math.pi/2)).lookVector
	elseif s.y > 0 then
		return (cf*CFrame.fromAxisAngle(Vector3.new(1,0,0),math.pi/2)).lookVector
	end

	if s.z < 0 then
		return cf.lookVector
	elseif s.z > 0 then
		return -cf.lookVector
	end
end

function module.debounce(func)
	local debounce = false
	return function(...)
		if not debounce then
			debounce = true
			func(...)
			debounce = false
		end
	end
end

function module.part(p)
	local parts = {}
	local function getParts(m)
		for _,v in pairs(m:GetChildren()) do
			if v:IsA("Part") and v ~= p then
				table.insert(parts,#parts+1,v)
			elseif v:IsA("Model") then
				getParts(v)
			end
		end
	end
	getParts(game.Workspace)
	local winner = {}
	for _,q in pairs(parts) do
		local mag = (q.Position-p.Position).magnitude
		if mag < winner[1] then
			winner[1] = mag
			winner[2] = q
		end
	end
	return winner[2]
end

function module.weld(p1,p2)
	local w = Instance.new("Weld")
	w.Part0 = p1
	w.Part1 = p2
	w.C0 = p1.CFrame:inverse() * p2.CFrame
	w.Parent = p1
	return w
end

function module.gpos(part,pos,ignore,dist)
	if dist == 0 then dist = 999 end
	local r = Ray.new(part.Position,(pos-part.Position).unit*dist)
	return workspace:FindPartOnRayWithIgnoreList(r,ignore)
end

function module.volume(m)
	return m.Size.x * m.Size.y * m.Size.z
end

function module.visualizeRay(origin,pos,laser)
	laser.Size = Vector3.new(laser.Size.x,laser.Size.y,(pos - origin).magnitude)
	laser.CFrame = CFrame.new((origin + pos)/Vector3.new(2,2,2),pos)
end

function module.getModelVolume(model)
	if model == nil then return 0 end
	local mass = 0
	local function getModelMass(m)
		for i,v in pairs(m:GetChildren()) do
			if v:IsA("BasePart") then
				mass = mass + module.volume(v)
			elseif v:IsA("Model") then
				getModelMass(v)
			end
		end
	end
	getModelMass(model)
	return mass
end

return module


Prompt: -- Ritter's loose bounding sphere algorithm

Response:
function CameraUtils.getLooseBoundingSphere(parts)
	local points = table.create(#parts)
	for idx, part in pairs(parts) do
		points[idx] = part.Position
	end

	-- pick an arbitrary starting point
	local x = points[1]

	-- get y, the point furthest from x
	local y = x
	local yDist = 0

	for _, p in ipairs(points) do
		local pDist = (p - x).Magnitude

		if pDist > yDist then
			y = p
			yDist = pDist
		end
	end

	-- get z, the point furthest from y
	local z = y
	local zDist = 0

	for _, p in ipairs(points) do
		local pDist = (p - y).Magnitude

		if pDist > zDist then
			z = p
			zDist = pDist
		end
	end

	-- use (y, z) as the initial bounding sphere
	local sc = (y + z)*0.5
	local sr = (y - z).Magnitude*0.5

	-- expand sphere to fit any outlying points
	for _, p in ipairs(points) do
		local pDist = (p - sc).Magnitude

		if pDist > sr then
			-- shift to midpoint
			sc = sc + (pDist - sr)*0.5*(p - sc).Unit

			-- expand
			sr = (pDist + sr)*0.5
		end
	end

	return sc, sr
end


Prompt:
--!strict
-- RandomChance
-- Yuuwa0519
-- 2022-03-20


Prompt: --[[Controls]]

Response:
	local _CTRL = _Tune.Controls
	local Controls = Instance.new("Folder",script.Parent)
	Controls.Name = "Controls"
	for i,v in pairs(_CTRL) do
		local a=Instance.new("StringValue",Controls)
		a.Name=i
		a.Value=v.Name
		a.Changed:connect(function()
			if i=="MouseThrottle" or i=="MouseBrake" then
				if a.Value == "MouseButton1" or a.Value == "MouseButton2" then
					_CTRL[i]=Enum.UserInputType[a.Value]
				else
					_CTRL[i]=Enum.KeyCode[a.Value]
				end
			else
				_CTRL[i]=Enum.KeyCode[a.Value]
			end
		end)
	end

	--Deadzone Adjust
	local _PPH = _Tune.Peripherals
		for i,v in pairs(_PPH) do
		local a = Instance.new("IntValue",Controls)
		a.Name = i
		a.Value = v
		a.Changed:connect(function()
			a.Value=math.min(100,math.max(0,a.Value))
			_PPH[i] = a.Value
		end)
	end

	--Input Handler
	function DealWithInput(input,IsRobloxFunction)
		if (UserInputService:GetFocusedTextBox()==nil) and not _InControls then --Ignore when UI Focus
			--Shift Down [Manual Transmission]
			if _IsOn and  (input.KeyCode ==_CTRL["ContlrShiftDown"] or (_MSteer and input.KeyCode==_CTRL["MouseShiftDown"]) or ((not _MSteer) and input.KeyCode==_CTRL["ShiftDown"])) and ((_TMode=="Auto" and _CGear<=1) or _TMode=="Semi" or (_TMode=="Manual" and (not _ClutchOn))) and input.UserInputState == Enum.UserInputState.Begin then
				if _CGear == 0 then _ClutchOn = true end
				_CGear = math.max(_CGear-1,-1)

			--Shift Up [Manual Transmission]
			elseif _IsOn and  (input.KeyCode ==_CTRL["ContlrShiftUp"] or (_MSteer and input.KeyCode==_CTRL["MouseShiftUp"]) or ((not _MSteer) and input.KeyCode==_CTRL["ShiftUp"])) and ((_TMode=="Auto" and _CGear<1) or _TMode=="Semi" or (_TMode=="Manual" and (not _ClutchOn))) and input.UserInputState == Enum.UserInputState.Begin then
				if _CGear == 0 then _ClutchOn = true end
				_CGear = math.min(_CGear+1,#_Tune.Ratios-2)

			--Toggle Clutch
			elseif _IsOn and  (input.KeyCode ==_CTRL["ContlrClutch"] or (_MSteer and input.KeyCode==_CTRL["MouseClutch"]) or ((not _MSteer) and input.KeyCode==_CTRL["Clutch"])) and _TMode=="Manual" then
				if input.UserInputState == Enum.UserInputState.Begin then
					_ClutchOn = false
					_ClPressing = true
				elseif input.UserInputState == Enum.UserInputState.End then
					_ClutchOn = true
					_ClPressing = false
				end

			--Toggle PBrake
			elseif _IsOn and  input.KeyCode ==_CTRL["ContlrPBrake"] or (_MSteer and input.KeyCode==_CTRL["MousePBrake"]) or ((not _MSteer) and input.KeyCode==_CTRL["PBrake"]) then
				if input.UserInputState == Enum.UserInputState.Begin then
					_PBrake = not _PBrake
				elseif input.UserInputState == Enum.UserInputState.End then
					if car.DriveSeat.Velocity.Magnitude>5 then
						_PBrake = false
					end
				end

			--Toggle Transmission Mode
			elseif (input.KeyCode == _CTRL["ContlrToggleTMode"] or input.KeyCode==_CTRL["ToggleTransMode"]) and input.UserInputState == Enum.UserInputState.Begin then
				local n=1
				for i,v in pairs(_Tune.TransModes) do
					if v==_TMode then n=i break end
				end
				n=n+1
				if n>#_Tune.TransModes then n=1 end
				_TMode = _Tune.TransModes[n]

			--Throttle
			elseif _IsOn and ((not _MSteer) and (input.KeyCode==_CTRL["Throttle"] or input.KeyCode == _CTRL["Throttle2"])) or ((((_CTRL["MouseThrottle"]==Enum.UserInputType.MouseButton1 or _CTRL["MouseThrottle"]==Enum.UserInputType.MouseButton2) and input.UserInputType == _CTRL["MouseThrottle"]) or input.KeyCode == _CTRL["MouseThrottle"])and _MSteer) then
				if input.UserInputState == Enum.UserInputState.Begin then
					_GThrot = 1
				else
					_GThrot = _Tune.IdleThrottle/100
				end

			--Brake
			elseif ((not _MSteer) and (input.KeyCode==_CTRL["Brake"] or input.KeyCode == _CTRL["Brake2"])) or ((((_CTRL["MouseBrake"]==Enum.UserInputType.MouseButton1 or _CTRL["MouseBrake"]==Enum.UserInputType.MouseButton2) and input.UserInputType == _CTRL["MouseBrake"]) or input.KeyCode == _CTRL["MouseBrake"])and _MSteer) then
				if input.UserInputState == Enum.UserInputState.Begin then
					_GBrake = 1
				else
					_GBrake = 0
				end

			--Steer Left
			elseif (not _MSteer) and (input.KeyCode==_CTRL["SteerLeft"] or input.KeyCode == _CTRL["SteerLeft2"]) then
				if input.UserInputState == Enum.UserInputState.Begin then
					_GSteerT = -1
					_SteerL = true
				else
					if _SteerR then
						_GSteerT = 1
					else
						_GSteerT = 0
					end
					_SteerL = false
				end

			--Steer Right
			elseif (not _MSteer) and (input.KeyCode==_CTRL["SteerRight"] or input.KeyCode == _CTRL["SteerRight2"]) then
				if input.UserInputState == Enum.UserInputState.Begin then
					_GSteerT = 1
					_SteerR = true
				else
					if _SteerL then
						_GSteerT = -1
					else
						_GSteerT = 0
					end
					_SteerR = false
				end

			--Toggle Mouse Controls
			elseif input.KeyCode ==_CTRL["ToggleMouseDrive"] then
				if input.UserInputState == Enum.UserInputState.End then
					_MSteer = not _MSteer
					_GThrot = _Tune.IdleThrottle/100
					_GBrake = 0
					_GSteerT = 0
					_ClutchOn = true
				end

			--Toggle TCS
			elseif  _Tune.TCSEnabled and _IsOn and input.KeyCode == _CTRL["ToggleTCS"] or input.KeyCode == _CTRL["ContlrToggleTCS"] then
				if input.UserInputState == Enum.UserInputState.End then
					if script.Parent.DriveMode.Value ~= "SportPlus" then
						_TCS = not _TCS
					end
				end

			--Toggle ABS
			elseif  _Tune. ABSEnabled and _IsOn and input.KeyCode == _CTRL["ToggleABS"] or input.KeyCode == _CTRL["ContlrToggleABS"] then
				if input.UserInputState == Enum.UserInputState.End then
					_ABS = not _ABS
				end
			end

			--Variable Controls
			if input.UserInputType.Name:find("Gamepad") then
				--Gamepad Steering
				if input.KeyCode == _CTRL["ContlrSteer"] then
					if input.Position.X>= 0 then
						local cDZone = math.min(.99,_Tune.Peripherals.ControlRDZone/100)
						if math.abs(input.Position.X)>cDZone then
							_GSteerT = (input.Position.X-cDZone)/(1-cDZone)
						else
							_GSteerT = 0
						end
					else
						local cDZone = math.min(.99,_Tune.Peripherals.ControlLDZone/100)
						if math.abs(input.Position.X)>cDZone then
							_GSteerT = (input.Position.X+cDZone)/(1-cDZone)
						else
							_GSteerT = 0
						end
					end

				--Gamepad Throttle
				elseif _IsOn and input.KeyCode == _CTRL["ContlrThrottle"] then
					_GThrot = math.max(_Tune.IdleThrottle/100,input.Position.Z)

				--Gamepad Brake
				elseif input.KeyCode == _CTRL["ContlrBrake"] then
					_GBrake = input.Position.Z
				end
			end
		else
			_GThrot = _Tune.IdleThrottle/100
			_GSteerT = 0
			_GBrake = 0
			if _CGear~=0 then _ClutchOn = true end
		end
	end
	UserInputService.InputBegan:connect(DealWithInput)
	UserInputService.InputChanged:connect(DealWithInput)
	UserInputService.InputEnded:connect(DealWithInput)

local OGDrivemode
local Kickdown = false

UserInputService.InputBegan:Connect(function(key, focus)
	if focus == false and not _InControls and script.Parent.DriveMode.Value == "Comfort" then
		if key.KeyCode == _CTRL["Throttle2"] and _CGear > 0 then
			if tick() - CurrKickdown <= _Tune.KickdownWindow then
				--kickdown activated
				OGDrivemode = script.Parent.DriveMode.Value
				Kickdown = true
				script.Parent.DriveMode.Value = "Sport+"
				if _RPM <= _Tune.KickdownRPMCap then
					_CGear = math.max(_CGear-1, 1)
				end
			end
			CurrKickdown = tick()
		end
	end
end)

UserInputService.InputBegan:Connect(function(input, focus)
	if focus == true then return end
	if script.Parent.Values.Throttle.Value == 1 and input.UserInputType.Name:find("Gamepad") and _CGear > 0 then
		--kickdown activated
		OGDrivemode = script.Parent.DriveMode.Value
		Kickdown = true
		script.Parent.DriveMode.Value = "Sport+"
		if _RPM <= _Tune.KickdownRPMCap then
			_CGear = math.max(_CGear-1, 1)
		end
	end
end)

script.Parent.Values.Throttle.Changed:Connect(function()
	if script.Parent.Values.Throttle.Value ~= 1 and Kickdown == true then
		Kickdown = false
		script.Parent.DriveMode.Value = OGDrivemode == nil and "Comfort" or OGDrivemode
	end
end)


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

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

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

ZoneModelName = "Math" -- name the zone model

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


Prompt: --loopanim

Response:
function module.loopanim(anim, hum, bool)
	local animationTrack = hum.Animator:LoadAnimation(animFold[anim])
	animationTrack.Looped = bool
end


Prompt: ---- setup emote chat hook

Response:
game:GetService("Players").LocalPlayer.Chatted:Connect(function(msg)
	local emote = ""
	if msg == "/e dance" then
		emote = dances[Rand:NextInteger(1, #dances)]
	elseif string.sub(msg, 1, 3) == "/e " then
		emote = string.sub(msg, 4)
	elseif string.sub(msg, 1, 7) == "/emote " then
		emote = string.sub(msg, 8)
	end

	if pose == "Standing" and emoteNames[emote] ~= nil then
		playAnimation(emote, 0.1, Humanoid)
	end
end)


Prompt: --// ACLI - Adonis Client Loading Initializer

Response:
if true then return end --// #DISABLED

local DebugMode = false
local otime = os.time
local time = time
local game = game
local pcall = pcall
local xpcall = xpcall
local error = error
local type = type
local print = print
local assert = assert
local string = string
local setfenv = setfenv
local getfenv = getfenv
local require = require
local tostring = tostring
local coroutine = coroutine
local Instance = Instance
local script = script
local select = select
local unpack = unpack
local spawn = spawn
local debug = debug
local pairs = pairs
local wait = wait
local next = next
local time = time
local finderEvent
local realWarn = warn
local realPrint = print
local foundClient = false
local checkedChildren = {}
local replicated = game:GetService("ReplicatedFirst")
local runService = game:GetService("RunService")
local player = game:GetService("Players").LocalPlayer
local Kick = player.Kick
local start = time()
local checkThese = {}
local services = {
	"Chat";
	"Teams";
	"Players";
	"Workspace";
	"LogService";
	"TestService";
	"InsertService";
	"SoundService";
	"StarterGui";
	"StarterPack";
	"StarterPlayer";
	"ReplicatedFirst";
	"ReplicatedStorage";
	"JointsService";
	"Lighting";
}

local function print(...)
	--realPrint(...)
end

local function warn(str)
	if DebugMode or player.UserId == 1237666 then
		realWarn(`ACLI: {str}`)
	end
end

local function Kill(info)
	if DebugMode then warn(info) return end
	pcall(function() Kick(player, info) end)
	wait(1)
	pcall(function() while not DebugMode and wait() do pcall(function() while true do end end) end end)
end

local function Locked(obj)
	return (not obj and true) or not pcall(function() return obj.GetFullName(obj) end)
end

local function callCheck(child)
	warn(`CallCheck: {child}`)
	if Locked(child) then
		warn("Child locked?")
		Kill("ACLI: Locked")
	else
		warn("Child not locked")
		xpcall(function()
			return child[{}]
		end, function()
			if getfenv(1) ~= getfenv(2) then
				Kill("ACLI: Error")
			end
		end)
	end
end

local function doPcall(func, ...)
	local ran,ret = pcall(func, ...)
	if ran then
		return ran,ret
	else
		warn(tostring(ret))
		Kill(`ACLI: Error\n{ret}`)
		return ran,ret
	end
end

local function lockCheck(obj)
	callCheck(obj)
	obj.Changed:Connect(function(p)
		warn("Child changed; Checking...")
		callCheck(obj)
	end)
end

local function loadingTime()
	warn("LoadingTime Called")
	setfenv(1,{})
	warn(tostring(time() - start))
end

local function checkChild(child)
	warn(`Checking child: child and child.ClassName} : {child and child:GetFullName()}`)
	callCheck(child)
	if child and not foundClient and not checkedChildren[child] and child:IsA("Folder") and child.Name == "Adonis_Client" then
		warn("Loading Folder...")
		local nameVal
		local origName
		local depsFolder
		local clientModule
		local oldChild = child
		local container = child.Parent

		warn("Adding child to checked list & setting parent...")
		checkedChildren[child] = true

		warn("Waiting for Client & Special")
		nameVal = child:WaitForChild("Special", 30)
		clientModule = child:WaitForChild("Client", 30)

		warn("Checking Client & Special")
		callCheck(nameVal)
		callCheck(clientModule)

		warn("Getting origName")
		origName = (nameVal and nameVal.Value) or child.Name
		warn(`Got name: {origName}`)

		warn("Changing child parent...")
		child.Parent = nil

		warn("Destroying parent...")
		if container and container:IsA("ScreenGui") and container.Name == "Adonis_Container" then
			spawn(function()
				wait(0.5);
				container:Destroy();
			end)
		end

		if clientModule and clientModule:IsA("ModuleScript") then
			print("Debug: Loading the client?")
			local meta = require(clientModule)
			warn(`Got metatable: {meta}`)
			if meta and type(meta) == "userdata" and tostring(meta) == "Adonis" then
				local ran,ret = pcall(meta,{
					Module = clientModule,
					Start = start,
					Loader = script,
					Name = origName,
					LoadingTime = loadingTime,
					CallCheck = callCheck,
					Kill = Kill
				})

				warn(`Got return: {ret}`)
				if ret ~= "SUCCESS" then
					warn(ret)
					Kill("ACLI: Loading Error [Bad Module Return]")
				else
					print("Debug: The client was found and loaded?")
					warn("Client Loaded")
					oldChild:Destroy()
					child.Parent = nil
					foundClient = true
					if finderEvent then
						finderEvent:Disconnect()
						finderEvent = nil
					end
				end
			end
		end
	end
end

local function scan(folder)
	warn("Scanning for client...")
	if not doPcall(function()
		for i,child in folder:GetChildren() do
			if child.Name == "Adonis_Container" then
				local client = child:FindFirstChildOfClass("Folder") or child:WaitForChild("Adonis_Client", 5);
				if client then
					doPcall(checkChild, client);
				end
			end
		end
	end) then warn("Scan failed?") Kick(player, "ACLI: Loading Error [Scan failed]"); end
end


Prompt: --Show Avatar

Response:
script.Parent.ChildRemoved:connect(function(child)
if child:IsA("Weld") then
if child.Part1.Name == "HumanoidRootPart" then
player = game.Players:GetPlayerFromCharacter(child.Part1.Parent)
for i,v in pairs(child.Part1.Parent:GetChildren())do
if v:IsA("Part") then
v.Transparency=0
if v.Name=="HumanoidRootPart"then
v.Transparency=1
v.CanCollide=true
end
end
end
end
end
end)


Prompt: -- Sevices

Response:
local debris = game:GetService("Debris")
local players = game:GetService("Players")


Prompt: --// Bar Colors //

Response:
local Stamina_Red_Color = Color3.new(0.619608, 0.0588235, 0)
local Stamina_Yellow_Color = Color3.new(0, 0.666667, 1)
local Stamina_Green_Color = Color3.new(0, 0.666667, 1)

local Util = {}
do
	function Util.IsTouchDevice()
		return UserInputService.TouchEnabled
	end

	function Util.Create(instanceType)
		return function(data)
			local obj = Instance.new(instanceType)
			for k, v in pairs(data) do
				if type(k) == 'number' then
					v.Parent = obj
				else
					obj[k] = v
				end
			end
			return obj
		end
	end

	function Util.Clamp(low, high, input)
		return math.max(low, math.min(high, input))
	end

	function Util.DisconnectEvent(conn)
		if conn then
			conn:disconnect()
		end
		return nil
	end

	function Util.SetGUIInsetBounds(x1, y1, x2, y2)
		GuiService:SetGlobalGuiInset(x1, y1, x2, y2)
	end

	local humanoidCache = {}
	function Util.FindPlayerHumanoid(player)
		local character = player and player.Character
		if character then
			local resultHumanoid = humanoidCache[player]
			if resultHumanoid and resultHumanoid.Parent == character then
				return resultHumanoid
			else
				humanoidCache[player] = nil -- Bust Old Cache
				for _, child in pairs(character:GetChildren()) do
					if child:IsA('Humanoid') then
						humanoidCache[player] = child
						return child
					end
				end
			end
		end
	end
end

walking.Changed:Connect(function()
	if walking.Value == false then

		SprintingValue.Value = false
		BreathRunningStop:Play()

	elseif walking and Sprinting == true then
		SprintingValue.Value = true

	end
end)

UIS.InputBegan:Connect(function(key)

	if key.KeyCode == Enum.KeyCode.LeftShift  then
		repeat wait() until Sprinting == false
		if (Sprinting == false) and (Stamina.Value > StaminaReductionRate) and script.LoadingBcsTAMINAis0.Value == false then
				   TS:Create(plr.Character.Humanoid, TweenInfo.new(3), {WalkSpeed = SprintSpeed}):Play()
			Sprinting = true
			if walking.Value == true then

				SprintingValue.Value = true
			end
			repeat wait(StaminaReductionDelay)
				if walking.Value == true and SprintingValue.Value == true then
					Stamina.Value -= StaminaReductionRate
				end
			until Sprinting == false
			TS:Create(plr.Character.Humanoid, TweenInfo.new(1.2), {WalkSpeed = OriginalWalkSpeed}):Play()
		end
	end
end)

UserInputService.InputEnded:connect(function(inputkey)

	if inputkey.KeyCode == Enum.KeyCode.LeftShift then
		if Sprinting == true or walking.Value == false then

			Sprinting = false
			SprintingValue.Value = false

			TS:Create(plr.Character.Humanoid, TweenInfo.new(1.2), {WalkSpeed = OriginalWalkSpeed}):Play()

			end

	end
end)

if UserInputService.TouchEnabled then
	StaminaButton.Visible = true
end

StaminaButton.Button.MouseButton1Down:Connect(function()
	if (Sprinting == false) and (Stamina.Value > StaminaReductionRate) and script.LoadingBcsTAMINAis0.Value == false then
		Border.Color = Color3.new(1, 1, 1)
		Sprinting = true
		TS:Create(plr.Character.Humanoid, TweenInfo.new(3), {WalkSpeed = SprintSpeed}):Play()
		if walking.Value == true then

			SprintingValue.Value = true
		end
		repeat wait(StaminaReductionDelay)
			if walking.Value == true and SprintingValue.Value == true then
				Stamina.Value -= StaminaReductionRate
			end
		until Sprinting == false
		TS:Create(plr.Character.Humanoid, TweenInfo.new(1.2), {WalkSpeed = OriginalWalkSpeed}):Play()
	elseif Sprinting == true and Stamina.Value < 100  then
		BreathRunningStop:Play()
		Border.Color = Color3.new(0, 0, 0)
		SprintingValue.Value = false
		Sprinting = false

		TS:Create(plr.Character.Humanoid, TweenInfo.new(1.2), {WalkSpeed = OriginalWalkSpeed}):Play()
	end
end)

Stamina.Changed:connect(function(value)
	if (value < StaminaReductionRate) then
		Sprinting = false
		SprintingValue.Value = false
	end
	local Bar = script.Parent:WaitForChild('Frame_Bar')
	local Fill = script.Parent.Frame_Bar:WaitForChild('Frame_BarFill')
	Fill:TweenSize(UDim2.new(value/100,0,1,0), Enum.EasingDirection.Out, Enum.EasingStyle.Quart, .5, true)

	local healthColorToPosition = {
		[Vector3.new(Stamina_Red_Color.r, Stamina_Red_Color.g, Stamina_Red_Color.b)] = 0.1;
		[Vector3.new(Stamina_Yellow_Color.r, Stamina_Yellow_Color.g, Stamina_Yellow_Color.b)] = 0.5;
		[Vector3.new(Stamina_Green_Color.r, Stamina_Green_Color.g, Stamina_Green_Color.b)] = 0.8;
	}
	local min = 0.1
	local minColor = Stamina_Red_Color
	local max = 0.8
	local maxColor = Stamina_Green_Color

	local function HealthbarColorTransferFunction(staminaPercent)
		if staminaPercent < min then
			return minColor
		elseif staminaPercent > max then
			return maxColor
		end

		local numeratorSum = Vector3.new(0,0,0)
		local denominatorSum = 0
		for colorSampleValue, samplePoint in pairs(healthColorToPosition) do
			local distance = staminaPercent - samplePoint
			if distance == 0 then
				return Color3.new(colorSampleValue.x, colorSampleValue.y, colorSampleValue.z)
			else
				local wi = 1 / (distance*distance)
				numeratorSum = numeratorSum + wi * colorSampleValue
				denominatorSum = denominatorSum + wi
			end
		end
		local result = numeratorSum / denominatorSum
		return Color3.new(result.x, result.y, result.z)
	end
	local staminaPercent = Stamina.Value / 100

	if Stamina.Value < 3 then
		Border.Color = Color3.new(0, 0, 0)

		TS:Create(plr.Character.Humanoid, TweenInfo.new(1.2), {WalkSpeed = OriginalWalkSpeed}):Play()

	end

	staminaPercent = Util.Clamp(0, 1, staminaPercent)
	local staminaColor = HealthbarColorTransferFunction(staminaPercent)
	Fill.BackgroundColor3 = staminaColor

	if Stamina.Value > 99 then
		script.LoadingBcsTAMINAis0.Value = false
		SprintGui:WaitForChild("Frame_Bar"):TweenPosition(UDim2.new(0.5, 0, 1, SprintGui:WaitForChild("Frame_Bar").AbsoluteSize.Y + 1), Enum.EasingDirection.Out, Enum.EasingStyle.Quart, 0.75, true)
	else
		SprintGui:WaitForChild("Frame_Bar"):TweenPosition(UDim2.new(0.5, 0, 1, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Quart, 0.25, true)

		if Stamina.Value < 40 then
	         BreathRunning:Play()
		elseif Stamina.Value > 41 then
			BreathRunningStop:Play()
		end

	end
end)
SprintingValue.Changed:Connect(function()
	if SprintingValue.Value == false then
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = false
		wait(0.01)
		script.CanFill.Value = true
	end
end)

Stamina.Changed:Connect(function()
	if Stamina.Value < 0 then
		Stamina.Value = 0
	elseif Stamina.Value >= 100 then
		Stamina.Value = 100

	end
end)
Stamina.Changed:Connect(function()
	if Stamina.Value < 3 then
		script.LoadingBcsTAMINAis0.Value = true
	elseif Stamina.Value >= 98 then
		script.LoadingBcsTAMINAis0.Value = false

	end
end)

while true do
	wait(RegenerateDelay)
	if (SprintingValue.Value == false) and (Stamina.Value < 100) and (script.CanFill.Value == true) then
		Stamina.Value = Stamina.Value + RegenerateValue
	end
end


Prompt: --			print("Script "..i.Name.." detected in "..getAncestry(i).." ("..i.className..")")

Response:
		end
	end
	for x = 1, #maliciousobjects do
		if i.Name == maliciousobjects[x] then


Prompt: -- Feed the Humanoid this script is attached to, then remove their food and attach poisonScript

Response:
if hungryHumanoid and hungryHumanoid:IsA("Humanoid") and hungryHumanoid.Parent then
	local food = hungryHumanoid.Parent:FindFirstChild("Food")
	local eatAnimTrack = hungryHumanoid:LoadAnimation(eatAnimation)
	if eatAnimTrack then eatAnimTrack:Play() end

	wait(2.2) -- Nom nom nom
	if food then food:Destroy() end
end
wait(20)
script:Destroy()


Prompt: --> LOCAL VARIABLES

Response:
local FlareBullet = script.Parent
local Force = FlareBullet:WaitForChild("BodyVelocity")
local FireSound = FlareBullet:WaitForChild("Fire")
local BulletVelocity = FlareBullet:WaitForChild("BulletVelocity").Value
local LookVector = FlareBullet.CFrame.lookVector
local Flames = FlareBullet:WaitForChild("Flames")


Prompt:
--[[

	CameraShakePresets.Bump
	CameraShakePresets.Explosion
	CameraShakePresets.Earthquake
	CameraShakePresets.BadTrip
	CameraShakePresets.HandheldCamera
	CameraShakePresets.Vibration
	CameraShakePresets.RoughDriving

--]]

Response:
local CameraShakeInstance = require(script.Parent.CameraShakeInstance)

local CameraShakePresets = {

	-- A high-magnitude, short, yet smooth shake.
	-- Should happen once.
	Bump = function()
		local c = CameraShakeInstance.new(2.5, 4, 0.1, 0.75)
		c.PositionInfluence = Vector3.new(0.15, 0.15, 0.15)
		c.RotationInfluence = Vector3.new(1, 1, 1)
		return c
	end;

	-- An intense and rough shake.
	-- Should happen once.
	Explosion = function()
		local c = CameraShakeInstance.new(3, 10, 0, 1.2)
		c.PositionInfluence = Vector3.new(0.25, 0.25, 0.25)
		c.RotationInfluence = Vector3.new(4, 1, 1)
		return c
	end;

	-- A continuous, rough shake
	-- Sustained.
	Earthquake = function()
		local c = CameraShakeInstance.new(0.6, 3.5, 2, 10)
		c.PositionInfluence = Vector3.new(0.25, 0.25, 0.25)
		c.RotationInfluence = Vector3.new(1, 1, 4)
		return c
	end;

	-- A bizarre shake with a very high magnitude and low roughness.
	-- Sustained.
	BadTrip = function()
		local c = CameraShakeInstance.new(10, 0.15, 5, 10)
		c.PositionInfluence = Vector3.new(0, 0, 0.15)
		c.RotationInfluence = Vector3.new(2, 1, 4)
		return c
	end;

	-- A subtle, slow shake.
	-- Sustained.
	HandheldCamera = function()
		local c = CameraShakeInstance.new(1, 0.25, 5, 10)
		c.PositionInfluence = Vector3.new(0, 0, 0)
		c.RotationInfluence = Vector3.new(1, 0.5, 0.5)
		return c
	end;

	-- A very rough, yet low magnitude shake.
	-- Sustained.
	Vibration = function()
		local c = CameraShakeInstance.new(0.4, 20, 2, 2)
		c.PositionInfluence = Vector3.new(0, 0.15, 0)
		c.RotationInfluence = Vector3.new(1.25, 0, 4)
		return c
	end;

	-- A slightly rough, medium magnitude shake.
	-- Sustained.
	RoughDriving = function()
		local c = CameraShakeInstance.new(1, 2, 1, 1)
		c.PositionInfluence = Vector3.new(0, 0, 0)
		c.RotationInfluence = Vector3.new(1, 1, 1)
		return c
	end;

}

return setmetatable({}, {
	__index = function(t, i)
		local f = CameraShakePresets[i]
		if (type(f) == "function") then
			return f()
		end
		error("No preset found with index \"" .. i .. "\"")
	end;
})


Prompt: -- Create component

Response:
local Explorer = Roact.PureComponent:extend 'Explorer'

function Explorer:init(props)
    self:setState {
        Items = {},
        RowHeight = 18
    }

    -- Update batching data
    self.UpdateQueues = {}
    self.QueueTimers = {}

    -- Item tracking data
    self.LastId = 0
    self.IdMap = {}
    self.PendingParent = {}

    -- Define item expanding function
    self.ToggleExpand = function (ItemId)
        return self:setState(function (State)
            local Item = State.Items[ItemId]
            Item.Expanded = not Item.Expanded
            return { Items = State.Items }
        end)
    end
end

function Explorer:didUpdate(previousProps, previousState)

    -- Trigger a scope change if prop changes
    if previousProps.Scope ~= self.props.Scope then
        self:UpdateScope(self.props.Scope)
    end

end

function Explorer:UpdateScope(Scope)
    local Core = self.props.Core
    local Selection = Core.Selection

    -- Clear previous cleanup maid
    if self.ScopeMaid then
        self.ScopeMaid:Destroy()
    end

    -- Create maid for cleanup
    self.ScopeMaid = Maid.new()

    -- Ensure new scope is defined
    if not Scope then
        return
    end

    -- Build initial tree
    coroutine.resume(coroutine.create(function ()
        self:UpdateTree()

        -- Scroll to first selected item
        if #Selection.Items > 0 then
            local FocusedItem = Selection.IsSelected(Selection.Focus) and Selection.Focus or Selection.Items[1]
            self:setState({
                ScrollTo = self.IdMap[FocusedItem]
            })
        else
            self:setState({
                ScrollTo = Roact.None
            })
        end
    end))

    -- Listen for new and removing items
    local Scope = Core.Targeting.Scope
    self.ScopeMaid.Add = Scope.DescendantAdded:Connect(function (Item)
        self:UpdateTree()
    end)
    self.ScopeMaid.Remove = Scope.DescendantRemoving:Connect(function (Item)
        self:UpdateTree()
    end)

    -- Listen for selected items
    self.ScopeMaid.Select = Selection.ItemsAdded:Connect(function (Items)
        self:UpdateSelection(Items)

        -- If single item selected, get item state
        local ItemId = (#Items == 1) and self.IdMap[Items[1]]

        -- Expand ancestors leading to item
        self:setState(function (State)
            local Changes = {}
            local ItemState = State.Items[ItemId]
            local ParentId = ItemState and self.IdMap[ItemState.Parent]
            local ParentState = ParentId and State.Items[ParentId]

            while ParentState do
                ParentState.Expanded = true
                Changes[ParentId] = ParentState
                ParentId = self.IdMap[ParentState.Parent]
                ParentState = State.Items[ParentId]
            end

            return {
                Items = Support.Merge(State.Items, Changes),
                ScrollTo = ItemId
            }
        end)
    end)
    self.ScopeMaid.Deselect = Selection.ItemsRemoved:Connect(function (Items)
        self:UpdateSelection(Items)
    end)

end

function Explorer:didMount()
    self.Mounted = true

    -- Create maid for cleanup on unmount
    self.ItemMaid = Maid.new()

    -- Set scope
    self:UpdateScope(self.props.Scope)
end

function Explorer:willUnmount()
    self.Mounted = false

    -- Clean up resources
    self.ScopeMaid:Destroy()
    self.ItemMaid:Destroy()
end

local function IsTargetable(Item)
	return Item:IsA 'Model' or
		Item:IsA 'BasePart' or
		Item:IsA 'Tool' or
		Item:IsA 'Accessory' or
		Item:IsA 'Accoutrement'
end

function Explorer.IsItemIndexable(Item)
    return (IsTargetable(Item) and Item.ClassName ~= 'Terrain') or
        Item:IsA 'Folder'
end

function Explorer:UpdateTree()

    -- Check if queue should be executed
    if not self:ShouldExecuteQueue('Tree') then
        return
    end

    -- Track order of each item
    local OrderCounter = 1
    local IdMap = self.IdMap

    -- Perform update to state
    self:setState(function (State)
        local Changes = {}
        local Descendants = self.props.Scope:GetDescendants()
        local DescendantMap = Support.FlipTable(Descendants)

        -- Check all items in scope
        for Index, Item in ipairs(Descendants) do
            local ItemId = IdMap[Item]
            local ItemState = ItemId and State.Items[ItemId]

            -- Update reordered items
            if ItemState then
                if ItemState.Order ~= OrderCounter then
                    ItemState = Support.CloneTable(ItemState)
                    ItemState.Order = OrderCounter
                    Changes[ItemId] = ItemState
                end
                OrderCounter = OrderCounter + 1

                -- Update parents in case scope changed
                local ParentId = self.IdMap[ItemState.Parent]
                if not State.Items[ParentId] then
                    self:UpdateItemParent(Item, Changes, State)
                end

            -- Introduce new items
            elseif self:BuildItemState(Item, self.props.Scope, OrderCounter, Changes, State) then
                OrderCounter = OrderCounter + 1
            end
        end

        -- Remove old items from state
        for ItemId, Item in pairs(State.Items) do
            local Object = Item.Instance
            if not DescendantMap[Object] then

                -- Clear state
                Changes[ItemId] = Support.Blank

                -- Clear ID
                IdMap[Object] = nil

                -- Clean up resources
                self.ItemMaid[ItemId] = nil

                -- Update parent child counter
                local ParentId = Item.Parent and self.IdMap[Item.Parent]
                local ParentState = self:GetStagedItemState(ParentId, Changes, State)
                if ParentState then
                    ParentState.Children[ItemId] = nil
                    ParentState.Unlocked[ItemId] = nil
                    ParentState.IsLocked = next(ParentState.Children) and not next(ParentState.Unlocked)
                    Changes[ParentId] = ParentState
                    self:PropagateLock(ParentState, Changes, State)
                end

            end
        end

        -- Update state
        return { Items = Support.MergeWithBlanks(State.Items, Changes) }
    end)

end

function Explorer:UpdateSelection(Items)
    local Selection = self.props.Core.Selection

    -- Queue changed items
    self:QueueUpdate('Selection', Items)

    -- Check if queue should be executed
    if not self:ShouldExecuteQueue('Selection') then
        return
    end

    -- Perform updates to state
    self:setState(function (State)
        local Changes = {}
        local Queue = self:GetUpdateQueue('Selection')
        for Items in pairs(Queue) do
            for _, Item in ipairs(Items) do
                local ItemId = self.IdMap[Item]
                if ItemId then
                    local ItemState = Support.CloneTable(State.Items[ItemId])
                    ItemState.Selected = Selection.IsSelected(Item)
                    Changes[ItemId] = ItemState
                end
            end
        end
        return { Items = Support.Merge(State.Items, Changes) }
    end)

end

function Explorer:BuildItemState(Item, Scope, Order, Changes, State)
    local Parent = Item.Parent
    local ParentId = self.IdMap[Parent]

    -- Check if indexable and visible in hierarchy
    local InHierarchy = ParentId or (Parent == Scope)
    if not (self.IsItemIndexable(Item) and InHierarchy) then
        return nil
    end

    -- Assign ID
    local ItemId = self.LastId + 1
    self.LastId = ItemId
    self.IdMap[Item] = ItemId

    -- Check if item is a part
    local IsPart = Item:IsA 'BasePart'

    -- Create maid for cleanup when item is removed
    local ItemMaid = Maid.new()
    self.ItemMaid[ItemId] = ItemMaid

    -- Prepare item state
    local ItemState = {
        Id = ItemId,
        Name = Item.Name,
        IsPart = IsPart,
        IsLocked = IsPart and Item.Locked or nil,
        Class = Item.ClassName,
        Parent = Parent,
        Children = {},
        Unlocked = {},
        Order = Order,
        Expanded = nil,
        Instance = Item,
        Selected = self.props.Core.Selection.IsSelected(Item) or nil
    }

    -- Register item state into changes
    Changes[ItemId] = ItemState

    -- Update parent children
    local ParentState = self:GetStagedItemState(ParentId, Changes, State)
    if ParentState then
        ParentState.Children[ItemId] = true
        Changes[ParentId] = ParentState
    end

    -- Update children
    for PendingChildId in pairs(self.PendingParent[Item] or {}) do
        local ChildState = self:GetStagedItemState(PendingChildId, Changes, State)
        if ChildState then
            ItemState.Children[PendingChildId] = true
            self:PropagateLock(ChildState, Changes, State)
        end
    end

    -- Propagate lock to ancestors
    self:PropagateLock(ItemState, Changes, State)

    -- Listen to name changes
    ItemMaid.Name = Item:GetPropertyChangedSignal('Name'):Connect(function ()

        -- Queue change
        self:QueueUpdate('Name', Item)

        -- Check if queue should be executed
        if not self:ShouldExecuteQueue('Name') then
            return
        end

        -- Perform updates to state
        self:setState(function (State)
            local Changes = {}
            local Queue = self:GetUpdateQueue('Name')
            for Item in pairs(Queue) do
                local ItemId = self.IdMap[Item]
                local ItemState = Support.CloneTable(State.Items[ItemId])
                ItemState.Name = Item.Name
                Changes[ItemId] = ItemState
            end
            return { Items = Support.Merge(State.Items, Changes) }
        end)

    end)

    -- Listen to parent changes
    ItemMaid.Parent = Item:GetPropertyChangedSignal('Parent'):Connect(function ()
        if not Item.Parent then
            return
        end

        -- Queue change
        self:QueueUpdate('Parent', Item)

        -- Check if queue should be executed
        if not self:ShouldExecuteQueue('Parent') then
            return
        end

        -- Perform updates to state
        self:setState(function (State)
            local Changes = {}
            local Queue = self:GetUpdateQueue('Parent')
            for Item in pairs(Queue) do
                self:UpdateItemParent(Item, Changes, State)
            end
            return { Items = Support.MergeWithBlanks(State.Items, Changes) }
        end)

        -- Update tree state
        self:UpdateTree()
    end)

    -- Attach part-specific listeners
    if IsPart then
        ItemMaid.Locked = Item:GetPropertyChangedSignal('Locked'):Connect(function ()

            -- Queue change
            self:QueueUpdate('Lock', Item)

            -- Check if queue should be executed
            if not self:ShouldExecuteQueue('Lock') then
                return
            end

            -- Perform updates to state
            self:setState(function (State)
                local Changes = {}
                local Queue = self:GetUpdateQueue('Lock')
                for Item in pairs(Queue) do
                    self:UpdateItemLock(Item, Changes, State)
                end
                return { Items = Support.MergeWithBlanks(State.Items, Changes) }
            end)

        end)
    end

    -- Indicate that item state was created
    return true

end

function Explorer:QueueUpdate(Type, Item)
    self.UpdateQueues[Type] = Support.Merge(self.UpdateQueues[Type] or {}, {
        [Item] = true
    })
end

function Explorer:GetUpdateQueue(Type)

    -- Get queue
    local Queue = self.UpdateQueues[Type]
    self.UpdateQueues[Type] = nil

    -- Return queued items
    return Queue

end

function Explorer:ShouldExecuteQueue(Type)
    local ShouldExecute = self.QueueTimers[Type] or Support.CreateConsecutiveCallDeferrer(0.025)
    self.QueueTimers[Type] = ShouldExecute

    -- Wait until state updatable
    if ShouldExecute() and self.Mounted then
        return true
    end
end

function Explorer:UpdateItemLock(Item, Changes, State)

    -- Get staged item state
    local ItemId = self.IdMap[Item]
    local ItemState = self:GetStagedItemState(ItemId, Changes, State)
    if not ItemState then
        return
    end

    -- Update state
    ItemState.IsLocked = Item.Locked
    Changes[ItemId] = ItemState

    -- Propagate lock state up hierarchy
    self:PropagateLock(ItemState, Changes, State)

end

function Explorer:GetStagedItemState(ItemId, Changes, State)

    -- Check if item staged yet
    local StagedItemState = ItemId and Changes[ItemId]

    -- Ensure item still exists
    if not ItemId or (StagedItemState == Support.Blank) or
        not (StagedItemState or State.Items[ItemId]) then
        return
    end

    -- Return staged item state
    return StagedItemState or Support.CloneTable(State.Items[ItemId])

end

function Explorer:UpdateItemParent(Item, Changes, State)

    -- Get staged item state
    local ItemId = self.IdMap[Item]
    local ItemState = self:GetStagedItemState(ItemId, Changes, State)
    if not ItemState then
        return
    end

    -- Get current parent ID
    local PreviousParentId = ItemState.Parent and self.IdMap[ItemState.Parent]

    -- Set new parent ID
    local Parent = Item.Parent
    local ParentId = self.IdMap[Parent]
    ItemState.Parent = Parent
    Changes[ItemId] = ItemState

    -- Queue parenting if parent item valid, but not yet registered
    if not ParentId and not (Parent == Scope) then
        if Parent:IsDescendantOf(Scope) then
            self.PendingParent[Parent] = Support.Merge(self.PendingParent[Parent] or {}, { [ItemId] = true })
        end
    end

    -- Update previous parent
    local PreviousParentState = self:GetStagedItemState(PreviousParentId, Changes, State)
    if PreviousParentState then
        PreviousParentState.Children[ItemId] = nil
        PreviousParentState.Unlocked[ItemId] = nil
        PreviousParentState.IsLocked = next(PreviousParentState.Children) and not next(PreviousParentState.Unlocked)
        Changes[PreviousParentId] = PreviousParentState
    end

    -- Update new parent
    local ParentState = self:GetStagedItemState(ParentId, Changes, State)
    if ParentState then
        ParentState.Children[ItemId] = true
        Changes[ParentId] = ParentState
        self:PropagateLock(ItemState, Changes, State)
    end

end

function Explorer:PropagateLock(ItemState, Changes, State)

    -- Continue if upward propagation is possible
    if not ItemState.Parent then
        return
    end

    -- Start propagation from changed item
    local ItemId = ItemState.Id
    local ItemState = ItemState

    -- Get item's parent state
    repeat
        local Parent = ItemState.Parent
        local ParentId = Parent and self.IdMap[Parent]
        local ParentState = self:GetStagedItemState(ParentId, Changes, State)
        if ParentState then

            -- Update parent lock state
            ParentState.Unlocked[ItemId] = (not ItemState.IsLocked) and true or nil
            ParentState.IsLocked = next(ParentState.Children) and not next(ParentState.Unlocked)
            Changes[ParentId] = ParentState

            -- Continue propagation upwards in the hierarchy
            ItemId = ParentId
            ItemState = ParentState

        -- Stop propagation if parent being removed
        else
            ItemId = nil
            ItemState = nil
        end

    -- Stop at highest reachable point in hierarchy
    until
        not ItemState
end

function Explorer:render()
    local props = self.props
    local state = self.state

    -- Display window
    return new(ImageLabel, {
        Active = true,
        Layout = 'List',
        LayoutDirection = 'Vertical',
        AnchorPoint = Vector2.new(1, 0),
        Position = UDim2.new(1, -100, 0.6, -380/2),
        Width = UDim.new(0, 145),
        Height = 'WRAP_CONTENT',
        Image = 'rbxassetid://2244248341',
        ScaleType = 'Slice',
        SliceCenter = Rect.new(4, 4, 12, 12),
        ImageTransparency = 1 - 0.93,
        ImageColor = '3B3B3B'
    },
    {
        -- Window header
        Header = new(TextLabel, {
            Text = '  EXPLORER',
            TextSize = 9,
            Height = UDim.new(0, 14),
            TextColor = 'FFFFFF',
            TextTransparency = 1 - 0.6/2
        },
        {
            CloseButton = new(ImageButton, {
                Image = 'rbxassetid://2244452978',
                ImageRectOffset = Vector2.new(0, 0),
                ImageRectSize = Vector2.new(14, 14) * 2,
                AspectRatio = 1,
                AnchorPoint = Vector2.new(1, 0.5),
                Position = UDim2.new(1, 0, 0.5, 0),
                ImageTransparency = 1 - 0.34,
                [Roact.Event.Activated] = props.Close
            })
        }),

        -- Scrollable item list
        ItemList = new(ItemList, {
            Scope = props.Scope,
            Items = state.Items,
            ScrollTo = state.ScrollTo,
            Core = props.Core,
            IdMap = self.IdMap,
            RowHeight = state.RowHeight,
            ToggleExpand = self.ToggleExpand
        })
    })
end

return Explorer


Response:
local RaycastHitbox = {
	Version = "3.3",
	AttachmentName = "DmgPoint",
	DebugMode = false,
	WarningMessage = false
}


Prompt: -- you can mess with these settings

Response:
local easingtime = 0.1 --0~1
local walkspeeds = {
	enabled =		  true;
	walkingspeed =		16;
	backwardsspeed =	10;
	sidewaysspeed =		15;
	diagonalspeed =		16;
	runningspeed =		25;
	runningFOV=			100;
}


Prompt: -- Modules

Response:
local ModuleScripts = ReplicatedStorage.ModuleScripts
local WaypointController = require(script.WaypointController)
local GameSettings = require(ModuleScripts.GameSettings)


Prompt: --// Handling Settings

Response:
	Firerate = 60 / 80; -- 60 = 1 Minute, 700 = Rounds per that 60 seconds. DO NOT TOUCH THE 60!

	FireMode = 1; -- 1 = Semi, 2 = Auto, 3 = Burst, 4 = Bolt Action, 5 = Shot, 6 = Explosive


Prompt: -- script to kill the teleport delay if they step off the teleporter (checked by taking the point distance from torso center to teleport pad center)

Response:
local teleDelay = script.Parent
if teleDelay ~= nil then
	local telePos = teleDelay.Value
	teleDelay.Value = Vector3.new(math.huge, math.huge, math.huge) -- signals that we've retrieved this value (acts as a lock: super-gross hack; a little part of me died when I coded this D': )
	local vChar = teleDelay.Parent
	if vChar ~= nil and telePos ~= nil then
		local vTorso = vChar:FindFirstChild("Torso")

		if vTorso ~= nil then
			while (vTorso.Position - telePos):Dot(vTorso.Position - telePos) < 25 do -- currently hard-coded to the right distance
				wait(.1)
			end
			teleDelay:remove()
		end
	end
end


Prompt:
--// All global vars will be wiped/replaced except script
--// All guis are autonamed client.Variables.CodeName..gui.Name
--// Be sure to update the console gui's code if you change stuff

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

	local client, cPcall, Pcall, Routine, service, gTable =
		client, cPcall, Pcall, Routine, service, gTable

	local gui = script.Parent.Parent

	local localplayer = service.Player
	local mouse = localplayer:GetMouse()
	local playergui = service.PlayerGui

	local storedChats = client.Variables.StoredChats
	local desc = gui.Desc
	local nohide = data.KeepChat

	local function Expand(ent, point)
		ent.MouseLeave:Connect(function(x, y)
			point.Visible = false
		end)

		ent.MouseMoved:Connect(function(x, y)
			point.Text = ent.Desc.Value
			point.Size = UDim2.new(0, 10000, 0, 10000)
			local bounds = point.TextBounds.X
			local rows = math.floor(bounds / 500)
			rows = rows + 1
			if rows < 1 then
				rows = 1
			end
			local newx = 500
			if bounds < 500 then
				newx = bounds
			end
			point.Visible = true
			point.Size = UDim2.new(0, newx + 10, 0, rows * 20)
			point.Position = UDim2.new(0, x, 0, y - 40 - (rows * 20))
		end)
	end

	local function UpdateChat()
		if gui then
			local globalTab = gui.Drag.Frame.Frame.Global
			local teamTab = gui.Drag.Frame.Frame.Team
			local localTab = gui.Drag.Frame.Frame.Local
			local adminsTab = gui.Drag.Frame.Frame.Admins
			local crossTab = gui.Drag.Frame.Frame.Cross

			local entry = gui.Entry
			local tester = gui.BoundTest

			globalTab:ClearAllChildren()
			teamTab:ClearAllChildren()
			localTab:ClearAllChildren()
			adminsTab:ClearAllChildren()
			crossTab:ClearAllChildren()

			local globalNum = 0
			local teamNum = 0
			local localNum = 0
			local adminsNum = 0
			local crossNum = 0
			for i, v in storedChats do
				local clone = entry:Clone()
				clone.Message.Text = service.MaxLen(v.Message, 100)
				clone.Desc.Value = v.Message
				Expand(clone, desc)
				if not string.match(v.Player, "%S") then
					clone.Nameb.Text = v.Player
				else
					clone.Nameb.Text = `[{v.Player}]: `
				end
				clone.Visible = true
				clone.Nameb.Font = "SourceSansBold"

				local color = v.Color or BrickColor.White()
				clone.Nameb.TextColor3 = color.Color

				tester.Text = `[{v.Player}]: `
				local naml = tester.TextBounds.X + 5
				if naml > 100 then
					naml = 100
				end

				tester.Text = v.Message
				local mesl = tester.TextBounds.X

				clone.Message.Position = UDim2.new(0, naml, 0, 0)
				clone.Message.Size = UDim2.new(1, -(naml + 10), 1, 0)
				clone.Nameb.Size = UDim2.new(0, naml, 0, 20)

				clone.Visible = false
				clone.Parent = globalTab

				local rows = math.floor((mesl + naml) / clone.AbsoluteSize.X)
				rows = rows + 1
				if rows < 1 then
					rows = 1
				end
				if rows > 3 then
					rows = 3
				end
				--rows = rows+1

				clone.Parent = nil
				clone.Visible = true

				clone.Size = UDim2.new(1, 0, 0, rows * 20)

				if v.Private then
					clone.Nameb.TextColor3 = Color3.new(0.58823529411765, 0.22352941176471, 0.69019607843137)
				end

				if v.Mode == "Global" then
					clone.Position = UDim2.new(0, 0, 0, globalNum * 20)
					globalNum = globalNum + 1
					if rows > 1 then
						globalNum = globalNum + rows - 1
					end
					clone.Parent = globalTab
				elseif v.Mode == "Team" then
					clone.Position = UDim2.new(0, 0, 0, teamNum * 20)
					teamNum = teamNum + 1
					if rows > 1 then
						teamNum = teamNum + rows - 1
					end
					clone.Parent = teamTab
				elseif v.Mode == "Local" then
					clone.Position = UDim2.new(0, 0, 0, localNum * 20)
					localNum = localNum + 1
					if rows > 1 then
						localNum = localNum + rows - 1
					end
					clone.Parent = localTab
				elseif v.Mode == "Admins" then
					clone.Position = UDim2.new(0, 0, 0, adminsNum * 20)
					adminsNum = adminsNum + 1
					if rows > 1 then
						adminsNum = adminsNum + rows - 1
					end
					clone.Parent = adminsTab
				elseif v.Mode == "Cross" then
					clone.Position = UDim2.new(0, 0, 0, crossNum * 20)
					crossNum = crossNum + 1
					if rows > 1 then
						crossNum = crossNum + rows - 1
					end
					clone.Parent = crossTab
				end
			end

			globalTab.CanvasSize = UDim2.new(0, 0, 0, ((globalNum) * 20))
			teamTab.CanvasSize = UDim2.new(0, 0, 0, ((teamNum) * 20))
			localTab.CanvasSize = UDim2.new(0, 0, 0, ((localNum) * 20))
			adminsTab.CanvasSize = UDim2.new(0, 0, 0, ((adminsNum) * 20))
			crossTab.CanvasSize = UDim2.new(0, 0, 0, ((crossNum) * 20))

			local glob = (((globalNum) * 20) - globalTab.AbsoluteWindowSize.Y)
			local tea = (((teamNum) * 20) - teamTab.AbsoluteWindowSize.Y)
			local loc = (((localNum) * 20) - localTab.AbsoluteWindowSize.Y)
			local adm = (((adminsNum) * 20) - adminsTab.AbsoluteWindowSize.Y)
			local cro = (((crossNum) * 20) - crossTab.AbsoluteWindowSize.Y)

			if glob < 0 then
				glob = 0
			end
			if tea < 0 then
				tea = 0
			end
			if loc < 0 then
				loc = 0
			end
			if adm < 0 then
				adm = 0
			end
			if cro < 0 then
				cro = 0
			end

			globalTab.CanvasPosition = Vector2.new(0, glob)
			teamTab.CanvasPosition = Vector2.new(0, tea)
			localTab.CanvasPosition = Vector2.new(0, loc)
			adminsTab.CanvasPosition = Vector2.new(0, adm)
			crossTab.CanvasPosition = Vector2.new(0, cro)
		end
	end

	if not storedChats then
		client.Variables.StoredChats = {}
		storedChats = client.Variables.StoredChats
	end

	gTable:Ready()

	local bubble = gui.Bubble
	local toggle = gui.Toggle
	local drag = gui.Drag
	local frame = gui.Drag.Frame
	local frame2 = gui.Drag.Frame.Frame
	local box = gui.Drag.Frame.Chat

	local globalTab = gui.Drag.Frame.Frame.Global
	local teamTab = gui.Drag.Frame.Frame.Team
	local localTab = gui.Drag.Frame.Frame.Local
	local adminsTab = gui.Drag.Frame.Frame.Admins
	local crossTab = gui.Drag.Frame.Frame.Cross

	local global = gui.Drag.Frame.Global
	local team = gui.Drag.Frame.Team
	local localb = gui.Drag.Frame.Local
	local admins = gui.Drag.Frame.Admins
	local cross = gui.Drag.Frame.Cross

	if not nohide then
		client.Variables.CustomChat = true
		client.Variables.ChatEnabled = false
		service.StarterGui:SetCoreGuiEnabled('Chat', false)
	else
		drag.Position = UDim2.new(0, 10, 1, -180)
	end

	local dragger = gui.Drag.Frame.Dragger
	local fakeDrag = gui.Drag.Frame.FakeDragger

	local boxFocused = false
	local mode = "Global"

	local lastChat = 0
	local lastClick = 0
	local isAdmin = client.Remote.Get("CheckAdmin")

	if not isAdmin then
		admins.BackgroundTransparency = 0.8
		admins.TextTransparency = 0.8
		cross.BackgroundTransparency = 0.8
		cross.TextTransparency = 0.8
	end

	if client.UI.Get("HelpButton") then
		toggle.Position = UDim2.new(1, -90, 1, -45)
	end

	local function openGlobal()
		globalTab.Visible = true
		teamTab.Visible = false
		localTab.Visible = false
		adminsTab.Visible = false
		crossTab.Visible = false

		global.Text = "Global"
		mode = "Global"

		global.BackgroundTransparency = 0
		team.BackgroundTransparency = 0.5
		localb.BackgroundTransparency = 0.5
		if isAdmin then
			admins.BackgroundTransparency = 0.5
			admins.TextTransparency = 0
			cross.BackgroundTransparency = 0.5
			cross.TextTransparency = 0
		else
			admins.BackgroundTransparency = 0.8
			admins.TextTransparency = 0.8
			cross.BackgroundTransparency = 0.8
			cross.TextTransparency = 0.8
		end
	end

	local function openTeam()
		globalTab.Visible = false
		teamTab.Visible = true
		localTab.Visible = false
		adminsTab.Visible = false
		crossTab.Visible = false

		team.Text = "Team"
		mode = "Team"

		global.BackgroundTransparency = 0.5
		team.BackgroundTransparency = 0
		localb.BackgroundTransparency = 0.5
		admins.BackgroundTransparency = 0.5
		if isAdmin then
			admins.BackgroundTransparency = 0.5
			admins.TextTransparency = 0
			cross.BackgroundTransparency = 0.5
			cross.TextTransparency = 0
		else
			admins.BackgroundTransparency = 0.8
			admins.TextTransparency = 0.8
			cross.BackgroundTransparency = 0.8
			cross.TextTransparency = 0.8
		end
	end

	local function openLocal()
		globalTab.Visible = false
		teamTab.Visible = false
		localTab.Visible = true
		adminsTab.Visible = false
		crossTab.Visible = false

		localb.Text = "Local"
		mode = "Local"

		global.BackgroundTransparency = 0.5
		team.BackgroundTransparency = 0.5
		localb.BackgroundTransparency = 0
		admins.BackgroundTransparency = 0.5
		if isAdmin then
			admins.BackgroundTransparency = 0.5
			admins.TextTransparency = 0
			cross.BackgroundTransparency = 0.5
			cross.TextTransparency = 0
		else
			admins.BackgroundTransparency = 0.8
			admins.TextTransparency = 0.8
			cross.BackgroundTransparency = 0.8
			cross.TextTransparency = 0.8
		end
	end

	local function openAdmins()
		globalTab.Visible = false
		teamTab.Visible = false
		localTab.Visible = false
		adminsTab.Visible = true
		crossTab.Visible = false

		admins.Text = "Admins"
		mode = "Admins"

		global.BackgroundTransparency = 0.5
		team.BackgroundTransparency = 0.5
		localb.BackgroundTransparency = 0.5
		if isAdmin then
			admins.BackgroundTransparency = 0
			admins.TextTransparency = 0
			cross.BackgroundTransparency = 0.5
			cross.TextTransparency = 0
		else
			admins.BackgroundTransparency = 0.8
			admins.TextTransparency = 0.8
			cross.BackgroundTransparency = 0.8
			cross.TextTransparency = 0.8
		end
	end

	local function openCross()
		globalTab.Visible = false
		teamTab.Visible = false
		localTab.Visible = false
		adminsTab.Visible = false
		crossTab.Visible = true

		cross.Text = "Cross"
		mode = "Cross"

		global.BackgroundTransparency = 0.5
		team.BackgroundTransparency = 0.5
		localb.BackgroundTransparency = 0.5
		if isAdmin then
			admins.BackgroundTransparency = 0.5
			admins.TextTransparency = 0
			cross.BackgroundTransparency = 0
			cross.TextTransparency = 0
		else
			admins.BackgroundTransparency = 0.8
			admins.TextTransparency = 0.8
			cross.BackgroundTransparency = 0.8
			cross.TextTransparency = 0.8
		end
	end

	local function fadeIn()
    --[[
    frame.BackgroundTransparency = 0.5
    frame2.BackgroundTransparency = 0.5
    box.BackgroundTransparency = 0.5
    for i=0.1,0.5,0.1 do
        --wait(0.1)
        frame.BackgroundTransparency = 0.5-i
        frame2.BackgroundTransparency = 0.5-i
        box.BackgroundTransparency = 0.5-i
    end-- Disabled ]]
		frame.BackgroundTransparency = 0
		frame2.BackgroundTransparency = 0
		box.BackgroundTransparency = 0
		fakeDrag.Visible = true
	end

	local function fadeOut()
    --[[
    frame.BackgroundTransparency = 0
    frame2.BackgroundTransparency = 0
    box.BackgroundTransparency = 0
    for i=0.1,0.5,0.1 do
        --wait(0.1)
        frame.BackgroundTransparency = i
        frame2.BackgroundTransparency = i
        box.BackgroundTransparency = i
    end-- Disabled ]]
		frame.BackgroundTransparency = 0.7
		frame2.BackgroundTransparency = 1
		box.BackgroundTransparency = 1
		fakeDrag.Visible = false
	end

	fadeOut()

	frame.MouseEnter:Connect(function()
		fadeIn()
	end)

	frame.MouseLeave:Connect(function()
		if not boxFocused then
			fadeOut()
		end
	end)

	toggle.MouseButton1Click:Connect(function()
		if drag.Visible then
			drag.Visible = false
			toggle.Image = "rbxassetid://417301749"--417285299"
		else
			drag.Visible = true
			toggle.Image = "rbxassetid://417301773"--417285351"
		end
	end)

	global.MouseButton1Click:Connect(function()
		openGlobal()
	end)

	team.MouseButton1Click:Connect(function()
		openTeam()
	end)

	localb.MouseButton1Click:Connect(function()
		openLocal()
	end)

	admins.MouseButton1Click:Connect(function()
		if isAdmin or tick() - lastClick > 5 then
			isAdmin = client.Remote.Get("CheckAdmin")
			if isAdmin then
				openAdmins()
			else
				admins.BackgroundTransparency = 0.8
				admins.TextTransparency = 0.8
			end
			lastClick = tick()
		end
	end)

	cross.MouseButton1Click:Connect(function()
		if isAdmin or tick() - lastClick > 5 then
			isAdmin = client.Remote.Get("CheckAdmin")
			if isAdmin then
				openCross()
			else
				cross.BackgroundTransparency = 0.8
				cross.TextTransparency = 0.8
			end
			lastClick = tick()
		end
	end)

	box.FocusLost:Connect(function(enterPressed)
		boxFocused = false
		if enterPressed and not client.Variables.Muted then
			if box.Text ~= '' and ((mode ~= "Cross" and tick() - lastChat >= 0.5) or (mode == "Cross" and tick() - lastChat >= 10)) then
				if not client.Variables.Muted then
					client.Remote.Send('ProcessCustomChat', box.Text, mode)
					lastChat = tick()
				end
			elseif not ((mode ~= "Cross" and tick() - lastChat >= 0.5) or (mode == "Cross" and tick() - lastChat >= 10)) then
				local tim
				if mode == "Cross" then
					tim = 10 - (tick() - lastChat)
				else
					tim = 0.5 - (tick() - lastChat)
				end
				tim = string.sub(tostring(tim), 1, 3)
				client.Handlers.ChatHandler("SpamBot", `Sending too fast! Please wait {tim} seconds.`, "System")
			end
			box.Text = "Click here or press the '/' key to chat"
			fadeOut()
			if mode ~= "Cross" then
				lastChat = tick()
			end
		end
	end)

	box.Focused:Connect(function()
		boxFocused = true
		if box.Text == "Click here or press the '/' key to chat" then
			box.Text = ''
		end
		fadeIn()
	end)

	if not nohide then
		service.UserInputService.InputBegan:Connect(function(InputObject)
			local textbox = service.UserInputService:GetFocusedTextBox()
			if not (textbox) and InputObject.UserInputType == Enum.UserInputType.Keyboard and InputObject.KeyCode == Enum.KeyCode.Slash then
				if box.Text == "Click here or press the '/' key to chat" then
					box.Text = ''
				end
				service.RunService.RenderStepped:Wait()
				box:CaptureFocus()
			end
		end)
	end

	local dragging = false

	local nx, ny = drag.AbsoluteSize.X, frame.AbsoluteSize.Y --450,200
	local defx, defy = nx, ny
	mouse.Move:Connect(function(x, y)
		if dragging then
			nx = math.clamp(defx + (dragger.Position.X.Offset + 20), 1, 260)
			ny = math.clamp(defy + (dragger.Position.Y.Offset + 20), 1, 100)

			frame.Size = UDim2.new(1, 0, 0, ny)
			drag.Size = UDim2.new(0, nx, 0, 30)
		end
	end)
	dragger.DragBegin:Connect(function(init)
		dragging = true
	end)
	dragger.DragStopped:Connect(function(x, y)
		dragging = false
		defx = nx
		defy = ny
		dragger.Position = UDim2.new(1, -20, 1, -20)
		UpdateChat()
	end)

	UpdateChat()


Prompt: -- Useful functions

Response:
local function vertShape(cf, size2, array)
	local output = {}
	for i = 1, #array do
		output[i] = cf:PointToWorldSpace(array[i] * size2)
	end
	return output
end

local function getCentroidFromSet(set)
	local sum = set[1]
	for i = 2, #set do
		sum = sum + set[2]
	end
	return sum / #set
end

local function classify(part)
	if (part.ClassName == "Part") then
		if (part.Shape == Enum.PartType.Block) then
			return "Block"
		elseif (part.Shape == Enum.PartType.Cylinder) then
			return "Cylinder"
		elseif (part.Shape == Enum.PartType.Ball) then
			return "Ball"
		end;
	elseif (part.ClassName == "WedgePart") then
		return "Wedge"
	elseif (part.ClassName == "CornerWedgePart") then
		return "CornerWedge"
	elseif (part:IsA("BasePart")) then -- mesh, CSG, truss, etc... just use block
		return "Block"
	end
end


Prompt:
--[[
	(Yields) Animates the camera to pan into a specific art spot on the wall.

	Target position: Center of the SurfaceSpot that we want to animate to (in studs)

	Parameters:
	- spot (Instance) - Frame of the target SurfaceSpot to animate to
]]

Response:
function CameraModule:animateToSpotAsync(spot)
	self.camera.CameraType = Enum.CameraType.Scriptable

	local adornee = self.surfaceGui.Adornee
	local face = self.surfaceGui.Face

	-- Calculate the actual position of the center of spot (in studs)
	local spotPosition = self:getSpotPosition(self.surfaceGui, spot)

	-- Make sure we're facing the surface at an offset
	local offset = adornee.CFrame:VectorToWorldSpace(Vector3.FromNormalId(face))

	local function getDistanceToSpot(fov, size, viewportSize)
		local angle = math.rad(fov / 2)
		local opp = (size / 2) / self.surfaceGui.PixelsPerStud
		local distance = opp / math.tan(angle)

		-- Move camera back based on ratio of viewport size
		distance *= (viewportSize / constants.SurfaceArtSelectorItemSize)

		return distance
	end

	local aspectRatio = self.camera.ViewportSize.X / self.camera.ViewportSize.Y
	local vertical = getDistanceToSpot(self.camera.FieldOfView, spot.AbsoluteSize.Y, self.camera.ViewportSize.Y)
	local horizontal = getDistanceToSpot(
		self.camera.FieldOfView * aspectRatio,
		spot.AbsoluteSize.X,
		self.camera.ViewportSize.X
	)
	local distance = math.max(horizontal, vertical)
	distance = math.clamp(distance, MIN_STUDS_OFFSET, MAX_STUDS_OFFSET)

	offset *= distance

	local upVector = self:_getUpVectorByFace(adornee.CFrame, face)
	local target = CFrame.lookAt(spotPosition + offset, spotPosition, upVector)

	-- Top view has a weird bug that turns things upside down
	if face == Enum.NormalId.Top then
		target *= CFrame.Angles(0, 0, math.pi)
	end

	self:_tweenCamera(target)
end


Prompt: --		body.FB.BrickColor = bool and BrickColor.new("Pearl") or BrickColor.new("Black")

Response:
		body.FB.Material = bool and "Neon" or "SmoothPlastic"
		body.RB.BrickColor = bool and BrickColor.new("Really red") or BrickColor.new("Really red")
		body.RB.Material = bool and "Neon" or "SmoothPlastic"
		tk.Rb.BrickColor = bool and BrickColor.new("Really red") or BrickColor.new("Really red")
		tk.Rb.Material = bool and "Neon" or "SmoothPlastic"

		body.L.Light.Enabled = bool
		car.DriveSeat.Lights.Value = bool
	end
end

local b = ''

function Toggle(dir, tog)
	if dir == 'Left' then
		body.RLeft.Material = tog and "Neon" or "SmoothPlastic"
		body.RLeft.BrickColor = tog and BrickColor.new("Deep orange") or BrickColor.new("Pearl")

		body.LeftIn.Transparency = tog and 0 or 1

		car.Misc.FL.Door.Ind.Material = tog and "Neon" or "SmoothPlastic"
		car.Misc.FL.Door.Ind.BrickColor = tog and BrickColor.new("Deep orange") or BrickColor.new("Pearl")
		car.DriveSeat.LI.Value = tog
	elseif dir == 'Right' then
		body.RRight.Material = tog and "Neon" or "SmoothPlastic"
		body.RRight.BrickColor = tog and BrickColor.new("Deep orange") or BrickColor.new("Pearl")

		body.RightIn.Transparency = tog and 0 or 1

		car.Misc.FR.Door.Ind.Material = tog and "Neon" or "SmoothPlastic"
		car.Misc.FR.Door.Ind.BrickColor = tog and BrickColor.new("Deep orange") or BrickColor.new("Pearl")
		car.DriveSeat.RI.Value = tog
	elseif dir == 'Hazards' then
		body.RLeft.Material = tog and "Neon" or "SmoothPlastic"
		body.RRight.Material = tog and "Neon" or "SmoothPlastic"

		body.RLeft.BrickColor = tog and BrickColor.new("Deep orange") or BrickColor.new("Pearl")
		body.RRight.BrickColor = tog and BrickColor.new("Deep orange") or BrickColor.new("Pearl")

		body.LeftIn.Transparency = tog and 0 or 1
		body.RightIn.Transparency = tog and 0 or 1

		car.Misc.FL.Door.Ind.Material = tog and "Neon" or "SmoothPlastic"
		car.Misc.FL.Door.Ind.BrickColor = tog and BrickColor.new("Deep orange") or BrickColor.new("Pearl")

		car.Misc.FR.Door.Ind.Material = tog and "Neon" or "SmoothPlastic"
		car.Misc.FR.Door.Ind.BrickColor = tog and BrickColor.new("Deep orange") or BrickColor.new("Pearl")
		car.DriveSeat.LI.Value = tog
		car.DriveSeat.RI.Value = tog
	end
end

function blink(typ)
	b = typ
	if blinking == true then
		blinking = false
	else
		blinking = true
		while blinking do
			Toggle(typ, true)
			script.Parent:FireClient(player, 'blink', .9, true)
			wait(1/3)
			Toggle(typ, false)
			script.Parent:FireClient(player, 'blink', 0.8, true)
			wait(1/3)
		end
		Toggle('Hazards', false)
		script.Parent:FireClient(player, 'blink', .9, false)
	end
end

script.Parent.Parent.ChildRemoved:connect(function(child)
	if child:IsA("Weld") and BlinkersEnabled then
		if blinking == true and b == 'Hazards' then
			return
		else
			blinking = false
		end
	end
end)

F.blinkers = function(dir)
	blink(dir)
end

script.Parent.OnServerEvent:connect(function(pl,Fnc,...)
	player = pl
	F[Fnc](...)
end)