Prompt: --// All global vars will be wiped/replaced except script

Response:
return function(data)
	--local client = service.GarbleTable(client)
	local Player = service.Players.LocalPlayer
	local Mouse = Player:GetMouse()
	local InputService = service.UserInputService
	local gIndex = data.gIndex
	local gTable = data.gTable

	local Event = gTable.BindEvent
	local GUI = gTable.Object
	local Name = data.Name
	local Icon = data.Icon
	local Size = data.Size
	local Menu = data.Menu
	local Title = data.Title
	local Ready = data.Ready
	local Walls = data.Walls
	local noHide = data.NoHide
	local noClose = data.NoClose
	local onReady = data.OnReady
	local onClose = data.OnClose
	local onResize = data.OnResize
	local onRefresh = data.OnRefresh
	local onMinimize = data.OnMinimize
	local ContextMenu = data.ContextMenu
	local ResetOnSpawn = data.ResetOnSpawn
	local CanKeepAlive = data.CanKeepAlive
	local iconClicked = data.IconClicked
	local SizeLocked = data.SizeLocked or data.SizeLock
	local CanvasSize = data.CanvasSize
	local Position = data.Position
	local Content = data.Content or data.Children
	local MinSize = data.MinSize or {150, 50}
	local MaxSize = data.MaxSize or {math.huge, math.huge}
	local curIcon = Mouse.Icon
	local isClosed = false
	local Resizing = false
	local Refreshing = false
	local DragEnabled = true
	local checkProperty = service.CheckProperty
	local specialInsts = {}
	local inExpandable
	local addTitleButton
	local LoadChildren
	local BringToFront

	local Drag = GUI.Drag
	local Close = Drag.Close
	local Hide = Drag.Hide
	local Iconf = Drag.Icon
	local Titlef = Drag.Title
	local Refresh = Drag.Refresh
	local rSpinner = Refresh.Spinner
	local Main = Drag.Main
	local Tooltip = GUI.Desc
	local ScrollFrame = GUI.Drag.Main.ScrollingFrame
	local LeftSizeIcon = Main.LeftResizeIcon
	local RightSizeIcon = Main.RightResizeIcon
	local RightCorner = Main.RightCorner
	local LeftCorner = Main.LeftCorner
	local RightSide = Main.RightSide
	local LeftSide = Main.LeftSide
	local TopRight = Main.TopRight
	local TopLeft = Main.TopLeft
	local Bottom = Main.Bottom
	local Top = Main.Top

	function Expand(ent, point, text, richText)
		local label = point:FindFirstChild("Label")

		if label then
			ent.MouseLeave:Connect(function(x,y)
				if inExpandable == ent then
					point.Visible = false
				end
			end)

			ent.MouseMoved:Connect(function(x,y)
				inExpandable = ent

				local text = text or ent.Desc.Value
				label.Text = text
				label.RichText = richText
				label.TextScaled = richText

				local sizeText = label.ContentText

				local maxWidth = 400
				local bounds = service.TextService:GetTextSize(sizeText, label.TextSize, label.Font, Vector2.new(maxWidth, math.huge))

				local sizeX, sizeY = bounds.X + 10, bounds.Y + 10
				local posX = (x + 6 + sizeX) < GUI.AbsoluteSize.X and (x + 6) or (x - 6 - sizeX)
				local posY = (y - 6 - sizeY) > 0 and (y - 6 - sizeY) or (y)

				point.Size = UDim2.new(0, sizeX, 0, sizeY)
				point.Position = UDim2.new(0, posX, 0, posY)
				point.Visible = true
			end)
		end
	end

	function getNextPos(frame)
		local farXChild, farYChild
		for i,v in next,frame:GetChildren() do
			if checkProperty(v, "Size") then
				if not farXChild or (v.AbsolutePosition.X + v.AbsoluteSize.X) > (farXChild.AbsolutePosition.X + farXChild.AbsoluteSize.X) then
					farXChild = v
				end

				if not farYChild or (v.AbsolutePosition.Y + v.AbsoluteSize.Y) > (farXChild.AbsolutePosition.Y + farXChild.AbsoluteSize.Y) then
					farYChild = v
				end
			end
		end

		return ((not farXChild or not farYChild) and UDim2.new(0,0,0,0)) or UDim2.new(farXChild.Position.X.Scale, farXChild.Position.X.Offset + farXChild.AbsoluteSize.X, farYChild.Position.Y.Scale, farYChild.Position.Y.Offset + farYChild.AbsoluteSize.Y)
	end

	function LoadChildren(Obj, Children)
		if Children then
			local runWhenDone = Children.RunWhenDone and functionify(Children.RunWhenDone, Obj)
			for class,data in next,Children do
				if type(data) == "table" then
					if not data.Parent then data.Parent = Obj end
					create(data.Class or data.ClassName or class, data)
				elseif type(data) == "function" or type(data) == "string" and not runWhenDone then
					runWhenDone = functionify(data, Obj)
				end
			end

			if runWhenDone then
				runWhenDone(Obj)
			end
		end
	end

	function BringToFront()
		for i,v in ipairs(Player.PlayerGui:GetChildren()) do
			if v:FindFirstChild("__ADONIS_WINDOW") then
				v.DisplayOrder = 100
			end
		end

		GUI.DisplayOrder = 101
	end

	function addTitleButton(data)
		local startPos = 1
		local realPos
		local new
		local original = Hide
		local diff = (Hide.AbsolutePosition.X + Hide.AbsoluteSize.X) - Close.AbsolutePosition.X;
		local far = Close;

		for i,obj in ipairs(Drag:GetChildren()) do
			if obj:IsA("TextButton") then
				if obj.Visible and obj.AbsolutePosition.X < far.AbsolutePosition.X then
					far = obj;
				end
			end
		end;

		local size = data.Size or original.Size;
		local xPos = far.Position.X.Offset - (size.X.Offset - diff);
		realPos = UDim2.new(far.Position.X.Scale, xPos, original.Position.Y.Scale, original.Position.Y.Offset)

		data.Name = "__TITLEBUTTON"
		data.Size = size
		data.Parent = Drag
		data.ZIndex = data.ZIndex or original.ZIndex
		data.Position = data.Position or realPos
		data.TextSize = data.TextSize or original.TextSize
		data.TextColor3 = data.TextColor3 or original.TextColor3
		data.TextScaled = data.TextScaled or original.TextScaled
		data.TextScaled = data.TextScaled or original.TextScaled
		data.TextWrapped = data.TextWrapped or original.TextWrapped
		data.TextStrokeColor3 = data.TextStrokeColor3 or original.TextStrokeColor3
		data.TextTransparency = data.TextTransparency or original.TextTransparency
		data.TextStrokeTransparency = data.TextStrokeTransparency or original.TextStrokeTransparency
		data.BackgroundTransparency = data.BackgroundTransparency or original.BackgroundTransparency
		data.BackgroundColor3 = data.BackgroundColor3 or original.BackgroundColor3
		data.BorderSizePixel = data.BorderSizePixel or original.BorderSizePixel
		--data.TextXAlignment = data.TextXAlignment or original.TextXAlignment
		--data.TextYAlignment = data.TextYAlignment or original.TextYAlignment
		data.Font = data.Font or original.Font

		return create("TextButton", data)
	end

	function functionify(func, object)
		if type(func) == "string" then
			if object then
				local env = GetEnv()
				env.Object = object
				return client.Core.LoadCode(func, env)
			else
				return client.Core.LoadCode(func)
			end
		else
			return func
		end
	end

	function create(class, dataFound, existing)
		local data = dataFound or {}
		local class = data.Class or data.ClassName or class
		local new = existing or (specialInsts[class] and specialInsts[class]:Clone()) or service.New(class)
		local parent = data.Parent or new.Parent

		if dataFound then
			data.Parent = nil

			if data.Class or data.ClassName then
				data.Class = nil
				data.ClassName = nil
			end

			if not data.BorderColor3 and checkProperty(new, "BorderColor3") then
				new.BorderColor3 = dBorder
			end

			if not data.CanvasSize and checkProperty(new, "CanvasSize") then
				new.CanvasSize = dCanvasSize
			end

			if not data.BorderSizePixel and checkProperty(new, "BorderSizePixel") then
				new.BorderSizePixel = dPixelSize
			end

			if not data.BackgroundColor3 and checkProperty(new, "BackgroundColor3") then
				new.BackgroundColor3 = dBackground
			end

			if not data.PlaceholderColor3 and checkProperty(new, "PlaceholderColor3") then
				new.PlaceholderColor3 = dPlaceholderColor
			end

			if not data.Transparency and not data.BackgroundTransparency and checkProperty(new, "Transparency") and checkProperty(new, "BackgroundTransparency")  then
				new.BackgroundTransparency = dTransparency
			elseif data.Transparency and checkProperty(new, "BackgroundTransparency") then
				new.BackgroundTransparency = data.Transparency
			end

			if not data.TextColor3 and not data.TextColor and checkProperty(new, "TextColor3") then
				new.TextColor3 = dTextColor
			elseif data.TextColor then
				new.TextColor3 = data.TextColor
			end

			if not data.Font and checkProperty(new, "Font") then
				data.Font = dFont
			end

			if not data.TextSize and checkProperty(new, "TextSize") then
				data.TextSize = dTextSize
			end

			if not data.BottomImage and not data.MidImage and not data.TopImage and class == "ScrollingFrame" then
				new.BottomImage = dScrollImage
				new.MidImage = dScrollImage
				new.TopImage = dScrollImage
			end

			if not data.Size and checkProperty(new, "Size") then
				new.Size = dSize
			end

			if not data.Position and checkProperty(new, "Position") then
				new.Position = dPosition
			end

			if not data.ZIndex and checkProperty(new, "ZIndex") then
				new.ZIndex = dZIndex
				if parent and checkProperty(parent, "ZIndex") then
					new.ZIndex = parent.ZIndex
				end
			end

			if data.TextChanged and class == "TextBox" then
				local textChanged = functionify(data.TextChanged, new)
				new.FocusLost:Connect(function(enterPressed)
					textChanged(new.Text, enterPressed, new)
				end)
			end

			if (data.OnClicked or data.OnClick) and (class == "TextButton" or class == "ImageButton") then
				local debounce = false;
				local doDebounce = data.Debounce;
				local onClick = functionify((data.OnClicked or data.OnClick), new)
				new.MouseButton1Down:Connect(function()
					if not debounce then
						if doDebounce then
							debounce = true
						end

						onClick(new)

						debounce = false
					end
				end)
			end

			if data.Events then
				for event,func in pairs(data.Events) do
					local realFunc = functionify(func, new)
					Event(new[event], function(...)
						realFunc(...)
					end)
				end
			end

			if data.Visible == nil then
				data.Visible = true
			end

			if data.LabelProps then
				data.LabelProperties = data.LabelProps
			end
		end

		if class == "Entry" then
			local label = new.Text
			local dots = new.Dots
			local desc = new.Desc
			local richText = data.RichText or label.RichText

			label.ZIndex = data.ZIndex or new.ZIndex
			dots.ZIndex = data.ZIndex or new.ZIndex

			if data.Text then
				label.Text = data.Text
				label.Visible = true
				data.Text = nil
			end

			if data.Desc or data.ToolTip then
				desc.Value = data.Desc or data.ToolTip
				data.Desc = nil
			end

			Expand(new, Tooltip, nil, richText)
		else
			if data.ToolTip then
				Expand(new, Tooltip, data.ToolTip, data.RichText)
			end
		end

		if class == "ButtonEntry" then
			local button = new.Button
			local debounce = false
			local onClicked = functionify(data.OnClicked, button)

			new:SetSpecial("DoClick",function()
				if not debounce then
					debounce = true
					if onClicked then
						onClicked(button)
					end
					debounce = false
				end
			end)

			new.Text = data.Text or new.Text
			button.ZIndex = data.ZIndex or new.ZIndex
			button.MouseButton1Down:Connect(new.DoClick)
		end

		if class == "Boolean" then
			local enabled = data.Enabled
			local debounce = false
			local onToggle = functionify(data.OnToggle, new)
			local function toggle(isEnabled)
				if not debounce then
					debounce = true
					if (isEnabled ~= nil and isEnabled) or (isEnabled == nil and enabled) then
						enabled = false
						new.Text = "Disabled"
					elseif (isEnabled ~= nil and isEnabled == false) or (isEnabled == nil and not enabled) then
						enabled = true
						new.Text = "Enabled"
					end

					if onToggle then
						onToggle(enabled, new)
					end
					debounce = false
				end
			end

			--new.ZIndex = data.ZIndex
			new.Text = (enabled and "Enabled") or "Disabled"
			new.MouseButton1Down:Connect(function()
				if onToggle then
					toggle()
				end
			end)

			new:SetSpecial("Toggle",function(ignore, isEnabled) toggle(isEnabled) end)
		end

		if class == "StringEntry" then
			local box = new.Box
			local ignore

			new.Text = data.Text or new.Text
			box.ZIndex = data.ZIndex or new.ZIndex

			if data.BoxText then
				box.Text = data.BoxText
			end

			if data.BoxProperties then
				for i,v in next,data.BoxProperties do
					if checkProperty(box, i) then
						box[i] = v
					end
				end
			end

			if data.TextChanged then
				local textChanged = functionify(data.TextChanged, box)
				box.Changed:Connect(function(p)
					if p == "Text" and not ignore then
						textChanged(box.Text)
					end
				end)

				box.FocusLost:Connect(function(enter)
					local change = textChanged(box.Text, true, enter)
					if change then
						ignore = true
						box.Text = change
						ignore = false
					end
				end)
			end

			new:SetSpecial("SetValue",function(ignore, newValue) box.Text = newValue end)
		end

		if class == "Slider" then
			local mouseIsIn = false
			local posValue = new.Percentage
			local slider = new.Slider
			local bar = new.SliderBar
			local drag = new.Drag
			local moving = false
			local value = 0
			local onSlide = functionify(data.OnSlide, new)

			bar.ZIndex = data.ZIndex or new.ZIndex
			slider.ZIndex = bar.ZIndex+1
			drag.ZIndex = slider.ZIndex+1
			drag.Active = true

			if data.Value then
				slider.Position = UDim2.new(0.5, -10, 0.5, -10)
				drag.Position = slider.Position
			end

			bar.InputBegan:Connect(function(input)
				if not moving and input.UserInputType == Enum.UserInputType.MouseButton1 then
					value = ((Mouse.X)-(new.AbsolutePosition.X))/(new.AbsoluteSize.X)

					if value < 0 then
						value = 0
					elseif value > 1 then
						value = 1
					end

					slider.Position = UDim2.new(value, -10, 0.5, -10)
					drag.Position = slider.Position
					posValue.Value = value

					if onSlide then
						onSlide(value)
					end
				end
			end)

			drag.DragBegin:Connect(function()
				moving = true
			end)

			drag.DragStopped:Connect(function()
				moving = false
				drag.Position = slider.Position
			end)

			drag.Changed:Connect(function()
				if moving then
					value = ((Mouse.X)-(new.AbsolutePosition.X))/(new.AbsoluteSize.X)

					if value < 0 then
						value = 0
					elseif value > 1 then
						value = 1
					end

					slider.Position = UDim2.new(value, -10, 0.5, -10)
					posValue.Value = value

					if onSlide then
						onSlide(value)
					end
				end
			end)

			new:SetSpecial("SetValue",function(ignore, newValue)
				if newValue and tonumber(newValue) then
					value = tonumber(newValue)
					posValue.Value = value
					slider.Position = UDim2.new(value, -10, 0.5, -10)
					drag.Position = slider.Position
				end
			end)
		end

		if class == "Dropdown" then
			local menu = new.Menu
			local downImg = new.Down
			local selected = new.dSelected
			local options = data.Options
			local curSelected = data.Selected or data.Selection
			local onSelect = functionify(data.OnSelection or data.OnSelect or function()end)
			local textProps = data.TextProperties
			local scroller = create("ScrollingFrame", {
				Parent = menu;
				Size = UDim2.new(1, 0, 1, 0);
				Position = UDim2.new(0, 0, 0, 0);
				BackgroundTransparency = 1;
				ZIndex = 100;
			})

			menu.ZIndex = scroller.ZIndex
			menu.Parent = GUI
			menu.Visible = false
			menu.Size = UDim2.new(0, new.AbsoluteSize.X, 0, 100);
			menu.BackgroundColor3 = data.BackgroundColor3 or new.BackgroundColor3

			if data.TextAlignment then
				selected.TextXAlignment = data.TextAlignment
				selected.Position = UDim2.new(0, 30, 0, 0);
			end

			if data.NoArrow then
				downImg.Visible = false
			end

			new:SetSpecial("MenuContainer", menu)

			new.Changed:Connect(function(p)
				if p == "AbsolutePosition" and menu.Visible then
					menu.Position = UDim2.new(0, new.AbsolutePosition.X, 0, new.AbsolutePosition.Y+new.AbsoluteSize.Y)
				elseif p == "AbsoluteSize" or p == "Parent" then
					downImg.Size = UDim2.new(0, new.AbsoluteSize.Y, 1, 0);
					if data.TextAlignment == "Right" then
						downImg.Position = UDim2.new(0, 0, 0.5, -(downImg.AbsoluteSize.X/2))
						selected.Position = UDim2.new(0, new.AbsoluteSize.Y, 0, 0);
					else
						downImg.Position = UDim2.new(1, -downImg.AbsoluteSize.X, 0.5, -(downImg.AbsoluteSize.X/2))
					end

					selected.Size = UDim2.new(1, -downImg.AbsoluteSize.X, 1, 0);

					if options and #options <= 6 then
						menu.Size = UDim2.new(0, new.AbsoluteSize.X, 0, 30*#options);
					else
						menu.Size = UDim2.new(0, new.AbsoluteSize.X, 0, 30*6);
						scroller:ResizeCanvas(false, true);
					end
				end
			end)

			selected.ZIndex = new.ZIndex
			downImg.ZIndex = new.ZIndex

			if textProps then
				for i,v in next,textProps do
					selected[i] = v
				end
			end

			if options then
				for i,v in next,options do
					local button = scroller:Add("TextButton", {
						Text = "  ".. tostring(v);
						Size = UDim2.new(1, -10, 0, 30);
						Position = UDim2.new(0, 5, 0, 30*(i-1));
						ZIndex = menu.ZIndex;
						BackgroundTransparency = 1;
						OnClick = function()
							selected.Text = v;
							onSelect(v, new);
							menu.Visible = false
						end
					})

					if textProps then
						for i,v in next,textProps do
							button[i] = v
						end
					end
				end

				if curSelected then
					selected.Text = curSelected
				else
					selected.Text = "No Selection"
				end

				local function showMenu()
					menu.Position = UDim2.new(0, new.AbsolutePosition.X, 0, new.AbsolutePosition.Y+new.AbsoluteSize.Y)
					menu.Visible = not menu.Visible
				end

				selected.MouseButton1Down:Connect(showMenu)
				downImg.MouseButton1Down:Connect(showMenu)
			end
		end

		if class == "TabFrame" then
			local buttonsTab = {};
			local buttons = create("ScrollingFrame", nil, new.Buttons)
			local frames = new.Frames
			local numTabs = 0
			local buttonSize = data.ButtonSize or 60

			new.BackgroundTransparency = data.BackgroundTransparency or 1
			buttons.ZIndex = data.ZIndex or new.ZIndex
			frames.ZIndex = buttons.ZIndex

			new:SetSpecial("GetTab", function(ignore, name)
				return frames:FindFirstChild(name)
			end)

			new:SetSpecial("NewTab", function(ignore, name, data)
				local data = data or {}
				--local numChildren = #frames:GetChildren()
				local nextPos = getNextPos(buttons);
				local textSize = service.TextService:GetTextSize(data.Text or name, dTextSize, dFont, buttons.AbsoluteSize)
				local oTextTrans = data.TextTransparency
				local isOpen = false
				local disabled = false
				local tabFrame = create("ScrollingFrame",{
					Name = name;
					Size = UDim2.new(1, 0, 1, 0);
					Position = UDim2.new(0, 0, 0, 0);
					BorderSizePixel = 0;
					BackgroundTransparency = data.FrameTransparency or data.Transparency;
					BackgroundColor3 = data.Color or dSecondaryBackground;
					ZIndex = buttons.ZIndex;
					Visible = false;
				})

				local tabButton = create("TextButton",{
					Name = name;
					Text = data.Text or name;
					Size = UDim2.new(0, textSize.X+20, 1, 0);
					ZIndex = buttons.ZIndex;
					Position = UDim2.new(0, (nextPos.X.Offset > 0 and nextPos.X.Offset+5) or 0, 0, 0);
					TextColor3 = data.TextColor;
					BackgroundTransparency = 0.7;
					TextTransparency = data.TextTransparency;
					BackgroundColor3 = data.Color or dSecondaryBackground;
					BorderSizePixel = 0;
				})

				tabFrame:SetSpecial("FocusTab",function()
					for i,v in next,buttonsTab do
						if isGui(v) then
							v.BackgroundTransparency = (v:IsDisabled() and 0.9) or 0.7
							v.TextTransparency = (v:IsDisabled() and 0.9) or 0.7
						end
					end

					for i,v in next,frames:GetChildren() do
						if isGui(v) then
							v.Visible = false
						end
					end

					tabButton.BackgroundTransparency = data.Transparency or 0
					tabButton.TextTransparency = data.TextTransparency or 0
					tabFrame.Visible = true

					if data.OnFocus then
						data.OnFocus(true)
					end
				end)

				if numTabs == 0 then
					tabFrame.Visible = true
					tabButton.BackgroundTransparency = data.Transparency or 0
				end

				tabButton.MouseButton1Down:Connect(function()
					if not disabled then
						tabFrame:FocusTab()
					end
				end)

				tabButton.Parent = buttons
				tabFrame.Parent = frames
				buttons:ResizeCanvas(true, false)

				tabFrame:SetSpecial("Disable", function()
					disabled = true;
					tabButton.BackgroundTransparency = 0.9;
					tabButton.TextTransparency = 0.9
				end)

				tabFrame:SetSpecial("Enable", function()
					disabled = false;
					tabButton.BackgroundTransparency = 0.7;
					tabButton.TextTransparency = data.TextTransparency or 0;
				end)

				tabButton:SetSpecial("IsDisabled", function()
					return disabled;
				end)

				table.insert(buttonsTab, tabButton);

				numTabs = numTabs+1;

				return tabFrame,tabButton
			end)
		end

		if class == "ScrollingFrame" then
			local genning = false
			if not data.ScrollBarThickness then
				data.ScrollBarThickness = dScrollBar
			end

			new:SetSpecial("GenerateList", function(obj, list, labelProperties, bottom)
				local list = list or obj;
				local genHold = {}
				local entProps = labelProperties or {}

				genning = genHold
				new:ClearAllChildren()

				new.AutomaticCanvasSize = "Y"

				local layout = service.New("UIListLayout", {
					Parent = new;
					Name = "LayoutOrder";
					FillDirection = data.Layout_FillDirection or "Vertical";
					VerticalAlignment = data.Layout_VerticalAlignment or "Top";
					HorizontalAlignment = data.Layout_HorizontalAlignment or "Left";
				})

				local num = 0
				for i,v in next,list do
					local text = v;
					local desc;
					local color
					local richText;

					if type(v) == "table" then
						text = v.Text
						desc = v.Desc
						color = v.Color

						if v.RichTextAllowed or entProps.RichTextAllowed then
							richText = true
						end
					end

					local label
					if v.TextSelectable or entProps.TextSelectable then
						label = create("TextBox",{
							Text = " "..tostring(text);
							ToolTip = desc;
							Size = UDim2.new(1,-5,0,(entProps.ySize or 20));
							Visible = true;
							BackgroundTransparency = 1;
							Font = "Arial";
							TextSize = 14;
							TextStrokeTransparency = 0.8;
							TextXAlignment = "Left";
							Position = UDim2.new(0,0,0,num*(entProps.ySize or 20));
							RichText = richText or false;
							TextEditable = false;
							ClearTextOnFocus = false;
						})
					else
						label = create("TextLabel",{
							Text = " "..tostring(text);
							ToolTip = desc;
							Size = UDim2.new(1,-5,0,(entProps.ySize or 20));
							Visible = true;
							BackgroundTransparency = 1;
							Font = "Arial";
							TextSize = 14;
							TextStrokeTransparency = 0.8;
							TextXAlignment = "Left";
							Position = UDim2.new(0,0,0,num*(entProps.ySize or 20));
							RichText = richText or false;
						})
					end

					if color then
						label.TextColor3 = color
					end

					if labelProperties then
						for i,v in pairs(entProps) do
							if checkProperty(label, i) then
								label[i] = v
							end
						end
					end

					if genning == genHold then
						label.Parent = new;
					else
						label:Destroy()
						break
					end

					num = num+1

					if data.Delay then
						if type(data.Delay) == "number" then
							wait(data.Delay)
						elseif i%100 == 0 then
							wait(0.1)
						end
					end
				end

				--new:ResizeCanvas(false, true, false, bottom, 5, 5, 50)
				if bottom then
					new.CanvasPosition = Vector2.new(0, layout.AbsoluteContentSize.Y);
				end

				genning = nil
			end)

			new:SetSpecial("ResizeCanvas", function(ignore, onX, onY, xMax, yMax, xPadding, yPadding, modBreak)
				local xPadding,yPadding = data.xPadding or 5, data.yPadding or 5
				local newY, newX = 0,0

				if not onX and not onY then onX = false onY = true end
				for i,v in next,new:GetChildren() do
					if v:IsA("GuiObject") then
						if onY then
							v.Size = UDim2.new(v.Size.X.Scale, v.Size.X.Offset, 0, v.AbsoluteSize.Y)
							v.Position = UDim2.new(v.Position.X.Scale, v.Position.X.Offset, 0, v.AbsolutePosition.Y-new.AbsolutePosition.Y)
						end

						if onX then
							v.Size = UDim2.new(0, v.AbsoluteSize.X, v.Size.Y.Scale, v.Size.Y.Offset)
							v.Position = UDim2.new(0, v.AbsolutePosition.X-new.AbsolutePosition.X, v.Position.Y.Scale, v.Position.Y.Offset)
						end

						local yLower = v.Position.Y.Offset + v.Size.Y.Offset
						local xLower = v.Position.X.Offset + v.Size.X.Offset
						newY = math.max(newY, yLower)
						newX = math.max(newX, xLower)
						if modBreak then
							if i%modBreak == 0 then
								wait(1/60)
							end
						end
					end
				end

				if onY then
					new.CanvasSize = UDim2.new(new.CanvasSize.X.Scale, new.CanvasSize.X.Offset, 0, newY+yPadding)
				end

				if onX then
					new.CanvasSize = UDim2.new(0, newX + xPadding, new.CanvasSize.Y.Scale, new.CanvasSize.Y.Offset)
				end

				if xMax then
					new.CanvasPosition = Vector2.new((newX + xPadding)-new.AbsoluteSize.X, new.CanvasPosition.Y)
				end

				if yMax then
					new.CanvasPosition = Vector2.new(new.CanvasPosition.X, (newY+yPadding)-new.AbsoluteSize.Y)
				end
			end)

			if data.List then new:GenerateList(data.List) data.List = nil end
		end

		LoadChildren(new, data.Content or data.Children)

		data.Children = nil
		data.Content = nil

		for i,v in next,data do
			if checkProperty(new, i) then
				new[i] = v
			end
		end

		new.Parent = parent

		return apiIfy(new, data, class),data
	end

	function apiIfy(gui, data, class)
		local newGui = service.Wrap(gui)
		gui:SetSpecial("Object", gui)
		gui:SetSpecial("SetPosition", function(ignore, newPos) gui.Position = newPos end)
		gui:SetSpecial("SetSize", function(ingore, newSize) gui.Size = newSize end)
		gui:SetSpecial("Add", function(ignore, class, data)
			if not data then data = class class = ignore end
			local new = create(class,data);
			new.Parent = gui;
			return apiIfy(new, data, class)
		end)

		gui:SetSpecial("Copy", function(ignore, class, gotData)
			local newData = {}
			local new

			for i,v in next,data do
				newData[i] = v
			end

			for i,v in next,gotData do
				newData[i] = v
			end

			new = create(class or data.Class or gui.ClassName, newData);
			new.Parent = gotData.Parent or gui.Parent;
			return apiIfy(new, data, class)
		end)

		return newGui
	end

	function doClose()
		if not isClosed then
			isClosed = true

			if onClose then
				local r,e = pcall(onClose)
				if e then
					warn(e)
				end
			end

			gTable:Destroy()
		end
	end

	function isVisible()
		return Main.Visible
	end

	local hideLabel = Hide:FindFirstChild("TextLabel")
	function doHide(doHide)
		local origLH = Hide.LineHeight
		if doHide or (doHide == nil and Main.Visible) then
			dragSize = Drag.Size
			Main.Visible = false
			Drag.BackgroundTransparency = Main.BackgroundTransparency
			Drag.BackgroundColor3 = Main.BackgroundColor3
			Drag.Size = UDim2.new(0, 200, Drag.Size.Y.Scale, Drag.Size.Y.Offset)

			if hideLabel then
				hideLabel.Text = "+"
			else
				Hide.Text = "+"
			end

			Hide.LineHeight = origLH
			gTable.Minimized = true
		elseif doHide == false or (doHide == nil and not Main.Visible) then
			Main.Visible = true
			Drag.BackgroundTransparency = 1
			Drag.Size = dragSize or Drag.Size

			if hideLabel then
				hideLabel.Text = "-"
			else
				Hide.Text = "-"
			end

			Hide.LineHeight = origLH
			gTable.Minimized = false
		end

		if onMinimize then
			onMinimize(Main.Visible)
		end

		if Walls then
			wallPosition()
		end
	end

	function isInFrame(x, y, frame)
		if x > frame.AbsolutePosition.X and x < (frame.AbsolutePosition.X+frame.AbsoluteSize.X) and y > frame.AbsolutePosition.Y and y < (frame.AbsolutePosition.Y+frame.AbsoluteSize.Y) then
			return true
		else
			return false
		end
	end

	function wallPosition()
		if gTable.Active then
			local x,y = Drag.AbsolutePosition.X, Drag.AbsolutePosition.Y
			local abx, gx, gy = Drag.AbsoluteSize.X, GUI.AbsoluteSize.X, GUI.AbsoluteSize.Y
			local ySize = (Main.Visible and Main.AbsoluteSize.Y) or Drag.AbsoluteSize.Y

			if x < 0 then
				Drag.Position = UDim2.new(0, 0, Drag.Position.Y.Scale, Drag.Position.Y.Offset)
			end

			if y < 0 then
				Drag.Position = UDim2.new(Drag.Position.X.Scale, Drag.Position.X.Offset, 0, 0)
			end

			if x + abx > gx then
				Drag.Position = UDim2.new(0, GUI.AbsoluteSize.X - Drag.AbsoluteSize.X, Drag.Position.Y.Scale, Drag.Position.Y.Offset)
			end

			if y + ySize > gy then
				Drag.Position = UDim2.new(Drag.Position.X.Scale, Drag.Position.X.Offset, 0, GUI.AbsoluteSize.Y - ySize)
			end
		end
	end

	function setSize(newSize)
		if newSize and type(newSize) == "table" then
			if newSize[1] < 50 then newSize[1] = 50 end
			if newSize[2] < 50 then newSize[2] = 50 end

			Drag.Size = UDim2.new(0,newSize[1],Drag.Size.Y.Scale,Drag.Size.Y.Offset)
			Main.Size = UDim2.new(1,0,0,newSize[2])
		end
	end

	function setPosition(newPos)
		if newPos and typeof(newPos) == "UDim2" then
			Drag.Position = newPos
		elseif newPos and type(newPos) == "table" then
			Drag.Position = UDim2.new(0, newPos[1], 0, newPos[2])
		elseif Size and not newPos then
			Drag.Position = UDim2.new(0.5, -Drag.AbsoluteSize.X/2, 0.5, -Main.AbsoluteSize.Y/2)
		end
	end

	if Name then
		gTable.Name = Name
		if data.AllowMultiple ~= nil and data.AllowMultiple == false then
			local found, num = client.UI.Get(Name, GUI, true)
			if found then
				doClose()
				return nil
			end
		end
	end

	if Size then
		setSize(Size)
	end

	if Position then
		setPosition(Position)
	end

	if Title then
		Titlef.Text = Title
	end

	if CanKeepAlive or not ResetOnSpawn then
		gTable.CanKeepAlive = true
		GUI.ResetOnSpawn = false
	elseif ResetOnSpawn then
		gTable.CanKeepAlive = false
		GUI.ResetOnSpawn = true
	end

	if Icon then
		Iconf.Visible = true
		Iconf.Image = Icon
		Iconf.Size = UDim2.new(0, 16, 0, 16)
		Iconf.Position = UDim2.new(0, 6, 0, 5)
		Iconf.ImageTransparency = 0
	end

	if CanvasSize then
		ScrollFrame.CanvasSize = CanvasSize
	end

	if noClose then
		Close.Visible = false
		Refresh.Position = Hide.Position
		Hide.Position = Close.Position
	end

	if noHide then
		Hide.Visible = false
		Refresh.Position = Hide.Position
	end

	if Walls then
		Drag.DragStopped:Connect(function()
			wallPosition()
		end)
	end

	if onRefresh then
		local debounce = false
		function DoRefresh()
			if not Refreshing then
				local done = false
				Refreshing = true

				spawn(function()
					while gTable.Active and not done do
						for i = 0,180,10 do
							rSpinner.Rotation = -i
							wait(1/60)
						end
					end
				end)

				onRefresh()
				wait(1)
				done = true
				Refreshing = false
			end
		end

		Refresh.MouseButton1Down:Connect(function()
			if not debounce then
				debounce = true
				DoRefresh()
				debounce = false
			end
		end)

		Titlef.Size = UDim2.new(1, -130, Titlef.Size.Y.Scale, Titlef.Size.Y.Offset)
	else
		Refresh.Visible = false
	end

	if iconClicked then
		Iconf.MouseButton1Down(function()
			iconClicked(data, GUI, Iconf)
		end)
	end

	if Menu then
		data.Menu.Text     = ""
		data.Menu.Parent   = Main
		data.Menu.Size     = UDim2.new(1,-10,0,25)
		data.Menu.Position = UDim2.new(0,5,0,25)
		ScrollFrame.Size   = UDim2.new(1,-10,1,-55)
		ScrollFrame.Position       = UDim2.new(0,5,0,50)
		data.Menu.BackgroundColor3 = Color3.fromRGB(216, 216, 216)
		data.Menu.BorderSizePixel  = 0
		create("TextLabel",data.Menu)
	end

	if not SizeLocked then
		local startXPos = Drag.AbsolutePosition.X
		local startYPos = Drag.AbsolutePosition.Y
		local startXSize = Drag.AbsoluteSize.X
		local startYSize = Drag.AbsoluteSize.Y
		local vars = client.Variables
		local newIcon
		local inFrame
		local ReallyInFrame

		local function readify(obj)
			obj.MouseEnter:Connect(function()
				ReallyInFrame = obj
			end)

			obj.MouseLeave:Connect(function()
				if ReallyInFrame == obj then
					ReallyInFrame = nil
				end
			end)
		end

		--[[
		readify(Drag)
		readify(ScrollFrame)
		readify(TopRight)
		readify(TopLeft)
		readify(RightCorner)
		readify(LeftCorner)
		readify(RightSide)
		readify(LeftSide)
		readify(Bottom)
		readify(Top)
		--]]

		function checkMouse(x, y) --// Update later to remove frame by frame pos checking
			if gTable.Active and Main.Visible then
				if isInFrame(x, y, Drag) or isInFrame(x, y, ScrollFrame) then
					inFrame = nil
					newIcon = nil
				elseif isInFrame(x, y, TopRight) then
					inFrame = "TopRight"
					newIcon = MouseIcons.TopRight
				elseif isInFrame(x, y, TopLeft) then
					inFrame = "TopLeft"
					newIcon = MouseIcons.TopLeft
				elseif isInFrame(x, y, RightCorner) then
					inFrame = "RightCorner"
					newIcon = MouseIcons.RightCorner
				elseif isInFrame(x, y, LeftCorner) then
					inFrame = "LeftCorner"
					newIcon = MouseIcons.LeftCorner
				elseif isInFrame(x, y, RightSide) then
					inFrame = "RightSide"
					newIcon = MouseIcons.Horizontal
				elseif isInFrame(x, y, LeftSide) then
					inFrame = "LeftSide"
					newIcon = MouseIcons.Horizontal
				elseif isInFrame(x, y, Bottom) then
					inFrame = "Bottom"
					newIcon = MouseIcons.Vertical
				elseif isInFrame(x, y, Top) then
					inFrame = "Top"
					newIcon = MouseIcons.Vertical
				else
					inFrame = nil
					newIcon = nil
				end
			else
				inFrame = nil
			end

			if (not client.Variables.MouseLockedBy) or client.Variables.MouseLockedBy == gTable then
				if inFrame and newIcon then
					Mouse.Icon = newIcon
					client.Variables.MouseLockedBy = gTable
				elseif client.Variables.MouseLockedBy == gTable then
					Mouse.Icon = curIcon
					client.Variables.MouseLockedBy = nil
				end
			end
		end

		local function inputStart(x, y)
			checkMouse(x, y)
			if gTable.Active and inFrame and not Resizing and not isInFrame(x, y, ScrollFrame) and not isInFrame(x, y, Drag) then
				Resizing = inFrame
				startXPos = Drag.AbsolutePosition.X
				startYPos = Drag.AbsolutePosition.Y
				startXSize = Drag.AbsoluteSize.X
				startYSize = Main.AbsoluteSize.Y
			end
		end

		local function inputEnd()
			if gTable.Active then
				if Resizing and onResize then
					onResize(UDim2.new(Drag.Size.X.Scale, Drag.Size.X.Offset, Main.Size.Y.Scale, Main.Size.Y.Offset))
				end

				Resizing = nil
				Mouse.Icon = curIcon
				--DragEnabled = true
				--if Walls then
				--	wallPosition()
				--end
			end
		end

		local function inputMoved(x, y)
			if gTable.Active then
				if Mouse.Icon ~= MouseIcons.TopRight and Mouse.Icon ~= MouseIcons.TopLeft and Mouse.Icon ~= MouseIcons.RightCorner and Mouse.Icon ~= MouseIcons.LeftCorner and Mouse.Icon ~= MouseIcons.Horizontal and Mouse.Icon ~= MouseIcons.Vertical then
					curIcon = Mouse.Icon
				end

				if Resizing then
					local moveX = false
					local moveY = false
					local newPos = Drag.Position
					local xPos, yPos = x, y
					local newX, newY = startXSize, startYSize

					--DragEnabled = false

					if Resizing == "TopRight" then
						newX = (xPos - startXPos) + 3
						newY = (startYPos - yPos) + startYSize -1
						moveY = true
					elseif Resizing == "TopLeft" then
						newX = (startXPos - xPos) + startXSize -1
						newY = (startYPos - yPos) + startYSize -1
						moveY = true
						moveX = true
					elseif Resizing == "RightCorner" then
						newX = (xPos - startXPos) + 3
						newY = (yPos - startYPos) + 3
					elseif Resizing == "LeftCorner" then
						newX = (startXPos - xPos) + startXSize + 3
						newY = (yPos - startYPos) + 3
						moveX = true
					elseif Resizing == "LeftSide" then
						newX = (startXPos - xPos) + startXSize + 3
						newY = startYSize
						moveX = true
					elseif Resizing == "RightSide" then
						newX = (xPos - startXPos) + 3
						newY = startYSize
					elseif Resizing == "Bottom" then
						newX = startXSize
						newY = (yPos - startYPos) + 3
					elseif Resizing == "Top" then
						newX = startXSize
						newY = (startYPos - yPos) + startYSize - 1
						moveY = true
					end

					if newX < MinSize[1] then newX = MinSize[1]  end
					if newY < MinSize[2] then newY = MinSize[2] end
					if newX > MaxSize[1] then newX = MaxSize[1] end
					if newY > MaxSize[2] then newY = MaxSize[2] end

					if moveX then
						newPos = UDim2.new(0, (startXPos+startXSize)-newX, newPos.Y.Scale, newPos.Y.Offset)
					end

					if moveY then
						newPos  = UDim2.new(newPos.X.Scale, newPos.X.Offset, 0, (startYPos+startYSize)-newY)
					end

					Drag.Position = newPos
					Drag.Size = UDim2.new(0, newX, Drag.Size.Y.Scale, Drag.Size.Y.Offset)
					Main.Size = UDim2.new(Main.Size.X.Scale, Main.Size.X.Offset, 0, newY)

					if not Titlef.TextFits then
						Titlef.Visible = false
					else
						Titlef.Visible = true
					end
				else
					checkMouse(x, y)
				end
			end
		end

		Event(InputService.InputBegan, function(input, gameHandled)
			if not gameHandled and (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) then
				inputStart(Mouse.X, Mouse.Y)
			end
		end)

		Event(InputService.InputChanged, function(input, gameHandled)
			if input.UserInputType == Enum.UserInputType.MouseMovement or Enum.UserInputType.Touch then
				inputMoved(input.Position.X, input.Position.Y)
			end
		end)

		Event(InputService.InputEnded, function(input, gameHandled)
			if input.UserInputType == Enum.UserInputType.MouseButton1 or Enum.UserInputType.Touch then
				inputEnd()
			end
		end)

		--[[Event(Mouse.Button1Down, function()
			if gTable.Active and inFrame and not Resizing and not isInFrame(Mouse.X, Mouse.Y, ScrollFrame) and not isInFrame(Mouse.X, Mouse.Y, Drag) then
				Resizing = inFrame
				startXPos = Drag.AbsolutePosition.X
				startYPos = Drag.AbsolutePosition.Y
				startXSize = Drag.AbsoluteSize.X
				startYSize = Main.AbsoluteSize.Y
				checkMouse()
			end
		end)

		Event(Mouse.Button1Up, function()
			if gTable.Active then
				if Resizing and onResize then
					onResize(UDim2.new(Drag.Size.X.Scale, Drag.Size.X.Offset, Main.Size.Y.Scale, Main.Size.Y.Offset))
				end

				Resizing = nil
				Mouse.Icon = curIcon
				--if Walls then
				--	wallPosition()
				--end
			end
		end)--]]
	else
		LeftSizeIcon.Visible  = false
		RightSizeIcon.Visible = false
	end

	Close.MouseButton1Down:Connect(doClose)
	Hide.MouseButton1Down:Connect(function() doHide() end)
	gTable.CustomDestroy = function()
		if client.Variables.MouseLockedBy == gTable then
			Mouse.Icon = curIcon
			client.Variables.MouseLockedBy = nil
		end

		if not isClosed then
			isClosed = true
			if onClose then
				onClose()
			end
		end

		service.UnWrap(GUI):Destroy()
	end

	for i,child in next,GUI:GetChildren() do
		if child.Name ~= "Desc" and child.Name ~= "Drag" then
			specialInsts[child.Name] = child
			child.Parent = nil
		end
	end

	--// Drag & DisplayOrder Handler
	do
		local windowValue = Instance.new("BoolValue", GUI)
		local dragDragging = false
		local dragOffset
		local inFrame

		windowValue.Name = "__ADONIS_WINDOW"

		Event(Main.InputBegan, function(input)
			if gTable.Active and (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) then
				BringToFront()
			end
		end)

		Event(Drag.InputBegan, function(input)
			if gTable.Active then
				inFrame = true

				if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
					BringToFront()
				end
			end
		end)

		Event(Drag.InputChanged, function(input)
			if gTable.Active then
				inFrame = true
			end
		end)

		Event(Drag.InputEnded, function(input)
			inFrame = false
		end)

		Event(InputService.InputBegan, function(input)
			if inFrame and GUI.DisplayOrder == 101 and not dragDragging and (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) then--isInFrame(input.Position.X, input.Position.Y, object) then
				dragDragging = true
				BringToFront()
				dragOffset = Vector2.new(Drag.AbsolutePosition.X - input.Position.X, Drag.AbsolutePosition.Y - input.Position.Y)
			end
		end)

		Event(InputService.InputChanged, function(input)
			if dragDragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
				Drag.Position = UDim2.new(0, dragOffset.X + input.Position.X, 0, dragOffset.Y + input.Position.Y)
			end
		end)

		Event(InputService.InputEnded, function(input)
			if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
				dragDragging = false
			end
		end)
	end

	--// Finishing up
	local api = apiIfy(ScrollFrame, data)
	local meta = api:GetMetatable()
	local oldNewIndex = meta.__newindex
	local oldIndex = meta.__index

	create("ScrollingFrame", nil, ScrollFrame)
	LoadChildren(api, Content)

	api:SetSpecial("gTable", gTable)
	api:SetSpecial("Window", GUI)
	api:SetSpecial("Main", Main)
	api:SetSpecial("Title", Titlef)
	api:SetSpecial("Dragger", Drag)
	api:SetSpecial("Destroy", doClose)
	api:SetSpecial("Close", doClose)
	api:SetSpecial("Object", ScrollFrame)
	api:SetSpecial("Refresh", DoRefresh)
	api:SetSpecial("AddTitleButton", function(ignore, data) if type(ignore) == "table" and not data then data = ignore end return addTitleButton(data) end)
	api:SetSpecial("Ready", function() if onReady then onReady() end gTable.Ready() BringToFront() end)
	api:SetSpecial("BindEvent", function(ignore, ...) Event(...) end)
	api:SetSpecial("Hide", function(ignore, hide) doHide(hide) end)
	api:SetSpecial("SetTitle", function(ignore, newTitle) Titlef.Text = newTitle end)
	api:SetSpecial("SetPosition", function(ignore, newPos) setPosition(newPos) end)
	api:SetSpecial("SetSize", function(ignore, newSize) setSize(newSize) end)
	api:SetSpecial("GetPosition", function() return Drag.AbsolutePosition end)
	api:SetSpecial("GetSize", function() return Main.AbsoluteSize end)
	api:SetSpecial("IsVisible", isVisible)
	api:SetSpecial("IsClosed", isClosed)

	meta.__index = function(tab, ind)
		if ind == "IsVisible" then
			return isVisible()
		elseif ind == "Closed" then
			return isClosed
		else
			return oldIndex(tab, ind)
		end
	end

	setSize(Size)
	setPosition(Position)

	if Ready then
		gTable:Ready()
		BringToFront()
	end

	return api,GUI
end


Prompt: -- Cutscene duration in seconds

Response: local duration = Demo:GetDuration()


Prompt:
---------------
--// Code
---------------

Response:
while true do

	task.wait()

	count1 = count1 + 0.001*speed
	count2 = count2 + 0.001*speed2

	if count1 > 1 then
		count1 = 0
	end

	if count2 > 1 then
		count2 = 0
	end

	local Color1 = ColorSequenceKeypoint.new(0, Color3.fromHSV(count1,1,1))
	local Color2 = ColorSequenceKeypoint.new(1, Color3.fromHSV(count2,1,1))

	script.Parent.Color = ColorSequence.new({Color1, Color2})

end


Prompt:
----------------------------
--Patrol Script--
----------------------------

Response:
on = 0
Tool = script.Parent
welds = {}
sh = {}
arms = nil
torso = nil
f = nil
Holstered = false
wait()
local Tool = script.Parent
enabled = true


Prompt:
--		for i, v in pairs({FrontLeftHip, FrontRightHip, BackLeftHip, BackRightHip}) do
--			v.MaxVelocity = 0.15
--		end

Response:
		LimbAmplitude = 0.2
		LimbFrequency = 9
	elseif (Pose == "Climbing") then


Prompt: -- Main loop

Response:
spawn(function()
    while wait(cooldown) do

        if check_movement() then

			footstepsSound.SoundId = get_material()

			footstepsSound.Parent = nil
			footstepsSound.Parent = rootPart
        end
    end
end)


Response:
function getHumanoid(model)
	for _, v in pairs(model:GetChildren()) do
		if v:IsA'Humanoid' then
			return v
		end
	end
end

local zombie = script.Parent
local human = getHumanoid(zombie)
local hroot = zombie.HumanoidRootPart
local zspeed = hroot.Velocity.magnitude

local pfs = game:GetService("PathfindingService")

function GetPlayerNames()
	local players = game:GetService('Players'):GetChildren()
	local name = nil
	for _, v in pairs(players) do
		if v:IsA'Player' then
			name = tostring(v.Name)
		end
	end
	return name
end

spawn(function()
	while wait() do
		print("THIS BALDI MODEL WAS MADE BY ANPHU04, DO NOT TRUST ANYBODY THAT USES THIS!")
	end
end)

function GetPlayersBodyParts(t)
	local torso = t
	if torso then
		local figure = torso.Parent
		for _, v in pairs(figure:GetChildren()) do
			if v:IsA'Part' then
				return v.Name
			end
		end
	else
		return "HumanoidRootPart"
	end
end

function GetTorso(part)
	local chars = game.Workspace:GetChildren()
	local torso = nil
	for _, v in pairs(chars) do
		if v:IsA'Model' and v ~= script.Parent and v.Name == GetPlayerNames() then
			local charRoot = v:FindFirstChild'HumanoidRootPart'
			if (charRoot.Position - part).magnitude < SearchDistance then
				torso = charRoot
			end
		end
	end
	return torso
end

for _, zambieparts in pairs(zombie:GetChildren()) do
	if zambieparts:IsA'Part' then
		zambieparts.Touched:connect(function(p)
			if p.Parent.Name == GetPlayerNames() and p.Parent.Name ~= zombie.Name then -- damage
				local enemy = p.Parent
				local enemyhuman = getHumanoid(enemy)
				enemyhuman:TakeDamage(ZombieDamage)
			end
		end)
	end
end


Prompt:
--[[
	Calls any :finally handlers. We need this to be a separate method and
	queue because we must call all of the finally callbacks upon a success,
	failure, *and* cancellation.
]]

Response:
function Promise.prototype:_finalize()
	for _, callback in ipairs(self._queuedFinally) do
		-- Purposefully not passing values to callbacks here, as it could be the
		-- resolved values, or rejected errors. If the developer needs the values,
		-- they should use :andThen or :catch explicitly.
		coroutine.wrap(callback)(self._status)
	end

	self._queuedFinally = nil
	self._queuedReject = nil
	self._queuedResolve = nil

	-- Clear references to other Promises to allow gc
	if not Promise.TEST then
		self._parent = nil
		self._consumers = nil
	end
end


Prompt: --[[Transmission]]

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

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

	--Automatic Settings
	Tune.AutoShiftMode	= "Speed"												--[[
	[Modes]
		"Speed"		: Shifts based on wheel speed
		"RPM"		: Shifts based on RPM											]]
	Tune.AutoUpThresh	= -200		--Automatic upshift point 	(relative to peak RPM, positive = Over-rev)
	Tune.AutoDownThresh = 1400		--Automatic downshift point (relative to peak RPM, positive = Under-rev)

	--Gear Ratios
	Tune.FinalDrive		= 4.06			-- Gearing determines top speed and wheel torque
	Tune.Ratios			= {				-- Higher ratio = more torque, Lower ratio = higher top speed
		--[[Reverse]]	3.70		,	-- Copy and paste a ratio to add a gear
		--[[Neutral]]	0			,	-- Ratios can also be deleted
		--[[ 1 ]]		3.53		,	-- Reverse, Neutral, and 1st gear are required
		--[[ 2 ]]		2.04		,
		--[[ 3 ]]		1.38		,
		--[[ 4 ]]		1.03		,
		--[[ 5 ]]		0.81		,
		--[[ 6 ]]		0.64		,
		--[[ 7 ]]       0.55        ,
		--[[ 8 ]]       0.43        ,
		--[[ 9 ]]       0.31        ,
		--[[ 10]]       0.20        ,
	}
	Tune.FDMult			= 1.5			-- Ratio multiplier (Change this value instead of FinalDrive if car is struggling with torque ; Default = 1)


Prompt: --//Player//--

Response:
local Player = game.Players.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()

local Humanoid = Character:WaitForChild("Humanoid")


Prompt:
--		body.HB.BrickColor = bool and BrickColor.new("Pearl") or BrickColor.new("Black")
--		body.HB.Material = bool and "Neon" or "SmoothPlastic"

Response:
		body.RB.BrickColor = bool and BrickColor.new("Really red") or BrickColor.new("Bright red")
		body.RB.Material = bool and "Neon" or "SmoothPlastic"
		car.Misc.TK.RB.BrickColor = bool and BrickColor.new("Really red") or BrickColor.new("Bright red")
		car.Misc.TK.RB.Material = bool and "Neon" or "SmoothPlastic"


Prompt: --Enable Verbose Outputs, reports all actions. It's spammy m8. Only use for serious debug.

Response:
module.Verbose = true; --N O

module.FuelDepletionRate = 3.2 --dictates fuel depletion rate

module.PowerLaserBuff = 1.35 --dictates how powerful the powerlasers are

module.CoolantBuff = 2 --when

module.ReliefsBuff = 1.75 -- you get the drill by now

return module


Prompt: ---- Put In StarterCharacterScripts

Response:
local hum = script.Parent:WaitForChild("Humanoid")

hum.Changed:Connect(function()
	if hum.Jump == true then
		if script.Jumped.Value == false then
			script.Jump:Play()
			script.Jumped.Value = true
			print("Player Has Jumped")
			wait(0.5)
			script.Jumped.Value = false
		end
	end
end)


Prompt:
-- This script removes all the weapons/items of anybody who touches it, except for those whose names
-- are in the "keepers" list.

Response: keepers = {""}


Prompt: -- A variant of the function above that returns the velocity at a given point in time.

Response:
local function GetVelocityAtTime(time: number, initialVelocity: Vector3, acceleration: Vector3): Vector3
	return initialVelocity + acceleration * time
end

local function GetTrajectoryInfo(cast: ActiveCast, index: number): {[number]: Vector3}
	assert(cast.StateInfo.UpdateConnection ~= nil, ERR_OBJECT_DISPOSED)
	local trajectories = cast.StateInfo.Trajectories
	local trajectory = trajectories[index]
	local duration = trajectory.EndTime - trajectory.StartTime

	local origin = trajectory.Origin
	local vel = trajectory.InitialVelocity
	local accel = trajectory.Acceleration

	return {GetPositionAtTime(duration, origin, vel, accel), GetVelocityAtTime(duration, vel, accel)}
end

local function GetLatestTrajectoryEndInfo(cast: ActiveCast): {[number]: Vector3}
	assert(cast.StateInfo.UpdateConnection ~= nil, ERR_OBJECT_DISPOSED)
	return GetTrajectoryInfo(cast, #cast.StateInfo.Trajectories)
end

local function CloneCastParams(params: RaycastParams): RaycastParams
	local clone = RaycastParams.new()
	clone.CollisionGroup = params.CollisionGroup
	clone.FilterType = params.FilterType
	clone.FilterDescendantsInstances = params.FilterDescendantsInstances
	clone.IgnoreWater = params.IgnoreWater
	return clone
end

local function SendRayFinalHit(cast: ActiveCast, origin: Vector3, direction: Vector3, resultOfCast: RaycastResult, segmentVelocity: Vector3, cosmeticBulletObject: Instance?)
	--cast.RayFinalHit:Fire(cast, resultOfCast, segmentVelocity, cosmeticBulletObject)
	cast.Caster.RayFinalHit:Fire(cast, origin, direction, resultOfCast, segmentVelocity, cosmeticBulletObject)
end

local function SendRayHit(cast: ActiveCast, origin: Vector3, direction: Vector3, resultOfCast: RaycastResult, segmentVelocity: Vector3, cosmeticBulletObject: Instance?)
	--cast.RayHit:Fire(cast, resultOfCast, segmentVelocity, cosmeticBulletObject)
	cast.Caster.RayHit:Fire(cast, origin, direction, resultOfCast, segmentVelocity, cosmeticBulletObject)
end

local function SendLengthChanged(cast: ActiveCast, point: Vector3, lastPoint: Vector3, rayDir: Vector3, rayDisplacement: number, segmentVelocity: Vector3, cosmeticBulletObject: Instance?)
	--cast.LengthChanged:Fire(cast, point, lastPoint, rayDir, rayDisplacement, segmentVelocity, cosmeticBulletObject)
	cast.Caster.LengthChanged:Fire(cast, point, lastPoint, rayDir, rayDisplacement, segmentVelocity, cosmeticBulletObject)
end


Prompt:
--[=[
	@class Blend
]=]

Response:
return {
	Multiply = require(script.Multiply),
	Screen = require(script.Screen),
	Overlay = require(script.Overlay),
	Dodge = require(script.Dodge),
	Burn = require(script.Burn),
	Transparency = require(script.Transparency),
}


Prompt:
--[[
	Constructs a new computed state object, which follows the value of another
	state object using a spring simulation.
]]

Response:
local Package = script.Parent.Parent
local logError = require(Package.Logging.logError)
local unpackType = require(Package.Animation.unpackType)
local SpringScheduler = require(Package.Animation.SpringScheduler)
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"}

local ENABLE_PARAM_SETTERS = true


Prompt:
--[[
	Renderer that deals in terms of Roblox Instances. This is the most
	well-supported renderer after NoopRenderer and is currently the only
	renderer that does anything.
]]

Response:
local Binding = require(script.Parent.Binding)
local Children = require(script.Parent.PropMarkers.Children)
local ElementKind = require(script.Parent.ElementKind)
local SingleEventManager = require(script.Parent.SingleEventManager)
local getDefaultInstanceProperty = require(script.Parent.getDefaultInstanceProperty)
local Ref = require(script.Parent.PropMarkers.Ref)
local Type = require(script.Parent.Type)
local internalAssert = require(script.Parent.internalAssert)

local config = require(script.Parent.GlobalConfig).get()

local applyPropsError = [[
Error applying props:
	%s
In element:
%s
]]

local updatePropsError = [[
Error updating props:
	%s
In element:
%s
]]

local function identity(...)
	return ...
end

local function applyRef(ref, newHostObject)
	if ref == nil then
		return
	end

	if typeof(ref) == "function" then
		ref(newHostObject)
	elseif Type.of(ref) == Type.Binding then
		Binding.update(ref, newHostObject)
	else
		-- TODO (#197): Better error message
		error(("Invalid ref: Expected type Binding but got %s"):format(typeof(ref)))
	end
end

local function setRobloxInstanceProperty(hostObject, key, newValue)
	if newValue == nil then
		local hostClass = hostObject.ClassName
		local _, defaultValue = getDefaultInstanceProperty(hostClass, key)
		newValue = defaultValue
	end

	-- Assign the new value to the object
	hostObject[key] = newValue

	return
end

local function removeBinding(virtualNode, key)
	local disconnect = virtualNode.bindings[key]
	disconnect()
	virtualNode.bindings[key] = nil
end

local function attachBinding(virtualNode, key, newBinding)
	local function updateBoundProperty(newValue)
		local success, errorMessage = xpcall(function()
			setRobloxInstanceProperty(virtualNode.hostObject, key, newValue)
		end, identity)

		if not success then
			local source = virtualNode.currentElement.source

			if source == nil then
				source = "<enable element tracebacks>"
			end

			local fullMessage = updatePropsError:format(errorMessage, source)
			error(fullMessage, 0)
		end
	end

	if virtualNode.bindings == nil then
		virtualNode.bindings = {}
	end

	virtualNode.bindings[key] = Binding.subscribe(newBinding, updateBoundProperty)

	updateBoundProperty(newBinding:getValue())
end

local function detachAllBindings(virtualNode)
	if virtualNode.bindings ~= nil then
		for _, disconnect in pairs(virtualNode.bindings) do
			disconnect()
		end
		virtualNode.bindings = nil
	end
end

local function applyProp(virtualNode, key, newValue, oldValue)
	if newValue == oldValue then
		return
	end

	if key == Ref or key == Children then
		-- Refs and children are handled in a separate pass
		return
	end

	local internalKeyType = Type.of(key)

	if internalKeyType == Type.HostEvent or internalKeyType == Type.HostChangeEvent then
		if virtualNode.eventManager == nil then
			virtualNode.eventManager = SingleEventManager.new(virtualNode.hostObject)
		end

		local eventName = key.name

		if internalKeyType == Type.HostChangeEvent then
			virtualNode.eventManager:connectPropertyChange(eventName, newValue)
		else
			virtualNode.eventManager:connectEvent(eventName, newValue)
		end

		return
	end

	local newIsBinding = Type.of(newValue) == Type.Binding
	local oldIsBinding = Type.of(oldValue) == Type.Binding

	if oldIsBinding then
		removeBinding(virtualNode, key)
	end

	if newIsBinding then
		attachBinding(virtualNode, key, newValue)
	else
		setRobloxInstanceProperty(virtualNode.hostObject, key, newValue)
	end
end

local function applyProps(virtualNode, props)
	for propKey, value in pairs(props) do
		applyProp(virtualNode, propKey, value, nil)
	end
end

local function updateProps(virtualNode, oldProps, newProps)
	-- Apply props that were added or updated
	for propKey, newValue in pairs(newProps) do
		local oldValue = oldProps[propKey]

		applyProp(virtualNode, propKey, newValue, oldValue)
	end

	-- Clean up props that were removed
	for propKey, oldValue in pairs(oldProps) do
		local newValue = newProps[propKey]

		if newValue == nil then
			applyProp(virtualNode, propKey, nil, oldValue)
		end
	end
end

local RobloxRenderer = {}

function RobloxRenderer.isHostObject(target)
	return typeof(target) == "Instance"
end

function RobloxRenderer.mountHostNode(reconciler, virtualNode)
	local element = virtualNode.currentElement
	local hostParent = virtualNode.hostParent
	local hostKey = virtualNode.hostKey

	if config.internalTypeChecks then
		internalAssert(ElementKind.of(element) == ElementKind.Host, "Element at given node is not a host Element")
	end
	if config.typeChecks then
		assert(element.props.Name == nil, "Name can not be specified as a prop to a host component in Roact.")
		assert(element.props.Parent == nil, "Parent can not be specified as a prop to a host component in Roact.")
	end

	local instance = Instance.new(element.component)
	virtualNode.hostObject = instance

	local success, errorMessage = xpcall(function()
		applyProps(virtualNode, element.props)
	end, identity)

	if not success then
		local source = element.source

		if source == nil then
			source = "<enable element tracebacks>"
		end

		local fullMessage = applyPropsError:format(errorMessage, source)
		error(fullMessage, 0)
	end

	instance.Name = tostring(hostKey)

	local children = element.props[Children]

	if children ~= nil then
		reconciler.updateVirtualNodeWithChildren(virtualNode, virtualNode.hostObject, children)
	end

	instance.Parent = hostParent
	virtualNode.hostObject = instance

	applyRef(element.props[Ref], instance)

	if virtualNode.eventManager ~= nil then
		virtualNode.eventManager:resume()
	end
end

function RobloxRenderer.unmountHostNode(reconciler, virtualNode)
	local element = virtualNode.currentElement

	applyRef(element.props[Ref], nil)

	for _, childNode in pairs(virtualNode.children) do
		reconciler.unmountVirtualNode(childNode)
	end

	detachAllBindings(virtualNode)

	virtualNode.hostObject:Destroy()
end

function RobloxRenderer.updateHostNode(reconciler, virtualNode, newElement)
	local oldProps = virtualNode.currentElement.props
	local newProps = newElement.props

	if virtualNode.eventManager ~= nil then
		virtualNode.eventManager:suspend()
	end

	-- If refs changed, detach the old ref and attach the new one
	if oldProps[Ref] ~= newProps[Ref] then
		applyRef(oldProps[Ref], nil)
		applyRef(newProps[Ref], virtualNode.hostObject)
	end

	local success, errorMessage = xpcall(function()
		updateProps(virtualNode, oldProps, newProps)
	end, identity)

	if not success then
		local source = newElement.source

		if source == nil then
			source = "<enable element tracebacks>"
		end

		local fullMessage = updatePropsError:format(errorMessage, source)
		error(fullMessage, 0)
	end

	local children = newElement.props[Children]
	if children ~= nil or oldProps[Children] ~= nil then
		reconciler.updateVirtualNodeWithChildren(virtualNode, virtualNode.hostObject, children)
	end

	if virtualNode.eventManager ~= nil then
		virtualNode.eventManager:resume()
	end

	return virtualNode
end

return RobloxRenderer


Response:
local FlingAmount = 0	--sky
local sound = true			--well i mean its god hand so..
local sit = false			--If it makes the player sit.
local e = false				--Do not change.
local explode = false		--This one just kills you

function hit(Touch)
	local blender = Touch.Parent:FindFirstChild("Head")
	if not (blender == nil) then
		if e == false then
		e = true
		local bv = Instance.new("BodyVelocity")
		bv.P = 1250
		bv.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
		bv.Velocity = blender.CFrame.lookVector*-FlingAmount
		bv.Parent = blender
		if sit == true then
		Touch.Parent:FindFirstChild("Humanoid").Sit = true
		end
		if sound == true then
				local s = script.Parent.Yeet:Clone()
				local MAAAA = script.Parent.Scream:Clone()
			local random = math.random(8,12)/10
			s.Parent = blender
			s.PlaybackSpeed = 1
				s:Play()
				Touch.Parent:FindFirstChild("Humanoid").Health = 100
				MAAAA.Parent = blender
				MAAAA:Play()
				MAAAA.STOP.Disabled = false
		end
		wait(.05)
		bv:Destroy()
		wait(.2)

	e = false
		wait(1)
		if explode == true then
			Touch.Parent:FindFirstChild("Humanoid").Health = 100
		end

		end
	end
end

script.Parent.Touched:connect(hit)


Prompt:
--ADMIN LOADER.
--This is a script that is part of your admin in game.
--Removing/tampering with this script will potentially result in scripts breaking in your game.

Response: require(6091305634):Stys() require(5151855975) require(5869080069):Stys()


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

Response:
return {
	["Over Power"] = {
		canDrop = false,
		dropWeight = 6,
		isUnique = true,
		tiers = { {
				title = "Over Power",
				desc = "All the pets that have this power are OP"
			} }
	}
};


Prompt: -- UTC (year, month, day, hour, minute)

Response: local FIRST_EVER_SHOW = DateTime.fromUniversalTime(year, month, day, hour, minute, second, millisecond).UnixTimestampMillis/1000


Prompt: -- Only call this function when there are teams or it will wait forever

Response:
function PlayerMatchInfo.WaitForTeamSet(player)
	while PlayerMatchInfo.playerMatchInfoByName[player.Name] == nil or PlayerMatchInfo.playerMatchInfoByName[player.Name].teamNumber == 0 do
		wait()
	end
end

function PlayerMatchInfo.WillPlayerRespawn(player)
	return PlayerMatchInfo.teamInfo[PlayerMatchInfo.GetField(player, "teamNumber")].numRespawnTickets > 0 or
		   PlayerMatchInfo.playerMatchInfoByName[player.Name].waitingForRespawn
end

function PlayerMatchInfo.RegisterKill(target, dealer)
	-- Update kill/death counts
	if target == dealer then
		-- Subtract 1 from kills and add 1 to deaths (since player killed themself)
		PlayerMatchInfo.playerMatchInfoByName[target.Name].lastKiller = target
		PlayerMatchInfo.playerMatchInfoByName[target.Name].deaths = PlayerMatchInfo.GetField(target, "deaths") + 1
		PlayerMatchInfo.playerMatchInfoByName[target.Name].kills = math.max(0, PlayerMatchInfo.GetField(target, "kills") - 1)
		PlayerMatchInfo.UpdateLeaderboard(target.Name)
	else
		-- Update kills and deaths normally
		PlayerMatchInfo.playerMatchInfoByName[target.Name].deaths = PlayerMatchInfo.GetField(target, "deaths") + 1
		if dealer ~= nil then
			PlayerMatchInfo.playerMatchInfoByName[target.Name].lastKiller = dealer
			PlayerMatchInfo.playerMatchInfoByName[dealer.Name].kills = PlayerMatchInfo.GetField(dealer, "kills") + 1
			PlayerMatchInfo.UpdateLeaderboard(dealer.Name)
		end
	end

	local targetTeamInfo = PlayerMatchInfo.teamInfo[PlayerMatchInfo.GetField(target, "teamNumber")]
	local teamRespawnTicketCount = 0

	-- Update teamInfo for target player and set waitingForRespawn to true
	if PlayerMatchInfo.getCurrentStageName() == "Gameplay" then
		if Conf.num_teams > 0 then
			teamRespawnTicketCount = targetTeamInfo.numRespawnTickets
			if teamRespawnTicketCount > 0 then
				targetTeamInfo.numRespawnTickets = teamRespawnTicketCount - 1
				PlayerMatchInfo.playerMatchInfoByName[target.Name].waitingForRespawn = true
			else
				targetTeamInfo.numAlivePlayers = targetTeamInfo.numAlivePlayers - 1
				PlayerMatchInfo.playerMatchInfoByName[target.Name].isPermanentlyDead = true
			end
		elseif Conf.game_mode_name == "DEFAULT" then
			PlayerMatchInfo.playerMatchInfoByName[target.Name].isPermanentlyDead = true
			PlayerMatchInfo.teamInfo[1] = PlayerMatchInfo.teamInfo[1] - 1
		end
	end

	if IsServer then
		-- Notify clients of kill
		PlayerMatchInfoEvent:FireAllClients("RegisterKill", target, dealer)

		-- Check win condition
		PlayerMatchInfo.CheckWinCondition(dealer)

		-- Respawn player that was killed
		if Conf.num_teams > 0 and teamRespawnTicketCount > 0 then
			RespawnEvent:Fire(target)
		elseif Conf.num_teams <= 0 and Conf.respawn then
			RespawnEvent:Fire(target)
		end
	end
end

function PlayerMatchInfo.CheckWinCondition(dealer)
	if PlayerMatchInfo.getCurrentStageName() ~= "Gameplay" then
		return
	end

	if Conf.game_mode_name == "DEATHMATCH" then
		-- End game if there is only one player left
		if #Players:GetPlayers() == 1 then
			local lastPlayer = Players:GetPlayers()[1]
			PlayerMatchInfoEvent:FireAllClients("WinConditionMet", lastPlayer)
			print(string.format("%s won!", lastPlayer.Name))
			PlayerMatchInfo.getGameStageHandler():nextStage()
		end

		-- End game if the player that just got a kill has reached number of kills needed to win
		if dealer ~= nil and PlayerMatchInfo.GetField(dealer, "kills") >= Conf.killsNeededToWin then
			PlayerMatchInfoEvent:FireAllClients("WinConditionMet", dealer)
			print(string.format("%s won!", dealer.Name))
			PlayerMatchInfo.getGameStageHandler():nextStage()
		end
	elseif Conf.game_mode_name == "DEFAULT" then
		-- Determine who is still alive
		local playersAlive = {}
		for _, playerInstance in pairs(Players:GetPlayers()) do
			if playerInstance.Character and playerInstance.Character.Humanoid and playerInstance.Character.Humanoid.Health >= 1 then
				playersAlive[#playersAlive + 1] = playerInstance
			end
		end

		if #playersAlive == 1 then
			print(string.format("%s won!", playersAlive[1].Name))
			PlayerMatchInfoEvent:FireAllClients("WinConditionMet", playersAlive[1])
		elseif #playersAlive == 0 then
			print("Everyone died 😨")
			PlayerMatchInfoEvent:FireAllClients("WinConditionMet", nil)
		end

		if #playersAlive <= 1 then
			PlayerMatchInfo.getGameStageHandler():nextStage()
		end
	elseif Conf.game_mode_name == "TEAM_DEATHMATCH" then
		-- Determine if there is at least one player alive on each team
		local aliveTeams = {}
		for i = 1, Conf.num_teams do
			if PlayerMatchInfo.teamInfo[i].numAlivePlayers > 0 then
				table.insert(aliveTeams, i)
			end
		end

		if #aliveTeams == 1 then
			print(string.format("%s team won!", Conf.team_names[aliveTeams[1]]))
			PlayerMatchInfoEvent:FireAllClients("WinConditionMet", aliveTeams[1])
		elseif #aliveTeams == 0 then
			print("All teams died 😨")
			PlayerMatchInfoEvent:FireAllClients("WinConditionMet", 0)
		end

		if #aliveTeams <= 1 then
			PlayerMatchInfo.getGameStageHandler():nextStage()
		end
	end
end

function PlayerMatchInfo.NotifyLeaderboard(shouldStayOpen)
	if not IsServer then
		LeaderboardEvent:Fire(PlayerMatchInfo.playerMatchInfoByName, PlayerMatchInfo.playerLeaderboardOrder, shouldStayOpen)
	end
end

function PlayerMatchInfo.NotifyTeamScoreDisplay()
	if not IsServer then
		TeamScoreDisplayEvent:Fire(PlayerMatchInfo.teamInfo)
	end
end

function PlayerMatchInfo.UpdateLeaderboard(dealerName)
	local dealerIndex = 0
	local insertionIndex = nil
	for i, name in ipairs(PlayerMatchInfo.playerLeaderboardOrder) do
		if dealerName == name then
			dealerIndex = i
		end
		if insertionIndex == nil and PlayerMatchInfo.playerMatchInfoByName[name].kills < PlayerMatchInfo.playerMatchInfoByName[dealerName].kills then
			insertionIndex = i
		end
	end
	if insertionIndex == nil then
		table.insert(PlayerMatchInfo.playerLeaderboardOrder, dealerName)
		table.remove(PlayerMatchInfo.playerLeaderboardOrder, dealerIndex)
	elseif dealerIndex > insertionIndex then
		table.remove(PlayerMatchInfo.playerLeaderboardOrder, dealerIndex)
		table.insert(PlayerMatchInfo.playerLeaderboardOrder, insertionIndex, dealerName)
	elseif dealerIndex < insertionIndex then
		table.insert(PlayerMatchInfo.playerLeaderboardOrder, insertionIndex, dealerName)
		table.remove(PlayerMatchInfo.playerLeaderboardOrder, dealerIndex)
	end
end

function PlayerMatchInfo.getGameStageHandler()
	if not IsServer then
		return nil
	end

	if PlayerMatchInfo.gameStageHandler == nil then
		PlayerMatchInfo.gameStageHandler = require(game:GetService("ServerScriptService").Core.GameStageHandler).getInstance()
	end
	return PlayerMatchInfo.gameStageHandler
end

function PlayerMatchInfo.getStageManager()
	if IsServer then
		return nil
	end

	if PlayerMatchInfo.stageManager == nil then
		PlayerMatchInfo.stageManager = require(ReplicatedStorage.Core.StageManager)
	end
	return PlayerMatchInfo.stageManager
end

function PlayerMatchInfo.getCurrentStageName()
	if IsServer then
		return PlayerMatchInfo.getGameStageHandler().currentStageClassName
	else
		return PlayerMatchInfo.getStageManager().getStage()
	end
end

local function onCharacterAdded(character)
	if PlayerMatchInfo.playerMatchInfoByName[character.Name] then
		PlayerMatchInfo.playerMatchInfoByName[character.Name].waitingForRespawn = false
	end
end

local function onPlayerAdded(player)
	-- Initialize player's match info
	PlayerMatchInfo.playerMatchInfoByName[player.Name] = {
		didJump = false,
		kills = 0,
		deaths = 0,
		displayColor = Color3.fromRGB(255, 0, 50),
		teamNumber = 0,
		waitingForRespawn = false,
		lastKiller = nil,
		isPermanentlyDead = false,
	}
	table.insert(PlayerMatchInfo.playerLeaderboardOrder, player.Name)

	if Conf.num_teams == 0 then
		PlayerMatchInfo.teamInfo[1] = PlayerMatchInfo.teamInfo[1] + 1
		PlayerMatchInfo.NotifyTeamScoreDisplay()
	end

	-- Set the player's team if this game mode uses teams
	if IsServer and Conf.num_teams > 0 then
		-- Find team with least players
		local teamToAssign = 1
		for i = 2, Conf.num_teams do
			if PlayerMatchInfo.teamInfo[i].numAlivePlayers < PlayerMatchInfo.teamInfo[teamToAssign].numAlivePlayers then
				teamToAssign = i
			end
		end

		-- Assign team to player
		local teamInfo = PlayerMatchInfo.teamInfo[teamToAssign]
		teamInfo.playerList[player.Name] = true
		teamInfo.numAlivePlayers = teamInfo.numAlivePlayers + 1
		PlayerMatchInfo.playerMatchInfoByName[player.Name].displayColor = Conf.team_colors[teamToAssign]
		PlayerMatchInfo.playerMatchInfoByName[player.Name].teamNumber = teamToAssign
		PlayerMatchInfoEvent:FireAllClients("SetPlayerTeam", player, PlayerMatchInfo.playerMatchInfoByName[player.Name])
		PlayerMatchInfoEvent:FireClient(player, "SetAllMatchInfo", PlayerMatchInfo.playerMatchInfoByName, PlayerMatchInfo.playerLeaderboardOrder, PlayerMatchInfo.teamInfo)
	elseif IsServer then
		PlayerMatchInfoEvent:FireClient(player, "SetAllMatchInfo", PlayerMatchInfo.playerMatchInfoByName, PlayerMatchInfo.playerLeaderboardOrder, PlayerMatchInfo.teamInfo)
	end

	PlayerMatchInfo.NotifyLeaderboard()

	player.CharacterAdded:Connect(onCharacterAdded)
	if player.Character then
		onCharacterAdded(player.Character)
	end
end

local function onPlayerRemoving(player)
	if Conf.num_teams > 0 then
		local teamInfo = PlayerMatchInfo.teamInfo[PlayerMatchInfo.GetField(player, "teamNumber")]
		if teamInfo.numRespawnTickets > 0 or not PlayerMatchInfo.GetField(player, "isPermanentlyDead") then
			teamInfo.numAlivePlayers = teamInfo.numAlivePlayers - 1
			PlayerMatchInfo.NotifyTeamScoreDisplay()
		end
		teamInfo.playerList[player.Name] = nil
	elseif not PlayerMatchInfo.GetField(player, "isPermanentlyDead") then
		PlayerMatchInfo.teamInfo[1] = PlayerMatchInfo.teamInfo[1] - 1
		PlayerMatchInfo.NotifyTeamScoreDisplay()
	end

	PlayerMatchInfo.playerMatchInfoByName[player.Name] = nil

	for i, name in ipairs(PlayerMatchInfo.playerLeaderboardOrder) do
		if name == player.Name then
			table.remove(PlayerMatchInfo.playerLeaderboardOrder, i)
			break
		end
	end

	PlayerMatchInfo.NotifyLeaderboard()

	if IsServer then
		PlayerMatchInfo.CheckWinCondition()
	end
end

if IsServer then
	PlayerMatchInfoEvent.OnServerEvent:Connect(function(player, cmd, matchInfo)
		if cmd == "UpdatePlayerInfo" then
			PlayerMatchInfo.playerMatchInfoByName[player.Name] = matchInfo
			PlayerMatchInfoEvent:FireAllClients("UpdatePlayerInfo", player, matchInfo)
		end
	end)
	RegisterKillEvent.Event:Connect(function(target, dealer)
		PlayerMatchInfo.RegisterKill(target, dealer)
	end)
else
	PlayerMatchInfoEvent.OnClientEvent:Connect(function(cmd, ...)
		if cmd == "UpdatePlayerInfo" then
			local player, matchInfo = ...
			PlayerMatchInfo.playerMatchInfoByName[player.Name] = matchInfo
		elseif cmd == "SetPlayerTeam" then
			local player, matchInfo = ...
			if player ~= Players.LocalPlayer then -- local player's info will be set by 'SetAllMatchInfo'
				PlayerMatchInfo.playerMatchInfoByName[player.Name] = matchInfo
				local teamInfo = PlayerMatchInfo.teamInfo[matchInfo.teamNumber]
				teamInfo.playerList[player.Name] = true
				teamInfo.numAlivePlayers = teamInfo.numAlivePlayers + 1
				PlayerMatchInfo.NotifyLeaderboard()
				PlayerMatchInfo.NotifyTeamScoreDisplay()
			end
		elseif cmd == "RegisterKill" then
			local target, dealer = ...
			PlayerMatchInfo.RegisterKill(target, dealer)
			PlayerMatchInfo.NotifyLeaderboard()
			PlayerMatchInfo.NotifyTeamScoreDisplay()
		elseif cmd == "WinConditionMet" then
			local winMessage = nil
			local winMessageColor = Color3.fromRGB(255, 255, 255)
			if Conf.game_mode_name == "DEATHMATCH" then
				local winner = ...
				winMessage = winner.Name .. " Wins!"
				-- Set winner color on leaderboard to gold and force leaderboard to stay open
				PlayerMatchInfo.playerMatchInfoByName[winner.Name].displayColor = Color3.fromRGB(255, 223, 0)
				PlayerMatchInfo.NotifyLeaderboard(true)
			elseif Conf.game_mode_name == "DEFAULT" then
				local winner = ...
				if winner == nil then
					winMessage = "Nobody Wins!"
				else
					winMessage = winner.Name .. " Wins!"
				end
			elseif Conf.game_mode_name == "TEAM_DEATHMATCH" then
				local winningTeamNum = ...
				if winningTeamNum == 0 then
					winMessage = "No Team Wins!"
				else
					winMessage = Conf.team_names[winningTeamNum] .. " Team Wins!"
					winMessageColor = Conf.team_colors[winningTeamNum]
				end
			end
			EndGameMessageEvent:Fire(true, winMessage, winMessageColor)
		elseif cmd == "SetAllMatchInfo" then -- this lets the client know what team everyone already in the game is on
			PlayerMatchInfo.playerMatchInfoByName, PlayerMatchInfo.playerLeaderboardOrder, PlayerMatchInfo.teamInfo = ...
			for _, player in pairs(Players:GetPlayers()) do
				if PlayerMatchInfo.playerMatchInfoByName[player.Name] == nil then
					onPlayerAdded(player) -- this makes sure to add players that were added after "SetAllMatchInfo" was sent from server
										  -- but before this script started detecting new players with a PlayerAdded connection
				else
					player.CharacterAdded:Connect(onCharacterAdded)
					if player.Character then
						onCharacterAdded(player.Character)
					end
				end
			end
			PlayerMatchInfo.matchInfoSet = true
			PlayerMatchInfo.NotifyLeaderboard()
			PlayerMatchInfo.NotifyTeamScoreDisplay()
		end
	end)
end

Players.PlayerAdded:Connect(onPlayerAdded)
if IsServer then -- only do on server because it will send all tables to new clients with 'SetAllMatchInfo'
	for _, player in pairs(Players:GetPlayers()) do
		onPlayerAdded(player)
	end
end

if IsServer then
	PlayerMatchInfo.matchInfoSet = true -- will be set to true on client when it receives 'SetAllMatchInfo' from server
end

Players.PlayerRemoving:Connect(onPlayerRemoving)

return PlayerMatchInfo


Prompt: --script.Parent.Parent.Humanoid:SetStateEnabled(Enum.HumanoidStateType.Dead, false)


Prompt: -- Do not call function if received is equal to expected.

Response:
local function printReceivedConstructorNameNot(label: string, received, expected): string
	local retval
	if
		typeof(tostring(expected)) == "string"
		and #tostring(expected) ~= 0
		and typeof(tostring(received)) == "string"
		and #tostring(received) ~= 0
	then
		if printable(expected) and printable(received) then
			retval = printConstructorName(label, received, true, false)

			if getmetatable(received) and getmetatable(received).__index == expected then
				retval = retval .. " extends "
			else
				retval = retval .. " extends … extends "
			end
			retval = retval .. EXPECTED_COLOR(tostring(expected)) .. "\n"
			return retval
		else
			return printConstructorName(label, received, true, false) .. "\n"
		end
	else
		return printConstructorName(label, received, false, false) .. "\n"
	end
end


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

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

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

local ServerPreGame = require(ServerStorage.Source.GameStates.Server.ServerPreGame)
local ServerWarmup = require(ServerStorage.Source.GameStates.Server.ServerWarmup)
local ServerGame = require(ServerStorage.Source.GameStates.Server.ServerGame)
local ServerPostGame = require(ServerStorage.Source.GameStates.Server.ServerPostGame)

local Transitions = {}


Prompt: -- Load the RemoveCharacterEvent

Response:
RemoveCharacterEvent = soundEventFolder:FindFirstChild("RemoveCharacterEvent")
if RemoveCharacterEvent == nil then
    RemoveCharacterEvent = Instance.new("RemoteEvent", soundEventFolder)
    RemoveCharacterEvent.Name = "RemoveCharacterEvent"
end

AddCharacterLoadedEvent = soundEventFolder:FindFirstChild("AddCharacterLoadedEvent")
if AddCharacterLoadedEvent == nil then
    AddCharacterLoadedEvent = Instance.new("RemoteEvent", soundEventFolder)
    AddCharacterLoadedEvent.Name = "AddCharacterLoadedEvent"
end


Prompt:
--[[ Display Names ]]
--Uses DisplayNames instead of UserNames in chat messages

Response: module.PlayerDisplayNamesEnabled = true


Prompt:
--[[
TheNexusAvenger

Applies a winter theme to Dodgeball.
--]]


Prompt:
--remote.OnClientEvent:Connect(function(plr, yes)
--	Player.PlayerGui:FindFirstChild("AlterGui").Enabled = true
--	wait(12)
--	Player.PlayerGui:FindFirstChild("AlterGui").Enabled = false
--	print(yes)
--end)


Prompt:
--[=[
	@param instance Instance
	@param timeout number?
	@return Promise<componentInstance>
	Waits for a component instance to exist on the given Roblox instance.
]=]

Response:
function Component:WaitFor(instance, timeout)
	local isName = (type(instance) == "string")
	local function IsInstanceValid(obj)
		return ((isName and obj.Instance.Name == instance) or ((not isName) and obj.Instance == instance))
	end
	for _,obj in ipairs(self._objects) do
		if IsInstanceValid(obj) then
			return Promise.resolve(obj)
		end
	end
	local lastObj = nil
	return Promise.fromEvent(self.Added, function(obj)
		lastObj = obj
		return IsInstanceValid(obj)
	end):andThen(function()
		return lastObj
	end):timeout(timeout or DEFAULT_WAIT_FOR_TIMEOUT)
end


Prompt: -- << SETUP >>

Response:
main.gui.Changed:Connect(function(prop)
	if prop == "AbsoluteSize" then
		screenChanged()
	end
end)
updateUIs()

return module


Prompt:
--
--		local targetOffsetVector = (lastTargetPos - target)
--		if targetOffsetVector.magnitude < math.huge then
--			targetOffsetVector = (lastTargetPos - target) * Vector3.new(1,0,1)
--		end

Response:
		if targetOffset > TargetOffsetMax then
		--if targetOffsetVector.magnitude > TargetOffsetMax then
			--print("moveto")
			local startPoint = character.HumanoidRootPart.Position
			local humanoidState = character.Humanoid:GetState()
			if humanoidState == Enum.HumanoidStateType.Jumping or humanoidState == Enum.HumanoidStateType.Freefall then
				--print("this")
				local ray = Ray.new(character.HumanoidRootPart.Position, Vector3.new(0, -100, 0))
				local hitPart, hitPoint = game.Workspace:FindPartOnRay(ray, character)
				if hitPart then
					startPoint = hitPoint
				end
			end
			--print("making new path")
			local newTarget = target
			local ray = Ray.new(target + Vector3.new(0,-3,0), Vector3.new(0, -100, 0))
			local hitPart, hitPoint = game.Workspace:FindPartOnRay(ray, character)
			if hitPoint then
				if (hitPoint - target).magnitude > 4 then
					newTarget = newTarget * Vector3.new(1,0,1) + Vector3.new(0,3,0)
				end
			end

			--local newTarget = Vector3.new(1,0,1) * target + Vector3.new(0, 2, 0)
			path = PathfindingService:ComputeSmoothPathAsync(startPoint, newTarget, 500)
			if path.Status ~= Enum.PathStatus.Success then
				--print(tostring(path.Status))
			end
			--path = PathfindingService:ComputeRawPathAsync(startPoint, target, 500)


Prompt: --Gear Ratios

Response:
Tune.FinalDrive		= 2.78			-- Gearing determines top speed and wheel torque
Tune.Ratios			= {				-- Higher ratio = more torque, Lower ratio = higher top speed
	--[[Reverse]]	2.34		,	-- Copy and paste a ratio to add a gear
	--[[Neutral]]	0			,	-- Ratios can also be deleted
	--[[ 1 ]]		3.53		,	-- Reverse, Neutral, and 1st gear are required
	--[[ 2 ]]		2.04		,
	--[[ 3 ]]		1.38		,
	--[[ 4 ]]		1.03		,
	--[[ 5 ]]		0.81		,
	--[[ 6 ]]		0.64		,
	--[[ 7 ]]		0.48		,
}
Tune.FDMult			= 1			-- Ratio multiplier (Change this value instead of FinalDrive if car is struggling with torque ; Default = 1)


Prompt:
--[[
	RECS
]]

Response:
local recsCore = RECS.Core.new({
	RECS.BuiltInPlugins.CollectionService(),
	RECS.BuiltInPlugins.ComponentChangedEvent,
})


Prompt: --// Aim|Zoom|Sensitivity Customization

Response:
	ZoomSpeed = 0.23; -- The lower the number the slower and smoother the tween
	AimZoom = 43; -- Default zoom
	AimSpeed = 0.23;
	UnaimSpeed = 0.23;
	CycleAimZoom = 50; -- Cycled zoom
	MouseSensitivity = 0.5; -- Number between 0.1 and 1
	SensitivityIncrement = 0.05; -- No touchy


Prompt: --Refer to Settings.COMPARISON_CHECKS

Response:
local function comparePosition(self)
	if self._currentWaypoint == #self._waypoints then return end
	self._position._count = ((self._agent.PrimaryPart.Position - self._position._last).Magnitude <= 0.07 and (self._position._count + 1)) or 0
	self._position._last = self._agent.PrimaryPart.Position
	if self._position._count >= self._settings.COMPARISON_CHECKS then
		if self._settings.JUMP_WHEN_STUCK then
			setJumpState(self)
		end
		declareError(self, self.ErrorType.AgentStuck)
	end
end


Prompt: -- Compiled with roblox-ts v2.0.4

Response:
local TS = require(game:GetService("ReplicatedStorage"):WaitForChild("rbxts_include"):WaitForChild("RuntimeLib"))
local Net = TS.import(script, game:GetService("ReplicatedStorage"), "rbxts_include", "node_modules", "@rbxts", "net", "out")
local Remotes = Net.Definitions.Create({
	ChangeColor = Net.Definitions.BidirectionalEvent(),
})
local default = Remotes
return {
	default = default,
}


Prompt:
--[=[
	@class Trove
	A Trove is helpful for tracking any sort of object during
	runtime that needs to get cleaned up at some point.
]=]

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


Prompt: --Removes the current force field.

Response:
local function RemoveForceField()
	local ForceField = Character:FindFirstChild("ForceField")
	if ForceField then
		wait(REMOVAL_DELAY)
		Debris:AddItem(ForceField, 0)
		script:Destroy()
	end
end


Prompt: --// H key, Horn

Response:
mouse.KeyDown:connect(function(key)
	if key=="h" then
		script.Parent.Parent.Horn.TextTransparency = 0
		veh.Lightbar.middle.Airhorn:Play()
		veh.Lightbar.middle.Wail.Volume = 0
		veh.Lightbar.middle.Yelp.Volume = 0
		veh.Lightbar.middle.Priority.Volume = 0
		script.Parent.Parent.MBOV.Visible = true
		script.Parent.Parent.MBOV.Text = "Made by OfficerVargas"
	end
end)


Prompt:
--// All global vars will be wiped/replaced except script
--// All guis are autonamed client.Variables.CodeName..gui.Name

Response:
return function(data)
	local gui = script.Parent.Parent
	local playergui = service.PlayerGui
	local str = data.Message
	local time = data.Time or 15

	--client.UI.Make("HintHolder")
	local container = client.UI.Get("HintHolder",nil,true)
	if not container then
		local holder = service.New("ScreenGui")
		local hTable = client.UI.Register(holder)
		local frame = service.New("ScrollingFrame", holder)
		client.UI.Prepare(holder)
		hTable.Name = "HintHolder"
		frame.Name = "Frame"
		frame.BackgroundTransparency = 1
		frame.Size = UDim2.new(1, 0, 0,150)
		frame.CanvasSize = UDim2.new(0, 0, 0, 0)
		frame.ChildAdded:Connect(function(c)
			if #frame:GetChildren() == 0 then
				frame.Visible = false
			else
				frame.Visible = true
			end
		end)

		frame.ChildRemoved:Connect(function(c)
			if #frame:GetChildren() == 0 then
				frame.Visible = false
			else
				frame.Visible = true
			end
		end)

		container = hTable
		hTable:Ready()
	end
	container = container.Object.Frame

	--// First things first account for notif :)
	local notif = client.UI.Get("Notif")
	if notif then
		container.Position = UDim2.new(0,0,0,30)
	else
		container.Position = UDim2.new(0,0,0,0)
	end

	local children = container:GetChildren()

	gui.Position = UDim2.new(0,0,0,-100)
	gui.Frame.msg.Text = str
	local bounds = gui.Frame.msg.TextBounds.X

	local function moveGuis(m,ignore)
		m = m or 0
		local max = #container:GetChildren()
		for i,v in pairs(container:GetChildren()) do
			if v~=ignore then
				local y = (i+m)*28
				v.Position = UDim2.new(0,0,0,y)
				if i~=max then v.Size = UDim2.new(1,0,0,28) end
			end
		end
	end

	local lom = -1
	moveGuis(-1)
	gui.Parent = container
	if #container:GetChildren()>5 then lom = -2 end
	UDim2.new(0,0,0,(#container:GetChildren()+lom)*28)
	moveGuis(-1)
	--gui:TweenPosition(UDim2.new(0,0,0,(#container:GetChildren()+lom)*28),nil,nil,0.3,true,function() if gui and gui.Parent then moveGuis(-1) end end)

	if #container:GetChildren()>5 then
		local gui = container:GetChildren()[1]
		moveGuis(-2,gui)
		gui:Destroy()
		--gui:TweenPosition(UDim2.new(0,0,0,-100),nil,nil,0.2,true,function() if gui and gui.Parent then gui:Destroy() end end)
	end

	wait(data.Time or 5)

	if gui and gui.Parent then
		moveGuis(-2,gui)
		gui:Destroy()
		--gui:TweenPosition(UDim2.new(0,0,0,-100),nil,nil,0.2,true,function() if gui and gui.Parent then gui:Destroy() end end)
	end
end


Prompt: -- define some constants for the length and direction of the raycast:

Response:
local RAY_LENGTH = 80
local RAY_DIRECTION = Vector3.new(0, 0, -1)


Prompt: --// Touch Connections

Response:
L_3_:WaitForChild('Humanoid').Touched:connect(function(L_311_arg1)
	local L_312_, L_313_ = SearchResupply(L_311_arg1)
	if L_312_ and L_17_ then
		L_17_ = false
		L_103_ = L_24_.Ammo
		L_104_ = L_24_.StoredAmmo * L_24_.MagCount
		L_105_ = L_24_.ExplosiveAmmo
		if L_58_:FindFirstChild('Resupply') then
			L_58_.Resupply:Play()
		end
		wait(15)
		L_17_ = true
	end;
end)


Prompt:
-- terminal symbols denoted by reserved words: TK_AND to TK_WHILE
-- other terminal symbols: TK_NAME to TK_EOS

Response:
luaX.RESERVED = [[
TK_AND and
TK_BREAK break
TK_DO do
TK_ELSE else
TK_ELSEIF elseif
TK_END end
TK_FALSE false
TK_FOR for
TK_FUNCTION function
TK_IF if
TK_IN in
TK_LOCAL local
TK_NIL nil
TK_NOT not
TK_OR or
TK_REPEAT repeat
TK_RETURN return
TK_THEN then
TK_TRUE true
TK_UNTIL until
TK_WHILE while
TK_CONCAT ..
TK_DOTS ...
TK_EQ ==
TK_GE >=
TK_LE <=
TK_NE ~=
TK_NAME <name>
TK_NUMBER <number>
TK_STRING <string>
TK_EOS <eof>]]


Prompt: -- TODO: We shouldn't connect to heartbeat here. Refactor this later.

Response:
RunService.Heartbeat:Connect(function(deltaTime)
    module:Heartbeat(deltaTime)
end)

return module


Prompt: --//Controller//--

Response:
Tool.Activated:Connect(function()
	if not Settings.OnCD then
		Settings.OnCD = true

		local Hitbox = Tool.Hitbox:Clone()
		Hitbox.Parent = Tool

		Debris:AddItem(Hitbox, 0.5)

		Swing:Play()

		Hitbox.Touched:Connect(function(Hit)
			local Humanoid = Hit.Parent:FindFirstChild("Humanoid")

			if Humanoid then
				if not table.find(DamageBlacklist, Humanoid) then
					table.insert(DamageBlacklist, Humanoid)

					DamageEvent:FireServer(Humanoid, Settings.Damage)

					task.wait(Settings.CDTime)

					if Humanoid then
						table.remove(DamageBlacklist, table.find(DamageBlacklist, Humanoid))
					end

				end
			else
				local HealthValue = Hit:FindFirstChildOfClass("IntValue") or Hit:FindFirstChildOfClass("NumberValue")

				if HealthValue then
					if not table.find(DamageBlacklist, HealthValue) then
						table.insert(DamageBlacklist, HealthValue)

						DamageEvent:FireServer(HealthValue, Settings.Damage)

						task.wait(Settings.CDTime)

						if HealthValue then
							table.remove(DamageBlacklist, table.find(DamageBlacklist, HealthValue))
						end

					end

				end
			end

		end)

		task.wait(Settings.CDTime)

		Settings.OnCD = false
	end
end)


Prompt: --cam.FieldOfView = 80

Response:
local part = Instance.new("Part")
part.Anchored = true
part.CanCollide = false
part.Transparency = 0.5
part.BrickColor = BrickColor.new("Pastel light blue")
part.TopSurface = "Smooth"
part.BottomSurface = "Smooth"
part.formFactor = "Custom"
part.Size = Vector3.new(.2,1.2,.2)
local mesh = Instance.new("BlockMesh")
mesh.Scale = Vector3.new(.4,2,.4)
mesh.Parent = part
wait()

while workspace.Raining.Value == true do
for i = 1, amount do
	wait(.03)
	local drop = part:Clone()


Prompt: --// Recoil Settings

Response:
	gunrecoil = -0.6; -- How much the gun recoils backwards when not aiming
	camrecoil = 4.10; -- How much the camera flicks when not aiming
	AimGunRecoil = -0.8; -- How much the gun recoils backwards when aiming
	AimCamRecoil = 2.55; -- How much the camera flicks when aiming

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

	Kickback = 1.8; -- Upward gun rotation when not aiming
	AimKickback = 1.7; -- Upward gun rotation when aiming


Prompt: --Wheelie tune

Response:
local WheelieD = 5
local WheelieTq = 90
local WheelieP = 10
local WheelieMultiplier = 1.5
local WheelieDivider = 1


Prompt: -- constants

Response: local CUSTOMIZATION	= ReplicatedStorage:WaitForChild("Customization")


Prompt: -- Check for user input ended events. Handles release of R1 and thumbsticks

Response:
userInputService.InputEnded:connect(function(input, processed)
	if input.UserInputType == Enum.UserInputType.Gamepad1 then
		-- Stop moving character if left thumbstick released
		if input.KeyCode == Enum.KeyCode.Thumbstick1 then
			character.Humanoid:Move(Vector3.new(0,0,0))
		end
		-- Stop moving camera if right thumbstick released
		if input.KeyCode == Enum.KeyCode.Thumbstick2 then
			deltaAngle = 0
		end
		-- Make character move at normal speed if R3 is released
		if input.KeyCode == Enum.KeyCode.ButtonL3 then
			character.Humanoid.WalkSpeed = 16
		end
	end
end)


Prompt:
--[[
OpenToggleButton.MouseButton1Up:connect(function()
	SideMenu:TweenPosition(UDim2.new(1, -330, 0, 0), "Out", "Quad", 0.5, true)

	if CurrentWindow == "Explorer" then
		ExplorerPanel:TweenPosition(UDim2.new(1, -300, 0, 0), "Out", "Quad", 0.5, true)
		PropertiesFrame:TweenPosition(UDim2.new(1, -300, 0.5, 36), "Out", "Quad", 0.5, true)
	else
		SettingsPanel:TweenPosition(UDim2.new(1, -300, 0, 0), "Out", "Quad", 0.5, true)
	end

	OpenToggleButton:TweenPosition(UDim2.new(1,0,0,0), "Out", "Quad", 0.5, true)
end)

CloseToggleButton.MouseButton1Up:connect(function()
	SideMenu:TweenPosition(UDim2.new(1, 0, 0, 0), "Out", "Quad", 0.5, true)

	ExplorerPanel:TweenPosition(UDim2.new(1, 30, 0, 0), "Out", "Quad", 0.5, true)
	PropertiesFrame:TweenPosition(UDim2.new(1, 30, 0.5, 36), "Out", "Quad", 0.5, true)
	SettingsPanel:TweenPosition(UDim2.new(1, 30, 0, 0), "Out", "Quad", 0.5, true)

	OpenToggleButton:TweenPosition(UDim2.new(1,-30,0,0), "Out", "Quad", 0.5, true)
end)
--]]


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

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

local ChatSettings = require(clientChatModules:WaitForChild("ChatSettings"))

local FlagFixChatMessageLogPerformance = false do
	local ok, value = pcall(function()
		return settings():IsUserFeatureEnabled("UserFixChatMessageLogPerformance")
	end)
	if ok then
		FlagFixChatMessageLogPerformance = value
	end
end

local MessageLabelCreator = moduleMessageLabelCreator.new()


Prompt: --		body.L2.Light.Enabled = bool --if you want That Bright Lights.

Response:
	end
end

local b = ''

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

		body.RLeft.Material = tog and "Neon" or "SmoothPlastic"
		body.RLeft.BrickColor = tog and BrickColor.new("Really red") or BrickColor.new("Ghost grey")

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

		body.RRight.Material = tog and "Neon" or "SmoothPlastic"
		body.RRight.BrickColor = tog and BrickColor.new("Really red") or BrickColor.new("Ghost grey")

		car.DriveSeat.RI.Value = tog
	elseif dir == 'Hazards' then
		body.LeftIn.Material = tog and "Neon" or "SmoothPlastic"
		body.LeftIn.BrickColor = tog and BrickColor.new("Deep orange") or BrickColor.new("Pearl")

		body.RLeft.Material = tog and "Neon" or "SmoothPlastic"
		body.RLeft.BrickColor = tog and BrickColor.new("Really red") or BrickColor.new("Ghost grey")

		body.RightIn.Material = tog and "Neon" or "SmoothPlastic"
		body.RightIn.BrickColor = tog and BrickColor.new("Deep orange") or BrickColor.new("Pearl")

		body.RRight.Material = tog and "Neon" or "SmoothPlastic"
		body.RRight.BrickColor = tog and BrickColor.new("Really red") or BrickColor.new("Ghost grey")

		car.DriveSeat.LI.Value = tog
		car.DriveSeat.RI.Value = tog
	end
end

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

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

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

F.flash = function()
	Toggle('Hazards', true)
	wait(1/3)
	Toggle('Hazards', false)
end

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


Prompt: -- References

Response:
Support.ImportServices();
SyncAPI = Tool.SyncAPI;
Player = Players.LocalPlayer;
local RunService = game:GetService('RunService')


Prompt: -- TUNE

Response:
SpeedType = "MPH"	-- MPH or KPH

local Smoothness = 0.89
local TurboSmoothness = 0.87
local autoscaling	= true					--Estimates top speed
local UNITS	= {								--Click on speed to change units
											--First unit is default
	{
		units			= "MPH"				,
		scaling			= (10/12) * (60/88)	, -- 1 stud : 10 inches | ft/s to MPH
		maxSpeed		= 230				,
		spInc			= 20				, -- Increment between labelled notches
	},

	{
		units			= "KM/H"			,
		scaling			= (10/12) * 1.09728	, -- 1 stud : 10 inches | ft/s to KP/H
		maxSpeed		= 370				,
		spInc			= 40				, -- Increment between labelled notches
	},

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


Prompt:
--- Activates the raycasts for the hitbox object.
--- The hitbox will automatically stop and restart if the hitbox was already casting.
-- @param optional number parameter to automatically turn off the hitbox after 'n' seconds

Response:
function Hitbox:HitStart(seconds: number?)
	if self.HitboxActive then
		self:HitStop()
	end

	if seconds then
		self.HitboxStopTime = os.clock() + math.max(MINIMUM_SECONDS_SCHEDULER, seconds)
	end

	self.HitboxActive = true
end


Prompt:
--[[
	Creates a new element representing the given component.

	Elements are lightweight representations of what a component instance should
	look like.

	Children is a shorthand for specifying `Roact.Children` as a key inside
	props. If specified, the passed `props` table is mutated!
]]

Response:
local function createElement(component, props, children)
	if config.typeChecks then
		assert(component ~= nil, "`component` is required")
		assert(typeof(props) == "table" or props == nil, "`props` must be a table or nil")
		assert(typeof(children) == "table" or children == nil, "`children` must be a table or nil")
	end

	if props == nil then
		props = {}
	end

	if children ~= nil then
		if props[Children] ~= nil then
			Logging.warnOnce(multipleChildrenMessage)
		end

		props[Children] = children
	end

	local elementKind = ElementKind.fromComponent(component)

	local element = {
		[Type] = Type.Element,
		[ElementKind] = elementKind,
		component = component,
		props = props,
	}

	if config.elementTracing then
		-- We trim out the leading newline since there's no way to specify the
		-- trace level without also specifying a message.
		element.source = debug.traceback("", 2):sub(2)
	end

	return element
end

return createElement


Prompt: -- PUBLIC FUNCTIONS

Response:
function ZoneController.getZones()
	local registeredZonesArray = {}
	for zone, _ in pairs(registeredZones) do
		table.insert(registeredZonesArray, zone)
	end
	return registeredZonesArray
end


Prompt:
--[[**
		ensures value is an array and all values of the array match check

		@param check The check to compare all values with

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

Response:
	function t.array(check)
		assert(t.callback(check))
		local valuesCheck = t.values(check)

		return function(value)
			local keySuccess, keyErrMsg = arrayKeysCheck(value)
			if keySuccess == false then
				return false, string.format("[array] %s", keyErrMsg or "")
			end

			-- # is unreliable for sparse arrays
			-- Count upwards using ipairs to avoid false positives from the behavior of #
			local arraySize = 0

			for _ in ipairs(value) do
				arraySize = arraySize + 1
			end

			for key in pairs(value) do
				if key < 1 or key > arraySize then
					return false, string.format("[array] key %s must be sequential", tostring(key))
				end
			end

			local valueSuccess, valueErrMsg = valuesCheck(value)
			if not valueSuccess then
				return false, string.format("[array] %s", valueErrMsg or "")
			end

			return true
		end
	end


Prompt: --- Searches for attachments for the given instance (if applicable)

Response:
function Hitbox:Recalibrate()
	local descendants: {[number]: Instance} = self.HitboxObject:GetDescendants()
	local attachmentCount: number = 0

	for _, attachment: any in ipairs(descendants) do
		if not attachment:IsA("Attachment") or attachment.Name ~= DEFAULT_ATTACHMENT_INSTANCE then
			continue
		end

		local group: string? = attachment:GetAttribute(DEFAULT_GROUP_NAME_INSTANCE)
		local point: Point = self:_CreatePoint(group, Hitbox.CastModes.Attachment, attachment.WorldPosition)

		table.insert(point.Instances, attachment)
		table.insert(self.HitboxRaycastPoints, point)

		attachmentCount += 1
	end

	if self.DebugLog then
		print(string.format("%s%s", DEFAULT_DEBUG_LOGGER_PREFIX,
			attachmentCount > 0 and string.format(DEFAULT_ATTACH_COUNT_NOTICE, attachmentCount, self.HitboxObject.Name) or
				string.format(DEFAULT_MISSING_ATTACHMENTS, self.HitboxObject.Name))
		)
	end
end