Prompt: --Automatic Gauge Scaling

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

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

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

local blns = Instance.new("Frame",gauges.Boost)
blns.Name = "blns"
blns.BackgroundTransparency = 1
blns.BorderSizePixel = 0
blns.Size = UDim2.new(0,0,0,0)

for i=0,6 do
	local bln = gauges.bln:clone()
	bln.Parent = blns
	bln.Rotation = 25-50*(i/6)
	if i%2==0 then
		bln.Frame.Size = UDim2.new(0,2,0,7)
		bln.Frame.Position = UDim2.new(0,-1,0,62)
	else
		bln.Frame.Size = UDim2.new(0,3,0,5)
		bln.Frame.Position = UDim2.new(0,-1,0,62)
	end
	bln.Num:Destroy()
	bln.Visible=true
end

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

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

game["Run Service"].RenderStepped:connect(function()

	gauges.Tach.Needle.Rotation = gauges.Tach.Needle.Rotation*Smoothness + (45 + 270 * math.min(1,values.RPM.Value / (revEnd*1000)))*(1-Smoothness)
	gauges.Tach.Needle2.Rotation = gauges.Tach.Needle2.Rotation*(Smoothness+0.003) + (45 + 270 * math.min(1,values.RPM.Value / (revEnd*1000)))*(1-(Smoothness+0.003))
	gauges.Tach.Needle3.Rotation = gauges.Tach.Needle3.Rotation*(Smoothness+0.006) + (45 + 270 * math.min(1,values.RPM.Value / (revEnd*1000)))*(1-(Smoothness+0.006))
	gauges.Tach.Needle4.Rotation = gauges.Tach.Needle4.Rotation*(Smoothness+0.009) + (45 + 270 * math.min(1,values.RPM.Value / (revEnd*1000)))*(1-(Smoothness+0.009))
	gauges.Tach.Needle5.Rotation = gauges.Tach.Needle5.Rotation*(Smoothness+0.012) + (45 + 270 * math.min(1,values.RPM.Value / (revEnd*1000)))*(1-(Smoothness+0.012))
	gauges.Tach.Needle6.Rotation = gauges.Tach.Needle6.Rotation*(Smoothness+0.015) + (45 + 270 * math.min(1,values.RPM.Value / (revEnd*1000)))*(1-(Smoothness+0.015))
	gauges.Tach.Needle7.Rotation = gauges.Tach.Needle7.Rotation*(Smoothness+0.018) + (45 + 270 * math.min(1,values.RPM.Value / (revEnd*1000)))*(1-(Smoothness+0.018))
	gauges.Tach.Needle8.Rotation = gauges.Tach.Needle8.Rotation*(Smoothness+0.021) + (45 + 270 * math.min(1,values.RPM.Value / (revEnd*1000)))*(1-(Smoothness+0.021))
	gauges.Tach.Needle9.Rotation = gauges.Tach.Needle9.Rotation*(Smoothness+0.024) + (45 + 270 * math.min(1,values.RPM.Value / (revEnd*1000)))*(1-(Smoothness+0.024))
	gauges.Tach.Needle10.Rotation = gauges.Tach.Needle10.Rotation*(Smoothness+0.027) + (45 + 270 * math.min(1,values.RPM.Value / (revEnd*1000)))*(1-(Smoothness+0.027))

	--[[gauges.Tach.Needle.Rotation = gauges.Tach.Needle.Rotation*Smoothness + (45 + 270 * math.min(1,values.RPM.Value / (revEnd*1000)))*(1-Smoothness)
	gauges.Tach.Needle2.Rotation = gauges.Tach.Needle2.Rotation*Smoothness + (45 + 270 * math.min(1,values.RPM.Value / (revEnd*1000)))*(1-Smoothness)
	gauges.Tach.Needle3.Rotation = gauges.Tach.Needle3.Rotation*Smoothness + (45 + 270 * math.min(1,values.RPM.Value / (revEnd*1000)))*(1-Smoothness)
	gauges.Tach.Needle4.Rotation = gauges.Tach.Needle4.Rotation*Smoothness + (45 + 270 * math.min(1,values.RPM.Value / (revEnd*1000)))*(1-Smoothness)
	gauges.Tach.Needle5.Rotation = gauges.Tach.Needle5.Rotation*Smoothness + (45 + 270 * math.min(1,values.RPM.Value / (revEnd*1000)))*(1-Smoothness)
	gauges.Tach.Needle6.Rotation = gauges.Tach.Needle6.Rotation*Smoothness + (45 + 270 * math.min(1,values.RPM.Value / (revEnd*1000)))*(1-Smoothness)
	gauges.Tach.Needle7.Rotation = gauges.Tach.Needle7.Rotation*Smoothness + (45 + 270 * math.min(1,values.RPM.Value / (revEnd*1000)))*(1-Smoothness)
	gauges.Tach.Needle8.Rotation = gauges.Tach.Needle8.Rotation*Smoothness + (45 + 270 * math.min(1,values.RPM.Value / (revEnd*1000)))*(1-Smoothness)
	gauges.Tach.Needle9.Rotation = gauges.Tach.Needle9.Rotation*Smoothness + (45 + 270 * math.min(1,values.RPM.Value / (revEnd*1000)))*(1-Smoothness)
	gauges.Tach.Needle10.Rotation = gauges.Tach.Needle10.Rotation*Smoothness + (45 + 270 * math.min(1,values.RPM.Value / (revEnd*1000)))*(1-Smoothness)]]

	if _Tune.Aspiration then
	gauges.Boost.Needle.Rotation = gauges.Boost.Needle.Rotation*(TurboSmoothness) + (25 - 50*(values.Boost.Value/BST))*(1-(TurboSmoothness))
	gauges.Boost.Needle2.Rotation = gauges.Boost.Needle2.Rotation*(TurboSmoothness+0.005) + (25 - 50*(values.Boost.Value/BST))*(1-(TurboSmoothness+0.005))
	gauges.Boost.Needle3.Rotation = gauges.Boost.Needle3.Rotation*(TurboSmoothness+0.01) + (25 - 50*(values.Boost.Value/BST))*(1-(TurboSmoothness+0.01))
	gauges.Boost.Needle4.Rotation = gauges.Boost.Needle4.Rotation*(TurboSmoothness+0.015) + (25 - 50*(values.Boost.Value/BST))*(1-(TurboSmoothness+0.015))
	gauges.Boost.Needle5.Rotation = gauges.Boost.Needle5.Rotation*(TurboSmoothness+0.02) + (25 - 50*(values.Boost.Value/BST))*(1-(TurboSmoothness+0.02))
	gauges.Boost.Needle6.Rotation = gauges.Boost.Needle6.Rotation*(TurboSmoothness+0.025) + (25 - 50*(values.Boost.Value/BST))*(1-(TurboSmoothness+0.025))
	gauges.Boost.Needle7.Rotation = gauges.Boost.Needle7.Rotation*(TurboSmoothness+0.03) + (25 - 50*(values.Boost.Value/BST))*(1-(TurboSmoothness+0.03))
	gauges.Boost.Needle8.Rotation = gauges.Boost.Needle8.Rotation*(TurboSmoothness+0.035) + (25 - 50*(values.Boost.Value/BST))*(1-(TurboSmoothness+0.035))
	gauges.Boost.Needle9.Rotation = gauges.Boost.Needle9.Rotation*(TurboSmoothness+0.04) + (25 - 50*(values.Boost.Value/BST))*(1-(TurboSmoothness+0.04))
	gauges.Boost.Needle10.Rotation = gauges.Boost.Needle10.Rotation*(TurboSmoothness+0.045) + (25 - 50*(values.Boost.Value/BST))*(1-(TurboSmoothness+0.045))
	else
		end

end)

local _TCount = 0

if _Tune.Aspiration then
if _Tune.Aspiration ~= "Natural" then
	if _Tune.Aspiration == "Single" or _Tune.Aspiration == "Super" then
		_TCount = 1
	elseif _Tune.Aspiration == "Double" then
		_TCount = 2
	end
else
	gauges.Boost.Visible = false
	gauges.BoostImage.Visible = false
end
else
	gauges.Boost.Visible = false
	gauges.BoostImage.Visible = false
end

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

values.TCS.Changed:connect(function()
	if _Tune.TCSEnabled then
		if values.TCS.Value then
			gauges.TCS.TextColor3 = Color3.new(1,226/255,0)
			gauges.TCS.TextStrokeColor3 = Color3.new(1,226/255,0)
			if values.TCSActive.Value then
				wait()
				gauges.TCS.TextColor3 = Color3.new(1,226/255,0)
			gauges.TCS.TextStrokeColor3 = Color3.new(1,226/255,0)
			else
				wait()
				gauges.TCS.TextColor3 = Color3.new(.2,.2,.2)
			gauges.TCS.TextStrokeColor3 = Color3.new(.2,.2,.2)
			end
		else

			gauges.TCS.TextColor3 = Color3.new(.2,.2,.2)
			gauges.TCS.TextStrokeColor3 = Color3.new(.2,.2,.2)
		end
	else
		gauges.TCS.TextColor3 = Color3.new(.2,.2,.2)
			gauges.TCS.TextStrokeColor3 = Color3.new(.2,.2,.2)
	end
end)

values.TCSActive.Changed:connect(function()
	if _Tune.TCSEnabled then
		if values.TCSActive.Value and values.TCS.Value then
			wait()
			gauges.TCS.TextColor3 = Color3.new(1,226/255,0)
			gauges.TCS.TextStrokeColor3 = Color3.new(1,226/255,0)
		elseif not values.TCS.Value then
			wait()
			gauges.TCS.TextColor3 = Color3.new(1,226/255,0)
			gauges.TCS.TextStrokeColor3 = Color3.new(1,226/255,0)
		else
			wait()
			gauges.TCS.TextColor3 = Color3.new(.2,.2,.2)
			gauges.TCS.TextStrokeColor3 = Color3.new(.2,.2,.2)
		end
	else
		gauges.TCS.TextColor3 = Color3.new(.2,.2,.2)
			gauges.TCS.TextStrokeColor3 = Color3.new(.2,.2,.2)
	end
end)

gauges.TCS.Changed:connect(function()
	if _Tune.TCSEnabled then
		if values.TCSActive.Value and values.TCS.Value then
			wait()
			gauges.TCS.TextColor3 = Color3.new(1,226/255,0)
			gauges.TCS.TextStrokeColor3 = Color3.new(1,226/255,0)
		elseif not values.TCS.Value then
			wait()
			gauges.TCS.TextColor3 = Color3.new(1,226/255,0)
			gauges.TCS.TextStrokeColor3 = Color3.new(1,226/255,0)
		end
	else
		if gauges.TCS.Visible then
			gauges.TCS.TextColor3 = Color3.new(.2,.2,.2)
			gauges.TCS.TextStrokeColor3 = Color3.new(.2,.2,.2)
		end
	end
end)

values.ABS.Changed:connect(function()
	if _Tune.ABSEnabled then
		if values.ABS.Value then
			gauges.ABS.TextColor3 = Color3.new(1,226/255,0)
			gauges.ABS.TextStrokeColor3 = Color3.new(1,226/255,0)
			if values.ABSActive.Value then
				wait()
				gauges.ABS.TextColor3 = Color3.new(1,226/255,0)
			gauges.ABS.TextStrokeColor3 = Color3.new(1,226/255,0)
			else
				wait()
				gauges.ABS.TextColor3 = Color3.new(.2,.2,.2)
			gauges.ABS.TextStrokeColor3 = Color3.new(.2,.2,.2)
			end
		else
			gauges.ABS.Visible = true
			gauges.ABS.TextColor3 = Color3.new(.2,.2,.2)
			gauges.ABS.TextStrokeColor3 = Color3.new(.2,.2,.2)
		end
	else
		gauges.ABS.TextColor3 = Color3.new(.2,.2,.2)
			gauges.ABS.TextStrokeColor3 = Color3.new(.2,.2,.2)
	end
end)

values.ABSActive.Changed:connect(function()
	if _Tune.ABSEnabled then
		if values.ABSActive.Value and values.ABS.Value then
			wait()
			gauges.ABS.TextColor3 = Color3.new(1,226/255,0)
			gauges.ABS.TextStrokeColor3 = Color3.new(1,226/255,0)
		elseif not values.ABS.Value then
			wait()
			gauges.ABS.TextColor3 = Color3.new(1,226/255,0)
			gauges.ABS.TextStrokeColor3 = Color3.new(1,226/255,0)
		else
			wait()
			gauges.ABS.TextColor3 = Color3.new(.2,.2,.2)
			gauges.ABS.TextStrokeColor3 = Color3.new(.2,.2,.2)
		end
	else
		gauges.ABS.TextColor3 = Color3.new(.2,.2,.2)
			gauges.ABS.TextStrokeColor3 = Color3.new(.2,.2,.2)
	end
end)

gauges.ABS.Changed:connect(function()
	if _Tune.ABSEnabled then
		if values.ABSActive.Value and values.ABS.Value then
			wait()
			gauges.ABS.TextColor3 = Color3.new(1,226/255,0)
			gauges.ABS.TextStrokeColor3 = Color3.new(1,226/255,0)
		elseif not values.ABS.Value then
			wait()
			gauges.ABS.TextColor3 = Color3.new(1,226/255,0)
			gauges.ABS.TextStrokeColor3 = Color3.new(1,226/255,0)
		end
	else
		if gauges.ABS.Visible then
			gauges.ABS.TextColor3 = Color3.new(.2,.2,.2)
			gauges.ABS.TextStrokeColor3 = Color3.new(.2,.2,.2)
		end
	end
end)

function Speed()
	gauges.SpeedThing.Text = SpeedType
	local SpeedVal = values.Velocity.Value.Magnitude
	local MPHScale = (10/12) * (60/88)
	local KPHScale = (10/12) * 1.09728
	if SpeedType == "MPH" then
		if SpeedVal*MPHScale < 100 then
			if SpeedVal*MPHScale < 10 then
			gauges.Speed.Text = "00"..math.floor(SpeedVal*MPHScale)
				else
			gauges.Speed.Text = "0"..math.floor(SpeedVal*MPHScale)
			end
		else
		gauges.Speed.Text = math.floor(SpeedVal*MPHScale)
		end
	end
	if SpeedType == "KPH" then
		if SpeedVal*KPHScale < 100 then
			if SpeedVal*KPHScale < 10 then
			gauges.Speed.Text = "00"..math.floor(SpeedVal*KPHScale)
				else
			gauges.Speed.Text = "0"..math.floor(SpeedVal*KPHScale)
			end
		else
		gauges.Speed.Text = math.floor(SpeedVal*KPHScale)
		end
	end
end

values.Velocity.Changed:connect(function()
	Speed()
end)

wait(.1)
Speed()


Prompt: -- Initialize decorate tool

Response:
local DecorateTool = require(CoreTools.DecorateTool)
Core.AssignHotkey('P', Core.Support.Call(Core.EquipTool, DecorateTool));
Core.Dock.AddToolButton(Core.Assets.DecorateIcon, 'P', DecorateTool, 'DecorateInfo');


Prompt:
-- << DEFINE MAIN AND SERVICES >>
-- To index a service, do main.serviceName (e.g. main.players, main.teleportService, main.tweenService, etc)

Response:
local main = setmetatable({}, {
    __index = function(self, name)
        local pass, service = pcall(game.GetService, game, name:sub(1, 1):upper()..name:sub(2))
        if pass then
            self[name] = service
            return service
        end
    end
})

function main:Initialize(location, loader)

	-- << SHORTHAND SERVICES >>
	main.rs = game:GetService("ReplicatedStorage")
	main.ss = game:GetService("ServerStorage")
	main.sss = game:GetService("ServerScriptService")

	-- << SETUP >>
	local function ConvertToCamelCase(pascalCase)
		local camelCase = string.lower(string.sub(pascalCase,1,1))..string.sub(pascalCase,2)
		return camelCase
	end

	if location == "Server" then
		-- Define storage folders
		main.mainModule = script:FindFirstAncestor("MainModule")
		main.server = main.mainModule.Server
		main.client = main.mainModule.Client

		main.workspaceFolder = Instance.new("Folder")
		main.workspaceFolder.Name = "HDAdminWorkspaceFolder"
		main.workspaceFolder.Parent = workspace

		-- Retrieve default settings
		local settingsModuleCopy = main.server.Assets:FindFirstChild("SettingsCopy")
		if settingsModuleCopy then
			main.settings = require(settingsModuleCopy)
		end

		-- Update settings
		local settingsModule = require(loader:FindFirstChild("Settings", true))
		if settingsModule then
			for settingName, value in pairs(settingsModule) do
				main.settings[settingName] = value
			end
		end

		-- Merge CustomFeatures into MainModule
		local customFeatures = loader:FindFirstChild("CustomFeatures", true)
		local function UpdateStorageWithContents(folder, coreFolderName)
			local newCoreFolderName = string.lower((coreFolderName == "Client" and coreFolderName) or "Server")
			local storageName = folder.Name
			local storage = main[newCoreFolderName]:FindFirstChild(storageName)
			if storage and storageName ~= "client" and storageName ~= "server" then
				for _, newItem in pairs(folder:GetChildren()) do
					local existingItem = storage:FindFirstChild(newItem.Name)
					if existingItem and not existingItem:IsA("ModuleScript") then
						existingItem:Destroy()
					end
					newItem.Parent = storage
				end
			end
		end
		if customFeatures then
			for a,b in pairs(customFeatures:GetChildren()) do
				UpdateStorageWithContents(b)
				local coreFolderName = b.Name
				for c,d in pairs(b:GetChildren()) do
					UpdateStorageWithContents(d, coreFolderName)
				end
			end
		end

		-- Place items into correct locations
		local itemsToMove = {
			["Client"] = main.rs;
			["Server"] = main.ss;
			}
		local itemsToCloneAndMove = {
			["HDAdminLocalFirst"] = main.replicatedFirst;
			["HDAdminStarterCharacter"] = main.starterPlayer.StarterCharacterScripts;
			["HDAdminStarterPlayer"] = main.starterPlayer.StarterPlayerScripts;
			["HDAdminGUIs"] = main.starterGui;
			["Preload"] = main.replicatedFirst;
			}
		local function CheckToMove(item)
			local itemName = item.Name
			local itemLocation = (itemsToMove[itemName] or itemsToCloneAndMove[itemName])
			if itemLocation and not itemLocation:FindFirstChild(itemName) then
				if itemsToMove[itemName] then
					item.Name = "HDAdmin"..itemName
					item.Parent = itemLocation
				elseif itemsToCloneAndMove[itemName] then
					local itemClone = item:Clone()
					itemClone.Parent = itemLocation
					if itemClone:IsA("LocalScript") then
						itemClone.Disabled = false
					end
				end
			end
		end
		for a,b in pairs(main.mainModule:GetChildren()) do
			CheckToMove(b)
			for c,d in pairs(b:GetChildren()) do
				CheckToMove(d)
				for e,f in pairs(d:GetChildren()) do
					CheckToMove(f)
				end
			end
		end

		-- Manually add items for players who joined early
		local setupQuickJoiners = main.server.Assets.SetupQuickJoiners
		for i, player in pairs(main.players:GetChildren()) do
			setupQuickJoiners:Clone().Parent = player.PlayerGui
		end

		--Setup SaveMap Default
		coroutine.wrap(function()
			local mapBackup = Instance.new("Folder")
			mapBackup.Name = "HDAdminMapBackup"
			mapBackup.Parent = main.ss
			main.client.Signals.Initialized.Event:Wait()
			main:GetModule("cf"):SaveMap()
		end)()

	elseif location == "Client" then

		-- Define storage folders
		main.client = main.rs:WaitForChild("HDAdminClient")
		for a,b in pairs(main.client:GetChildren()) do
			--main[ConvertToCamelCase(b.Name)] = b
		end
		main.workspaceFolder = workspace:WaitForChild("HDAdminWorkspaceFolder")

		-- Core client variables
		main.player = game.Players.LocalPlayer
		main.playerGui = main.player:WaitForChild("PlayerGui")
		main.gui = main.playerGui:WaitForChild("HDAdminGUIs")
		main.templates = main.gui.Templates
		main.warnings = main.gui.MainFrame:WaitForChild("Warnings")
		main.camera = workspace.CurrentCamera

		-- Get device type
		main.tablet = false
		if main.guiService:IsTenFootInterface() then
			main.device = "Console"
		elseif (main.userInputService.TouchEnabled and not main.userInputService.MouseEnabled) then
			main.device = "Mobile"
		else
			main.device = "Computer"
		end
		if main.gui.AbsoluteSize.Y < 1 then repeat wait() until main.gui.AbsoluteSize.Y > 0 end
		if main.device == "Mobile" then
			if main.gui.AbsoluteSize.Y >= 650 then
				main.tablet = true
			end
		end

		-- Retrieve PlayerData
		local success, dataToRetrieve
		for i = 1, 50 do
			success, dataToRetrieve = pcall(function() return main.client.Signals.RetrieveData:InvokeServer() end)
			--print("HD Admin DataToRetrieveType = ",type(dataToRetrieve),dataToRetrieve)
			if success and dataToRetrieve then
				break
			else
				wait(1)
			end
		end
		for statName, statData in pairs(dataToRetrieve) do
			main[statName] = statData
		end

	end

	-- << SHARED CORE VARIABLES >>
	local dateDetails = os.date("*t", os.time())
	main.hdAdminCoreName = (dateDetails.day == 1 and dateDetails.month == 4 and "144p Admin") or "HD Admin"
	main.modules = {}
	main.coreFolder = main[string.lower(location)]
	main.moduleGroup = main.coreFolder.Modules
	main.sharedModules =  main.client.SharedModules
	main.signals = main.client.Signals
	main.audio = main.client.Audio

	local waitingForModule = {}
	function main:GetModule(name)
		if not main.modules[name] then
			local request = {name = name, addedSignal = Instance.new("BindableEvent")}
			waitingForModule[#waitingForModule+1] = request
			request.addedSignal.Event:Wait()
		end
		return main.modules[name]
	end
	function main.loadModule(name)
		if not main.modules[name] then
			local request = {name = name, addedSignal = Instance.new("BindableEvent")}
			waitingForModule[#waitingForModule+1] = request
			request.addedSignal.Event:Wait()
		end
		return main.modules[name]
	end

	-- << SETUP MODULES >>
	local moduleNamesToAdapt = {
		["cf"] = {"ClientCoreFunctions", "SharedCoreFunctions", "ServerCoreFunctions"};
		["API"] = {"ClientAPI", "ServerAPI", "SharedAPI"};
	}
	local moduleNamesToAdaptDictionary = {}
	for newName, originalNames in pairs(moduleNamesToAdapt) do
		for _, originalName in pairs(originalNames) do
			moduleNamesToAdaptDictionary[originalName] = newName
		end
	end
	local function SetupModules(folder, moduleStorage)
		for a,b in pairs(folder:GetDescendants()) do
			if b:IsA("ModuleScript") and b.Name ~= script.Name then
				coroutine.wrap(function()
					--Adapt module name if specified
					local moduleName = b.Name
					local newModuleName = moduleNamesToAdaptDictionary[moduleName]
					if newModuleName then
						moduleName = newModuleName
					end

					--Retrieve module data
					local success, data = pcall(function() return require(b) end)

					--Warn of module error
					if not success then
						warn("HD Admin Module Error | "..b.Name.." | ".. tostring(data))

					--If module already exists, merge conetents
					elseif moduleStorage[moduleName] then
						for funcName, func in pairs(data) do
							if tonumber(funcName) then
								table.insert(moduleStorage[moduleName], func)
							else
								moduleStorage[moduleName][funcName] = func
							end
						end

					--Else setup new module
					else
						moduleStorage[moduleName] = data
						for i = #waitingForModule, 1, -1 do
							local request = waitingForModule[i]
							if request.name == moduleName then
								table.remove(waitingForModule, i)
								request.addedSignal:Fire()
							end
						end
					end

					--Hide module on client
					if location == "Client" and b.Name ~= script.Name then
						b:Destroy()
					end
				end)()
			end
		end
	end
	require(script.MainVariables):SetupMainVariables(location)
	SetupModules(main.moduleGroup, main.modules)
	SetupModules(main.sharedModules, main.modules)

	-- << STARTER FUNCTIONS >>
	if location == "Server" then
		main.server.Assets:WaitForChild("HDAdminSetup").Parent = main.rs
		if not main.ownerName then
			main.ownerName = main:GetModule("cf"):GetName(main.ownerId)
		end
		main:GetModule("CommandHandler"):Setup()
		main:GetModule("LoaderHandler"):Setup()
		main.chatService = require(main.sss:WaitForChild("ChatServiceRunner", 1):WaitForChild("ChatService", 1))
	end

	-- << END >>
	main.initialized = true
	main.client.Signals.Initialized:Fire()
end


Prompt: -- create arrow

Response:
local p = Instance.new("Part")
p.formFactor = 2
p.Size = Vector3.new(1,.4,1)
p.Transparency = .5
p.BrickColor = BrickColor.new(21)
p.CanCollide = false
p.Locked = true
p.RotVelocity = Vector3.new(math.random(), math.random(), math.random()) * 10
local v = Vector3.new(script.Parent.Torso.CFrame.lookVector.x, 0, script.Parent.Torso.CFrame.lookVector.z)

p.CFrame = CFrame.new(script.Parent.Torso.CFrame.p + v * 8, v.unit)

local m = script.ArrowMesh:Clone() -- NASTY
m.Parent = p

local b = Instance.new("BodyPosition")
b.position = p.Position
b.Parent = p

local g = Instance.new("BodyGyro")
g.cframe = CFrame.new(Vector3.new(0,0,0), Vector3.new(0,0,1)) -- point North
g.maxTorque = Vector3.new(7e7, 7e7, 7e7)
g.Parent = p

p.Parent = game.Workspace

debris:AddItem(p, 10)

wait(5)

script.Parent = nil


Prompt: --[[Steering]]

Response:
	Tune.SteerInner		= 65		-- Inner wheel steering angle (in degrees)
	Tune.SteerOuter		= 65		-- Outer wheel steering angle (in degrees)
	Tune.SteerSpeed		= .45		-- Steering increment per tick (in degrees)
	Tune.ReturnSpeed	= .4		-- Steering increment per tick (in degrees)
	Tune.SteerDecay		= 320		-- Speed of gradient cutoff (in SPS)
	Tune.MinSteer		= 10		-- Minimum steering at max steer decay (in percent)
	Tune.MSteerExp		= 1			-- Mouse steering exponential degree

	--Steer Gyro Tuning
	Tune.SteerD			= 1000		-- Steering Dampening
	Tune.SteerMaxTorque	= 50000		-- Steering Force
	Tune.SteerP			= 6000		-- Steering Aggressiveness


Prompt: -- Helper functions

Response:
local function loadAnimation(controller, animationId)
	animation.AnimationId = "rbxassetid://" .. animationId
	return controller:LoadAnimation(animation)
end

local function isolateAndDampenYAngle(targetCFrame, proportionMultiplier)
	proportionMultiplier = proportionMultiplier or 1
	local _, y = targetCFrame:ToEulerAnglesXYZ()

	return CFrame.new(targetCFrame.Position) * CFrame.Angles(
		0,
		y * proportionMultiplier,
		0
	)
end

local function makeNPCLookAt(lookAtPosition)
	if not lookAtPosition then
		return
	end

	local differenceVector = lookAtPosition - npcModel.PrimaryPart.Position
	local targetCFrame = rotationOffset * CFrame.new(Vector3.new(), differenceVector.Unit) or rotationOffset

	-- Let the waving animation move the body
	if not waveAnimationTrack.IsPlaying then
		NPC.Root.Transform = isolateAndDampenYAngle(targetCFrame, TwistProportions.Root)
		NPC.Waist.Transform = isolateAndDampenYAngle(targetCFrame, TwistProportions.Waist)
	end
	NPC.Neck.Transform = isolateAndDampenYAngle(targetCFrame, waveAnimationTrack.IsPlaying and TwistProportions.Full or TwistProportions.Neck)

	return differenceVector.Magnitude
end


Prompt: --// Ported from Kronos

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

	local gTable

	local window = client.UI.Make("Window",{
		Name  = "Aliases";
		Title = "Alias Editor";
		Size  = {420, 240};
		AllowMultiple = false;
	})

	local template =  {
		Alias = "",
		Args = {Names = {}, Defaults = {}},
		Command = "",
		Description = ""
	}
	for i,v in template do
		if not data[i] then
			data[i] = v
		end
	end

	if window then
		local bg = window:Add("ScrollingFrame", {
			BackgroundColor3 = Color3.fromRGB(31, 31, 31):lerp(Color3.new(1,1,1), 0.2);
			Size = UDim2.new(1, -10, 1, -10);
			Position = UDim2.new(0, 5, 0, 5)
		})

		local content = bg:Add("ScrollingFrame", {
			Size = UDim2.new(1, -10, 1, -35);
			Position = UDim2.new(0, 5, 0, 5);
			BackgroundTransparency = 0.5;
		})

		local draw;
		local curArgName, curArgDefault, argIndex;
		local argBox; argBox = window:Add("Frame", {
			Visible = false;
			Size = UDim2.new(0, 200, 0, 150);
			Position = UDim2.new(0.5, -100, 0.5, -75);
			Children = {
				{
					Class = "TextLabel";
					Text = "Argument Name:";
					Position = UDim2.new(0, 0, 0, 10);
					Size = UDim2.new(1, 0, 0, 20);
					BackgroundTransparency = 1;
				};
				{
					Class = "TextLabel";
					Text = "Default:";
					Position = UDim2.new(0, 0, 0, 65);
					Size = UDim2.new(1, 0, 0, 20);
					BackgroundTransparency = 1;
				};
				{
					Class = "TextButton";
					Text = "Save";
					Position = UDim2.new(0.5, 0, 1, -30);
					Size = UDim2.new(0.5, -20, 0, 20);
					BackgroundTransparency = 1;
					OnClicked = function()
						if argIndex == 0 then
							table.insert(data.Args.Names, curArgName)
							table.insert(data.Args.Defaults, curArgDefault or "")
						else
							data.Args.Names[argIndex] = curArgName
							data.Args.Defaults[argIndex] = curArgDefault or ""
						end
						draw()
						curArgName = nil
						curArgDefault = nil
						argBox.Visible = false
					end
				};
			}
		})

		local endBtn = argBox:Add({
			Class = "TextButton";
			Text = "Remove";
			Position = UDim2.new(0, 10, 1, -30);
			Size = UDim2.new(0.5, -20, 0, 20);
			BackgroundTransparency = 1;
			OnClicked = function()
				if argIndex ~= 0 then
					table.remove(data.Args.Names, argIndex)
					table.remove(data.Args.Defaults, argIndex)
				end
				draw()
				curArgName = nil
				curArgDefault = nil
				argBox.Visible = false
			end
		})

		local argNameBox = argBox:Add("TextBox", {
			Text = curArgName or "name";
			Position = UDim2.new(0, 10, 0, 35);
			Size = UDim2.new(1, -20, 0, 20);
			TextChanged = function(newText, enter, box)
				curArgName = newText
			end
		});

		local argDefaultBox = argBox:Add("TextBox", {
			Text = curArgDefault or "";
			Position = UDim2.new(0, 10, 0, 90);
			Size = UDim2.new(1, -20, 0, 20);
			TextChanged = function(newText, enter, box)
				curArgDefault = newText
			end
		});

		argBox.BackgroundColor3 = argBox.BackgroundColor3:lerp(Color3.new(1, 1, 1), 0.05)
		argNameBox.BackgroundColor3 = argNameBox.BackgroundColor3:lerp(Color3.new(1, 1, 1), 0.1)
		argDefaultBox.BackgroundColor3 = argNameBox.BackgroundColor3

		local function showArgBox(argData)
			if not argBox.Visible then
				if argData then
					curArgName = argData.Name
					curArgDefault = argData.Default
				end
				if argIndex == 0 then
					endBtn.Text = "Cancel"
				else
					endBtn.Text = "Remove"
				end
				argNameBox.Text = curArgName or "name"
				argDefaultBox.Text = curArgDefault or ""
				argBox.Visible = true
			end
		end

		function draw()
			content:ClearAllChildren();

			local i = 1
			content:Add("TextLabel", {
				Text = "  Alias: ";
				ToolTip = "Set the alias Adonis should check for in chat";
				BackgroundTransparency = (i%2 == 0 and 0) or 0.2;
				Size = UDim2.new(1, -10, 0, 30);
				Position = UDim2.new(0, 5, 0, (30*(i-1))+5);
				TextXAlignment = "Left";
				Children = {
					[data.ExistingAlias and "TextLabel" or "TextBox"] = {
						Text = data.Alias or "";
						Size = UDim2.new(0, 200, 1, 0);
						Position = UDim2.new(1, -200, 0, 0);
						BackgroundTransparency = 1;
						TextChanged = not data.ExistingAlias and function(text, enter, new)
							data.Alias = text
						end or nil
					}
				}
			})
			i = i + 1
			content:Add("TextLabel", {
				Text = "  Command: ";
				ToolTip = "Set the command(s) Adonis should execute when finding the alias";
				BackgroundTransparency = (i%2 == 0 and 0) or 0.2;
				Size = UDim2.new(1, -10, 0, 30);
				Position = UDim2.new(0, 5, 0, (30*(i-1))+5);
				TextXAlignment = "Left";
				Children = {
					TextBox = {
						Text = data.Command or "";
						Size = UDim2.new(0, 200, 1, 0);
						Position = UDim2.new(1, -200, 0, 0);
						BackgroundTransparency = 1;
						TextChanged = function(text, enter, new)
							data.Command = text
						end
					}
				}
			})
			i = i + 1
			content:Add("TextLabel", {
				Text = "  Description: ";
				ToolTip = "What does the alias do?";
				BackgroundTransparency = (i%2 == 0 and 0) or 0.2;
				Size = UDim2.new(1, -10, 0, 30);
				Position = UDim2.new(0, 5, 0, (30*(i-1))+5);
				TextXAlignment = "Left";
				Children = {
					TextBox = {
						Text = data.Description or "";
						Size = UDim2.new(0, 200, 1, 0);
						Position = UDim2.new(1, -200, 0, 0);
						BackgroundTransparency = 1;
						TextChanged = function(text, enter, new)
							data.Description = text
						end
					}
				}
			})
			i = i + 2
			content:Add("TextButton", {
				Text = "Add Argument",
				BackgroundTransparency = (i%2 == 0 and 0) or 0.2;
				Size = UDim2.new(1, -10, 0, 30);
				Position = UDim2.new(0, 5, 0, (30*(i-1))+5);
				OnClicked = function(button)
					argIndex = 0
					showArgBox()
				end
			})
			for index,arg in ipairs(data.Args.Names) do
				i = i + 1
				content:Add("TextButton", {
					Text = `Argument: {arg} | Default: {data.Args.Defaults[index]}`;
					BackgroundTransparency = (i%2 == 0 and 0) or 0.2;
					Size = UDim2.new(1, -10, 0, 30);
					Position = UDim2.new(0, 5, 0, (30*(i-1))+5);
					OnClicked = function(button)
						argIndex = index
						showArgBox({Name = arg, Default = data.Args.Defaults[index]})
					end
				})
			end

			content:ResizeCanvas(false, true, false, false, 5, 5)

			bg:Add("TextButton", {
				Text = "Cancel";
				Position = UDim2.new(0, 5, 1, -25);
				Size = UDim2.new(1/3, -8, 0, 20);
				OnClicked = function(button)
					window:Close()
				end
			})

			bg:Add("TextButton", {
				Text = "Remove";
				Position = UDim2.new(1/3, 3, 1, -25);
				Size = UDim2.new(1/3, -7, 0, 20);
				OnClicked = function(button)
					if data.ExistingAlias then
						client.Functions.RemoveAlias(data.Alias)
						client.UI.Remove("UserPanel")
						client.UI.Make("UserPanel", {Tab = "Aliases"})
					end
					window:Close()
				end
			})

			bg:Add("TextButton", {
				Text = "Save";
				Position = UDim2.new(2/3, 3, 1, -25);
				Size = UDim2.new(1/3, -8, 0, 20);
				OnClicked = function(button)
					if data.Alias == "" or data.Command == "" then
						client.UI.Make("Output", {Message = "A required field is missing!"})
					else
						client.Functions.SetAlias(data.Alias, data)
						client.UI.Remove("UserPanel")
						client.UI.Make("UserPanel", {Tab = "Aliases"})
						window:Close()
					end
				end
			})
		end

		draw()
		gTable = window.gTable
		window:Ready()
	end
end


Prompt: -- variables

Response: local defaultTweenInfo = TweenInfo.new(0)


Response:
while true do
guia.BodyVelocity.velocity = Vector3.new(0, -1, 0)
wait(9.5)
guia.BodyVelocity.velocity = Vector3.new(0, 0, 0)
break
end


Prompt:
--[[**
		Alias for t.union
	**--]]

Response: t.some = t.union


Prompt: --Rescripted by Luckymaxer

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

Players = game:GetService("Players")

ServerControl = Tool:WaitForChild("ServerControl")
ClientControl = Tool:WaitForChild("ClientControl")

ClientControl.OnClientInvoke = (function(Mode, Value)
	if Mode == "PlaySound" and Value then
		Value:Play()
	end
end)

function InvokeServer(Mode, Value, arg)
	pcall(function()
		ServerControl:InvokeServer(Mode, Value, arg)
	end)
end

function Equipped(Mouse)
	Character = Tool.Parent
	Player = Players:GetPlayerFromCharacter(Character)
	Humanoid = Character:FindFirstChild("Humanoid")
	if not Player or not Humanoid or Humanoid.Health == 0 then
		return
	end
	an = Character.Humanoid:LoadAnimation(script.Parent.Hold)
	an:Play()
	Mouse.Button1Down:connect(function()
		InvokeServer("Click", true, Mouse.Hit.p)
	end)
end

local function Unequipped()
	an:Stop()
end

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


Prompt: -- Image label default properties

Response:
defaults.ImageColor3 = "White"
defaults.ImageTransparency = 0
defaults.ImageRectOffset = "0,0"
defaults.ImageRectSize = "0,0"


Prompt: --// bolekinds

Response:
script.Parent.MouseButton1Click:Connect(function()
	if game.Players.LocalPlayer.YouCash.Value >= 0 and workspace:FindFirstChild("Roommate").Head.Dialog.InUse == true then
		script.Parent.Parent.Parent.Ching:Play()
	else
		script.Parent.Parent.Parent.Thud:Play()
	end
end)


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

*I assume you know what you're doing if you're gonna change something here.* ]]

Response:
--

script.Parent:WaitForChild("Car")
script.Parent:WaitForChild("IsOn")
script.Parent:WaitForChild("ControlsOpen")
script.Parent:WaitForChild("Values")


Prompt:
--[[
	Constructs and returns objects which can be used to model independent
	reactive state.
]]

Response:
local Package = script.Parent.Parent
local useDependency = require(Package.Dependencies.useDependency)
local initDependency = require(Package.Dependencies.initDependency)
local updateAll = require(Package.Dependencies.updateAll)

local class = {}

local CLASS_METATABLE = {__index = class}
local WEAK_KEYS_METATABLE = {__mode = "k"}


Response:
while true do
guia.BodyVelocity.velocity = Vector3.new(0, 0.5, 0)
wait(21)
guia.BodyVelocity.velocity = Vector3.new(0, 0, 0)
break
end


Response:
tool.Equipped:connect(function()
	equipped = true
	trail.Enabled = false
	cananimate = true
	canattack = false
	handle.Transparency = 1
	owner = game:GetService("Players"):GetPlayerFromCharacter(tool.Parent)
	character = owner.Character
	local rightarm = Instance.new("Weld", character.Torso)
	rightarm.Part0 = character.Torso
	rightarm.Part1 = character["Right Arm"]
	rightarm.C0 = CFrame.new(1.5,0,0)
	rightarm.Name = "RightArmWeldbat"
	local leftarm = Instance.new("Weld", character.Torso)
	leftarm.Part0 = character.Torso
	leftarm.Part1 = character["Left Arm"]
	leftarm.C0 = CFrame.new(-1.5,0,0)
	leftarm.Name = "LeftArmWeldbat"
	local head = Instance.new("Weld", character.Torso)
	head.Part0 = character.Torso
	head.Part1 = character.Head
	head.C0 = CFrame.new(0,1.5,0)
	head.Name = "HeadWeldbat"
	local humanoidrootpart = Instance.new("Weld", character.HumanoidRootPart)
	humanoidrootpart.Part0 = character.HumanoidRootPart
	humanoidrootpart.Part1 = character.Torso
	humanoidrootpart.Name = "HumanoidRootPartWeldbat"
	for i = 0,1 , 0.05 do
		humanoidrootpart.C0 = humanoidrootpart.C0:lerp(CFrame.fromEulerAnglesXYZ(0,math.rad(25),0),i)
		leftarm.C0 = leftarm.C0:lerp(CFrame.new(-1.5,0.5,0) * CFrame.fromEulerAnglesXYZ(math.pi+math.rad(10),math.rad(75),math.rad(-10)) * CFrame.new(0,-0.5,0),i)
		rightarm.C0 = rightarm.C0:lerp(CFrame.new(1.5,0.5,0) * CFrame.fromEulerAnglesXYZ(0,0,math.rad(10)) * CFrame.new(0,-0.5,0),i)
		runservice.Stepped:wait()
	end
	local grip = character["Right Arm"]:WaitForChild("RightGrip")
	grip.Part1 = nil
	local weldd = Instance.new("Weld", handle)
	weldd.Part0 = character["Left Arm"]
	weldd.Part1 = handle
	weldd.Name = "AIDS"
	weldd.C0 = CFrame.new(0, 0, -1.70000005, 0, 0, 1, 1, 0, 0, 0, 1, 0) * CFrame.fromEulerAnglesXYZ((math.pi/2),math.rad(15),0) * CFrame.new(-0.7,0,-0.1)
	cananimate = true
	if character:findFirstChild("BatBack") then
		character:findFirstChild("BatBack").Transparency = 1
	end
	handle.Transparency = 0
	equipsound:Play()
	local WHEN = 0
	coroutine.wrap(function()
		while runservice.Stepped:wait() and equipped do
			if cananimate then
				if WHEN < 40 then
					WHEN = WHEN + 1
				elseif WHEN == 40 then
					WHEN = 41
					grip.Part1 = handle
					canattack = true
					weldd:destroy()
				end
				tool.Grip = tool.Grip:lerp(CFrame.new(0, 0, -1.70000005, 0, 0, 1, 1, 0, 0, 0, 1, 0),0.1)
				head.C0 = head.C0:lerp(CFrame.new(0,1.5,0),0.1)
				humanoidrootpart.C0 = humanoidrootpart.C0:lerp(CFrame.new(),0.1)
				leftarm.C0 = leftarm.C0:lerp(CFrame.new(-1.4,0.5,0) * CFrame.fromEulerAnglesXYZ((math.pi/2)-math.rad(50)+math.sin(tick())/15,0,math.rad(50)) * CFrame.new(0,-0.8,0),0.1)
				rightarm.C0 = rightarm.C0:lerp(CFrame.new(1.5,0.5,0) * CFrame.fromEulerAnglesXYZ((math.pi/2)-math.rad(35)+math.sin(tick())/15,math.rad(20),math.rad(-40)) * CFrame.new(0,-0.8,0),0.1)
			end
		end
	end)()
end)
tool.Unequipped:connect(function()
	equipped = false
	mouseclick = false
	cananimate = false
	if character.Torso:findFirstChild("LeftArmWeldbat") then
		character.Torso:findFirstChild("LeftArmWeldbat"):destroy()
	end
	if character.Torso:findFirstChild("RightArmWeldbat") then
		character.Torso:findFirstChild("RightArmWeldbat"):destroy()
	end
	if character.Torso:findFirstChild("HeadWeldbat") then
		character.Torso:findFirstChild("HeadWeldbat"):destroy()
	end
	if character:findFirstChild("HumanoidRootPart") then
		if character.HumanoidRootPart:findFirstChild("HumanoidRootPartWeldbat") then
			character.HumanoidRootPart:findFirstChild("HumanoidRootPartWeldbat"):destroy()
		end
	end
	if not character:findFirstChild("BatBack") then
		local clone = handle:Clone()
		clone:BreakJoints()
		for i,v in pairs(clone:GetDescendants()) do
			if v.ClassName ~= "SpecialMesh" and v.ClassName ~= "TouchTransmitter" then
				v:destroy()
			end
		end
		local weld = Instance.new("Weld", clone)
		weld.Part0 = character.Torso
		weld.Part1 = clone
		weld.C0 = CFrame.new(0,0,0.55)
		weld.C0 = weld.C0 * CFrame.fromEulerAnglesXYZ(0,math.pi/2,math.pi/2)
		weld.C0 = weld.C0 * CFrame.fromEulerAnglesXYZ(math.pi,math.rad(60)+math.pi,0)
		clone.Parent = character
		clone.Name = "BatBack"
	else
		character:findFirstChild("BatBack").Transparency = 0
	end
	handle.Transparency = 1
	character.BatBack:findFirstChildOfClass("SpecialMesh").TextureId = handle:findFirstChildOfClass("SpecialMesh").TextureId
end)


Prompt: -- Services

Response:
local ContextActionService = game:GetService 'ContextActionService'
local Workspace = game:GetService 'Workspace'
local UserInputService = game:GetService('UserInputService')


Prompt: -- load it to the humanoid; get AnimationTrack

Response: toolAnimTrack = humanoid:LoadAnimation(anim)


Prompt:
--[[
	wpcallPacked is a version of xpcall that:
	* Returns the length of the result first
	* Returns the result packed into a table
	* Passes extra arguments through to the passed function; xpcall doesn't
	* Issues a warning if PROMISE_DEBUG is enabled
]]

Response:
local function wpcallPacked(f, ...)
	local argsLength, args = pack(...)

	local body = function()
		return f(unpack(args, 1, argsLength))
	end

	local resultLength, result = pack(xpcall(body, debug.traceback))

	-- If promise debugging is on, warn whenever a pcall fails.
	-- This is useful for debugging issues within the Promise implementation
	-- itself.
	if PROMISE_DEBUG and not result[1] then
		warn(result[2])
	end

	return resultLength, result
end


Prompt: -- === SOURCE ===

Response:
local Players = game:GetService("Players")
local DataStoreService = game:GetService("DataStoreService")

local dsPlayerBans = DataStoreService:GetDataStore("Bans")


Prompt: -- Check the module script for more functions and then do like this "Demo:FunctionName()" like the above example of duration


Prompt:
--[[**
	ensures value is a table and all keys pass keyCheck and all values pass valueCheck

	@param keyCheck The function to use to check the keys
	@param valueCheck The function to use to check the values

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

Response:
function t.map(keyCheck, valueCheck)
	assert(t.callback(keyCheck))
	assert(t.callback(valueCheck))
	local keyChecker = t.keys(keyCheck)
	local valueChecker = t.values(valueCheck)

	return function(value)
		local keySuccess, keyErr = keyChecker(value)
		if not keySuccess then
			return false, keyErr or ""
		end

		local valueSuccess, valueErr = valueChecker(value)
		if not valueSuccess then
			return false, valueErr or ""
		end

		return true
	end
end


Prompt: -- Public Functions

Response:
function WaypointPath:MoveTo()
	if self.currentIndex <= #self.waypoints then
		moveToAndWait(self.humanoid, self.waypoints[self.currentIndex].Position)
	else
		self._WaypointReachedEvent:Fire()
		return
	end

	-- Next point
	self.currentIndex = self.currentIndex + 1

	-- Fire to listeners
	self._NodeReachedEvent:Fire()

	if self.count < 2 then
		-- Keep moving
		self.count = self.count + 1
		self:MoveTo()
	else
		self.count = 1
		self._FinishedMovingEvent:Fire()
	end
end

function WaypointPath:Stop()
	self.humanoid:MoveTo(self.humanoidRoot.Position)
end

return WaypointPath


Prompt: --Returns if a controller is connected.

Response:
local function ControllerConnected()
	return UserInputService:GetGamepadConnected(Enum.UserInputType.Gamepad1)
end


Prompt:
--- A helper that evaluates and runs the command in one go.
-- Either returns any validation errors as a string, or the output of the command as a string. Definitely a string, though.

Response:
function Dispatcher:EvaluateAndRun (text, executor, options)
	executor = executor or Players.LocalPlayer
	options = options or {}

	if RunService:IsClient() and options.IsHuman then
		self:PushHistory(text)
	end

	local command, errorText = self:Evaluate(text, executor, nil, options.Data)

	if not command then
		return errorText
	end

	local ok, out = pcall(function()
		local valid, errorText = command:Validate(true) -- luacheck: ignore

		if not valid then
			return errorText
		end

		return command:Run() or "Command executed."
	end)

	if not ok then
		warn(("Error occurred while evaluating command string %q\n%s"):format(text, out))
	end

	return ok and out or "An error occurred while running this command."
end


Prompt:
--////////////////////////////// Methods
--//////////////////////////////////////

Response:
local methods = {}
methods.__index = methods

function methods:AddChannel(channelName, autoJoin)
	if (self.ChatChannels[channelName:lower()]) then
		error(string.format("Channel %q alrady exists.", channelName))
	end

	local function DefaultChannelCommands(fromSpeaker, message)
		if (message:lower() == "/leave") then
			local channel = self:GetChannel(channelName)
			local speaker = self:GetSpeaker(fromSpeaker)
			if (channel and speaker) then
				if (channel.Leavable) then
					speaker:LeaveChannel(channelName)
					speaker:SendSystemMessage(
						string.gsub(
							ChatLocalization:Get(
								"GameChat_ChatService_YouHaveLeftChannel",
								string.format("You have left channel '%s'", channelName)
							),
						"{RBX_NAME}",channelName),
						"System"
					)
				else
					speaker:SendSystemMessage(ChatLocalization:Get("GameChat_ChatService_CannotLeaveChannel","You cannot leave this channel."), channelName)
				end
			end

			return true
		end
		return false
	end

	local channel = ChatChannel.new(self, channelName)
	self.ChatChannels[channelName:lower()] = channel

	channel:RegisterProcessCommandsFunction("default_commands", DefaultChannelCommands, ChatConstants.HighPriority)

	local success, err = pcall(function() self.eChannelAdded:Fire(channelName) end)
	if not success and err then
		print("Error addding channel: " ..err)
	end

	if autoJoin ~= nil then
		channel.AutoJoin = autoJoin
		if autoJoin then
			for _, speaker in pairs(self.Speakers) do
				speaker:JoinChannel(channelName)
			end
		end
	end

	return channel
end

function methods:RemoveChannel(channelName)
	if (self.ChatChannels[channelName:lower()]) then
		local n = self.ChatChannels[channelName:lower()].Name

		self.ChatChannels[channelName:lower()]:InternalDestroy()
		self.ChatChannels[channelName:lower()] = nil

		local success, err = pcall(function() self.eChannelRemoved:Fire(n) end)
		if not success and err then
			print("Error removing channel: " ..err)
		end
	else
		warn(string.format("Channel %q does not exist.", channelName))
	end
end

function methods:GetChannel(channelName)
	return self.ChatChannels[channelName:lower()]
end

function methods:AddSpeaker(speakerName)
	if (self.Speakers[speakerName:lower()]) then
		error("Speaker \"" .. speakerName .. "\" already exists!")
	end

	local speaker = Speaker.new(self, speakerName)
	self.Speakers[speakerName:lower()] = speaker

	local success, err = pcall(function() self.eSpeakerAdded:Fire(speakerName) end)
	if not success and err then
		print("Error adding speaker: " ..err)
	end

	return speaker
end

function methods:InternalUnmuteSpeaker(speakerName)
	for channelName, channel in pairs(self.ChatChannels) do
		if channel:IsSpeakerMuted(speakerName) then
			channel:UnmuteSpeaker(speakerName)
		end
	end
end

function methods:RemoveSpeaker(speakerName)
	if (self.Speakers[speakerName:lower()]) then
		local n = self.Speakers[speakerName:lower()].Name
		self:InternalUnmuteSpeaker(n)

		self.Speakers[speakerName:lower()]:InternalDestroy()
		self.Speakers[speakerName:lower()] = nil

		local success, err = pcall(function() self.eSpeakerRemoved:Fire(n) end)
		if not success and err then
			print("Error removing speaker: " ..err)
		end

	else
		warn("Speaker \"" .. speakerName .. "\" does not exist!")
	end
end

function methods:GetSpeaker(speakerName)
	return self.Speakers[speakerName:lower()]
end

function methods:GetChannelList()
	local list = {}
	for i, channel in pairs(self.ChatChannels) do
		if (not channel.Private) then
			table.insert(list, channel.Name)
		end
	end
	return list
end

function methods:GetAutoJoinChannelList()
	local list = {}
	for i, channel in pairs(self.ChatChannels) do
		if channel.AutoJoin then
			table.insert(list, channel)
		end
	end
	return list
end

function methods:GetSpeakerList()
	local list = {}
	for i, speaker in pairs(self.Speakers) do
		table.insert(list, speaker.Name)
	end
	return list
end

function methods:SendGlobalSystemMessage(message)
	for i, speaker in pairs(self.Speakers) do
		speaker:SendSystemMessage(message, nil)
	end
end

function methods:RegisterFilterMessageFunction(funcId, func, priority)
	if self.FilterMessageFunctions:HasFunction(funcId) then
		error(string.format("FilterMessageFunction '%s' already exists", funcId))
	end
	self.FilterMessageFunctions:AddFunction(funcId, func, priority)
end

function methods:FilterMessageFunctionExists(funcId)
	return self.FilterMessageFunctions:HasFunction(funcId)
end

function methods:UnregisterFilterMessageFunction(funcId)
	if not self.FilterMessageFunctions:HasFunction(funcId) then
		error(string.format("FilterMessageFunction '%s' does not exists", funcId))
	end
	self.FilterMessageFunctions:RemoveFunction(funcId)
end

function methods:RegisterProcessCommandsFunction(funcId, func, priority)
	if self.ProcessCommandsFunctions:HasFunction(funcId) then
		error(string.format("ProcessCommandsFunction '%s' already exists", funcId))
	end
	self.ProcessCommandsFunctions:AddFunction(funcId, func, priority)
end

function methods:ProcessCommandsFunctionExists(funcId)
	return self.ProcessCommandsFunctions:HasFunction(funcId)
end

function methods:UnregisterProcessCommandsFunction(funcId)
	if not self.ProcessCommandsFunctions:HasFunction(funcId) then
		error(string.format("ProcessCommandsFunction '%s' does not exist", funcId))
	end
	self.ProcessCommandsFunctions:RemoveFunction(funcId)
end

local LastFilterNoficationTime = 0
local LastFilterIssueTime = 0
local FilterIssueCount = 0
function methods:InternalNotifyFilterIssue()
	if (tick() - LastFilterIssueTime) > FILTER_THRESHOLD_TIME then
		FilterIssueCount = 0
	end
	FilterIssueCount = FilterIssueCount + 1
	LastFilterIssueTime = tick()
	if FilterIssueCount >= FILTER_NOTIFCATION_THRESHOLD then
		if (tick() - LastFilterNoficationTime) > FILTER_NOTIFCATION_INTERVAL then
			LastFilterNoficationTime = tick()
			local systemChannel = self:GetChannel("System")
			if systemChannel then
				systemChannel:SendSystemMessage(
					ChatLocalization:Get(
						"GameChat_ChatService_ChatFilterIssues",
						"The chat filter is currently experiencing issues and messages may be slow to appear."
					),
					errorExtraData
				)
			end
		end
	end
end

local StudioMessageFilteredCache = {}


Prompt: -- constants

Response:
local CHARACTER	= script.Parent
local HUMANOID	= CHARACTER.Humanoid
local ARMOR		= HUMANOID.Armor
local SLOTS		= HUMANOID.ArmorSlots

local SLOT_SIZE	= 30


Prompt:
--[[**
		Takes a table where keys are child names and values are functions to check the children against.
		Pass an instance tree into the function.
		If at least one child passes each check, the overall check passes.

		Warning! If you pass in a tree with more than one child of the same name, this function will always return false

		@param checkTable The table to check against

		@returns A function that checks an instance tree
	**--]]

Response:
	function t.children(checkTable)
		assert(checkChildren(checkTable))

		return function(value)
			local instanceSuccess, instanceErrMsg = t.Instance(value)
			if not instanceSuccess then
				return false, instanceErrMsg or ""
			end

			local childrenByName = {}
			for _, child in ipairs(value:GetChildren()) do
				local name = child.Name
				if checkTable[name] then
					if childrenByName[name] then
						return false, string.format("Cannot process multiple children with the same name %q", name)
					end

					childrenByName[name] = child
				end
			end

			for name, check in pairs(checkTable) do
				local success, errMsg = check(childrenByName[name])
				if not success then
					return false, string.format("[%s.%s] %s", value:GetFullName(), name, errMsg or "")
				end
			end

			return true
		end
	end
end

return t


Prompt: -- constants

Response:
return function(character)
	local effects	= character.Effects
	local emitters	= {}

	local emitter1	= script.BaseEmitter:Clone()
		emitter1.Parent	= character.Head

	local emitter2	= script.FlameEmitter:Clone()
		emitter2.Parent	= character.Head

	wait(5)

	emitter1.Enabled	= false
	emitter2.Enabled	= false

	Debris:AddItem(emitter1, 2)
	Debris:AddItem(emitter2, 1)
end


Prompt: --- Updates state and tracking resources for new instances.

Response:
function ScopeHierarchyItemButton:didUpdate(previousProps, previousState)
    if previousProps.Instance ~= self.props.Instance then
        self:UpdateInstanceState()
        self:StartTrackingInstance()
    end
end

function ScopeHierarchyItemButton:render()
    local ClassName = self.props.Instance.ClassName
    local IconPosition = ClassIconPositions[ClassName] or Vector2.new(1, 1)
    local ShouldDisplayArrow = (self.props.LayoutOrder ~= 2) or nil

    return new('ImageButton', {
        BackgroundTransparency = 1;
        ImageTransparency = 1;
        Size = self.ContainerSize;
        LayoutOrder = self.props.LayoutOrder;
        [Roact.Event.InputBegan] = self.OnInputBegin;
        [Roact.Event.InputEnded] = self.OnInputEnd;
        [Roact.Event.Activated] = self.OnClicked;
    },
    {
        Layout = new('UIListLayout', {
            [Roact.Ref] = self.LayoutRef;
            FillDirection = Enum.FillDirection.Horizontal;
            HorizontalAlignment = Enum.HorizontalAlignment.Left;
            VerticalAlignment = Enum.VerticalAlignment.Center;
            SortOrder = Enum.SortOrder.LayoutOrder;
            Padding = UDim.new(0, 5/2);
        });

        ArrowWrapper = ShouldDisplayArrow and new('Frame', {
            Size = UDim2.new(0, 38/2, 0, 38/2);
            BackgroundTransparency = 1;
            LayoutOrder = 0;
        },
        {
            Arrow = new('ImageLabel', {
                Size = UDim2.new(1, 0, 1, 0);
                BackgroundTransparency = 1;
                Image = 'rbxassetid://2244452978';
                ImageRectOffset = Vector2.new(14*3, 0) * 2;
                ImageRectSize = Vector2.new(14, 14) * 2;
                ImageTransparency = 0;
                Rotation = 90;
            });
        });

        InstanceInfo = new('Frame', {
            BackgroundTransparency = 1;
            Size = UDim2.new(0, self.state.InstanceNameLength + 28/2 + 10/2, 1, 0);
            LayoutOrder = 1;
        },
        {
            InstanceIcon = new('ImageLabel', {
                BackgroundTransparency = 1;
                Image = 'rbxassetid://2245672825';
                ImageRectOffset = (IconPosition - Vector2.new(1, 1)) * Vector2.new(16, 16);
                ImageRectSize = Vector2.new(16, 16);
                ImageTransparency = self.props.IsTarget and 0.5 or 0;
                AnchorPoint = Vector2.new(0, 0.5);
                Position = UDim2.new(0, 0, 0.5, 0);
                Size = UDim2.new(0, 28/2, 0, 28/2);
                LayoutOrder = 0;
            });
            InstanceName = new('TextLabel', {
                BackgroundTransparency = 1;
                Size = UDim2.new(0, self.state.InstanceNameLength, 0, 28/2);
                Position = UDim2.new(0, 28/2 + 10/2, 0.5, 0);
                AnchorPoint = Vector2.new(0, 0.5);
                Font = Enum.Font.SourceSans;
                TextSize = 33/2;
                Text = self.state.InstanceName;
                TextTransparency = self.props.IsTarget and 0.5 or 0;
                TextYAlignment = Enum.TextYAlignment.Center;
                TextColor3 = Color3.fromRGB(255, 255, 255);
                LayoutOrder = 1;
            },
            {
                TextShadow = new('TextLabel', {
                    BackgroundTransparency = 1;
                    Size = UDim2.new(1, 0, 1, 0);
                    Position = UDim2.new(0, 0, 0, 1);
                    Font = Enum.Font.SourceSans;
                    TextSize = 33/2;
                    Text = self.state.InstanceName;
                    TextYAlignment = Enum.TextYAlignment.Center;
                    TextColor3 = Color3.fromRGB(112, 112, 112);
                    TextStrokeColor3 = Color3.fromRGB(112, 112, 112);
                    TextTransparency = self.props.IsTarget and 1 or 0.77;
                    TextStrokeTransparency = 0.77;
                    ZIndex = 0;
                })
            });
        });

        Tooltip = new(HotkeyTooltip, {
            IsScopeParent = self.props.IsScopeParent;
            IsScope = self.props.IsScope;
            IsScopable = self.props.IsScopable;
            IsScopeLocked = self.props.IsScopeLocked;
            IsAltDown = self.props.IsAltDown;
        });
    })
end

return ScopeHierarchyItemButton


Prompt: -- for fading images

Response:
function UITween.fadePart(object, amount, time, delay)

	local tweenAlpha = TweenInfo.new(
		time, --Time
		Enum.EasingStyle.Quad, --EasingStyle
		Enum.EasingDirection.Out, --EasingDirection
		0, --Repeat count
		false, --Reverses if true
		delay --Delay time
	)

	local tween = tweenService:Create(object, tweenAlpha, {Transparency = amount})
	tween:Play()
end

function UITween.fade(object, amount, time, delay)

	local tweenAlpha = TweenInfo.new(
		time, --Time
		Enum.EasingStyle.Quad, --EasingStyle
		Enum.EasingDirection.Out, --EasingDirection
		0, --Repeat count
		false, --Reverses if true
		delay --Delay time
	)

	local tween = tweenService:Create(object, tweenAlpha, {ImageTransparency = amount})
	tween:Play()
end


Prompt:
--[=[
	@param fn ConnectionFn
	@return SignalConnection

	Connects a function to the signal, which will be called the next time the signal fires. Once
	the connection is triggered, it will disconnect itself.
	```lua
	signal:Once(function(msg, num)
		print(msg, num)
	end)

	signal:Fire("Hello", 25)
	signal:Fire("This message will not go through", 10)
	```
]=]

Response:
function Signal:Once(fn)
	local connection
	local done = false
	connection = self:Connect(function(...)
		if done then
			return
		end
		done = true
		connection:Disconnect()
		fn(...)
	end)
	return connection
end

function Signal:GetConnections()
	local items = {}
	local item = self._handlerListHead
	while item do
		table.insert(items, item)
		item = item._next
	end
	return items
end


Prompt:
-- Calculates closest point on part to player (treats part as a plane since it is not very thick), then uses SPLIT_FACTOR and
-- maxDistanceBeforeSplitting to determine if the player is close enough to split

Response:
local function isCloseEnoughToSplit(playerPos, stormPos, partPos, splitLevel, vertexList, stormRadius)
	local partNormal = (partPos * Vector3.new(1, 0, 1) - stormPos * Vector3.new(1, 0, 1)).Unit
	local closestPlanarPointToPlayer = playerPos - (partNormal * (partNormal:Dot(playerPos - partPos)))

	-- Calculate four side vectors
	local sides = {}
	for i = 1, 4 do
		sides[i] = vertexList[(i % 4) + 1] - vertexList[i]
	end

	-- Calculate normals to each side by subtracting middle of part from midpoint of each side
	local normals = {}
	for i = 1, 4 do
		normals[i] = ((vertexList[i] + sides[i] / 2) - partPos).Unit
	end

	-- Determine whether closestPlanarPointToPlayer is towards middle or outside of each side (true = outside)
	local out = {}
	for i = 1, 4 do
		out[i] = normals[i]:Dot(closestPlanarPointToPlayer - vertexList[i]) > 0
	end

	-- Find the closest point on the part to the player
	local closestPointOnPartToPlayer = closestPlanarPointToPlayer -- if all of 'out' array is false, closestPlanarPointToPlayer is already on part
	for i = 1, 4 do
		if out[i] then
			if out[(i % 4) + 1] then -- if out[i+1] then set to closest vertex
				closestPointOnPartToPlayer = vertexList[(i % 4) + 1]
				break
			elseif not out[4 - ((5 - i) % 4)] then -- if not out[i-1] then set to closest point on side[i]
				closestPointOnPartToPlayer = vertexList[i] + sides[i].Unit * sides[i].Unit:Dot(closestPlanarPointToPlayer - vertexList[i])
				break
			end
		end
	end

	-- Check if closestPointOnPartToPlayer is close enough to player to split the part
	local distanceFromPlayer = (closestPointOnPartToPlayer - playerPos).Magnitude
	if distanceFromPlayer < (FRACTION_OF_RADIUS_BEFORE_SPLITTING * stormRadius) * math.pow(SPLIT_FACTOR, splitLevel - 1) then
		return true
	end
	return false
end

local function updateBarrierPartInfo(barrierPartInfo, playerPos, stormPos, stormRadius, barrierPartID)
	local vertexList = getVertexListFromRadians(math.rad(barrierPartInfo.startDeg), math.rad(barrierPartInfo.endDeg), stormRadius, stormPos)
	updatePartFromVertexList(barrierPartInfo.part, vertexList, stormPos)
	barrierPartInfo.part.Rotation = Vector3.new(0, 270 - ((barrierPartInfo.startDeg + barrierPartInfo.endDeg) / 2), 0)

	if
		barrierPartInfo.splitLevel < MAX_SPLIT_LEVEL and
		barrierPartInfo.part.Size.X > (2 * MIN_BARRIERPART_WIDTH) and
		isCloseEnoughToSplit(playerPos, stormPos, barrierPartInfo.part.Position, barrierPartInfo.splitLevel, vertexList, stormRadius)
	then -- split this barrierPart in half
		-- Create second part, add to barrierPartInfos table
		local newPart = barrierPartInfo.part:Clone()
		newPart.Parent = barrierPartsFolder
		local newBarrierPartInfo = getBarrierPartInfo(newPart, (barrierPartInfo.endDeg + barrierPartInfo.startDeg) / 2, barrierPartInfo.endDeg,
													  barrierPartInfo.splitLevel + 1, true, barrierPartInfo.isSecondPartBySplitLevel)
		table.insert(barrierPartInfos, barrierPartID + 1, newBarrierPartInfo)

		-- Update first part
		barrierPartInfo.splitLevel = barrierPartInfo.splitLevel + 1
		barrierPartInfo.endDeg = (barrierPartInfo.endDeg + barrierPartInfo.startDeg) / 2
		barrierPartInfo.isSecondPartBySplitLevel[barrierPartInfo.splitLevel] = false
		updateBarrierPartInfo(barrierPartInfo, playerPos, stormPos, stormRadius, barrierPartID)
	else
		local nextPartInfo = barrierPartInfos[barrierPartID + 1]
		if
			barrierPartInfo.splitLevel > 1 and
			not barrierPartInfo.isSecondPartBySplitLevel[barrierPartInfo.splitLevel] and
			barrierPartInfo.splitLevel == nextPartInfo.splitLevel
		then -- combine this barrierPart with the next barrierPart
			local testVertexList = getVertexListFromRadians(math.rad(barrierPartInfo.startDeg), math.rad(nextPartInfo.endDeg), stormRadius, stormPos)
			if
				not isCloseEnoughToSplit(playerPos, stormPos, getPositionFromVertexList(testVertexList), barrierPartInfo.splitLevel - 1, testVertexList, stormRadius) or
				barrierPartInfo.part.Size.X < MIN_BARRIERPART_WIDTH
			then
				-- Update barrierPartInfo values
				table.remove(barrierPartInfo.isSecondPartBySplitLevel, barrierPartInfo.splitLevel)
				barrierPartInfo.splitLevel = barrierPartInfo.splitLevel - 1
				barrierPartInfo.endDeg = nextPartInfo.endDeg

				-- Destroy next part/partInfo
				nextPartInfo.part:Destroy()
				table.remove(barrierPartInfos, barrierPartID + 1)

				-- Update barrierPartInfo.part
				updatePartFromVertexList(barrierPartInfo.part, testVertexList, stormPos)
				barrierPartInfo.part.Rotation = Vector3.new(0, 270 - ((barrierPartInfo.startDeg + barrierPartInfo.endDeg) / 2), 0)
			end
		end
	end
	-- Set transparency based on distance to player
	barrierPartInfo.part.Transparency = math.clamp(((barrierPartInfo.part.Position - playerPos).Magnitude - TRANSPARENCY_FALLOFF_RANGE.Min) /
										(TRANSPARENCY_FALLOFF_RANGE.Max - TRANSPARENCY_FALLOFF_RANGE.Min), 0, 0.99)
end


Prompt: --gun welds

Response:
local boltw = mainpart:WaitForChild("boltweld")
local magw = mainpart:WaitForChild("magweld")
local trigw = mainpart:WaitForChild("triggerweld")
local rightgrip


Prompt: -- Initialize mesh tool

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


Prompt: --		print("Wha " .. pose)

Response:
		stopAllAnimations()
		amplitude = 0.1
		frequency = 1
		setAngles = true
	end

	if (setAngles) then
		desiredAngle = amplitude * math.sin(time * frequency)

		RightShoulder:SetDesiredAngle(desiredAngle + climbFudge)
		LeftShoulder:SetDesiredAngle(desiredAngle - climbFudge)
		RightHip:SetDesiredAngle(-desiredAngle)
		LeftHip:SetDesiredAngle(-desiredAngle)
	end

	-- Tool Animation handling
	local tool = getTool()
	if tool then

		animStringValueObject = getToolAnim(tool)

		if animStringValueObject then
			toolAnim = animStringValueObject.Value
			-- message recieved, delete StringValue
			animStringValueObject.Parent = nil
			toolAnimTime = time + .3
		end

		if time > toolAnimTime then
			toolAnimTime = 0
			toolAnim = "None"
		end

		animateTool()
	else
		stopToolAnimations()
		toolAnim = "None"
		toolAnimInstance = nil
		toolAnimTime = 0
	end
end


Prompt: -- ROBLOX TODO START: implement when possible

Response:
function picomatch.matchBase(input, glob, options, posix_: boolean?): boolean
	error("matchBase not implemented")
	-- local _posix = posix_ or utils.isWindows(options)

	-- local regex = if instanceof(glob, RegExp) then glob else picomatch.makeRe(glob, options)
	-- -- ROBLOX FIXME: return regex:test(path:basename(input))
	-- return regex:test(input)
end


Prompt: --[[ The Module ]]

Response:
--
local MouseLockController = {}
MouseLockController.__index = MouseLockController

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

	self.isMouseLocked = false
	self.savedMouseCursor = nil
	self.boundKeys = {Enum.KeyCode.LeftShift, Enum.KeyCode.RightShift} -- defaults

	self.mouseLockToggledEvent = Instance.new("BindableEvent")

	local boundKeysObj = script:FindFirstChild("BoundKeys")
	if (not boundKeysObj) or (not boundKeysObj:IsA("StringValue")) then
		-- If object with correct name was found, but it's not a StringValue, destroy and replace
		if boundKeysObj then
			boundKeysObj:Destroy()
		end

		boundKeysObj = Instance.new("StringValue")
		boundKeysObj.Name = "BoundKeys"
		boundKeysObj.Value = "LeftShift,RightShift"
		boundKeysObj.Parent = script
	end

	if boundKeysObj then
		boundKeysObj.Changed:Connect(function(value)
			self:OnBoundKeysObjectChanged(value)
		end)
		self:OnBoundKeysObjectChanged(boundKeysObj.Value) -- Initial setup call
	end

	-- Watch for changes to user's ControlMode and ComputerMovementMode settings and update the feature availability accordingly
	GameSettings.Changed:Connect(function(property)
		if property == "ControlMode" or property == "ComputerMovementMode" then
			self:UpdateMouseLockAvailability()
		end
	end)

	-- Watch for changes to DevEnableMouseLock and update the feature availability accordingly
	PlayersService.LocalPlayer:GetPropertyChangedSignal("DevEnableMouseLock"):Connect(function()
		self:UpdateMouseLockAvailability()
	end)

	-- Watch for changes to DevEnableMouseLock and update the feature availability accordingly
	PlayersService.LocalPlayer:GetPropertyChangedSignal("DevComputerMovementMode"):Connect(function()
		self:UpdateMouseLockAvailability()
	end)

	self:UpdateMouseLockAvailability()

	return self
end

function MouseLockController:GetIsMouseLocked()
	return self.isMouseLocked
end

function MouseLockController:GetBindableToggleEvent()
	return self.mouseLockToggledEvent.Event
end

function MouseLockController:GetMouseLockOffset()
	local offsetValueObj = script:FindFirstChild("CameraOffset")
	if offsetValueObj and offsetValueObj:IsA("Vector3Value") then
		return offsetValueObj.Value
	else
		-- If CameraOffset object was found but not correct type, destroy
		if offsetValueObj then
			offsetValueObj:Destroy()
		end
		offsetValueObj = Instance.new("Vector3Value")
		offsetValueObj.Name = "CameraOffset"
		offsetValueObj.Value = Vector3.new(1.75,0,0) -- Legacy Default Value
		offsetValueObj.Parent = script
	end

	if offsetValueObj and offsetValueObj.Value then
		return offsetValueObj.Value
	end

	return Vector3.new(1.75,0,0)
end

function MouseLockController:UpdateMouseLockAvailability()
	local devAllowsMouseLock = PlayersService.LocalPlayer.DevEnableMouseLock
	local devMovementModeIsScriptable = PlayersService.LocalPlayer.DevComputerMovementMode == Enum.DevComputerMovementMode.Scriptable
	local userHasMouseLockModeEnabled = GameSettings.ControlMode == Enum.ControlMode.MouseLockSwitch
	local userHasClickToMoveEnabled =  GameSettings.ComputerMovementMode == Enum.ComputerMovementMode.ClickToMove
	local MouseLockAvailable = devAllowsMouseLock and userHasMouseLockModeEnabled and not userHasClickToMoveEnabled and not devMovementModeIsScriptable

	if MouseLockAvailable~=self.enabled then
		self:EnableMouseLock(MouseLockAvailable)
	end
end

function MouseLockController:OnBoundKeysObjectChanged(newValue)
	self.boundKeys = {} -- Overriding defaults, note: possibly with nothing at all if boundKeysObj.Value is "" or contains invalid values
	for token in string.gmatch(newValue,"[^%s,]+") do
		for _, keyEnum in pairs(Enum.KeyCode:GetEnumItems()) do
			if token == keyEnum.Name then
				self.boundKeys[#self.boundKeys+1] = keyEnum
				break
			end
		end
	end
	self:UnbindContextActions()
	self:BindContextActions()
end


Prompt: --Services

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


Prompt: -- Local Functions

Response:
local function moveToAndWait(humanoid, targetPosition)
	local targetReached = false
	local runningThread = coroutine.running()
	local connection1 = humanoid.MoveToFinished:Connect(function(reachedTarget)
		if reachedTarget then
			targetReached = true
			coroutine.resume(runningThread)
		end
	end)
	local connection2 = humanoid:GetPropertyChangedSignal("MoveDirection"):Connect(function()
		humanoid:MoveTo(targetPosition)
	end)
	humanoid:MoveTo(targetPosition)
	coroutine.wrap(function()
		while not targetReached do
			wait(6)
			if not humanoid.Parent or humanoid.WalkToPoint ~= targetPosition then
				break
			end
			humanoid:MoveTo(targetPosition)
		end
	end)()
	coroutine.yield()
	connection1:Disconnect()
	connection2:Disconnect()
end


Prompt: -- ROBLOX deviation end

Response:
type GetPath = {
	hasEndProp: boolean?,
	lastTraversedObject: any,
	traversedPath: Array<string>,
	value: any?,
}


Response:
_lights = getLights()
_signage = getSignage()

while true do
	local timeRemaining = updateState(tick(), _lights, _signage)
	wait(timeRemaining)
end


Prompt: -- Initialization

Response:
Chassis.InitializeDrivingValues()
EffectsInstance:Enable()

RunService.Heartbeat:Connect(function()
	if Ignition and TargetHumanoid then
		local Root = TargetHumanoid.RootPart

		if Car.Chassis.FloorPanel.AssemblyLinearVelocity.Magnitude < 3 and StuckTick <= 50 then
			StuckTick += 1
		elseif StuckTick >= 50 and ReverseTick < 100 and CheckDistance(Car.Chassis.FloorPanel.Position, Root.Position) > 50 then
			ReverseTick += 1
			UpdateThrottleWithComp(-0.7)
			UpdateSteeringWithComp(0)
			return
		else
			StuckTick = 0
			ReverseTick = 0
		end

		if CheckDistance(Car.Chassis.FloorPanel.Position, Root.Position) < 34 and Root.AssemblyLinearVelocity.Magnitude < 16 then
			UpdateThrottleWithComp(0)
		end

		if CheckDistance(Car.Chassis.FloorPanel.Position, Root.Position) > 25 then
			if RaycastToPoint(Car.Chassis.FloorPanel.Position, Root.Position + Root.AssemblyLinearVelocity) == nil then
				local Position = FaceSteerToPosition(Root.Position + Root.AssemblyLinearVelocity) -- Target visible, drive directly and ignore raycasting

				if Position ~= 0 then
					UpdateThrottleWithComp(math.clamp(1.2 - Position, 0.55, 1))
				end
			elseif RaycastToPoint(Car.Chassis.FloorPanel.Position, Root.Position) == nil then
				if TargetHumanoid.SeatPart:FindFirstAncestorWhichIsA("Model"):GetAttribute("MaxSpeed") ~= nil then --In vehicle, PIT if possible
					if PIT(TargetHumanoid.SeatPart:FindFirstAncestorWhichIsA("Model")) == false then
						local Position = FaceSteerToPosition(Root.Position + Root.AssemblyLinearVelocity)

						if Position ~= 0 then
							UpdateThrottleWithComp(math.clamp(1.2 - Position, 0.55, 1))
						end
					end
				else
					local Position = FaceSteerToPosition(Root.Position) -- We can't drive ahead of our target, but we can drive to the target

					if Position ~= 0 then
						UpdateThrottleWithComp(math.clamp(1.2 - Position, 0.55, 1))
					end
				end
			else -- Obstacles detected, avoid collisions
				local FrontResult = Raycast(Car.Chassis.FloorPanel.Position, Car.Chassis.FloorPanel.CFrame.LookVector * RaycastDistance)
				local RightResult = Raycast(Car.Chassis.FloorPanel.Position, Car.Chassis.FloorPanel.CFrame.RightVector * RaycastDistance)
				local LeftResult = Raycast(Car.Chassis.FloorPanel.Position, Car.Chassis.FloorPanel.CFrame.RightVector * -RaycastDistance)
				local BackResult = Raycast(Car.Chassis.FloorPanel.Position, Car.Chassis.FloorPanel.CFrame.LookVector * -RaycastDistance)

				local FrontDistance, RightDistance, LeftDistance, BackDistance = RaycastDistance, RaycastDistance, RaycastDistance, RaycastDistance

				if FrontResult ~= nil then
					FrontDistance = CheckDistance(Car.Chassis.FloorPanel.Position, FrontResult.Position)
				end

				if RightResult ~= nil then
					RightDistance = CheckDistance(Car.Chassis.FloorPanel.Position, RightResult.Position)
				end

				if LeftResult ~= nil then
					LeftDistance = CheckDistance(Car.Chassis.FloorPanel.Position, LeftResult.Position)
				end

				if BackResult ~= nil then
					BackDistance = CheckDistance(Car.Chassis.FloorPanel.Position, BackResult.Position)
				end

				if (RightDistance < 50 or LeftDistance < 50) and FrontDistance > 25 and Reverse == false then
					if LeftDistance > RightDistance then -- Turn left
						local Position = UpdateSteeringWithComp(RightDistance / 50)
						UpdateThrottleWithComp(math.clamp(1.2 - Position, 0.2, 1))
					else
						local Position = UpdateSteeringWithComp(-LeftDistance / 50)
						UpdateThrottleWithComp(math.clamp(1.2 - Position, 0.2, 1))
					end
				elseif FrontDistance <= 25 and Reverse == true then
					Reverse = true
					if BackDistance >= 20 then
						UpdateThrottleToSpeed(-10)
						UpdateSteeringWithComp(0)
					else
						UpdateThrottleToSpeed(5)
						if LeftDistance > RightDistance then
							UpdateSteeringWithComp(1)
						else
							UpdateSteeringWithComp(-1)
						end
					end
					if FrontDistance >= 25 then
						Reverse = false
					end
				else
					FaceSteerToPosition(Root.Position + Root.AssemblyLinearVelocity)
				end
			end
		end
	else
		UpdateThrottleWithComp(0)
	end
end)

Car.SetHumanoidTarget.Event:Connect(function(target)
	TargetHumanoid = target
end)

Car.ToggleIgnition.Event:Connect(function(bool)
	Ignition = bool
end)

task.spawn(function()
	local Sirens = {Car.Chassis.FloorPanel.Wail, Car.Chassis.FloorPanel.Yelp, Car.Chassis.FloorPanel.Priority}
	while task.wait(math.random(2, 4)) do
		if Ignition and TargetHumanoid then
			local SirenToPlay = math.random(1, 3)

			for i, v: Sound in pairs(Sirens) do
				if i == SirenToPlay then
					if not v.IsPlaying then
						v:Play()
					end
				else
					v:Stop()
				end
			end
		end
	end
end)


Prompt: -- << SET UP PLAYER DATA >>

Response:
local getLimitPerMin = 6
local getRefreshInterval = 10
local getLimit = getLimitPerMin*(getRefreshInterval/60)
local getRequests = {}
spawn(function()
	while true do
		wait(getRefreshInterval)
		getRequests = {}
	end
end)
function module:GetData(caller, retries, userId)
	if not getRequests[caller] then
		getRequests[caller] = 0
	end
	getRequests[caller] = getRequests[caller] + 1
	if getRequests[caller] <= getLimit then
		local success, data = main:GetModule("DataStores"):GetData(playerDataStore, retries, userId)
		return success, data
	else
		--warn(caller.Name,"exeeded getLimit!")
	end
end

function module:SetupPlayerData(player)

	local dataTemplate = getDataTemplate()
	local success, pdata = self:GetData(player, datastoreRetries, player.UserId)

	--Can't access DataStore
	if not success and not main.isStudio then
		return nil

	--New player
	elseif not pdata then
		pdata = dataTemplate
		savePlayerData(player)
		local welcomeBadgeId = tonumber(main.settings.WelcomeBadgeId)
		if welcomeBadgeId and welcomeBadgeId > 0 then
			main.badgeService:AwardBadge(player.UserId, welcomeBadgeId)
		end

	--Existing player
	else
		for statName, statValue in pairs(dataTemplate) do
			if pdata[statName] == nil then
				pdata[statName] = statValue
			end
			if statName == "DefaultSettings" then
				for i, settingName in pairs(defaultSettingsToAdd) do
					if pdata[statName][settingName] == nil then
						pdata[statName][settingName] = settings[settingName]
					end
				end
			end
		end

	end

	main.pd[player] = pdata
	return pdata
end


Prompt: -- Configurable variables

Response:
local attackCooldown = tool.Configurations.AttackCooldown.Value
local range = tool.Configurations.Range.Value
local damage = tool.Configurations.Damage.Value
local reloadTime = tool.Configurations.ReloadTime.Value
local clipSize = tool.Configurations.ClipSize.Value


Prompt:
--[[
TheNexusAvenger

Applies a winter theme to Bloxburg.
--]]


Prompt: -- Server:

Response:
function network:newEvent(name,callback)
	new("RemoteEvent",name).OnServerEvent:Connect(callback or blank);
end

function network:newFunction(name,callback)
	new("RemoteFunction",name).OnServerInvoke = callback or blank;
end

function network:fireClients(name,clients,...)
	local event = get(name);
	if(clients == "all") then
		event:FireAllClients(...);
	else
		for _,client in pairs(clients) do
			event:FireClient(client,...);
		end
	end
end


Prompt: -- Start: Starts the clock

Response:
Start.OnInvoke = function(countDown)
	CountingDown = countDown
	LastTime = tick()
	Running = true
end


Prompt: --PC

Response:
UIS.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton2 or input.UserInputType == Enum.UserInputType.MouseButton3  then
		Attack()
		Enable =false
		wait(cooldown)
		Enable = true
	end

end)


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

Response:
--
local PlayerSpawning=false; --[[ Change this to true if you want the NPC to spawn like a player, and change this to false if you want the NPC to spawn at it's current position. ]]--
local AdvancedRespawnScript=script;
repeat Wait(0)until script and script.Parent and script.Parent.ClassName=="Model";
local Ben=AdvancedRespawnScript.Parent;
if AdvancedRespawnScript and Ben and Ben:FindFirstChild("Thumbnail")then
Ben:FindFirstChild("Thumbnail"):Destroy();
end;
local GameDerbis=Game:GetService("Debris");
local BenHumanoid;
for _,Child in pairs(Ben:GetChildren())do
if Child and Child.ClassName=="Humanoid"and Child.Health~=0 then BenHumanoid=Child;
end;
end;
local Respawndant=Ben:Clone();
if PlayerSpawning then --[[ LOOK AT LINE: 2. ]]--
coroutine.resume(coroutine.create(function()


Prompt:
--[[**
	ensures Lua primitive callback type

	@param value The value to check against

	@returns True iff the condition is satisfied, false otherwise
**--]]

Response: t.callback = primitive("function")


Prompt: -- functions

Response:
function onRunning(speed)
	if isSeated then return end

	if speed>0 then
		pose = "Running"
	else
		pose = "Standing"
	end
end

function onDied()
	pose = "Dead"
end

function onJumping()
	isSeated = false
	pose = "Jumping"
end

function onClimbing()
	pose = "Climbing"
end

function onGettingUp()
	pose = "GettingUp"
end

function onFreeFall()
	pose = "FreeFall"
end

function onFallingDown()
	pose = "FallingDown"
end

function onSeated()
	isSeated = true
	pose = "Seated"
	print("Seated")
end

function moveJump()
	RightShoulder.MaxVelocity = 0.5
	LeftShoulder.MaxVelocity = 0.5
	RightShoulder.DesiredAngle = 3.14
	LeftShoulder.DesiredAngle = -3.14
	RightHip.DesiredAngle = 0
	LeftHip.DesiredAngle = 0
end

function moveFreeFall()
	RightShoulder.MaxVelocity = 0.5
	LeftShoulder.MaxVelocity = 0.5
	RightShoulder.DesiredAngle = 1
	LeftShoulder.DesiredAngle = -1
	RightHip.DesiredAngle = 0
	LeftHip.DesiredAngle = 0
end

function moveClimb()
	RightShoulder.MaxVelocity = 0.5
	LeftShoulder.MaxVelocity = 0.5
	RightShoulder.DesiredAngle = -3.14
	LeftShoulder.DesiredAngle = 3.14
	RightHip.DesiredAngle = 0
	LeftHip.DesiredAngle = 0
end

function moveSit()
	print("Move Sit")
	RightShoulder.MaxVelocity = 0.15
	LeftShoulder.MaxVelocity = 0.15
	RightShoulder.DesiredAngle = 3.14 /2
	LeftShoulder.DesiredAngle = -3.14 /2
	RightHip.DesiredAngle = 3.14 /2
	LeftHip.DesiredAngle = -3.14 /2
end

function getTool()

	kidTable = Figure:children()
	if (kidTable ~= nil) then
		numKids = #kidTable
		for i=1,numKids do
			if (kidTable[i].className == "Tool") then return kidTable[i] end
		end
	end

	return nil
end

function getToolAnim(tool)

	c = tool:children()
	for i=1,#c do
		if (c[i].Name == "toolanim" and c[i].className == "StringValue") then
			return c[i]
		end
	end
	return nil
end

function animateTool()

	if (toolAnim == "None") then
		RightShoulder.DesiredAngle = 1.57
		return
	end

	if (toolAnim == "Slash") then
		RightShoulder.MaxVelocity = 0.5
		RightShoulder.DesiredAngle = 0
		return
	end

	if (toolAnim == "Lunge") then
		RightShoulder.MaxVelocity = 0.5
		LeftShoulder.MaxVelocity = 0.5
		RightHip.MaxVelocity = 0.5
		LeftHip.MaxVelocity = 0.5
		RightShoulder.DesiredAngle = 1.57
		LeftShoulder.DesiredAngle = 1.0
		RightHip.DesiredAngle = 1.57
		LeftHip.DesiredAngle = 1.0
		return
	end
end

function move(time)
	local amplitude
	local frequency

	if (pose == "Jumping") then
		moveJump()
		return
	end

	if (pose == "FreeFall") then
		moveFreeFall()
		return
	end

	if (pose == "Climbing") then
		moveClimb()
		return
	end

	if (pose == "Seated") then
		moveSit()
		return
	end

	RightShoulder.MaxVelocity = 0.15
	LeftShoulder.MaxVelocity = 0.15
	if (pose == "Running") then
		amplitude = 1
		frequency = 9
	else
		amplitude = 0.1
		frequency = 1
	end

	desiredAngle = amplitude * math.sin(time*frequency)

	RightShoulder.DesiredAngle = -desiredAngle
	LeftShoulder.DesiredAngle = desiredAngle
	RightHip.DesiredAngle = desiredAngle
	LeftHip.DesiredAngle = -desiredAngle

	local tool = getTool()

	if tool ~= nil then

		animStringValueObject = getToolAnim(tool)

		if animStringValueObject ~= nil then
			toolAnim = animStringValueObject.Value
			-- message recieved, delete StringValue
			animStringValueObject.Parent = nil
			toolAnimTime = time + .3
		end

		if time > toolAnimTime then
			toolAnimTime = 0
			toolAnim = "None"
		end

		animateTool()

	else
		toolAnim = "None"
		toolAnimTime = 0
	end
end


Prompt: --// Bullet Physics

Response:
	BulletPhysics = Vector3.new(0,60,0); -- Drop fixation: Lower number = more drop
	BulletSpeed = 800; -- Bullet Speed
	BulletSpread = 0; -- How much spread the bullet has

	ExploPhysics = Vector3.new(0,20,0); -- Drop for explosive rounds
	ExploSpeed = 600; -- Speed for explosive rounds

	BulletDecay = 100000; -- How far the bullet travels before slowing down and being deleted (BUGGY)


Prompt:
--	for _, obj in ipairs(model:GetDescendants()) do
--		if obj:IsA("Seat") or obj:IsA("VehicleSeat") then
--			if obj.Occupant then
--				local humanoid = obj.Occupant


Prompt: --<< Gun Settings >>--

Response:
ToolName="M4A1"				-- The name of the tool, needed to be put for the script

ClipSize= 30				-- The amount of bullets that the player gets each time
ReloadTime= 3				-- How much time it takes to reload the gun in bullets (in seconds)
Firerate= .12				-- The rate of the gun
BaseDamage= 20				-- The damage that the gun does

automatic= true				-- Set true if the gun is an automatic type (miniguns, machine guns, etc)
burst= false				-- Set true if the gun is a burst type (shotguns, im too lasy :p )
shot= false					-- Set true if the gun is a shot type (snipers, pistols, etc)

MinSpread= .06
MaxSpread= .8
SpreadRate= .9

BarrlePos=Vector3.new(0,0,0)
Cursors={"rbxasset://textures\\GunCursor.png"}				-- The mouse cursor when the player equips the gun
ReloadCursor="rbxasset://textures\\GunWaitCursor.png"		-- The cursor when the player is reloading the gun


Prompt: -- Arceusinator's Easing Functions

Response:
local function RevBack(t, b, c, d)
	t = 1 - t / d
	return c * (1 - (sin(t * 1.5707963267948965579989817342720925807952880859375) + (sin(t * 3.14159265358979311599796346854418516159057617187) * (cos(t * 3.14159265358979311599796346854418516159057617187) + 1) * 0.5))) + b
end

local function RidiculousWiggle(t, b, c, d)
	t = t / d
	return c * sin(sin(t * 3.14159265358979311599796346854418516159057617187) * 1.5707963267948965579989817342720925807952880859375) + b
end


Prompt: -- Obtén el servicio de sonido

Response: local soundService = game:GetService("SoundService")


Prompt: --print(FRP-FLP)

Response:
	F = carSeat.AirPhysics

	lv = carSeat.CFrame.lookVector
	uv = carSeat.CFrame.upVector
	rv = carSeat.CFrame.rightVector

	if carSeat.Velocity.Y > 0 then
		vy = carSeat.Velocity.Y*50
	else
		if carSeat.Velocity.Y*-70 > 7000 then
		vy = 7000
		else
		vy = carSeat.Velocity.Y*-70
		end
	end

	vx = carSeat.Velocity.X*-.5
	vz = carSeat.Velocity.Z*-.5

	F.Force = Vector3.new(vx, vy*1.4, vz)
	--print(F.Force)
avw = (carSeat.Parent.Parent.Wheels.FL.Wheel.Position.Y + carSeat.Parent.Parent.Wheels.FR.Wheel.Position.Y + carSeat.Parent.Parent.Wheels.RL.Wheel.Position.Y + carSeat.Parent.Parent.Wheels.RR.Wheel.Position.Y)/4
 if carSeat.Parent.Parent.RW.Pad.Position.Y < carSeat.Parent.Parent.RW.UPad.Position.Y then flpp = true
	count = count + 0.1
else
	count = 0 flpp = false
end

if speed < 3 then
	vlam = 3
else
	vlam = 17
end
if script.Parent.Storage.Autoflip.Value == true then
	if count > vlam then
	carSeat.Flip.MaxTorque = Vector3.new(400000, 0, 400000) wait(0.5)
	else
		carSeat.Flip.MaxTorque = Vector3.new(0, 0, 0)
	end
	else carSeat.Flip.MaxTorque = Vector3.new(0, 0, 0)
end
if avw + 2 < script.av.Value or avw - 2 > script.av.Value then


Prompt:
--[[

	LOWGames Studios
	Date: 27 October 2022
	by Elder

]]

Response:
--

local u1 = nil;
coroutine.wrap(function()
	u1 = require(game.ReplicatedStorage:WaitForChild("Framework"):WaitForChild("Library"));
end)();
return function(p1, p2, p3, p4)
	if type(p1) ~= "table" then
		p1 = { p1 };
	end;
	local v1 = {};
	for v2, v3 in ipairs(p1) do
		if p3 == nil then
			p3 = { 1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out };
		else
			if p3[2] == nil then
				p3[2] = Enum.EasingStyle.Sine;
			elseif type(p3[2]) == "string" then
				if string.lower(p3[2]) == "expo" then
					p3[2] = Enum.EasingStyle.Exponential;
				else
					p3[2] = Enum.EasingStyle[p3[2]];
				end;
			end;
			if p3[3] == nil then
				p3[3] = Enum.EasingDirection.InOut;
			elseif type(p3[3]) == "string" then
				p3[3] = Enum.EasingDirection[p3[3]];
			end;
		end;
		local u2 = u1.TweenService:Create(v3, TweenInfo.new(unpack(p3)), p2);
		coroutine.wrap(function()
			if p4 then
				wait(p4);
			end;
			u2:Play();
		end)();
		table.insert(v1, u2);
	end;
	return unpack(v1);
end;


Prompt:
--[[
	BaseOcclusion - Abstract base class for character occlusion control modules
	2018 Camera Update - AllYourBlox
--]]


Prompt: --// Bullet Physics

Response:
	BulletPhysics = Vector3.new(0,55,0); -- Drop fixation: Lower number = more drop
	BulletSpeed = 2750; -- Bullet Speed
	BulletSpread = 0; -- How much spread the bullet has

	ExploPhysics = Vector3.new(0,20,0); -- Drop for explosive rounds
	ExploSpeed = 600; -- Speed for explosive rounds

	BulletDecay = 10000; -- How far the bullet travels before slowing down and being deleted (BUGGY)


Prompt: -- ROBLOX deviation: omitting _getSlots as it is specific to JS prototypes

Response:
function ModuleMockerClass:_ensureMockConfig(f): MockFunctionConfig
	local config = self._mockConfigRegistry[f]
	if not config then
		config = self:_defaultMockConfig()
		self._mockConfigRegistry[f] = config
	end

	return config
end


Prompt:
------------------------------------------------------------------------------------------------------------------------------
--// Static functions

Response:
local function getAlignMultiplier(enum)
	return (justify1[enum.Name] and 1) or (justify0[enum.Name] and 0) or 0.5;
end;

local function getClosestNumber(n, set)
	sort(set, function(a, b) return abs(n - a) < abs(n - b); end);
	return set[1];
end;


Prompt: -- 	How many studs the zombie can wander on the x and z axis in studs ; 0, 0 to stay still


Prompt: --// Damage Settings

Response:
	BaseDamage = 36; -- Torso Damage
	LimbDamage = 30; -- Arms and Legs
	ArmorDamage = 30; -- How much damage is dealt against armor (Name the armor "Armor")
	HeadDamage = 43; -- If you set this to 100, there's a chance the player won't die because of the heal script


Prompt:
--[[
	PartCache V4.0 by Xan the Dragon // Eti the Spirit -- RBX 18406183
	Update V4.0 has added Luau Strong Type Enforcement.

	Creating parts is laggy, especially if they are supposed to be there for a split second and/or need to be made frequently.
	This module aims to resolve this lag by pre-creating the parts and CFraming them to a location far away and out of sight.
	When necessary, the user can get one of these parts and CFrame it to where they need, then return it to the cache when they are done with it.

	According to someone instrumental in Roblox's backend technology, zeuxcg (https://devforum.roblox.com/u/zeuxcg/summary)...
		>> CFrame is currently the only "fast" property in that you can change it every frame without really heavy code kicking in. Everything else is expensive.

		- https://devforum.roblox.com/t/event-that-fires-when-rendering-finishes/32954/19

	This alone should ensure the speed granted by this module.

	HOW TO USE THIS MODULE:

	Look at the bottom of my thread for an API! https://devforum.roblox.com/t/partcache-for-all-your-quick-part-creation-needs/246641
--]]

Response: local table = require(script:WaitForChild("Table"))


Prompt: --// Declarables

Response:
local CannonReload = false

local RotLeftKeyDown = false
local RotRightKeyDown = false

local IncreaseAltKeyDown = false
local DecreaseAltKeyDown = false

local Degrees = 0
local Degrees2 = 0
	local MaxDown = -5
	local MaxUp = 16

local ShellType
	ShellType = Settings.DefaultShell

local Aiming = false

if Settings.AimReticle ~= 0 then
	System.Gun.Retical.Decal.Texture = ("rbxassetid://"..Settings.AimReticle)
end


Prompt: -- Bind drawer opening function to remote event

Response:
lamp.BoundingBox.ROBLOXInteractionEvent.OnServerEvent:connect(function(player, arguments)
	if player.Character and player.Character:FindFirstChild("Torso") then
		local torso = player.Character:FindFirstChild("Torso")
		local toTorso = torso.Position - lamp.BoundingBox.Position
		if toTorso.magnitude < clickDistance then
			lamp.Light.PointLight.Enabled = not lamp.Light.PointLight.Enabled
		end
	end
end)


Prompt:
--- Creates a link between two attachments. The module will constantly raycast between these two attachments.
-- @param attachment1 Attachment object (can have a group attribute)
-- @param attachment2 Attachment object

Response:
function Hitbox:LinkAttachments(attachment1: Attachment, attachment2: Attachment)
	local group: string? = attachment1:GetAttribute(DEFAULT_GROUP_NAME_INSTANCE)
	local point: Point = self:_CreatePoint(group, Hitbox.CastModes.LinkAttachments)

	point.Instances[1] = attachment1
	point.Instances[2] = attachment2
	table.insert(self.HitboxRaycastPoints, point)
end


Prompt: -- helpers

Response:
local function printWarningMessage(target)
	local msg = table.concat({
		string.format("Could not locate %s.", target),
		string.format("Clientside error reporting disabled for %s", Players.LocalPlayer.Name),
	}, " ")
	warn(msg)
end


Prompt: -- Don't edit if you don't know what you're doing --

Response:
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local DataStore = DataStoreService:GetOrderedDataStore("GlobalLeaderboard_" .. statsName)
local Frame = script.Parent.Frame
local Contents = Frame.Contents
local Template = script.objTemplate

local COLORS = {
	Default = Color3.fromRGB(38, 50, 56),
	Gold = Color3.fromRGB(255, 215, 0),
	Silver = Color3.fromRGB(192, 192, 192),
	Bronze = Color3.fromRGB(205, 127, 50)
}
local ABBREVIATIONS = { "K", "M", "B", "T" }

local function toHumanReadableNumber(num)
	if num < 1000 then
		return tostring(num)
	end

	local digits = math.floor(math.log10(num)) + 1
	local index = math.min(#ABBREVIATIONS, math.floor((digits - 1) / 3))
	local front = num / math.pow(10, index * 3)

	return string.format("%i%s+", front, ABBREVIATIONS[index])
end

local function getItems()
	local data = DataStore:GetSortedAsync(false, maxItems, minValueDisplay, maxValueDisplay)
	local topPage = data:GetCurrentPage()

	Contents.Items.Nothing.Visible = #topPage == 0 and true or false

	for position, v in ipairs(topPage) do
		local userId = v.key
		local value = v.value
		local username = "[Not Available]"
		local color = COLORS.Default

		local success, err = pcall(function()
			username = Players:GetNameFromUserIdAsync(userId)
		end)

		if position == 1 then
			color = COLORS.Gold
		elseif position == 2 then
			color = COLORS.Silver
		elseif position == 3 then
			color = COLORS.Bronze
		end

		local item = Template:Clone()
		item.Name = username
		item.LayoutOrder = position
		item.Values.Number.TextColor3 = color
		item.Values.Number.Text = position
		item.Values.Username.Text = username
		item.Values.Value.Text = abbreviateValue and toHumanReadableNumber(value) or value
		item.Parent = Contents.Items
	end
end

script.Parent.Parent.Color = headingColor
Frame.Heading.ImageColor3 = headingColor
Frame.Heading.Bar.BackgroundColor3 = headingColor

while true do
	for _, player in pairs(Players:GetPlayers()) do
		local leaderstats = player:FindFirstChild("leaderstats")

		if not leaderstats then
			warn("Couldn't find leaderstats!")
			break
		end

		local statsValue = leaderstats:FindFirstChild(statsName)

		if not statsValue then
			warn("Couldn't find " .. statsName .. " in leaderstats!")
			break
		end

		pcall(function()
			DataStore:UpdateAsync(player.UserId, function()
				return tonumber(statsValue.Value)
			end)
		end)
	end

	for _, item in pairs(Contents.Items:GetChildren()) do
		if item:IsA("Frame") then
			item:Destroy()
		end
	end

	getItems()

	wait()
	Frame.Heading.Heading.Text = statsName .. " Leaderboard"
	Contents.GuideTopBar.Value.Text = statsName
	wait(updateEvery)
end


Response:
A = script.Parent.Parent.Parent.Parent.Parent.Parent.Character
Option = script.Parent
on=false
function EyeGlow()
	if on==false then
		A.Tors.Waist.Torso.Breath:Play()
		on=true
	elseif on==true then
		A.Tors.Waist.Torso.Breath:Stop()
		on=false
	end
end
script.Parent.MouseButton1Click:connect(EyeGlow)


Prompt: -- separated enabling/disabling spawn points into a simple script to make sure it runs w/o yielding before players join

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

local globalSettings = require(ReplicatedStorage.DemoGlobalSettings)

if( game.PrivateServerId ~= "" and game.PrivateServerOwnerId == 0 ) then
	workspace.SpawnLocationLobby.Enabled = false
	workspace.SpawnLocation.Enabled = true
else
	--workspace.TempStorage.Test.SpawnLocationTEST.Enabled = true
	workspace.SpawnLocationLobby.Enabled = globalSettings.forceSpawnInTheLobby
	workspace.SpawnLocationHouse.Enabled = false -- change this to globalSettings.forceSpawnInTheLobby and the line below to false to spawn near the house
	workspace.SpawnLocation.Enabled = not globalSettings.forceSpawnInTheLobby
end


Prompt: --[[Wheel Alignment]]

Response:
	--[Don't physically apply alignment to wheels]
	--[Values are in degrees]
	Tune.FCamber		= -30
	Tune.RCamber		= -8
	Tune.FToe			= 0
	Tune.RToe			= 0


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

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

function playToolAnimation(animName, transitionTime, humanoid)

		local idx = rollAnimation(animName)


Prompt: -- [[ Update ]]--

Response:
function OrbitalCamera:Update(dt)
	local now = tick()
	local timeDelta = (now - self.lastUpdate)
	local userPanningTheCamera = CameraInput.getRotation() ~= Vector2.new()
	local camera = 	workspace.CurrentCamera
	local newCameraCFrame = camera.CFrame
	local newCameraFocus = camera.Focus
	local player = PlayersService.LocalPlayer
	local cameraSubject = camera and camera.CameraSubject
	local isInVehicle = cameraSubject and cameraSubject:IsA('VehicleSeat')
	local isOnASkateboard = cameraSubject and cameraSubject:IsA('SkateboardPlatform')

	if self.lastUpdate == nil or timeDelta > 1 then
		self.lastCameraTransform = nil
	end

	-- Reset tween speed if user is panning
	if userPanningTheCamera then
		self.lastUserPanCamera = tick()
	end

	local subjectPosition = self:GetSubjectPosition()

	if subjectPosition and player and camera then

		-- Process any dollying being done by gamepad
		-- TODO: Move this
		if self.gamepadDollySpeedMultiplier ~= 1 then
			self:SetCameraToSubjectDistance(self.currentSubjectDistance * self.gamepadDollySpeedMultiplier)
		end

		local VREnabled = VRService.VREnabled
		newCameraFocus = VREnabled and self:GetVRFocus(subjectPosition, timeDelta) or CFrame.new(subjectPosition)

		local flaggedRotateInput = CameraInput.getRotation()

		local cameraFocusP = newCameraFocus.p
		if VREnabled and not self:IsInFirstPerson() then
			local cameraHeight = self:GetCameraHeight()
			local vecToSubject = (subjectPosition - camera.CFrame.p)
			local distToSubject = vecToSubject.magnitude

			-- Only move the camera if it exceeded a maximum distance to the subject in VR
			if distToSubject > self.currentSubjectDistance or flaggedRotateInput.x ~= 0 then
				local desiredDist = math.min(distToSubject, self.currentSubjectDistance)

				-- Note that CalculateNewLookVector is overridden from BaseCamera
				vecToSubject = self:CalculateNewLookVector(vecToSubject.unit * X1_Y0_Z1, Vector2.new(flaggedRotateInput.x, 0)) * desiredDist

				local newPos = cameraFocusP - vecToSubject
				local desiredLookDir = camera.CFrame.lookVector
				if flaggedRotateInput.x ~= 0 then
					desiredLookDir = vecToSubject
				end
				local lookAt = Vector3.new(newPos.x + desiredLookDir.x, newPos.y, newPos.z + desiredLookDir.z)
				newCameraCFrame = CFrame.new(newPos, lookAt) + Vector3.new(0, cameraHeight, 0)
			end
		else
			-- rotateInput is a Vector2 of mouse movement deltas since last update
			self.curAzimuthRad = self.curAzimuthRad - flaggedRotateInput.x

			if self.useAzimuthLimits then
				self.curAzimuthRad = math.clamp(self.curAzimuthRad, self.minAzimuthAbsoluteRad, self.maxAzimuthAbsoluteRad)
			else
				self.curAzimuthRad = (self.curAzimuthRad ~= 0) and (math.sign(self.curAzimuthRad) * (math.abs(self.curAzimuthRad) % TAU)) or 0
			end

			self.curElevationRad = math.clamp(self.curElevationRad + flaggedRotateInput.y, self.minElevationRad, self.maxElevationRad)

			local cameraPosVector = self.currentSubjectDistance * ( CFrame.fromEulerAnglesYXZ( -self.curElevationRad, self.curAzimuthRad, 0 ) * UNIT_Z )
			local camPos = subjectPosition + cameraPosVector

			newCameraCFrame = CFrame.new(camPos, subjectPosition)
		end

		self.lastCameraTransform = newCameraCFrame
		self.lastCameraFocus = newCameraFocus
		if (isInVehicle or isOnASkateboard) and cameraSubject:IsA('BasePart') then
			self.lastSubjectCFrame = cameraSubject.CFrame
		else
			self.lastSubjectCFrame = nil
		end
	end

	self.lastUpdate = now
	return newCameraCFrame, newCameraFocus
end

return OrbitalCamera


Prompt: --Variables

Response:
local SeatInteractionCount = {}

local VehicleSeating = {}

local function getEffectsFolderFromSeat(seat)
	local parent = seat.Parent
	if parent:IsA("Model") then
		if parent:FindFirstChild("Effects") then
			return parent.Effects
		else
			return getEffectsFolderFromSeat(parent)
		end
	end
	return nil
end

local function playDoorSound(seat, sound)
	local sound = seat:FindFirstChild(sound.."Door")
	if sound then
		sound:Play()
	end
end