Prompt: -- number macro item

Response:
local item = {}

local utilFolder = script.Parent.Parent.Util
local parametricEval = require(utilFolder.ParametricEval)

function item:New(itemContainer, macroItem, pluginSettings, updatePluginSettings)
	itemContainer.TextLabel.Text = macroItem.Text
	local fieldX, fieldY, fieldZ = itemContainer.Field.X, itemContainer.Field.Y, itemContainer.Field.Z

	local function updateDisplay()
		fieldX.Text = macroItem.Value.X
		fieldY.Text = macroItem.Value.Y
		fieldZ.Text = macroItem.Value.Z
	end

	local function valueSet(newValue)
		local oldValue = macroItem.Value
		macroItem.Value = newValue
		pluginSettings[macroItem.SettingId] = newValue
		updatePluginSettings()
		updateDisplay()
		if type(macroItem.Changed) == "function" then
			macroItem:Changed(newValue, oldValue)
		end
	end

	function macroItem:Set(value)
		valueSet(value)
	end

	function macroItem:UpdateText(text)
		itemContainer.TextLabel.Text = text
	end

	local function focusLost(enterPressed)
		if enterPressed then
			local x, y, z = parametricEval(fieldX.Text), parametricEval(fieldY.Text), parametricEval(fieldZ.Text)
			if x and y and z then
				valueSet(Vector3.new(x, y, z))
			else
				updateDisplay()
			end
		else
			updateDisplay()
		end
	end

	fieldX.FocusLost:Connect(focusLost)
	fieldY.FocusLost:Connect(focusLost)
	fieldZ.FocusLost:Connect(focusLost)
	updateDisplay()

	--function macroItem:LoadSetting(storedSetting)
	--	macroItem.Value = Vector3.new(storedSetting[1], storedSetting[2], storedSetting[3])
	--end

	function macroItem:UpdateTheme(theme)
		itemContainer.TextLabel.TextColor3 = theme:GetColor(Enum.StudioStyleGuideColor.SubText)
		fieldX.TextColor3 = theme:GetColor(Enum.StudioStyleGuideColor.MainText)
		fieldX.BackgroundColor3 = theme:GetColor(Enum.StudioStyleGuideColor.InputFieldBackground)
		fieldY.TextColor3 = theme:GetColor(Enum.StudioStyleGuideColor.MainText)
		fieldY.BackgroundColor3 = theme:GetColor(Enum.StudioStyleGuideColor.InputFieldBackground)
		fieldZ.TextColor3 = theme:GetColor(Enum.StudioStyleGuideColor.MainText)
		fieldZ.BackgroundColor3 = theme:GetColor(Enum.StudioStyleGuideColor.InputFieldBackground)
	end
end

return item


Prompt: -- functions for formatting spritesheet strings

Response:
local function wrapText(text, size, settings)
	local index = 1;
	local lines, words = {""}, getWords(text, true);
	local lineWidth, maxWidth = 0, abs(settings.child.AbsoluteSize.x);
	for i = 1, #words do
		local word = words[i];
		if (word ~= "\n") then
			local width = getStringWidth(word, settings.styles[settings.style][size]);
			if (width + lineWidth <= maxWidth) then
				lines[index] = lines[index] .. word;
			else
				lineWidth = 0;
				index = index + 1;
				lines[index] = word;
			end;
			lineWidth = lineWidth + width;
		else
			lineWidth = 0;
			index = index + 1;
			lines[index] = "";
		end;
	end;
	return lines;
end;

function scaleText(text, settings)
	local child = settings.child;
	local attached = settings.attached;

	sort(settings.information.sizes, function(a, b) return a > b; end);
	local bestSize = settings.information.sizes[1];
	local broke = false;

	for i = 1, #settings.information.sizes do
		local size = settings.information.sizes[i];
		local sizeSet = settings.styles[settings.style][size];
		local lines = child.TextWrapped and wrapText(text, size, settings) or getLines(text);

		local widths = {};
		local height = -sizeSet.firstAdjust;
		for j = 1, #lines do
			local line = lines[j];
			height = height + getMaxHeight(line, sizeSet)
			insert(widths, getStringWidth(line, sizeSet));
		end;

		local width = max(unpack(widths));
		if (width <= abs(child.AbsoluteSize.x) and height <= abs(child.AbsoluteSize.y)) then
			bestSize = size;
			broke = true;
			break;
		end;
	end;

	return broke and bestSize or settings.information.sizes[#settings.information.sizes];
end;


Prompt: -- Decompiled with Visenya | https://targaryentech.com

Response:
local MiscWeld = {}
function MakeWeld(x, y, type, s)
  if type == nil then
    type = "Weld"
  end
  local W = Instance.new(type)
  W.Part0 = x
  W.Part1 = y
  W.C0 = x.CFrame:inverse() * x.CFrame
  W.C1 = y.CFrame:inverse() * x.CFrame
  W.Parent = x
  if type == "Motor" and s ~= nil then
    W.MaxVelocity = s
  end
  return W
end
function ModelWeld(a, b)
  if a:IsA("BasePart") then
    MakeWeld(b, a, "Weld")
  elseif a:IsA("Model") then
    for i, v in pairs(a:GetChildren()) do
      ModelWeld(v, b)
    end
  end
end
car = script.Parent.Parent.Parent
for _, i in pairs(car.Misc:GetChildren()) do
  i.Anchored = false
end
car.DriveSeat.ChildAdded:connect(function(child)
  if child.Name == "SeatWeld" and child:IsA("Weld") and game.Players:GetPlayerFromCharacter(child.Part1.Parent) ~= nil then
    child.C0 = CFrame.new(0, -0.5, 0) * CFrame.fromEulerAnglesXYZ(-(math.pi / 2), 0, 0) * CFrame.Angles(math.rad(13), 0, 0)
  end
end)
return MiscWeld


Prompt:
------------------------------------------
--Digets

Response:
function Click0()
Input = Input..0
print("0")
script.Parent.B0.Decal.Texture = "http://www.roblox.com/asset/?id=2767674"
wait(0.1)
script.Parent.B0.Decal.Texture = "http://www.roblox.com/asset/?id=2761903"
end

script.Parent.B0.ClickDetector.MouseClick:connect(Click0)

function Click1()
Input = Input..1
print("1")
script.Parent.B1.Decal.Texture = "http://www.roblox.com/asset/?id=2767677"
wait(0.1)
script.Parent.B1.Decal.Texture = "http://www.roblox.com/asset/?id=2761913"
end

script.Parent.B1.ClickDetector.MouseClick:connect(Click1)

function Click2()
Input = Input..2
print("2")
script.Parent.B2.Decal.Texture = "http://www.roblox.com/asset/?id=2767680"
wait(0.1)
script.Parent.B2.Decal.Texture = "http://www.roblox.com/asset/?id=2761922"
end

script.Parent.B2.ClickDetector.MouseClick:connect(Click2)

function Click3()
Input = Input..3
print("3")
script.Parent.B3.Decal.Texture = "http://www.roblox.com/asset/?id=2767686"
wait(0.1)
script.Parent.B3.Decal.Texture = "http://www.roblox.com/asset/?id=2761927"
end

script.Parent.B3.ClickDetector.MouseClick:connect(Click3)

function Click4()
Input = Input..4
print("4")
script.Parent.B4.Decal.Texture = "http://www.roblox.com/asset/?id=2767693"
wait(0.1)
script.Parent.B4.Decal.Texture = "http://www.roblox.com/asset/?id=2761938"
end

script.Parent.B4.ClickDetector.MouseClick:connect(Click4)

function Click5()
Input = Input..5
print("5")
script.Parent.B5.Decal.Texture = "http://www.roblox.com/asset/?id=2767695"
wait(0.1)
script.Parent.B5.Decal.Texture = "http://www.roblox.com/asset/?id=2761943"
end

script.Parent.B5.ClickDetector.MouseClick:connect(Click5)

function Click6()
Input = Input..6
print("6")
script.Parent.B6.Decal.Texture = "http://www.roblox.com/asset/?id=2767699"
wait(0.1)
script.Parent.B6.Decal.Texture = "http://www.roblox.com/asset/?id=2761948"
end

script.Parent.B6.ClickDetector.MouseClick:connect(Click6)

function Click7()
Input = Input..7
print("7")
script.Parent.B7.Decal.Texture = "http://www.roblox.com/asset/?id=2767701"
wait(0.1)
script.Parent.B7.Decal.Texture = "http://www.roblox.com/asset/?id=2761956"
end

script.Parent.B7.ClickDetector.MouseClick:connect(Click7)

function Click8()
Input = Input..8
print("8")
script.Parent.B8.Decal.Texture = "http://www.roblox.com/asset/?id=2767707"
wait(0.1)
script.Parent.B8.Decal.Texture = "http://www.roblox.com/asset/?id=2761961"
end

script.Parent.B8.ClickDetector.MouseClick:connect(Click8)

function Click9()
Input = Input..9
print("9")
script.Parent.B9.Decal.Texture = "http://www.roblox.com/asset/?id=2767714"
wait(0.1)
script.Parent.B9.Decal.Texture = "http://www.roblox.com/asset/?id=2761971"
end

script.Parent.B9.ClickDetector.MouseClick:connect(Click9)


Prompt: --// Handling Settings

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

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


Prompt: -- returns the ascendant ScreenGui of an object

Response:
function GetScreen(screen)
	if screen == nil then return nil end
	while not screen:IsA("ScreenGui") do
		screen = screen.Parent
		if screen == nil then return nil end
	end
	return screen
end


Prompt:
--TheNexusAvenger
--Centralizes player damaging.

Response:
local PlayerDamager = {}

local Debris = game:GetService("Debris")


Prompt: -- string trim5 implementation from http://lua-users.org/wiki/StringTrim

Response:
local function trim(string_: string): string
	return String.trim(string_ or "")
end


Prompt:
--[[local v1 = require(game.ReplicatedStorage:WaitForChild("Framework"):WaitForChild("Library"));
while not v1.Loaded do
	game:GetService("RunService").Heartbeat:Wait();
end;
local u1 = nil;
local u2 = nil;
local v9;
function Update()
	if u1 then
		if not u2 then
			return;
		end;
	else
		return;
	end;
	local v2 = u1.Main:FindFirstChildOfClass("SurfaceGui");
	--local v3, v4, v5 = ipairs(u2);
	for v4, v5 in pairs(u2) do
		--while true do
		--v3(v4, v5);
		--if v3 then
		--else
		--break;
		--end;
		local v6 = v2.Frame:FindFirstChild("Spot" .. tostring(v4));
		if not v6 then
			local v7 = v4 <= 3;
			local v8 = v1.Assets.UI.Leaderboard.Spot:Clone();
			v8.LayoutOrder = v4;
			v8.Rank.Text = "#" .. v4;
			v8.Name = "Spot" .. tostring(v4);
			if v7 then
				v9 = 50;
			else
				v9 = 45;
			end;
			v6.Size = UDim2.new(1, 0, 0, v9);
			v6.Rank.TextColor3 = v7 and Color3.fromRGB(180, 170, 31) or Color3.fromRGB(102, 102, 102);
			v6.Parent = v2.Frame;
		end;
		v6.Score.Text = v1.Functions.NumberShorten(v5.level, false);
		v6.Username.Text = "@" .. v5.username;
		if v5.username == v1.LocalPlayer.Name then
			v6.Username.TextColor3 = Color3.fromRGB(28, 134, 173);
		else
			v6.Username.TextColor3 = Color3.fromRGB(121, 121, 121);
		end;
	end;
	v2.Frame.CanvasSize = UDim2.new(0, 0, 0, v2.Frame:FindFirstChildOfClass("UIListLayout").AbsoluteContentSize.Y);
end;
function Grab()
	local v10 = v1.Network.Invoke("Get Global Leaderboard");
	if v10 then
		u2 = v10;
		Update();
	end;
end;
function Check()
	local v11 = v1.WorldCmds.GetMap();
	if v11:FindFirstChild("Interactive") then
		u1 = v11.Interactive:FindFirstChild("Leaderboard");
		if u1 then

		else
			return;
		end;
	else
		return;
	end;
	Update();
end;
v1.Signal.Fired("World Changed"):Connect(function()
	u1 = nil;
	Check();
end);
coroutine.wrap(function()
	while true do
		if u1 then
			Grab();
		end;
		wait(10);
	end;
end)();]]


Prompt: --"Alpha" throughout entire script refers to the ratio: (TextSize/AbsoluteSize.Y)

Response:
function module.scaleTextToMaxAlpha(textObj)
	local fitSize = 0
	textObj.TextSize = fitSize
	textObj.TextScaled = false

	repeat
		fitSize = fitSize + 1
		textObj.TextSize = fitSize
	until textObj.TextFits == false or fitSize > 100

	fitSize = fitSize - 1
	textObj.TextSize = fitSize

	return fitSize
end

function module.descendantsUniformTextSize(guiObj, maxAlphaSize, waited1Frame)
	--if not waited1Frame then
	--need to wait otherwise AbsoluteSize will read incorrectly
	--task.wait()
	--end

	local smallestSize = 999
	local textObjSizeDict = {}

	for _, v in pairs(guiObj:GetDescendants()) do
		if v:IsA("TextButton") or v:IsA("TextLabel") then
			local size = module.scaleTextToMaxAlpha(v)
			textObjSizeDict[v] = size

			if maxAlphaSize then
				local alphaSize = math.ceil(v.AbsoluteSize.Y * maxAlphaSize)
				size = math.min(size, alphaSize)
				textObjSizeDict[v] = size
			end

			if smallestSize > size then
				smallestSize = size
			end
		end
	end

	for obj, _ in pairs(textObjSizeDict) do
		obj.TextSize = smallestSize
	end

	return smallestSize
end

function module.setTextSizeWithAlpha(textObj, alpha, dontSetMax, waited1Frame)
	--if not waited1Frame then
	--need to wait otherwise AbsoluteSize will read incorrectly
	--task.wait()
	--end

	local absoluteSize = textObj.AbsoluteSize.Y
	local sizeToSet = math.ceil(absoluteSize * alpha)
	textObj.TextScaled = false
	textObj.TextWrapped = true
	textObj.TextSize = sizeToSet

	if not textObj.TextFits and not dontSetMax then
		module.scaleTextToMaxAlpha(textObj)
	end

	return textObj.TextSize
end

function module.resizeParentXToFitTextWithAlpha(textObj, text, alpha, extraPadding, waited1Frame)
	textObj.Text = text
	textObj.TextScaled = false
	textObj.TextWrapped = true

	local parentStartSize = textObj.Parent.Size
	local parentXSize = 0
	local textSize = module.setTextSizeWithAlpha(textObj, alpha, true, waited1Frame)

	repeat
		parentXSize = parentXSize + 0.01
		textObj.Parent.Size =
			UDim2.new(parentXSize, parentStartSize.X.Offset, parentStartSize.Y.Scale, parentStartSize.Y.Offset)
	until textObj.TextFits

	if extraPadding then
		textObj.Parent.Size = textObj.Parent.Size + UDim2.new(extraPadding, 0, 0, 0)
		parentXSize = parentXSize + extraPadding
	end

	return parentXSize
end

function module.resizeParentYToFitTextWithAlpha(textObj, text, alpha, parentYStartSize, waited1Frame)
	textObj.Text = text
	textObj.TextScaled = false
	textObj.TextWrapped = true

	local parentOriginalSize = textObj.Parent.Size
	local parentYSize = parentYStartSize or 0
	local sizeAdded = 0

	--prevent infinite growth
	textObj.Parent.Size =
		UDim2.new(parentOriginalSize.X.Scale, parentOriginalSize.X.Offset, parentYSize, parentOriginalSize.Y.Offset)
	module.setTextSizeWithAlpha(textObj, alpha, true, waited1Frame)

	local function expandUntilTextFits()
		while not textObj.TextFits do
			parentYSize = parentYSize + 0.005
			sizeAdded = sizeAdded + 0.005
			textObj.Parent.Size =
				UDim2.new(parentOriginalSize.X.Scale, parentOriginalSize.X.Offset, parentYSize, parentOriginalSize.Y.Offset)
		end
	end

	--Sometimes TextFits property is wrong if not waited a frame
	repeat
		expandUntilTextFits()
		task.wait()
	until textObj.TextFits

	return sizeAdded
end

return module


Response:
local neck = torso.Neck
neck.C1 = CFrame.new(0,0,0)
local leftshoulder = torso["Left Shoulder"]
leftshoulder.C1 = CFrame.new(0,0,0)
local rightshoulder = torso["Right Shoulder"]
rightshoulder.C1 = CFrame.new(0,0,0)
local lefthip = torso["Left Hip"]
lefthip.C1 = CFrame.new(0,0,0)
local righthip = torso["Right Hip"]
righthip.C1 = CFrame.new(0,0,0)
local root = npc.HumanoidRootPart.RootJoint
root.C1 = CFrame.new(0,0,0)


Prompt:
--[[**
	ensures value matches string pattern

	@param string pattern to check against

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

Response:
function t.match(pattern)
	assert(t.string(pattern))
	return function(value)
		local stringSuccess, stringErrMsg = t.string(value)
		if not stringSuccess then
			return false, stringErrMsg
		end

		if string.match(value, pattern) == nil then
			return false, string.format("\"%s\" failed to match pattern \"%s\"", value, pattern)
		end

		return true
	end
end


Prompt: --[[ Top Level Roblox Services ]]

Response:
--
local PlayersService = game:GetService("Players")


Prompt: --[[Weight and CG]]

Response:
	Tune.Weight			= 2500		-- Total weight (in pounds)
	Tune.WeightBSize	= {			-- Size of weight brick (dimmensions in studs ; larger = more stable)
	 --[[Width]]		6		,
	 --[[Height]]		3.5		,
	 --[[Length]]		9		}
	Tune.WeightDist		= 50		-- Weight distribution (0 - on rear wheels, 100 - on front wheels, can be <0 or >100)
	Tune.CGHeight		= .8		-- Center of gravity height (studs relative to median of all wheels)
	Tune.WBVisible		= false		-- Makes the weight brick visible

	--Unsprung Weight
	Tune.FWheelDensity	= 1.0 	-- Front Wheel Density
	Tune.RWheelDensity	= 1.0		-- Rear Wheel Density
	Tune.FWLgcyDensity	= 1			-- Front Wheel Density [PGS OFF]
	Tune.RWLgcyDensity	= 1			-- Rear Wheel Density [PGS OFF]

	Tune.AxleSize		= 2			-- Size of structural members (larger = more stable/carry more weight)
	Tune.AxleDensity	= .1		-- Density of structural members


Prompt: --[[ SERVICES ]]

Response:
local PlayersService = game:GetService('Players')
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ChatService = game:GetService("Chat")
local TextService = game:GetService("TextService")


Prompt: --Gets the current active group, starting with the first priority, then the last non-priority.

Response:
local function GetActiveGroup()
	if #ActivePriorityControllerGroups >= 1 then
		return ActivePriorityControllerGroups[1]
	end
	if #ActiveControllerGroups >= 1 then
		return ActiveControllerGroups[1]
	end
end


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

Response:
debounce = true

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

script.Parent.Touched:connect(onTouched)


Prompt:
--[[
	Creates a new GuiController. hideOtherGuis and showOtherGuis are optional
	callbacks that can be used to control hiding and showing of GUIs. If they
	are defined the GuiController will not do any GUI manipulation. It will
	instead call those callbacks and return.

	Parameters:
	screenGuis - An array of Roact.Refs of the ScreenGuis for this module
	hideOtherGuis - A callback that is called when hideGuis is called
	showOtherGuis - A callback that is called when showGuis is called
]]

Response:
function GuiController.new(screenGuis: { any }?, hideOtherGuis: Callback?, showOtherGuis: Callback?)
	local self = {
		StarterGui = StarterGui,
		UserInputService = UserInputService,
		player = Players.LocalPlayer,
		screenGuis = screenGuis or {},
		hideOtherGuis = hideOtherGuis,
		showOtherGuis = showOtherGuis,
		disabledGuis = {},
		disabledCoreGuis = {},
		modalEnabled = false,
	}

	return setmetatable(self, GuiController)
end


Prompt:
-- This was automatically inserted by the Ban Hammer plugin.
-- You can re-parent this script and change it any way you see fit.


Response:
This = script.Parent
Lift = This.Parent.Parent.Parent
Elevator = This.Parent.Parent.Parent
CustomLabel = require(This.Parent.Parent.Parent.CustomLabel)
Characters = require(script.Characters)

CustomText = CustomLabel["CUSTOMFLOORLABEL"]

Lift:WaitForChild("Floor").Changed:connect(function(floor)
  --custom indicator code--
  ChangeFloor(tostring(floor))
end)

function ChangeFloor(SF)
	if CustomText[tonumber(SF)] then
		SF = CustomText[tonumber(SF)]
	end
	SetDisplay(1,(string.len(SF) == 2 and SF:sub(1,1) or "NIL"))
	SetDisplay(2,(string.len(SF) == 2 and SF:sub(2,2) or SF))
end

function SetDisplay(ID,CHAR)
	if This.Display:FindFirstChild("DIG"..ID) and Characters[CHAR] ~= nil then
 		for i,l in pairs(Characters[CHAR]) do
			for r=1,16 do
				This.Display["DIG"..ID]["D"..r].Transparency = (l:sub(r,r) == "1" and 0 or 1)
			end
		end
	end
end

while true do
	wait()
	if Elevator:WaitForChild("Direction").Value ~= 0 then
		if Elevator:WaitForChild("Velocity").Value ~= 0 then
			if Elevator:WaitForChild("Direction").Value == 1 then
				This.Display.ARW1.UP.Transparency = 0
				This.Display.ARW1.MID.Transparency = 0
				This.Display.ARW1.DOWN.Transparency = 1
			else
				This.Display.ARW1.UP.Transparency = 1
				This.Display.ARW1.MID.Transparency = 0
				This.Display.ARW1.DOWN.Transparency = 0
			end
		elseif Elevator:WaitForChild("Velocity").Value == 0 then
			if Elevator:WaitForChild("Direction").Value == 1 then
				wait(0.5)
				This.Display.ARW1.UP.Transparency = 1
				This.Display.ARW1.MID.Transparency = 1
				This.Display.ARW1.DOWN.Transparency = 1
				wait(0.5)
				This.Display.ARW1.UP.Transparency = 0
				This.Display.ARW1.MID.Transparency = 0
				This.Display.ARW1.DOWN.Transparency = 1
			else
				wait(0.5)
				This.Display.ARW1.UP.Transparency = 1
				This.Display.ARW1.MID.Transparency = 1
				This.Display.ARW1.DOWN.Transparency = 1
				wait(0.5)
				This.Display.ARW1.UP.Transparency = 1
				This.Display.ARW1.MID.Transparency = 0
				This.Display.ARW1.DOWN.Transparency = 0
			end
		end
	else
		This.Display.ARW1.UP.Transparency = 1
		This.Display.ARW1.MID.Transparency = 1
		This.Display.ARW1.DOWN.Transparency = 1
	end
end


Prompt: --// Input Connections

Response:
L_104_.InputBegan:connect(function(L_308_arg1, L_309_arg2)
	if not L_309_arg2 and L_15_ then
		if L_308_arg1.UserInputType == (Enum.UserInputType.MouseButton2 or L_308_arg1.KeyCode == Enum.KeyCode.ButtonL2) and not L_76_ and not L_75_ and not L_74_ and L_24_.CanAim and not L_71_ and L_15_ and not L_63_ and not L_64_ then
			if not L_61_ then
				if not L_62_ then
					L_3_.Humanoid.WalkSpeed = 10
					L_152_ = 10
					L_151_ = 0.008
				end

				if (L_3_.Head.Position - L_5_.CoordinateFrame.p).magnitude <= 2 then
					L_94_ = L_50_
				end
				L_130_.target = L_53_.CFrame:toObjectSpace(L_44_.CFrame).p
				L_112_:FireServer(true)
				L_61_ = true
			end
		end;

		if L_308_arg1.KeyCode == Enum.KeyCode.E and L_15_ and not L_77_ and not L_78_ then
			L_77_ = true
			L_79_ = false
			L_78_ = true
			LeanRight()
		end

		if L_308_arg1.KeyCode == Enum.KeyCode.Q and L_15_ and not L_77_ and not L_79_ then
			L_77_ = true
			L_78_ = false
			L_79_ = true
			LeanLeft()
		end

		if L_308_arg1.KeyCode == L_24_.AlternateAimKey and not L_76_ and not L_75_ and not L_74_ and L_24_.CanAim and not L_71_ and L_15_ and not L_63_ and not L_64_ then
			if not L_61_ then
				if not L_62_ then
					L_3_.Humanoid.WalkSpeed = 10
					L_152_ = 10
					L_151_ = 0.008
				end
				L_94_ = L_50_
				L_130_.target = L_53_.CFrame:toObjectSpace(L_44_.CFrame).p
				L_112_:FireServer(true)
				L_61_ = true
			end
		end;

		if L_308_arg1.UserInputType == (Enum.UserInputType.MouseButton1 or L_308_arg1.KeyCode == Enum.KeyCode.ButtonR2) and not L_76_ and not L_74_ and L_66_ and L_15_ and not L_63_ and not L_64_ and not L_71_ then
			L_65_ = true
			if not Shooting and L_15_ and not L_80_ then
				if L_100_ > 0 then
					Shoot()
				end
			elseif not Shooting and L_15_ and L_80_ then
				if L_102_ > 0 then
					Shoot()
				end
			end
		end;

		if L_308_arg1.KeyCode == (L_24_.LaserKey or L_308_arg1.KeyCode == Enum.KeyCode.DPadRight) and L_15_ and L_24_.LaserAttached then
			local L_310_ = L_1_:FindFirstChild("LaserLight")
			L_119_.KeyDown[1].Plugin()
		end;

		if L_308_arg1.KeyCode == (L_24_.LightKey or L_308_arg1.KeyCode == Enum.KeyCode.ButtonR3) and L_15_ and L_24_.LightAttached then
			local L_311_ = L_1_:FindFirstChild("FlashLight"):FindFirstChild('Light')
			local L_312_ = false
			L_311_.Enabled = not L_311_.Enabled
		end;

		if L_15_ and L_308_arg1.KeyCode == (L_24_.FireSelectKey or L_308_arg1.KeyCode == Enum.KeyCode.DPadUp) and not L_76_ and not L_67_ and not L_75_ then
			L_67_ = true
			if L_89_ == 1 then
				if Shooting then
					Shooting = false
				end
				if L_24_.AutoEnabled then
					L_89_ = 2
					L_80_ = false
					L_66_ = L_81_
				elseif not L_24_.AutoEnabled and L_24_.BurstEnabled then
					L_89_ = 3
					L_80_ = false
					L_66_ = L_81_
				elseif not L_24_.AutoEnabled and not L_24_.BurstEnabled and L_24_.BoltAction then
					L_89_ = 4
					L_80_ = false
					L_66_ = L_81_
				elseif not L_24_.AutoEnabled and not L_24_.BurstEnabled and not L_24_.BoltAction and L_24_.ExplosiveEnabled then
					L_89_ = 6
					L_80_ = true
					L_81_ = L_66_
					L_66_ = L_82_
				elseif not L_24_.AutoEnabled and not L_24_.BurstEnabled and not L_24_.BoltAction and not L_24_.ExplosiveEnabled then
					L_89_ = 1
					L_80_ = false
					L_66_ = L_81_
				end
			elseif L_89_ == 2 then
				if Shooting then
					Shooting = false
				end
				if L_24_.BurstEnabled then
					L_89_ = 3
					L_80_ = false
					L_66_ = L_81_
				elseif not L_24_.BurstEnabled and L_24_.BoltAction then
					L_89_ = 4
					L_80_ = false
					L_66_ = L_81_
				elseif not L_24_.BurstEnabled and not L_24_.BoltAction and L_24_.ExplosiveEnabled then
					L_89_ = 6
					L_80_ = true
					L_81_ = L_66_
					L_66_ = L_82_
				elseif not L_24_.BurstEnabled and not L_24_.BoltAction and not L_24_.ExplosiveEnabled and L_24_.SemiEnabled then
					L_89_ = 1
					L_80_ = false
					L_66_ = L_81_
				elseif not L_24_.BurstEnabled and not L_24_.BoltAction and not L_24_.SemiEnabled then
					L_89_ = 2
					L_80_ = false
					L_66_ = L_81_
				end
			elseif L_89_ == 3 then
				if Shooting then
					Shooting = false
				end
				if L_24_.BoltAction then
					L_89_ = 4
					L_80_ = false
					L_66_ = L_81_
				elseif not L_24_.BoltAction and L_24_.ExplosiveEnabled then
					L_89_ = 6
					L_80_ = true
					L_81_ = L_66_
					L_66_ = L_82_
				elseif not L_24_.BoltAction and not L_24_.ExplosiveEnabled and L_24_.SemiEnabled then
					L_89_ = 1
					L_80_ = false
					L_66_ = L_81_
				elseif not L_24_.BoltAction and not L_24_.SemiEnabled and L_24_.AutoEnabled then
					L_89_ = 2
					L_80_ = false
					L_66_ = L_81_
				elseif not L_24_.BoltAction and not L_24_.SemiEnabled and not L_24_.AutoEnabled then
					L_89_ = 3
					L_80_ = false
					L_66_ = L_81_
				end
			elseif L_89_ == 4 then
				if Shooting then
					Shooting = false
				end
				if L_24_.ExplosiveEnabled then
					L_89_ = 6
					L_80_ = true
					L_81_ = L_66_
					L_66_ = L_82_
				elseif not L_24_.ExplosiveEnabled and L_24_.SemiEnabled then
					L_89_ = 1
					L_80_ = false
					L_66_ = L_81_
				elseif not L_24_.SemiEnabled and L_24_.AutoEnabled then
					L_89_ = 2
					L_80_ = false
					L_66_ = L_81_
				elseif not L_24_.SemiEnabled and not L_24_.AutoEnabled and L_24_.BurstEnabled then
					L_89_ = 3
					L_80_ = false
					L_66_ = L_81_
				elseif not L_24_.SemiEnabled and not L_24_.AutoEnabled and not L_24_.BurstEnabled then
					L_89_ = 4
					L_80_ = false
					L_66_ = L_81_
				end
			elseif L_89_ == 6 then
				if Shooting then
					Shooting = false
				end
				L_82_ = L_66_
				if L_24_.SemiEnabled then
					L_89_ = 1
					L_80_ = false
					L_66_ = L_81_
				elseif not L_24_.SemiEnabled and L_24_.AutoEnabled then
					L_89_ = 2
					L_80_ = false
					L_66_ = L_81_
				elseif not L_24_.SemiEnabled and not L_24_.AutoEnabled and L_24_.BurstEnabled then
					L_89_ = 3
					L_80_ = false
					L_66_ = L_81_
				elseif not L_24_.SemiEnabled and not L_24_.AutoEnabled and not L_24_.BurstEnabled and L_24_.BoltAction then
					L_89_ = 4
					L_80_ = false
					L_66_ = L_81_
				elseif not L_24_.SemiEnabled and not L_24_.AutoEnabled and not L_24_.BurstEnabled and not L_24_.BoltAction then
					L_89_ = 6
					L_80_ = true
					L_81_ = L_66_
					L_66_ = L_82_
				end
			end
			UpdateAmmo()
			FireModeAnim()
			IdleAnim()
			L_67_ = false
		end;

		if L_308_arg1.KeyCode == (Enum.KeyCode.F or L_308_arg1.KeyCode == Enum.KeyCode.DPadDown) and not L_76_ and not L_74_ and not L_75_ and not L_64_ and not L_67_ and not L_61_ and not L_63_ and not Shooting and not L_73_ then
			if not L_70_ and not L_71_ then
				L_71_ = true
				Shooting = false
				L_66_ = false
				L_132_ = time()
				delay(0.6, function()
					if L_100_ ~= L_24_.Ammo and L_100_ > 0 then
						CreateShell()
					end
				end)
				BoltBackAnim()
				L_70_ = true
			elseif L_70_ and L_71_ then
				BoltForwardAnim()
				Shooting = false
				L_66_ = true
				if L_100_ ~= L_24_.Ammo and L_100_ > 0 then
					L_100_ = L_100_ - 1
				elseif L_100_ >= L_24_.Ammo then
					L_66_ = true
				end
				L_70_ = false
				L_71_ = false
				IdleAnim()
				L_72_ = false
			end
			UpdateAmmo()
		end;

		if L_308_arg1.KeyCode == (Enum.KeyCode.LeftShift or L_308_arg1.KeyCode == Enum.KeyCode.ButtonL3) and not L_75_ and not L_74_ and L_143_ then
			L_68_ = true
			if L_15_ and not L_67_ and not L_64_ and L_68_ and not L_62_ and not L_71_ then
				Shooting = false
				L_61_ = false
				L_64_ = true

				delay(0, function()
					if L_64_ and not L_63_ then
						L_61_ = false
						L_69_ = true
					end
				end)
				L_94_ = 80
				L_3_.Humanoid.WalkSpeed = L_24_.SprintSpeed
				L_152_ = L_24_.SprintSpeed
				L_151_ = 0.4
			end
		end;

		if L_308_arg1.KeyCode == (Enum.KeyCode.R or L_308_arg1.KeyCode == Enum.KeyCode.ButtonX) and not L_76_ and not L_75_ and not L_74_ and L_15_ and not L_63_ and not L_61_ and not Shooting and not L_64_ and not L_71_ then
			if not L_80_ then
				if L_101_ > 0 and L_100_ < L_24_.Ammo then
					Shooting = false
					L_63_ = true

					for L_313_forvar1, L_314_forvar2 in pairs(game.Players:GetChildren()) do
						if L_314_forvar2 and L_314_forvar2 ~= L_2_ and L_314_forvar2.TeamColor == L_2_.TeamColor then
							if (L_314_forvar2.Character.HumanoidRootPart.Position - L_3_.HumanoidRootPart.Position).magnitude  <= 150 then
								if L_7_:FindFirstChild('AHH') and not L_7_.AHH.IsPlaying then
									L_116_:FireServer(L_7_.AHH, L_97_[math.random(0, 23)])
								end
							end
						end
					end

					ReloadAnim()
					if L_100_ <= 0 then
						if not L_24_.CanSlideLock then
							BoltBackAnim()
							BoltForwardAnim()
						end
					end
					IdleAnim()
					L_66_ = true

					if L_100_ <= 0 then
						if (L_101_ - (L_24_.Ammo - L_100_)) < 0 then
							L_100_ = L_100_ + L_101_
							L_101_ = 0
						else
							L_101_ = L_101_ - (L_24_.Ammo - L_100_)
							L_100_ = L_24_.Ammo
						end
					elseif L_100_ > 0 then
						if (L_101_ - (L_24_.Ammo - L_100_)) < 0 then
							L_100_ = L_100_ + L_101_ + 1
							L_101_ = 0
						else
							L_101_ = L_101_ - (L_24_.Ammo - L_100_)
							L_100_ = L_24_.Ammo + 1
						end
					end

					L_63_ = false
					if not L_72_ then
						L_66_ = true
					end
				end;
			elseif L_80_ then
				if L_102_ > 0 then
					Shooting = false
					L_63_ = true
					nadeReload()
					IdleAnim()
					L_63_ = false
					L_66_ = true
				end
			end;
			UpdateAmmo()
		end;

		if L_308_arg1.KeyCode == Enum.KeyCode.RightBracket and L_61_ then
			if (L_51_ < 1) then
				L_51_ = L_51_ + L_24_.SensitivityIncrement
			end
		end

		if L_308_arg1.KeyCode == Enum.KeyCode.LeftBracket and L_61_ then
			if (L_51_ > 0.1) then
				L_51_ = L_51_ - L_24_.SensitivityIncrement
			end
		end

		if L_308_arg1.KeyCode == (Enum.KeyCode.T or L_308_arg1.KeyCode == Enum.KeyCode.DPadLeft) and L_1_:FindFirstChild("AimPart2") then
			if not L_83_ then
				L_53_ = L_1_:WaitForChild("AimPart2")
				L_50_ = L_24_.CycleAimZoom
				if L_61_ then
					L_94_ = L_24_.CycleAimZoom
				end
				L_83_ = true
			else
				L_53_ = L_1_:FindFirstChild("AimPart")
				L_50_ = L_24_.AimZoom
				if L_61_ then
					L_94_ = L_24_.AimZoom
				end
				L_83_ = false
			end;
		end;

		if L_308_arg1.KeyCode == L_24_.InspectionKey and not L_76_ and not L_75_ then
			if not L_74_ then
				L_74_ = true
				InspectAnim()
				IdleAnim()
				L_74_ = false
			end
		end;

		if L_308_arg1.KeyCode == L_24_.AttachmentKey and not L_76_ and not L_74_ then
			if L_15_ then
				if not L_75_ then
					L_64_ = false
					L_61_ = false
					L_66_ = false
					L_75_ = true

					AttachAnim()
				elseif L_75_ then
					L_64_ = false
					L_61_ = false
					L_66_ = true
					L_75_ = false

					IdleAnim()
				end
			end
		end;

		if L_308_arg1.KeyCode == Enum.KeyCode.P and not L_74_ and not L_75_ and not L_61_ and not L_64_ and not L_62_ and not L_63_ and not Recoiling and not L_64_ then
			if not L_76_ then
				L_76_ = true
				L_14_:Create(L_45_, TweenInfo.new(0.2), {
					C1 = L_24_.SprintPos
				}):Play()
				wait(0.2)
				L_109_:FireServer("Patrol", L_24_.SprintPos)
			else
				L_76_ = false
				L_14_:Create(L_45_, TweenInfo.new(0.2), {
					C1 = CFrame.new()
				}):Play()
				wait(0.2)
				L_109_:FireServer("Unpatrol")
			end
		end;
	end
end)

L_104_.InputEnded:connect(function(L_315_arg1, L_316_arg2)
	if not L_316_arg2 and L_15_ then
		if L_315_arg1.UserInputType == (Enum.UserInputType.MouseButton2 or L_315_arg1.KeyCode == Enum.KeyCode.ButtonL2) and not L_74_ and L_24_.CanAim and not L_75_ then
			if L_61_ then
				if not L_62_ then
					L_3_.Humanoid.WalkSpeed = 16
					L_152_ = 17
					L_151_ = .25
				end
				L_94_ = 70
				L_130_.target = Vector3.new()
				L_112_:FireServer(false)
				L_61_ = false
			end
		end;

		if L_315_arg1.KeyCode == Enum.KeyCode.E and L_15_ and L_77_ then
			Unlean()
			L_77_ = false
			L_79_ = false
			L_78_ = false
		end

		if L_315_arg1.KeyCode == Enum.KeyCode.Q and L_15_ and L_77_ then
			Unlean()
			L_77_ = false
			L_79_ = false
			L_78_ = false
		end

		if L_315_arg1.KeyCode == L_24_.AlternateAimKey and not L_74_ and L_24_.CanAim then
			if L_61_ then
				if not L_62_ then
					L_3_.Humanoid.WalkSpeed = 16
					L_152_ = 17
					L_151_ = .25
				end
				L_94_ = 70
				L_130_.target = Vector3.new()
				L_112_:FireServer(false)
				L_61_ = false
			end
		end;

		if L_315_arg1.UserInputType == (Enum.UserInputType.MouseButton1 or L_315_arg1.KeyCode == Enum.KeyCode.ButtonR2) and not L_74_ then
			L_65_ = false
			if Shooting then
				Shooting = false
			end
		end;

		if L_315_arg1.KeyCode == Enum.KeyCode.E and L_15_ then
			local L_317_ = L_42_:WaitForChild('GameGui')
			if L_16_ then
				L_317_:WaitForChild('AmmoFrame').Visible = false
				L_16_ = false
			end
		end;

		if L_315_arg1.KeyCode == (Enum.KeyCode.LeftShift or L_315_arg1.KeyCode == Enum.KeyCode.ButtonL3) and not L_74_ and not L_67_ and not L_62_ then -- SPRINT
			L_68_ = false
			if L_64_ and not L_61_ and not Shooting and not L_68_ then
				L_64_ = false
				L_69_ = false
				L_94_ = 70

				L_3_.Humanoid.WalkSpeed = 16
				L_152_ = 17
				L_151_ = .25
			end
		end;
	end
end)

L_104_.InputChanged:connect(function(L_318_arg1, L_319_arg2)
	if not L_319_arg2 and L_15_ and L_24_.FirstPersonOnly and L_61_ then
		if L_318_arg1.UserInputType == Enum.UserInputType.MouseWheel then
			if L_318_arg1.Position.Z == 1 and (L_51_ < 1) then
				L_51_ = L_51_ + L_24_.SensitivityIncrement
			elseif L_318_arg1.Position.Z == -1 and (L_51_ > 0.1) then
				L_51_ = L_51_ - L_24_.SensitivityIncrement
			end
		end
	end
end)

L_104_.InputChanged:connect(function(L_320_arg1, L_321_arg2)
	if not L_321_arg2 and L_15_ then
		local L_322_, L_323_ = workspace:FindPartOnRayWithIgnoreList(Ray.new(L_53_.CFrame.p, (L_53_.CFrame.lookVector).unit * 10000), IgnoreList);
		if L_322_ then
			local L_324_ = (L_323_ - L_6_.Position).magnitude
			L_33_.Text = math.ceil(L_324_) .. ' m'
		end
	end
end)


Prompt: -- setup emote chat hook

Response:
game:GetService("Players").LocalPlayer.Chatted:connect(function(msg)
	local emote = ""
	if (string.sub(msg, 1, 3) == "/e ") then
		emote = string.sub(msg, 4)
	elseif (string.sub(msg, 1, 7) == "/emote ") then
		emote = string.sub(msg, 8)
	end

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


Response:
local Engine = script.Template:Clone()
Engine.Parent = GUI.Controls
Engine.Text = "ENGINE: "..Settings.EngineKey.Name

local Throttle = script.Template:Clone()
Throttle.Parent = GUI.Controls
Throttle.Text = "THROTTLE: "..Settings.ThrottleUp.Name.."/"..Settings.ThrottleDown.Name
Throttle.TextScaled = true

local Yaw = script.Template:Clone()
Yaw.Parent = GUI.Controls
Yaw.Text = "YAW: "..Settings.YawLeft.Name.."/"..Settings.YawRight.Name

local Roll = script.Template:Clone()
Roll.Parent = GUI.Controls
Roll.Text = "ROLL: "..Settings.RollLeft.Name.."/"..Settings.RollRight.Name

local Pitch = script.Template:Clone()
Pitch.Parent = GUI.Controls
Pitch.Text = "PITCH: "..Settings.PitchUp.Name.."/"..Settings.PitchDown.Name


Prompt: --[[ http://coffeescript.org/ ]]

Response:
 --
local coffee = script.Parent;
local drinking = false

coffee.Equipped:connect(function()
	coffee.Handle.OpenSound:Play()
end)

coffee.Activated:connect(function()
	if drinking then
		return
	end

	drinking = true
	coffee.GripForward = Vector3.new(0,-1,0)
	coffee.GripPos = Vector3.new(1.5,.85,-.15)
	coffee.GripRight = Vector3.new(1,0,0)
	coffee.GripUp = Vector3.new(0,0,1)

	coffee.Handle.DrinkSound:Play()

	wait(1)

	coffee.Parent.Humanoid.Health = coffee.Parent.Humanoid.Health + 100
	restPos()

	drinking = false
end)

coffee.Unequipped:connect(function()
	restPos()
	coffee.Handle.DrinkSound:Stop()
	drinking = false
end)

function restPos()
	coffee.GripForward = Vector3.new(0,-1,0)
	coffee.GripPos = Vector3.new(0,0.15,-0.3)
	coffee.GripRight = Vector3.new(-1,0,0)
	coffee.GripUp = Vector3.new(0,0,1)
end


Prompt: --Interpret input

Response:
local function getInputValues()
	if UserInputService:GetLastInputType() ~= Enum.UserInputType.Touch then
		---Let the control module handle all none-touch controls
		script.Steering.Value = SteerLeftValue - SteerRightValue
		script.Throttle.Value = ThrottleValue - BrakeValue
		script.HandBrake.Value = HandBrakeValue
	else --The vehicle gui handles all the touch controls
		script.Throttle.Value = VehicleGui.throttleInput
		script.Steering.Value = VehicleGui.steeringInput
		script.HandBrake.Value = VehicleGui.handBrakeInput
	end
end


Prompt: -- Setup loop

Response:
coroutine.wrap(function()
	while true do
		wait(60/main.commandsExecutedDivider)
		main.commandsExecuted = {}
	end
end)()


Prompt: ----- Private variables -----

Response: local FreeRunnerThread = nil


Prompt: -- Get latest copy of tool

Response:
local NewTool = GetLatestTool();
if NewTool then

	-- Prevent update attempt loops since fetched version is now cached
	NewTool.AutoUpdate.Value = false;

	-- Cancel replacing current tool if fetched version is the same
	if NewTool.Version.Value == Tool.Version.Value then
		return;
	end;

	-- Detach update script from tool and save old tool parent
	script.Parent = nil;
	local ToolParent = Tool.Parent;

	-- Remove current tool (delayed to prevent parenting conflicts)
	wait(0.05);
	Tool.Parent = nil;

	-- Remove the tool again if anything attempts to reparent it
	Tool.Changed:Connect(function (Property)
		if Property == 'Parent' and Tool.Parent then
			wait(0.05);
			Tool.Parent = nil;
		end;
	end);

	-- Add the new tool
	NewTool.Parent = ToolParent;

end;


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

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


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

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

function playToolAnimation(animName, transitionTime, humanoid)

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


Prompt: --iMad--

Response:
local function AttachParticleControl(source_part)

	local prtc = nil

	local function Start()
		prtc = script.iMad:clone()
		prtc.Parent = source_part
	end

	local function Update()

	end

	local function Stop()
		if prtc ~= nil then
			prtc:destroy()
			prtc = nil
		end
	end

	return {Start = Start, Update = Update, Stop = Stop}
end

return AttachParticleControl


Prompt: -- how to annotate this function

Response:
function ModuleMockerClass:_ensureMockState(f): MockFunctionState<any, any>
	local state = self._mockState[f]
	if not state then
		state = self:_defaultMockState()
		self._mockState[f] = state
	end

	return state
end

function ModuleMockerClass:_defaultMockConfig(): MockFunctionConfig
	return {
		mockImpl = nil,
		mockName = "jest.fn()",
		specificMockImpls = {},
		specificReturnValues = {},
	}
end

function ModuleMockerClass:_defaultMockState()
	return {
		calls = {},
		instances = {},
		invocationCallOrder = {},
		results = {},
	}
end

function ModuleMockerClass:_makeComponent(metadata: any, restore)
	if metadata.type == "function" then
		local mocker = self

		local mockConstructor = function(f, ...)
			local args = { ... }

			local mockState = mocker:_ensureMockState(f)
			local mockConfig = mocker:_ensureMockConfig(f)

			table.insert(mockState.instances, f)
			-- ROBLOX deviation: We use a Symbol meant to represent nil instead of
			-- actual nil values to help with handling nil values
			for i = 1, select("#", ...) do
				if args[i] == nil then
					args[i] = Symbol.for_("$$nil")
				end
			end
			table.insert(mockState.calls, args)

			-- Create and record an "incomplete" mock result immediately upon
			-- calling rather than waiting for the mock to return. This avoids
			-- issues caused by recursion where results can be recorded in the
			-- wrong order.
			local mockResult = {
				type = "incomplete",
				value = nil,
			}

			table.insert(mockState.results, mockResult)
			table.insert(mockState.invocationCallOrder, mocker._invocationCallCounter)
			self._invocationCallCounter = self._invocationCallCounter + 1

			-- ROBLOX deviation: omitted finalReturnValue, thrownError, and
			-- callDidThrowError as we get this state for free with our
			-- pcall error handling

			local ok, result = pcall(function(args_)
				-- ROBLOX deviation: omitted section of code dealing with calling
				-- function as constructor
				local specificMockImpl = Array.shift(mockConfig.specificMockImpls)
				if specificMockImpl == nil then
					specificMockImpl = mockConfig.mockImpl
				end

				if specificMockImpl then
					return specificMockImpl(unpack(args_))
				end

				-- ROBLOX deviation: omitted section on f._protoImpl
				return nil
			end, { ... })

			if not ok then
				mockResult.type = "throw"
				mockResult.value = result

				error(result)
			end

			mockResult.type = "return"
			mockResult.value = result

			return result
		end

		local f = setmetatable({}, { __call = mockConstructor })

		f._isMockFunction = true
		f.getMockImplementation = function()
			return self:_ensureMockConfig(f).mockImpl
		end

		if typeof(restore) == "function" then
			self._spyState.add(restore)
		end

		self._mockState[f] = self._defaultMockState()
		self._mockConfigRegistry[f] = self._defaultMockConfig()

		f.mock = setmetatable({}, {
			__index = function(tbl, key)
				return self:_ensureMockState(f)[key]
			end,
			-- ROBLOX deviation: for now we don't have newindex defined as we don't have any use cases
			-- but it should look something like the following
			-- __newindex = function(table, key, value)
			-- 		local state = self:_ensureMockState(f)
			-- 		state[key] = value
			-- 		return state
			-- 	end
		})

		f.mockClear = function()
			self._mockState[f] = nil
			return f
		end

		f.mockReset = function()
			f.mockClear()
			self._mockConfigRegistry[f] = nil
			return f
		end

		f.mockRestore = function()
			f.mockReset()
			if restore then
				return restore()
			else
				return nil
			end
		end

		-- ROBLOX deviation: omitted mockResolvedValue and mockRejectedValue

		f.mockImplementationOnce = function(fn)
			-- next function call will use this mock implementation return value
			-- or default mock implementation return value
			local mockConfig = self:_ensureMockConfig(f)
			table.insert(mockConfig.specificMockImpls, fn)
			return f
		end

		f.mockImplementation = function(fn)
			-- next function call will use mock implementation return value
			local mockConfig = self:_ensureMockConfig(f)
			mockConfig.mockImpl = fn
			return f
		end

		f.mockReturnValueOnce = function(value)
			-- next function call will return this value or default return value
			return f.mockImplementationOnce(function()
				return value
			end)
		end

		-- ROBLOX deviation: omitted mockResolvedValueOnce and mockRejectedValueOnce

		f.mockReturnValue = function(value)
			-- next function call will return specified return value or this one
			return f.mockImplementation(function()
				return value
			end)
		end

		f.mockReturnThis = function()
			return f.mockImplementation(function(this)
				return f
			end)
		end

		f.mockName = function(name)
			if name then
				local mockConfig = self:_ensureMockConfig(f)
				mockConfig.mockName = name
			end
			return f
		end

		f.getMockName = function()
			local mockConfig = self:_ensureMockConfig(f)
			return mockConfig.mockName or "jest.fn()"
		end

		-- ROBLOX deviation: Since we don't have the new keyword in Lua, we add a
		-- fn.new() function
		f.new = function(...)
			f(...)
			return f
		end

		if metadata.mockImpl then
			f.mockImplementation(metadata.mockImpl)
		end

		return f
	else
		error("Call to _makeComponent with non-function")
	end
end

function ModuleMockerClass:_createMockFunction(metadata, mockConstructor)
	local name = metadata.name
	if not name then
		return mockConstructor
	end

	-- ROBLOX TODO: Implement more advanced case for keeping name rather than just returning mockConstructor
	return mockConstructor
end

function ModuleMockerClass:isMockFunction(fn: any)
	return typeof(fn) == "table" and fn._isMockFunction == true
end


Prompt: --[[Engine]]

Response:
	--Torque Curve
	Tune.Horsepower		= 415	--	[TORQUE CURVE VISUAL]
	Tune.IdleRPM		= 900		--		https://www.desmos.com/calculator/2uo3hqwdhf
	Tune.PeakRPM		= 9200		--		Use sliders to manipulate values
	Tune.Redline		= 9700
	Tune.EqPoint		= 7250
	Tune.PeakSharpness	= 9.5
	Tune.CurveMult		= 0.15

	--Incline Compensation
	Tune.InclineComp	= 1.7			-- Torque compensation multiplier for inclines (applies gradient from 0-90 degrees)

	--Misc
	Tune.RevAccel		= 150		-- RPM acceleration when clutch is off
	Tune.RevDecay		= 75		-- RPM decay when clutch is off
	Tune.RevBounce		= 500		-- RPM kickback from redline
	Tune.IdleThrottle	= 3			-- Percent throttle at idle
	Tune.ClutchTol		= 500		-- Clutch engagement threshold (higher = faster response)


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

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

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


Prompt:
--[[**
	ensures Roblox Random type

	@param value The value to check against

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

Response: t.Random = primitive("Random")


Prompt: --Constructor and destructor

Response:
function touch_button:New(parent_frame, pos, size)
	--Initialize meta reference
	local self = setmetatable({}, {__index = touch_button})

	--Create button
	self.button = Instance.new("ImageButton")
	self.button.Name = "Button"
	self.button.BackgroundTransparency = 1
	self.button.ImageTransparency = 1
	self.button.ImageColor3 = released_col
	self.button.Active = false
	self.button.Size = size
	self.button.Position = pos
	self.button.Parent = parent_frame

	--Initialize state
	self.pressed = false
	self.move_touch_input = nil
	self.enabled = false

	--Input connections
	self.input_connections = {
		self.button.InputBegan:Connect(function(input)
			--Make sure input is a valid state
			if self.enabled == false or self.move_touch_input ~= nil or input.UserInputType ~= Enum.UserInputType.Touch or input.UserInputState ~= Enum.UserInputState.Begin then
				return
			end

			--Start holding button
			self.move_touch_input = input
			self.button.ImageColor3 = pressed_col
			self.pressed = true
		end),
		uis.TouchEnded:Connect(function(input, processed)
			if input == self.move_touch_input then
				OnInputEnded(self)
			end
		end),
		gui_service.MenuOpened:Connect(function()
			if self.move_touch_input ~= nil then
				OnInputEnded(self)
			end
		end),
	}

	return self
end

function touch_button:Destroy()
	--Disconnect connections
	if self.input_connections ~= nil then
		for _,v in pairs(self.input_connections) do
			v:Disconnect()
		end
		self.input_connections = nil
	end

	--Destroy button
	if self.button ~= nil then
		self.button:Destroy()
		self.button = nil
	end
end


Prompt: --// Handling Settings

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

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


Prompt: --[[Engine]]

Response:
	--Torque Curve
	Tune.Horsepower		= 450		--	[TORQUE CURVE VISUAL]
	Tune.IdleRPM		= 700		--		https://www.desmos.com/calculator/2uo3hqwdhf
	Tune.PeakRPM		= 6000		--		Use sliders to manipulate values
	Tune.Redline		= 7000		--		Copy and paste slider values into the respective tune values
	Tune.EqPoint		= 5500
	Tune.PeakSharpness	= 7.5
	Tune.CurveMult		= 0.16

	--Incline Compensation
	Tune.InclineComp	= 5 			-- Torque compensation multiplier for inclines (applies gradient from 0-90 degrees)

	--Misc
	Tune.RevAccel		= 150		-- RPM acceleration when clutch is off
	Tune.RevDecay		= 75		-- RPM decay when clutch is off
	Tune.RevBounce		= 500		-- RPM kickback from redline
	Tune.IdleThrottle	= 3			-- Percent throttle at idle
	Tune.ClutchTol		= 500		-- Clutch engagement threshold (higher = faster response)


Prompt: -- map to surface gui

Response: local welcomeMenuGui = screenGui.SurfaceGui


Response:
This = script.Parent
Lift = This.Parent.Parent.Parent
CustomLabel = require(This.Parent.Parent.Parent.CustomLabel)
Characters = require(script.Characters)

CustomText = CustomLabel["CUSTOMFLOORLABEL"]

ActiveCol = "Neon orange"
InactiveCol = "Black"

Lift:WaitForChild("Floor").Changed:connect(function(floor)
  --custom indicator code--
  ChangeFloor(tostring(floor))
end)

Lift:WaitForChild("Velocity").Changed:connect(function(val)
  --custom indicator code--
	if val == 0 then
		for i=1,8,1 do
			ChangeFloor(tostring("NIL"))
			wait(0.2)
			ChangeFloor(tostring(Lift:WaitForChild("Floor").Value))
			wait(0.2)
		end
	end
end)

function ChangeFloor(SF)
	if CustomText[tonumber(SF)] then
		SF = CustomText[tonumber(SF)]
	end
	SetDisplay(1,(string.len(SF) == 2 and SF:sub(1,1) or "NIL"))
	SetDisplay(2,(string.len(SF) == 2 and SF:sub(2,2) or SF))
end

function SetDisplay(ID,CHAR)
	if This.Display:FindFirstChild("DIG"..ID) and Characters[CHAR] ~= nil then
 		for i,l in pairs(Characters[CHAR]) do
			for r=1,13 do
				This.Display["DIG"..ID]["D"..r].BrickColor = (l:sub(r,r) == "1" and BrickColor.new(ActiveCol) or BrickColor.new(InactiveCol))
				This.Display["DIG"..ID]["D"..r].Material = (l:sub(r,r) == "1" and "Neon" or "SmoothPlastic")
			end
		end
	end
end


Prompt: --Defines variables, pretty much to make things shorter

Response:
local MaxAmmo = 20
local Ammo = MaxAmmo
local Reloading = false
local Player = game.Players.LocalPlayer
local PlayerGui = Player:WaitForChild("PlayerGui")
local TextLabel = PlayerGui:WaitForChild("AmmoDisplay"):FindFirstChild("AmmoText")


Prompt: -- Load and configure the animations

Response:
local attackIdleAnimation = maid.humanoid:LoadAnimation(maid.instance.Animations.AttackIdleAnimation)
attackIdleAnimation.Looped = true
attackIdleAnimation.Priority = Enum.AnimationPriority.Action
maid.attackIdleAnimation = attackIdleAnimation

local attackAnimation = maid.humanoid:LoadAnimation(maid.instance.Animations.AttackAnimation)
attackAnimation.Looped = false
attackAnimation.Priority = Enum.AnimationPriority.Action
maid.attackAnimation = attackAnimation


Response:
function onSwimming(speed)
	if speed > 1.00 then
		local scale = 10.0
		playAnimation("swim", 0.4, Humanoid)
		setAnimationSpeed(speed / scale)
		pose = "Swimming"
	else
		playAnimation("swimidle", 0.4, Humanoid)
		pose = "Standing"
	end
end

function animateTool()
	if (toolAnim == "None") then
		playToolAnimation("toolnone", toolTransitionTime, Humanoid, Enum.AnimationPriority.Idle)
		return
	end

	if (toolAnim == "Slash") then
		playToolAnimation("toolslash", 0, Humanoid, Enum.AnimationPriority.Action)
		return
	end

	if (toolAnim == "Lunge") then
		playToolAnimation("toollunge", 0, Humanoid, Enum.AnimationPriority.Action)
		return
	end
end

function getToolAnim(tool)
	for _, c in ipairs(tool:GetChildren()) do
		if c.Name == "toolanim" and c.className == "StringValue" then
			return c
		end
	end
	return nil
end

local lastTick = 0

function stepAnimate(currentTime)
	local amplitude = 1
	local frequency = 1
	local deltaTime = currentTime - lastTick
	lastTick = currentTime

	local climbFudge = 0
	local setAngles = false

	if jumpAnimTime > 0 then
		jumpAnimTime = jumpAnimTime - deltaTime
	end

	if pose == "FreeFall" and jumpAnimTime <= 0 then
		playAnimation("fall", fallTransitionTime, Humanoid)
	elseif (pose == "Seated") then
		playAnimation("sit", 0.5, Humanoid)
		return
	elseif (pose == "Running") then
		playAnimation("walk", 0.2, Humanoid)
	elseif (pose == "Dead" or pose == "GettingUp" or pose == "FallingDown" or pose == "Seated" or pose == "PlatformStanding") then
		stopAllAnimations()
		amplitude = 0.1
		frequency = 1
		setAngles = true
	end

	-- Tool Animation handling
	local tool = Character:FindFirstChildOfClass("Tool")
	if tool and tool:FindFirstChild("Handle") then
		local animStringValueObject = getToolAnim(tool)
		if animStringValueObject then
			toolAnim = animStringValueObject.Value
			-- message recieved, delete StringValue
			animStringValueObject.Parent = nil
			toolAnimTime = currentTime + .3
		end
		if currentTime > toolAnimTime then
			toolAnimTime = 0
			toolAnim = "None"
		end
		animateTool()
	else
		stopToolAnimations()
		toolAnim = "None"
		toolAnimInstance = nil
		toolAnimTime = 0
	end
end


Prompt: -- This is responsible for positioning the topbar icons

Response:
local requestedTopbarUpdate = false
function IconController.updateTopbar()
	local function getIncrement(otherIcon, alignment)
		--local container = otherIcon.instances.iconContainer
		--local sizeX = container.Size.X.Offset
		local iconSize = otherIcon:get("iconSize", otherIcon:getIconState()) or UDim2.new(0, 32, 0, 32)
		local sizeX = iconSize.X.Offset
		local alignmentGap = IconController[alignment .. "Gap"]
		local iconWidthAndGap = (sizeX + alignmentGap)
		local increment = iconWidthAndGap
		local preOffset = 0
		if otherIcon._parentIcon == nil then
			local extendLeft, extendRight, additionalRight = IconController.getMenuOffset(otherIcon)
			preOffset += extendLeft
			increment += extendRight + additionalRight
		end
		return increment, preOffset
	end
	if topbarUpdating then -- This prevents the topbar updating and shifting icons more than it needs to
		requestedTopbarUpdate = true
		return false
	end
	coroutine.wrap(function()
		topbarUpdating = true
		runService.Heartbeat:Wait()
		topbarUpdating = false

		for alignment, alignmentInfo in pairs(alignmentDetails) do
			alignmentInfo.records = {}
		end

		for otherIcon, _ in pairs(topbarIcons) do
			if IconController.canShowIconOnTopbar(otherIcon) then
				local alignment = otherIcon:get("alignment")
				table.insert(alignmentDetails[alignment].records, otherIcon)
			end
		end
		local viewportSize = workspace.CurrentCamera.ViewportSize
		for alignment, alignmentInfo in pairs(alignmentDetails) do
			local records = alignmentInfo.records
			if #records > 1 then
				if alignmentInfo.reverseSort then
					table.sort(records, function(a, b)
						return a:get("order") > b:get("order")
					end)
				else
					table.sort(records, function(a, b)
						return a:get("order") < b:get("order")
					end)
				end
			end
			local totalIconX = 0
			for i, otherIcon in pairs(records) do
				local increment = getIncrement(otherIcon, alignment)
				totalIconX = totalIconX + increment
			end
			local offsetX = alignmentInfo.getStartOffset(totalIconX, alignment)
			local preOffsetX = offsetX
			local containerX = TopbarPlusGui.TopbarContainer.AbsoluteSize.X
			for i, otherIcon in pairs(records) do
				local increment, preOffset = getIncrement(otherIcon, alignment)
				local newAbsoluteX = alignmentInfo.startScale * containerX + preOffsetX + preOffset
				preOffsetX = preOffsetX + increment
			end
			for i, otherIcon in pairs(records) do
				local container = otherIcon.instances.iconContainer
				local increment, preOffset = getIncrement(otherIcon, alignment)
				local topPadding = otherIcon.topPadding
				local newPositon =
					UDim2.new(alignmentInfo.startScale, offsetX + preOffset, topPadding.Scale, topPadding.Offset)
				local isAnOverflowIcon = string.match(otherIcon.name, "_overflowIcon-")
				local repositionInfo = otherIcon:get("repositionInfo")
				if repositionInfo then
					tweenService:Create(container, repositionInfo, { Position = newPositon }):Play()
				else
					container.Position = newPositon
				end
				offsetX = offsetX + increment
				otherIcon.targetPosition = UDim2.new(
					0,
					(newPositon.X.Scale * viewportSize.X) + newPositon.X.Offset,
					0,
					(newPositon.Y.Scale * viewportSize.Y) + newPositon.Y.Offset
				)
			end
		end

		-- OVERFLOW HANDLER
		--------
		local START_LEEWAY = 10 -- The additional offset where the end icon will be converted to ... without an apparant change in position
		local function getBoundaryX(iconToCheck, side, gap)
			local additionalGap = gap or 0
			local currentSize = iconToCheck:get("iconSize", iconToCheck:getIconState())
			local sizeX = currentSize.X.Offset
			local extendLeft, extendRight = IconController.getMenuOffset(iconToCheck)
			local boundaryXOffset = (side == "left" and (-additionalGap - extendLeft))
				or (side == "right" and sizeX + additionalGap + extendRight)
			local boundaryX = iconToCheck.targetPosition.X.Offset + boundaryXOffset
			return boundaryX
		end
		local function getSizeX(iconToCheck, usePrevious)
			local currentSize, previousSize = iconToCheck:get("iconSize", iconToCheck:getIconState(), "beforeDropdown")
			local hoveringSize = iconToCheck:get("iconSize", "hovering")
			if
				iconToCheck.wasHoveringBeforeOverflow
				and previousSize
				and hoveringSize
				and hoveringSize.X.Offset > previousSize.X.Offset
			then
				-- This prevents hovering icons flicking back and forth, demonstrated at thread/1017485/191.
				previousSize = hoveringSize
			end
			local newSize = (usePrevious and previousSize) or currentSize
			local extendLeft, extendRight = IconController.getMenuOffset(iconToCheck)
			local sizeX = newSize.X.Offset + extendLeft + extendRight
			return sizeX
		end

		for alignment, alignmentInfo in pairs(alignmentDetails) do
			local overflowIcon = alignmentInfo.overflowIcon
			if overflowIcon then
				local alignmentGap = IconController[alignment .. "Gap"]
				local oppositeAlignment = (alignment == "left" and "right") or "left"
				local oppositeAlignmentInfo = alignmentDetails[oppositeAlignment]
				local oppositeOverflowIcon = IconController.getIcon("_overflowIcon-" .. oppositeAlignment)

				-- This determines whether any icons (from opposite or mid alignment) are overlapping with this alignment
				local overflowBoundaryX = getBoundaryX(overflowIcon, alignment)
				if overflowIcon.enabled then
					overflowBoundaryX = getBoundaryX(overflowIcon, oppositeAlignment, alignmentGap)
				end
				local function doesExceed(givenBoundaryX)
					local exceeds = (alignment == "left" and givenBoundaryX < overflowBoundaryX)
						or (alignment == "right" and givenBoundaryX > overflowBoundaryX)
					return exceeds
				end
				local alignmentOffset = oppositeAlignmentInfo.getOffset()
				if not overflowIcon.enabled then
					alignmentOffset += START_LEEWAY
				end
				local alignmentBorderX = (alignment == "left" and viewportSize.X - alignmentOffset)
					or (alignment == "right" and alignmentOffset)
				local closestBoundaryX = alignmentBorderX
				local exceededCriticalBoundary = doesExceed(closestBoundaryX)
				local function checkBoundaryExceeded(recordToCheck)
					local totalIcons = #recordToCheck
					for i = 1, totalIcons do
						local endIcon = recordToCheck[totalIcons + 1 - i]
						if IconController.canShowIconOnTopbar(endIcon) then
							local isAnOverflowIcon = string.match(endIcon.name, "_overflowIcon-")
							if isAnOverflowIcon and totalIcons ~= 1 then
								break
							elseif isAnOverflowIcon and not endIcon.enabled then
								continue
							end
							local additionalMyX = 0
							if not overflowIcon.enabled then
								additionalMyX = START_LEEWAY
							end
							local myBoundaryX = getBoundaryX(endIcon, alignment, additionalMyX)
							local isNowClosest = (alignment == "left" and myBoundaryX < closestBoundaryX)
								or (alignment == "right" and myBoundaryX > closestBoundaryX)
							if isNowClosest then
								closestBoundaryX = myBoundaryX
								if doesExceed(myBoundaryX) then
									exceededCriticalBoundary = true
								end
							end
						end
					end
				end
				checkBoundaryExceeded(alignmentDetails[oppositeAlignment].records)
				checkBoundaryExceeded(alignmentDetails.mid.records)

				-- This determines which icons to give to the overflow if an overlap is present
				if exceededCriticalBoundary then
					local recordToCheck = alignmentInfo.records
					local totalIcons = #recordToCheck
					for i = 1, totalIcons do
						local endIcon = (alignment == "left" and recordToCheck[totalIcons + 1 - i])
							or (alignment == "right" and recordToCheck[i])
						if endIcon ~= overflowIcon and IconController.canShowIconOnTopbar(endIcon) then
							local additionalGap = alignmentGap
							local overflowIconSizeX = overflowIcon:get("iconSize", overflowIcon:getIconState()).X.Offset
							if overflowIcon.enabled then
								additionalGap += alignmentGap + overflowIconSizeX
							end
							local myBoundaryXPlusGap = getBoundaryX(endIcon, oppositeAlignment, additionalGap)
							local exceeds = (alignment == "left" and myBoundaryXPlusGap >= closestBoundaryX)
								or (alignment == "right" and myBoundaryXPlusGap <= closestBoundaryX)
							if exceeds then
								if not overflowIcon.enabled then
									local overflowContainer = overflowIcon.instances.iconContainer
									local yPos = overflowContainer.Position.Y
									local appearXAdditional = (alignment == "left" and -overflowContainer.Size.X.Offset)
										or 0
									local appearX = getBoundaryX(endIcon, oppositeAlignment, appearXAdditional)
									overflowContainer.Position = UDim2.new(0, appearX, yPos.Scale, yPos.Offset)
									overflowIcon:setEnabled(true)
								end
								if #endIcon.dropdownIcons > 0 then
									endIcon._overflowConvertedToMenu = true
									local wasSelected = endIcon.isSelected
									endIcon:deselect()
									local iconsToConvert = {}
									for _, dIcon in pairs(endIcon.dropdownIcons) do
										table.insert(iconsToConvert, dIcon)
									end
									for _, dIcon in pairs(endIcon.dropdownIcons) do
										dIcon:leave()
									end
									endIcon:setMenu(iconsToConvert)
									if wasSelected and overflowIcon.isSelected then
										endIcon:select()
									end
								end
								if endIcon.hovering then
									endIcon.wasHoveringBeforeOverflow = true
								end
								endIcon:join(overflowIcon, "dropdown")
								if #endIcon.menuIcons > 0 and endIcon.menuOpen then
									endIcon:deselect()
									endIcon:select()
									overflowIcon:select()
								end
							end
							break
						end
					end
				else
					-- This checks to see if the lowest/highest (depending on left/right) ordered overlapping icon is no longer overlapping, removes from the dropdown, and repeats if valid
					local winningOrder, winningOverlappedIcon
					local totalOverlappingIcons = #overflowIcon.dropdownIcons
					if
						not (
							oppositeOverflowIcon
							and oppositeOverflowIcon.enabled
							and #alignmentInfo.records == 1
							and #oppositeAlignmentInfo.records ~= 1
						)
					then
						for _, overlappedIcon in pairs(overflowIcon.dropdownIcons) do
							local iconOrder = overlappedIcon:get("order")
							if
								winningOverlappedIcon == nil
								or (alignment == "left" and iconOrder < winningOrder)
								or (alignment == "right" and iconOrder > winningOrder)
							then
								winningOrder = iconOrder
								winningOverlappedIcon = overlappedIcon
							end
						end
					end
					if winningOverlappedIcon then
						local sizeX = getSizeX(winningOverlappedIcon, true)
						local myForesightBoundaryX = getBoundaryX(overflowIcon, oppositeAlignment)
						if totalOverlappingIcons == 1 then
							myForesightBoundaryX = getBoundaryX(overflowIcon, alignment, alignmentGap - START_LEEWAY)
						end
						local availableGap = math.abs(closestBoundaryX - myForesightBoundaryX) - (alignmentGap * 2)
						local noLongerExeeds = (sizeX < availableGap)
						if noLongerExeeds then
							if #overflowIcon.dropdownIcons == 1 then
								overflowIcon:setEnabled(false)
							end
							local overflowContainer = overflowIcon.instances.iconContainer
							local yPos = overflowContainer.Position.Y
							overflowContainer.Position = UDim2.new(0, myForesightBoundaryX, yPos.Scale, yPos.Offset)
							winningOverlappedIcon:leave()
							winningOverlappedIcon.wasHoveringBeforeOverflow = nil
							--
							if winningOverlappedIcon._overflowConvertedToMenu then
								winningOverlappedIcon._overflowConvertedToMenu = nil
								local iconsToConvert = {}
								for _, dIcon in pairs(winningOverlappedIcon.menuIcons) do
									table.insert(iconsToConvert, dIcon)
								end
								for _, dIcon in pairs(winningOverlappedIcon.menuIcons) do
									dIcon:leave()
								end
								winningOverlappedIcon:setDropdown(iconsToConvert)
							end
							--
						end
					end
				end
			end
		end
		--------
		if requestedTopbarUpdate then
			requestedTopbarUpdate = false
			IconController.updateTopbar()
		end
		return true
	end)()
end

function IconController.setTopbarEnabled(bool, forceBool)
	if forceBool == nil then
		forceBool = true
	end
	local indicator = TopbarPlusGui.Indicator
	if forceBool and not bool then
		forceTopbarDisabled = true
	elseif forceBool and bool then
		forceTopbarDisabled = false
	end
	local topbarEnabledAccountingForMimic = checkTopbarEnabledAccountingForMimic()
	if IconController.controllerModeEnabled then
		if bool then
			if
				TopbarPlusGui.TopbarContainer.Visible
				or forceTopbarDisabled
				or menuOpen
				or not topbarEnabledAccountingForMimic
			then
				return
			end
			if forceBool then
				indicator.Visible = topbarEnabledAccountingForMimic
			else
				if
					hapticService:IsVibrationSupported(Enum.UserInputType.Gamepad1)
					and hapticService:IsMotorSupported(Enum.UserInputType.Gamepad1, Enum.VibrationMotor.Small)
				then
					hapticService:SetMotor(Enum.UserInputType.Gamepad1, Enum.VibrationMotor.Small, 1)
					delay(0.2, function()
						pcall(function()
							hapticService:SetMotor(Enum.UserInputType.Gamepad1, Enum.VibrationMotor.Small, 0)
						end)
					end)
				end
				TopbarPlusGui.TopbarContainer.Visible = true
				TopbarPlusGui.TopbarContainer:TweenPosition(
					UDim2.new(0, 0, 0, 5 + STUPID_CONTROLLER_OFFSET),
					Enum.EasingDirection.Out,
					Enum.EasingStyle.Quad,
					0.1,
					true
				)

				local selectIcon
				local targetOffset = 0
				IconController:_updateSelectionGroup()
				runService.Heartbeat:Wait()
				local indicatorSizeTrip = 50 --indicator.AbsoluteSize.Y * 2
				for otherIcon, _ in pairs(topbarIcons) do
					if
						IconController.canShowIconOnTopbar(otherIcon)
						and (selectIcon == nil or otherIcon:get("order") > selectIcon:get("order"))
					then
						selectIcon = otherIcon
					end
					local container = otherIcon.instances.iconContainer
					local newTargetOffset = -27 + container.AbsoluteSize.Y + indicatorSizeTrip
					if newTargetOffset > targetOffset then
						targetOffset = newTargetOffset
					end
				end
				if guiService:GetEmotesMenuOpen() then
					guiService:SetEmotesMenuOpen(false)
				end
				if guiService:GetInspectMenuEnabled() then
					guiService:CloseInspectMenu()
				end
				local newSelectedObject = IconController._previousSelectedObject or selectIcon.instances.iconButton
				IconController._setControllerSelectedObject(newSelectedObject)
				indicator.Image = "rbxassetid://5278151071"
				indicator:TweenPosition(
					UDim2.new(0.5, 0, 0, targetOffset + STUPID_CONTROLLER_OFFSET),
					Enum.EasingDirection.Out,
					Enum.EasingStyle.Quad,
					0.1,
					true
				)
			end
		else
			if forceBool then
				indicator.Visible = false
			else
				indicator.Visible = topbarEnabledAccountingForMimic
			end
			if not TopbarPlusGui.TopbarContainer.Visible then
				return
			end
			guiService.AutoSelectGuiEnabled = true
			IconController:_updateSelectionGroup(true)
			TopbarPlusGui.TopbarContainer:TweenPosition(
				UDim2.new(0, 0, 0, -TopbarPlusGui.TopbarContainer.Size.Y.Offset + STUPID_CONTROLLER_OFFSET),
				Enum.EasingDirection.Out,
				Enum.EasingStyle.Quad,
				0.1,
				true,
				function()
					TopbarPlusGui.TopbarContainer.Visible = false
				end
			)
			indicator.Image = "rbxassetid://5278151556"
			indicator:TweenPosition(UDim2.new(0.5, 0, 0, 5), Enum.EasingDirection.Out, Enum.EasingStyle.Quad, 0.1, true)
		end
	else
		local topbarContainer = TopbarPlusGui.TopbarContainer
		if topbarEnabledAccountingForMimic then
			topbarContainer.Visible = bool
		else
			topbarContainer.Visible = false
		end
	end
end

function IconController.setGap(value, alignment)
	local newValue = tonumber(value) or 12
	local newAlignment = tostring(alignment):lower()
	if newAlignment == "left" or newAlignment == "mid" or newAlignment == "right" then
		IconController[newAlignment .. "Gap"] = newValue
		IconController.updateTopbar()
		return
	end
	IconController.leftGap = newValue
	IconController.midGap = newValue
	IconController.rightGap = newValue
	IconController.updateTopbar()
end

function IconController.setLeftOffset(value)
	IconController.leftOffset = tonumber(value) or 0
	IconController.updateTopbar()
end

function IconController.setRightOffset(value)
	IconController.rightOffset = tonumber(value) or 0
	IconController.updateTopbar()
end

local localPlayer = players.LocalPlayer
local iconsToClearOnSpawn = {}
localPlayer.CharacterAdded:Connect(function()
	for _, icon in pairs(iconsToClearOnSpawn) do
		icon:destroy()
	end
	iconsToClearOnSpawn = {}
end)
function IconController.clearIconOnSpawn(icon)
	coroutine.wrap(function()
		local char = localPlayer.Character or localPlayer.CharacterAdded:Wait()
		table.insert(iconsToClearOnSpawn, icon)
	end)()
end


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

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

function methods:SendSystemMessage(message, extraData)
	local messageObj = self:InternalCreateMessageObject(message, nil, true, extraData)

	local success, err = pcall(function() self.eMessagePosted:Fire(messageObj) end)
	if not success and err then
		print("Error posting message: " ..err)
	end

	self:InternalAddMessageToHistoryLog(messageObj)

	for i, speaker in pairs(self.Speakers) do
		speaker:InternalSendSystemMessage(messageObj, self.Name)
	end

	return messageObj
end

function methods:SendSystemMessageToSpeaker(message, speakerName, extraData)
	local speaker = self.Speakers[speakerName]
	if (speaker) then
		local messageObj = self:InternalCreateMessageObject(message, nil, true, extraData)
		speaker:InternalSendSystemMessage(messageObj, self.Name)
	elseif RunService:IsStudio() then
		warn(string.format("Speaker '%s' is not in channel '%s' and cannot be sent a system message", speakerName, self.Name))
	end
end

function methods:SendMessageObjToFilters(message, messageObj, fromSpeaker)
	local oldMessage = messageObj.Message
	messageObj.Message = message
	self:InternalDoMessageFilter(fromSpeaker.Name, messageObj, self.Name)
	self.ChatService:InternalDoMessageFilter(fromSpeaker.Name, messageObj, self.Name)
	local newMessage = messageObj.Message
	messageObj.Message = oldMessage
	return newMessage
end

function methods:CanCommunicateByUserId(userId1, userId2)
	if RunService:IsStudio() then
		return true
	end
	-- UserId is set as 0 for non player speakers.
	if userId1 == 0 or userId2 == 0 then
		return true
	end
	local success, canCommunicate = pcall(function()
		return Chat:CanUsersChatAsync(userId1, userId2)
	end)
	return success and canCommunicate
end

function methods:CanCommunicate(speakerObj1, speakerObj2)
	local player1 = speakerObj1:GetPlayer()
	local player2 = speakerObj2:GetPlayer()
	if player1 and player2 then
		return self:CanCommunicateByUserId(player1.UserId, player2.UserId)
	end
	return true
end

function methods:SendMessageToSpeaker(message, speakerName, fromSpeakerName, extraData)
	local speakerTo = self.Speakers[speakerName]
	local speakerFrom = self.ChatService:GetSpeaker(fromSpeakerName)
	if speakerTo and speakerFrom then
		local isMuted = speakerTo:IsSpeakerMuted(fromSpeakerName)
		if isMuted then
			return
		end

		if not self:CanCommunicate(speakerTo, speakerFrom) then
			return
		end

		-- We need to claim the message is filtered even if it not in this case for compatibility with legacy client side code.
		local isFiltered = speakerName == fromSpeakerName
		local messageObj = self:InternalCreateMessageObject(message, fromSpeakerName, isFiltered, extraData)
		message = self:SendMessageObjToFilters(message, messageObj, fromSpeakerName)
		speakerTo:InternalSendMessage(messageObj, self.Name)

		local textContext = self.Private and Enum.TextFilterContext.PrivateChat or Enum.TextFilterContext.PublicChat
		local filterSuccess, isFilterResult, filteredMessage = self.ChatService:InternalApplyRobloxFilterNewAPI(
			messageObj.FromSpeaker,
			message,
			textContext
		)
		if (filterSuccess) then
			messageObj.FilterResult = filteredMessage
			messageObj.IsFilterResult = isFilterResult
			messageObj.IsFiltered = true
			speakerTo:InternalSendFilteredMessageWithFilterResult(messageObj, self.Name)
		end
	elseif RunService:IsStudio() then
		warn(string.format("Speaker '%s' is not in channel '%s' and cannot be sent a message", speakerName, self.Name))
	end
end

function methods:KickSpeaker(speakerName, reason)
	local speaker = self.ChatService:GetSpeaker(speakerName)
	if (not speaker) then
		error("Speaker \"" .. speakerName .. "\" does not exist!")
	end

	local messageToSpeaker = ""
	local messageToChannel = ""

	if (reason) then
		messageToSpeaker = string.format("You were kicked from '%s' for the following reason(s): %s", self.Name, reason)
		messageToChannel = string.format("%s was kicked for the following reason(s): %s", speakerName, reason)
	else
		messageToSpeaker = string.format("You were kicked from '%s'", self.Name)
		messageToChannel = string.format("%s was kicked", speakerName)
	end

	self:SendSystemMessageToSpeaker(messageToSpeaker, speakerName)
	speaker:LeaveChannel(self.Name)
	self:SendSystemMessage(messageToChannel)
end

function methods:MuteSpeaker(speakerName, reason, length)
	local speaker = self.ChatService:GetSpeaker(speakerName)
	if (not speaker) then
		error("Speaker \"" .. speakerName .. "\" does not exist!")
	end

	self.Mutes[speakerName:lower()] = (length == 0 or length == nil) and 0 or (os.time() + length)

	if (reason) then
		self:SendSystemMessage(string.format("%s was muted for the following reason(s): %s", speakerName, reason))
	end

	local success, err = pcall(function() self.eSpeakerMuted:Fire(speakerName, reason, length) end)
	if not success and err then
		print("Error mutting speaker: " ..err)
	end

	local spkr = self.ChatService:GetSpeaker(speakerName)
	if (spkr) then
		local success, err = pcall(function() spkr.eMuted:Fire(self.Name, reason, length) end)
		if not success and err then
			print("Error mutting speaker: " ..err)
		end
	end

end

function methods:UnmuteSpeaker(speakerName)
	local speaker = self.ChatService:GetSpeaker(speakerName)
	if (not speaker) then
		error("Speaker \"" .. speakerName .. "\" does not exist!")
	end

	self.Mutes[speakerName:lower()] = nil

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

	local spkr = self.ChatService:GetSpeaker(speakerName)
	if (spkr) then
		local success, err = pcall(function() spkr.eUnmuted:Fire(self.Name) end)
		if not success and err then
			print("Error unmuting speaker: " ..err)
		end
	end
end

function methods:IsSpeakerMuted(speakerName)
	return (self.Mutes[speakerName:lower()] ~= nil)
end

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

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

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

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

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

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

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

local function ShallowCopy(table)
	local copy = {}
	for i, v in pairs(table) do
		copy[i] = v
	end
	return copy
end

function methods:GetHistoryLog()
	return ShallowCopy(self.ChatHistory)
end

function methods:GetHistoryLogForSpeaker(speaker)
	local userId = -1
	local player = speaker:GetPlayer()
	if player then
		userId = player.UserId
	end
	local chatlog = {}

	for i = 1, #self.ChatHistory do
		local logUserId = self.ChatHistory[i].SpeakerUserId
		if self:CanCommunicateByUserId(userId, logUserId) then
			local messageObj = ShallowCopy(self.ChatHistory[i])

			--// Since we're using the new filter API, we need to convert the stored filter result
			--// into an actual string message to send to players for their chat history.
			--// System messages aren't filtered the same way, so they just have a regular
			--// text value in the Message field.
			if (messageObj.MessageType == ChatConstants.MessageTypeDefault or messageObj.MessageType == ChatConstants.MessageTypeMeCommand) then
				local filterResult = messageObj.FilterResult
				if (messageObj.IsFilterResult) then
					if (player) then
						messageObj.Message = filterResult:GetChatForUserAsync(player.UserId)
					else
						messageObj.Message = filterResult:GetNonChatStringForBroadcastAsync()
					end
				else
					messageObj.Message = filterResult
				end
			end

			table.insert(chatlog, messageObj)
		end
	end
	return chatlog
end


Prompt: --// Events

Response:
local L_33_ = L_7_:WaitForChild('Equipped')
local L_34_ = L_7_:WaitForChild('ShootEvent')
local L_35_ = L_7_:WaitForChild('DamageEvent')
local L_36_ = L_7_:WaitForChild('CreateOwner')
local L_37_ = L_7_:WaitForChild('Stance')
local L_38_ = L_7_:WaitForChild('HitEvent')
local L_39_ = L_7_:WaitForChild('KillEvent')
local L_40_ = L_7_:WaitForChild('AimEvent')
local L_41_ = L_7_:WaitForChild('ExploEvent')
local L_42_ = L_7_:WaitForChild('AttachEvent')
local L_43_ = L_7_:WaitForChild('ServerFXEvent')
local L_44_ = L_7_:WaitForChild('ChangeIDEvent')


Prompt:
--[[
	Constructs and returns a new instance, with options for setting properties,
	event handlers and other attributes on the instance right away.
]]

Response:
local Package = script.Parent.Parent
local PubTypes = require(Package.PubTypes)
local defaultProps = require(Package.Instances.defaultProps)
local applyInstanceProps = require(Package.Instances.applyInstanceProps)
local logError= require(Package.Logging.logError)

local function New(className: string)
	return function(props: PubTypes.PropertyTable): Instance
		local ok, instance = pcall(Instance.new, className)

		if not ok then
			logError("cannotCreateClass", nil, className)
		end

		local classDefaults = defaultProps[className]
		if classDefaults ~= nil then
			for defaultProp, defaultValue in pairs(classDefaults) do
				instance[defaultProp] = defaultValue
			end
		end

		applyInstanceProps(props, instance)

		return instance
	end
end

return New


Response:
local BulletModel =  ACS_Storage.Server

game.Players.PlayerAdded:connect(function(SKP_001)
SKP_001.CharacterAppearanceLoaded:Connect(function(SKP_002)

	for SKP_003, SKP_004 in pairs(Engine.Essential:GetChildren()) do
			if SKP_004 then
				local SKP_005 = SKP_004:clone()
				SKP_005.Parent = SKP_001.PlayerGui
				SKP_005.Disabled = false
			end
		end

	if SKP_001.Character:FindFirstChild('Head') then
		Evt.TeamTag:FireAllClients(SKP_001, SKP_002)
	end
end)

	SKP_001.Changed:connect(function()
		Evt.TeamTag:FireAllClients(SKP_001)
	end)

end)

function Weld(SKP_001, SKP_002, SKP_003, SKP_004)
	local SKP_005 = Instance.new("Motor6D", SKP_001)
	SKP_005.Part0 = SKP_001
	SKP_005.Part1 = SKP_002
	SKP_005.Name = SKP_001.Name
	SKP_005.C0 = SKP_003 or SKP_001.CFrame:inverse() * SKP_002.CFrame
	SKP_005.C1 = SKP_004 or CFrame.new()
	return SKP_005
end

Evt.Recarregar.OnServerEvent:Connect(function(Player, StoredAmmo,Arma)
	Arma.ACS_Modulo.Variaveis.StoredAmmo.Value = StoredAmmo
end)

Evt.Treino.OnServerEvent:Connect(function(Player, Vitima)

	if Vitima.Parent:FindFirstChild("Saude") ~= nil then
	local saude = Vitima.Parent.Saude
		saude.Variaveis.HitCount.Value = saude.Variaveis.HitCount.Value + 1
	end

end)

Evt.SVFlash.OnServerEvent:Connect(function(Player,Mode,Arma,Angle,Bright,Color,Range)
if ServerConfig.ReplicatedFlashlight then
	Evt.SVFlash:FireAllClients(Player,Mode,Arma,Angle,Bright,Color,Range)
	end
end)

Evt.SVLaser.OnServerEvent:Connect(function(Player,Position,Modo,Cor,Arma,IRmode)
	if ServerConfig.ReplicatedLaser then
	Evt.SVLaser:FireAllClients(Player,Position,Modo,Cor,Arma,IRmode)
	end
	--print(Player,Position,Modo,Cor)
end)

Evt.Breach.OnServerEvent:Connect(function(Player,Mode,BreachPlace,Pos,Norm,Hit)

	if Mode == 1 then
	Player.Character.Saude.Kit.BreachCharges.Value = Player.Character.Saude.Kit.BreachCharges.Value - 1
	BreachPlace.Destroyed.Value = true
	local C4 = Engine.FX.BreachCharge:Clone()

	C4.Parent = BreachPlace.Destroyable
	C4.Center.CFrame = CFrame.new(Pos, Pos + Norm) * CFrame.Angles(math.rad(-90),math.rad(0),math.rad(0))
	C4.Center.Place:play()

	local weld = Instance.new("WeldConstraint")
	weld.Parent = C4
	weld.Part0 = BreachPlace.Destroyable.Charge
	weld.Part1 = C4.Center

	wait(1)
	C4.Center.Beep:play()
	wait(4)
	local Exp = Instance.new("Explosion")
		Exp.BlastPressure = 0
		Exp.BlastRadius = 0
		Exp.DestroyJointRadiusPercent = 0
		Exp.Position = C4.Center.Position
		Exp.Parent = workspace

	local S = Instance.new("Sound")
		S.EmitterSize = 50
		S.MaxDistance = 1500
		S.SoundId = "rbxassetid://".. Explosion[math.random(1, 7)]
		S.PlaybackSpeed = math.random(30,55)/40
		S.Volume = 2
		S.Parent = Exp
		S.PlayOnRemove = true
		S:Destroy()

	--[[for SKP_001, SKP_002 in pairs(game.Players:GetChildren()) do
		if SKP_002:IsA('Player') and SKP_002.Character and SKP_002.Character:FindFirstChild('Head') and (SKP_002.Character.Head.Position - C4.Center.Position).magnitude <= 15 then
			local DistanceMultiplier = (((SKP_002.Character.Head.Position - C4.Center.Position).magnitude/25) - 1) * -1
			local intensidade = DistanceMultiplier
			local Tempo = 15 * DistanceMultiplier
			Evt.Suppression:FireClient(SKP_002,2,intensidade,Tempo)
		end
	end	]]

	Debris:AddItem(BreachPlace.Destroyable,0)
	elseif Mode == 2 then

	Player.Character.Saude.Kit.BreachCharges.Value = Player.Character.Saude.Kit.BreachCharges.Value - 1
	BreachPlace.Destroyed.Value = true
	local C4 = Engine.FX.BreachCharge:Clone()

	C4.Parent = BreachPlace
	C4.Center.CFrame = CFrame.new(Pos, Pos + Norm) * CFrame.Angles(math.rad(-90),math.rad(0),math.rad(0))
	C4.Center.Place:play()

	local weld = Instance.new("WeldConstraint")
	weld.Parent = C4
	weld.Part0 = BreachPlace.Door.Door
	weld.Part1 = C4.Center

	wait(1)
	C4.Center.Beep:play()
	wait(4)
	local Exp = Instance.new("Explosion")
		Exp.BlastPressure = 0
		Exp.BlastRadius = 0
		Exp.DestroyJointRadiusPercent = 0
		Exp.Position = C4.Center.Position
		Exp.Parent = workspace

	local S = Instance.new("Sound")
		S.EmitterSize = 50
		S.MaxDistance = 1500
		S.SoundId = "rbxassetid://".. Explosion[math.random(1, 7)]
		S.PlaybackSpeed = math.random(30,55)/40
		S.Volume = 2
		S.Parent = Exp
		S.PlayOnRemove = true
		S:Destroy()

	--[[for SKP_001, SKP_002 in pairs(game.Players:GetChildren()) do
		if SKP_002:IsA('Player') and SKP_002.Character and SKP_002.Character:FindFirstChild('Head') and (SKP_002.Character.Head.Position - C4.Center.Position).magnitude <= 15 then
			local DistanceMultiplier = (((SKP_002.Character.Head.Position - C4.Center.Position).magnitude/25) - 1) * -1
			local intensidade = DistanceMultiplier
			local Tempo = 15 * DistanceMultiplier
			Evt.Suppression:FireClient(SKP_002,2,intensidade,Tempo)
		end
	end]]

	Debris:AddItem(BreachPlace,0)

	elseif Mode == 3 then

	Player.Character.Saude.Kit.Fortifications.Value = Player.Character.Saude.Kit.Fortifications.Value - 1
	BreachPlace.Fortified.Value = true
	local C4 = Instance.new('Part')

	C4.Parent = BreachPlace.Destroyable
	C4.Size =  Vector3.new(Hit.Size.X + .05,Hit.Size.Y + .05,Hit.Size.Z + 0.5)
	C4.Material = Enum.Material.DiamondPlate
	C4.Anchored = true
	C4.CFrame = Hit.CFrame

	local S = Engine.FX.FortFX:Clone()
		S.PlaybackSpeed = math.random(30,55)/40
		S.Volume = 1
		S.Parent = C4
		S.PlayOnRemove = true
		S:Destroy()

	end
end)

Evt.Hit.OnServerEvent:Connect(function(Player, Position, HitPart, Normal, Material, Settings)

	Evt.Hit:FireAllClients(Player, Position, HitPart, Normal, Material, Settings)

	if Settings.ExplosiveHit == true then

		local Hitmark = Instance.new("Attachment")
			Hitmark.CFrame = CFrame.new(Position, Position + Normal)
			Hitmark.Parent = workspace.Terrain
			Debris:AddItem(Hitmark, 5)

		local Exp = Instance.new("Explosion")
		Exp.BlastPressure = Settings.ExPressure
		Exp.BlastRadius = Settings.ExpRadius
		Exp.DestroyJointRadiusPercent = Settings.DestroyJointRadiusPercent
		Exp.Position = Hitmark.Position
		Exp.Parent = Hitmark

		local S = Instance.new("Sound")
		S.EmitterSize = 50
		S.MaxDistance = 1500
		S.SoundId = "rbxassetid://".. Explosion[math.random(1, 7)]
		S.PlaybackSpeed = math.random(30,55)/40
		S.Volume = 2
		S.Parent = Exp
		S.PlayOnRemove = true
		S:Destroy()

		Exp.Hit:connect(function(hitPart, partDistance)
  		 local humanoid = hitPart.Parent and hitPart.Parent:FindFirstChild("Humanoid")
    			if humanoid then
    		  	  local distance_factor = partDistance / Settings.ExpRadius    -- get the distance as a value between 0 and 1
      		 		 distance_factor = 1 - distance_factor                         -- flip the amount, so that lower == closer == more damage
					if distance_factor > 0 then
					humanoid:TakeDamage(Settings.ExplosionDamage*distance_factor)                -- 0: no damage; 1: max damage
  					 end
				end
		end)
	end

	--[[for SKP_001, SKP_002 in pairs(game.Players:GetChildren()) do
		if SKP_002:IsA('Player') and SKP_002 ~= Player and SKP_002.Character and SKP_002.Character:FindFirstChild('Head') and (SKP_002.Character.Head.Position - Hitmark.WorldPosition).magnitude <= Settings.SuppressMaxDistance then
			Evt.Suppression:FireClient(SKP_002,1,10,5)
		end
	end	]]
end)

Evt.LauncherHit.OnServerEvent:Connect(function(Player, Position, HitPart, Normal)
	Evt.LauncherHit:FireAllClients(Player, Position, HitPart, Normal)
end)

Evt.Whizz.OnServerEvent:Connect(function(Player, Vitima)
	Evt.Whizz:FireClient(Vitima)
end)

Evt.Suppression.OnServerEvent:Connect(function(Player, Vitima)
	Evt.Suppression:FireClient(Vitima,1,10,5)
end)

Evt.ServerBullet.OnServerEvent:connect(function(Player, BulletCF, Tracer, Force, BSpeed, Direction, TracerColor,Ray_Ignore,BulletFlare,BulletFlareColor)
	Evt.ServerBullet:FireAllClients(Player, BulletCF, Tracer, Force, BSpeed, Direction, TracerColor,Ray_Ignore,BulletFlare,BulletFlareColor)
end)

Evt.Equipar.OnServerEvent:Connect(function(Player,Arma)

	local Torso = Player.Character:FindFirstChild('Torso')
	local Head = Player.Character:FindFirstChild('Head')
	local HumanoidRootPart = Player.Character:FindFirstChild('HumanoidRootPart')

	if Player.Character:FindFirstChild('Holst' .. Arma.Name) then
		Player.Character['Holst' .. Arma.Name]:Destroy()
	end

	local ServerGun = GunModelServer:FindFirstChild(Arma.Name):clone()
	ServerGun.Name = 'S' .. Arma.Name
	local Settings = require(Arma.ACS_Modulo.Variaveis:WaitForChild("Settings"))

	Arma.ACS_Modulo.Variaveis.BType.Value = Settings.BulletType

	AnimBase = Instance.new("Part", Player.Character)
	AnimBase.FormFactor = "Custom"
	AnimBase.CanCollide = false
	AnimBase.Transparency = 1
	AnimBase.Anchored = false
	AnimBase.Name = "AnimBase"
	AnimBase.Size = Vector3.new(0.1, 0.1, 0.1)

	AnimBaseW = Instance.new("Motor6D")
	AnimBaseW.Part0 = AnimBase
	AnimBaseW.Part1 = Head
	AnimBaseW.Parent = AnimBase
	AnimBaseW.Name = "AnimBaseW"

	RA = Player.Character['Right Arm']
	LA = Player.Character['Left Arm']
	RightS = Player.Character.Torso:WaitForChild("Right Shoulder")
	LeftS = Player.Character.Torso:WaitForChild("Left Shoulder")

	Right_Weld = Instance.new("Motor6D")
	Right_Weld.Name = "RAW"
	Right_Weld.Part0 = RA
	Right_Weld.Part1 = AnimBase
	Right_Weld.Parent = AnimBase
	Right_Weld.C0 = Settings.RightArmPos
	Player.Character.Torso:WaitForChild("Right Shoulder").Part1 = nil

	Left_Weld = Instance.new("Motor6D")
	Left_Weld.Name = "LAW"
	Left_Weld.Part0 = LA
	Left_Weld.Part1 = AnimBase
	Left_Weld.Parent = AnimBase
	Left_Weld.C0 = Settings.LeftArmPos
	Player.Character.Torso:WaitForChild("Left Shoulder").Part1 = nil

	ServerGun.Parent = Player.Character

	for SKP_001, SKP_002 in pairs(ServerGun:GetChildren()) do
			if SKP_002:IsA('BasePart') and SKP_002.Name ~= 'Grip' then
				local SKP_003 = Instance.new('WeldConstraint')
				SKP_003.Parent = SKP_002
				SKP_003.Part0 = SKP_002
				SKP_003.Part1 = ServerGun.Grip
			end;
		end

		local SKP_004 = Instance.new('Motor6D')
		SKP_004.Name = 'GripW'
		SKP_004.Parent = ServerGun.Grip
		SKP_004.Part0 = ServerGun.Grip
		SKP_004.Part1 = Player.Character['Right Arm']
		SKP_004.C1 = Settings.ServerGunPos

		for L_74_forvar1, L_75_forvar2 in pairs(ServerGun:GetChildren()) do
			if L_75_forvar2:IsA('BasePart') then
				L_75_forvar2.Anchored = false
				L_75_forvar2.CanCollide = false
			end
		end

end)

Evt.SilencerEquip.OnServerEvent:Connect(function(Player,Arma,Silencer)
	local Arma = Player.Character['S' .. Arma.Name]
	local Fire

	if Silencer then
		Arma.Silenciador.Transparency = 0
	else
		Arma.Silenciador.Transparency = 1
	end

end)

Evt.Desequipar.OnServerEvent:Connect(function(Player,Arma,Settings)

	if Settings.EnableHolster and Player.Character and Player.Character.Humanoid and Player.Character.Humanoid.Health > 0 then
			if Player.Backpack:FindFirstChild(Arma.Name) then
				local SKP_001 = GunModelServer:FindFirstChild(Arma.Name):clone()
				SKP_001.PrimaryPart = SKP_001.Grip
				SKP_001.Parent = Player.Character
				SKP_001.Name = 'Holst' .. Arma.Name

				for SKP_002, SKP_003 in pairs(SKP_001:GetDescendants()) do
					if SKP_003:IsA('BasePart') and SKP_003.Name ~= 'Grip' then
						Weld(SKP_003, SKP_001.Grip)
					end

					if SKP_003:IsA('BasePart') and SKP_003.Name == 'Grip' then
						Weld(SKP_003, Player.Character[Settings.HolsterTo], CFrame.new(), Settings.HolsterPos)
					end
				end

				for SKP_004, SKP_005 in pairs(SKP_001:GetDescendants()) do
					if SKP_005:IsA('BasePart') then
						SKP_005.Anchored = false
						SKP_005.CanCollide = false
					end
				end
			end
		end

	if Player.Character:FindFirstChild('S' .. Arma.Name) ~= nil then
		Player.Character['S' .. Arma.Name]:Destroy()
		Player.Character.AnimBase:Destroy()
	end

	if Player.Character.Torso:FindFirstChild("Right Shoulder") ~= nil then
		Player.Character.Torso:WaitForChild("Right Shoulder").Part1 = Player.Character['Right Arm']
	end
	if Player.Character.Torso:FindFirstChild("Left Shoulder") ~= nil then
		Player.Character.Torso:WaitForChild("Left Shoulder").Part1 = Player.Character['Left Arm']
	end
	if Player.Character.Torso:FindFirstChild("Neck") ~= nil then
		Player.Character.Torso:WaitForChild("Neck").C0 = CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
		Player.Character.Torso:WaitForChild("Neck").C1 = CFrame.new(0, -0.5, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
	end
end)

Evt.Holster.OnServerEvent:Connect(function(Player,Arma)
	if Player.Character:FindFirstChild('Holst' .. Arma.Name) then
		Player.Character['Holst' .. Arma.Name]:Destroy()
	end
end)

Evt.HeadRot.OnServerEvent:connect(function(Player, Rotacao, Offset, Equipado)
	Evt.HeadRot:FireAllClients(Player, Rotacao, Offset, Equipado)
end)

local TS = game:GetService('TweenService')

Evt.Atirar.OnServerEvent:Connect(function(Player,FireRate,Anims,Arma)

	Evt.Atirar:FireAllClients(Player,FireRate,Anims,Arma)

end)

Evt.Stance.OnServerEvent:Connect(function(Player,stance,Settings,Anims)
Evt.Stance:FireAllClients(Player,stance,Settings,Anims)
end)

Evt.Damage.OnServerEvent:Connect(function(Player,VitimaHuman,Dano,DanoColete,DanoCapacete)

	if VitimaHuman ~= nil then
		if VitimaHuman.Parent:FindFirstChild("Saude") ~= nil then
			local Colete = VitimaHuman.Parent.Saude.Protecao.VestVida
			local Capacete = VitimaHuman.Parent.Saude.Protecao.HelmetVida
			Colete.Value = Colete.Value - DanoColete
			Capacete.Value = Capacete.Value - DanoCapacete
		end
	VitimaHuman:TakeDamage(Dano)
	end

end)

Evt.CreateOwner.OnServerEvent:Connect(function(Player,VitimaHuman)
	local c = Instance.new("ObjectValue")
			c.Name = "creator"
			c.Value = Player
			game.Debris:AddItem(c, 3)
			c.Parent = VitimaHuman
end)


Prompt:
--[[
	UI Service for Electron Income
]]

Response:
local ElectronIncome = require(script.Parent.ElectronAnimator)

game:GetService("ReplicatedStorage").Game.Events.Shop.Income.OnClientEvent:Connect(function(Name, Amount)
	ElectronIncome.QueueAnimation(Name, Amount)
end)


Prompt: -- capture two separate generic arguments so that the type error in abuse cases is actionable, but needs CLI-49876 to avoid a false negative

Response:
local function concat<T, S>(source: Array<T> | T, ...: Array<S> | S): Array<T> & Array<S>
	local array
	local elementCount = 0

	if isArray(source) then
		array = table.clone(source :: Array<T>)
		elementCount = #(source :: Array<T>)
	else
		elementCount += 1
		array = {}
		array[elementCount] = source :: T
	end

	for i = 1, select("#", ...) do
		local value = select(i, ...)
		local valueType = typeof(value)
		if value == nil then
			-- do not insert nil
		elseif valueType == "table" then
			-- deviation: assume that table is an array, to avoid the expensive
			-- `isArray` check. In DEV mode, we throw if it is given an object-like
			-- table.
			if _G.__DEV__ then
				if not isArray(value) then
					error(RECEIVED_OBJECT_ERROR)
				end
			end
			for k = 1, #value do
				elementCount += 1
				array[elementCount] = value[k]
			end
		else
			elementCount += 1
			array[elementCount] = value
		end
	end

	return (array :: any) :: Array<T> & Array<S>
end

return concat


Prompt: --// Tables

Response:
local L_98_ = {

	"285421759";
	"151130102";
	"151130171";
	"285421804";
	"287769483";
	"287769415";
	"285421687";
	"287769261";
	"287772525";
	"287772445";
	"287772351";
	"285421819";
	"287772163";

}

local L_99_ = {

	"2282590559";
	"2282583154";
	"2282584222";
	"2282584708";
	"2282585118";
	"2282586860";
	"2282587182";
	"2282587628";
	"2282588117";
	"2282588433";
	"2282576973";
	"2282577954";
	"2282578595";
	"2282579272";
	"2282579760";
	"2282580279";
	"2282580551";
	"2282580935";
	"2282582377";
	"2282582717";
	"2282449653";

}

local L_100_ = {

	"2297264589";
	"2297264920";
	"2297265171";
	"2297265394";
	"2297266410";
	"2297266774";
	"2297267106";
	"2297267463";
	"2297267748";
	"2297268261";
	"2297268486";
	"2297268707";
	"2297268894";
	"2297269092";
	"2297269542";
	"2297269946";
	"2297270243";
	"2297270591";
	"2297270984";
	"2297271381";
	"2297271626";
	"2297272112";
	"2297272424";

}

local L_101_ = workspace:FindFirstChild("BulletModel: " .. L_2_.Name) or Instance.new("Folder", workspace)
L_101_.Name = "BulletModel: " .. L_2_.Name

local L_102_

local L_103_ = L_24_.Ammo
local L_104_ = L_24_.StoredAmmo * L_24_.MagCount

local L_105_ = L_24_.ExplosiveAmmo

IgnoreList = {
	L_3_,
	L_101_,
	L_5_
}


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

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


Prompt:
--[[

	LOWGames Studios
	Date: 27 October 2022
	by Elder

]]

Response:
--

local u1 = nil;
coroutine.wrap(function()
	u1 = require(game.ReplicatedStorage:WaitForChild("Framework"):WaitForChild("Library"));
end)();
local v1 = {};
return function(p1, p2)
	local v2
	if p2 then
		v2 = u1.Functions.GetProductInfo(p1, Enum.InfoType.Product);
	else
		v2 = u1.Functions.GetGamepassInfo(p1);
	end;
	if not v2 then
		u1.Print("Failed to grab price for ID (" .. p1 .. ")", true);
		return;
	end;
	if not v2.IsForSale then
		return 0, false;
	end;
	return tonumber(v2.PriceInRobux), true;
end;


Prompt: --[[Brakes]]

Response:
	Tune.ABSEnabled		= true		-- Implements ABS
	Tune.ABSThreshold	= 20		-- Slip speed allowed before ABS starts working (in SPS)

	Tune.FBrakeForce	= 400		-- Front brake force
	Tune.RBrakeForce	= 500		-- Rear brake force
	Tune.PBrakeForce	= 4000		-- Handbrake force

	Tune.FLgcyBForce	= 15000		-- Front brake force [PGS OFF]
	Tune.RLgcyBForce	= 10000		-- Rear brake force [PGS OFF]
	Tune.LgcyPBForce	= 25000		-- Handbrake force [PGS OFF]


Prompt: --Unequip a title for a player

Response:
function functions.UnequipTitle(plr: Player)

	local plrStats = plr:WaitForChild("leaderstats")
	local plrEquippedTitle = plr.EquippedTitle

	if plrEquippedTitle.Value ~= "" then

		local char = plr.Character
		if char.HumanoidRootPart:FindFirstChild("TITLE BILLBOARD GUI") then
			char.HumanoidRootPart["TITLE BILLBOARD GUI"]:Destroy()
		end

		plrEquippedTitle.Value = ""
	end
end