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)
	else
		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)

		--// START FFLAG
		if (not IN_GAME_CHAT_USE_NEW_FILTER_API) then --// USES FFLAG
		--// OLD BEHAVIOR
		local filteredMessage = self.ChatService:InternalApplyRobloxFilter(messageObj.FromSpeaker, message, speakerName)
		if filteredMessage then
			messageObj.Message = filteredMessage
			messageObj.IsFiltered = true
			speakerTo:InternalSendFilteredMessage(messageObj, self.Name)
		end
		--// OLD BEHAVIOR
		else
		--// NEW BEHAVIOR
			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
		--// NEW BEHAVIOR
		end
		--// END FFLAG
	else
		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 = {}
	--// START FFLAG
	if (not IN_GAME_CHAT_USE_NEW_FILTER_API) then --// USES FFLAG
	--// OLD BEHAVIOR
	for i = 1, #self.ChatHistory do
		local logUserId = self.ChatHistory[i].SpeakerUserId
		if self:CanCommunicateByUserId(userId, logUserId) then
			table.insert(chatlog, ShallowCopy(self.ChatHistory[i]))
		end
	end
	--// OLD BEHAVIOR
	else
	--// NEW BEHAVIOR
		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
	--// NEW BEHAVIOR
	end
	--// END FFLAG
	return chatlog
end


Prompt:
--[[
	State
]]

Response: local startPosition = maid.instance.PrimaryPart.Position


Prompt: --Animation

Response:
local animController = script.Parent:WaitForChild'AnimationController'
local walk = Instance.new'Animation'
walk.AnimationId = game.ReplicatedStorage.NPCAnimations.BantoWalk.AnimationId
walk = animController:LoadAnimation(walk)


Prompt: -- tableUtil.Assign(Table target, ...Table sources)

Response:
local function Assign(target, ...)
	for _,src in ipairs({...}) do
		for k,v in pairs(src) do
			target[k] = v
		end
	end
	return target
end

local function Extend(tbl, extension)
	for k,v in pairs(extension) do
		tbl[k] = v
	end
end

local function Print(tbl, label, deepPrint)

	assert(type(tbl) == "table", "First argument must be a table")
	assert(label == nil or type(label) == "string", "Second argument must be a string or nil")

	label = (label or "TABLE")

	local strTbl = {}
	local indent = " - "

	-- Insert(string, indentLevel)
	local function Insert(s, l)
		strTbl[#strTbl + 1] = (indent:rep(l) .. s .. "\n")
	end

	local function AlphaKeySort(a, b)
		return (tostring(a.k) < tostring(b.k))
	end

	local function PrintTable(t, lvl, lbl)
		Insert(lbl .. ":", lvl - 1)
		local nonTbls = {}
		local tbls = {}
		local keySpaces = 0
		for k,v in pairs(t) do
			if (type(v) == "table") then
				table.insert(tbls, {k = k, v = v})
			else
				table.insert(nonTbls, {k = k, v = "[" .. typeof(v) .. "] " .. tostring(v)})
			end
			local spaces = #tostring(k) + 1
			if (spaces > keySpaces) then
				keySpaces = spaces
			end
		end
		table.sort(nonTbls, AlphaKeySort)
		table.sort(tbls, AlphaKeySort)
		for _,v in ipairs(nonTbls) do
			Insert(tostring(v.k) .. ":" .. (" "):rep(keySpaces - #tostring(v.k)) .. v.v, lvl)
		end
		if (deepPrint) then
			for _,v in ipairs(tbls) do
				PrintTable(v.v, lvl + 1, tostring(v.k) .. (" "):rep(keySpaces - #tostring(v.k)) .. " [Table]")
			end
		else
			for _,v in ipairs(tbls) do
				Insert(tostring(v.k) .. ":" .. (" "):rep(keySpaces - #tostring(v.k)) .. "[Table]", lvl)
			end
		end
	end

	PrintTable(tbl, 1, label)

	print(table.concat(strTbl, ""))

end

local function Reverse(tbl)
	local n = #tbl
	local tblRev = table.create(n)
	for i = 1,n do
		tblRev[i] = tbl[n - i + 1]
	end
	return tblRev
end

local function Shuffle(tbl)
	assert(type(tbl) == "table", "First argument must be a table")
	local rng = Random.new()
	for i = #tbl, 2, -1 do
		local j = rng:NextInteger(1, i)
		tbl[i], tbl[j] = tbl[j], tbl[i]
	end
end

local function IsEmpty(tbl)
	return (next(tbl) == nil)
end

local function EncodeJSON(tbl)
	return http:JSONEncode(tbl)
end

local function DecodeJSON(str)
	return http:JSONDecode(str)
end

local function FastRemoveFirstValue(t, v)
	local index = IndexOf(t, v)
	if (index) then
		FastRemove(t, index)
		return true, index
	end
	return false, nil
end

TableUtil.Copy = CopyTable
TableUtil.CopyShallow = CopyTableShallow
TableUtil.Sync = Sync
TableUtil.FastRemove = FastRemove
TableUtil.FastRemoveFirstValue = FastRemoveFirstValue
TableUtil.Print = Print
TableUtil.Map = Map
TableUtil.Filter = Filter
TableUtil.Reduce = Reduce
TableUtil.Assign = Assign
TableUtil.Extend = Extend
TableUtil.IndexOf = IndexOf
TableUtil.Reverse = Reverse
TableUtil.Shuffle = Shuffle
TableUtil.IsEmpty = IsEmpty
TableUtil.EncodeJSON = EncodeJSON
TableUtil.DecodeJSON = DecodeJSON

return TableUtil


Response:
nextjump=0
chasing=false

variance=4

damage=26
attackrange=5
sightrange=100
runspeed=26
wonderspeed=16
healthregen=true
colors={"Really black"}

function raycast(spos,vec,currentdist)
	local hit2,pos2=game.Workspace:FindPartOnRay(Ray.new(spos+(vec*.01),vec*currentdist),sp)
	if hit2~=nil and pos2 then
		if hit2.Transparency>=.8 or hit2.Name=="Handle" or string.sub(hit2.Name,1,6)=="Effect" then
			local currentdist=currentdist-(pos2-spos).magnitude
			return raycast(pos2,vec,currentdist)
		end
	end
	return hit2,pos2
end

function waitForChild(parent,childName)
	local child=parent:findFirstChild(childName)
	if child then return child end
	while true do
		child=parent.ChildAdded:wait()
		if child.Name==childName then return child end
	end
end


Prompt: --FasCast Setup--

Response:
local FastCast = require(script:WaitForChild("FastCastRedux"))

local Params = RaycastParams.new()
Params.FilterType = Enum.RaycastFilterType.Blacklist -- just the type of filter
Params.FilterDescendantsInstances = {workspace.Terrain,marine} -- you can add more things to this list btw

if workspace:FindFirstChild("IgnoreFolder") == nil then
	local IgnoreList = Instance.new("Folder",workspace)
	IgnoreList.Name = "IgnoreFolder"
end

local NewCaster = FastCast.new()
local Behaviour = FastCast.newBehavior()

Behaviour.Acceleration = bulletacceleration
Behaviour.RaycastParams = Params
Behaviour.AutoIgnoreFolder = false
Behaviour.CosmeticBulletContainer = workspace.IgnoreFolder
Behaviour.CosmeticBulletTemplate = game.ServerStorage:WaitForChild("Bullet")
Behaviour.MaxDistance = maxdistance


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: -- Below is the script to make the moving platform work. It won't work if something is wrong with the destination blocks.

Response:
local mainFolder = script.Parent
local platform = mainFolder.Platform
local alignPosition = platform.AlignPosition

local destinationList = {}


Prompt:
--[=[
	Clears the TaskQueue. This will clear any tasks
	that were scheduled to be flushed on the current
	execution frame.

	```lua
	queue:Add(something1)
	queue:Add(something2)
	queue:Clear()
	```
]=]

Response:
function TaskQueue:Clear()
	if self._flushing then return end
	table.clear(self._queue)
	self._flushingScheduled = false
end


Prompt: --DO NOT CHANGE ANYTHING INSIDE OF THIS SCRIPT BESIDES WHAT YOU ARE TOLD TO UNLESS YOU KNOW WHAT YOU'RE DOING OR THE SCRIPT WILL NOT WORK!!

Response:
local hitPart = script.Parent
local debounce = true
local tool = game.ServerStorage.KuromiHeadband -- Change "Sword" to the name of your tool, make sure your tool is in ServerStorage

hitPart.Touched:Connect(function(hit)
	if debounce == true then
		if hit.Parent:FindFirstChild("Humanoid") then
			local plr = game.Players:FindFirstChild(hit.Parent.Name)
			if plr then
				debounce = false
				hitPart.BrickColor = BrickColor.new("Bright red")
				tool:Clone().Parent = plr.Backpack
				wait(3) -- Change "3" to however long you want the player to have to wait before they can get the tool again
				debounce = true
				hitPart.BrickColor = BrickColor.new("Bright green")
			end
		end
	end
end)


Prompt: -- / Workspace Assets / --

Response:
local GameHolder = game.Workspace.GameHolder
local GamemodesMapHolder = GameHolder.GamemodesMapHolder
local GameAssetsHolder = GameHolder.GameAssetsHolder
local Lobby = game.Workspace.Lobby


Prompt:
--[=[
	Finds the set intersection betwen the two sets
	@param set table
	@param otherSet table
	@return table
]=]

Response:
function Set.intersection(set, otherSet)
	local newSet = {}
	for key, _ in pairs(set) do
		if otherSet[key] ~= nil then
			newSet[key] = true
		end
	end
	return newSet
end


Prompt: -- Local Variables

Response:
local FlagObjects = {}
local FlagCarriers = {}
local Events = game.ReplicatedStorage.Events
local CaptureFlag = Events.CaptureFlag
local ReturnFlag = Events.ReturnFlag


Prompt: -- LeftUpperArm -> Arm, LeftHand -> Arm

Response:
function getLimbType(limbName)
	local limbType = getLastWordFromPascaleCase(limbName)
	return LIMB_TYPE_ALIASES[limbType] or limbType
end


Prompt: --- Returns the final value of the argument.

Response:
function Argument:GetValue()
	if #self.RawValue == 0 and not self.Required and self.Object.Default ~= nil then
		return self.Object.Default
	end

	if not self.Type.Listable then
		return self:ParseValue(1)
	end

	local values = {}

	for i = 1, #self.TransformedValues do
		local parsedValue = self:ParseValue(i)

		if type(parsedValue) ~= "table" then
			error(("Listable types must return a table from Parse (%s)"):format(self.Type.Name))
		end

		for _, value in pairs(parsedValue) do
			values[value] = true -- Put them into a dictionary to ensure uniqueness
		end
	end

	local valueArray = {}

	for value in pairs(values) do
		valueArray[#valueArray + 1] = value
	end

	return valueArray
end

return Argument


Prompt: --[[Workspace Variables]]

Response:
--
local Tool = script.Parent
local Handle = WaitForChild(Tool,'Handle')
local LazerSound = WaitForChild(Handle,'Lazer')


Prompt: --[[ Local Functions ]]

Response:
--
local function createArrowLabel(name, position, size, rectOffset, rectSize)
	local image = Instance.new('ImageLabel')
	image.Name = name
	image.Image = DPAD_SHEET
	image.ImageRectOffset = rectOffset
	image.ImageRectSize = rectSize
	image.BackgroundTransparency = 1
	image.Size = size
	image.Position = position
	image.Parent = DPadFrame

	return image
end

local function getCenterPosition()
	return Vector2.new(DPadFrame.AbsolutePosition.x + DPadFrame.AbsoluteSize.x/2, DPadFrame.AbsolutePosition.y + DPadFrame.AbsoluteSize.y/2)
end

local function getHumanoid()
	local character = LocalPlayer and LocalPlayer.Character
	if character then
		if CachedHumanoid and CachedHumanoid.Parent == character then
			return CachedHumanoid
		else
			CachedHumanoid = nil
			for _,child in pairs(character:GetChildren()) do
				if child:IsA('Humanoid') then
					CachedHumanoid = child
					return CachedHumanoid
				end
			end
		end
	end
end


Prompt: -- ROBLOX upstream: https://github.com/facebook/jest/tree/v27.4.7/packages/jest-util/src/isInteractive.ts


Prompt:
-- Implement Signal:Once() in terms of a connection which disconnects
-- itself before running the handler.

Response:
function Signal:Once(fn)
	local cn;
	cn = self:Connect(function(...)
		if cn._connected then
			cn:Disconnect()
		end
		fn(...)
	end)
	return cn
end


Prompt: --[[Susupension]]

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

	--Front Suspension
	Tune.FSusDamping	= 500		-- Spring Dampening
	Tune.FSusStiffness	= 8000		-- Spring Force
	Tune.FSusLength		= 2			-- Suspension length (in studs)
	Tune.FSusMaxExt		= .3		-- Max Extension Travel (in studs)
	Tune.FSusMaxComp	= .1		-- Max Compression Travel (in studs)
	Tune.FSusAngle		= 80		-- Suspension Angle (degrees from horizontal)

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

	--Rear Suspension
	Tune.RSusDamping	= 500		-- Spring Dampening
	Tune.RSusStiffness	= 8000		-- Spring Force
	Tune.RSusLength		= 2			-- Suspension length (in studs)
	Tune.RSusMaxExt		= .3		-- Max Extension Travel (in studs)
	Tune.RSusMaxComp	= .1		-- Max Compression Travel (in studs)
	Tune.RSusAngle		= 80		-- Suspension Angle (degrees from horizontal)

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

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


Prompt: --Performance

Response: clock = .02 --the higher it is, the less laggy and less smooth the anims will be


Prompt: -- Returns whether or not message contains triggerWord

Response:
function ChatEmotes.messageMatchesTriggerWord(message: string, triggerWord: string): boolean
	message = " " .. string.lower(message) .. " " -- extra spaces are to help the below pattern detect word boundaries
	local pattern = "[%p%s]" .. string.lower(triggerWord) .. "[%p%s]" -- %p matches punctuation, %s matches whitespaces
	return string.find(message, pattern) ~= nil
end


Prompt: -- RCM Settings V

Response:
self.WeaponWeight		= 6 -- Weapon weight must be enabled in the Config module

self.ShellEjectionMod	= false

self.Holster			= true
self.HolsterPoint		= "Torso"
self.HolsterCFrame		= CFrame.new(0.8,1,0.9) * CFrame.Angles(math.rad(-90),math.rad(180),math.rad(10))

self.FlashChance 		= 10 -- 10 = Always muzzle flash, 0 = no muzzle flash

self.ADSEnabled 		= { -- Ignore this setting if not using an ADS Mesh
						true, -- Enabled for primary sight
						false} -- Enabled for secondary sight (T)

self.ExplosiveAmmo		= true -- Enables explosive ammo
self.ExplosionRadius	= 70 -- Radius of explosion damage in studs
self.ExplosionType		= "Default" -- Which explosion effect is used from the HITFX Explosion folder
self.IsLauncher			= true -- For RPG style rocket launchers

self.EjectionOverride	= nil -- Don't touch unless you know what you're doing with Vector3s

return self


Prompt: --Turbocharger

Response:
local BOV_Loudness = .75	--volume of the BOV (not exact volume so you kinda have to experiment with it)
local BOV_Pitch = 0.9	--max pitch of the BOV (not exact so might have to mess with it)
local T_Loudness = .325 --volume of the turbo(s) (not exact volume so you kinda have to experiment with it also)


Prompt: -- / functions / --

Response:
module["food"] = {
	["equipped"] = function(plr, components)

	end,

	["unequipped"] = function(plr, components)
	end,
}


Prompt: -- GUI

Response:
local lastHealth = 0
local hud = gameUI:WaitForChild("HUD")
local goldLabel = hud:WaitForChild("GoldLabel")
local goldIncreaseLabel = hud:WaitForChild("GoldIncreaseLabel")
local rankLabel = hud:WaitForChild("Rank"):WaitForChild("Rank")
local defenseLabel = hud:WaitForChild("Defense"):WaitForChild("Defense")
local arrowsLabel = hud:WaitForChild("Arrows"):WaitForChild("Arrows")
local manaLabel = hud:WaitForChild("Mana"):WaitForChild("Mana")
local healthFill = hud:WaitForChild("Health"):WaitForChild("Fill")
healthFill.Parent:WaitForChild("LifeLabel")
healthFill:WaitForChild("UIGradient")
local rankBar = hud:WaitForChild("RankBar"):WaitForChild("FillCutoff")
rankBar:WaitForChild("Fill")
rankBar.Parent:WaitForChild("Label")
local switchMenu = replicatedStorage:WaitForChild("Modules"):WaitForChild("SwitchMenu")

function DamageEffect(originalPercentage, damagePercentage, amount)
	require(playSoundEffect)("Hurt" .. math.random(1,2))
	local effect = Instance.new("Frame")
	effect.BorderSizePixel = 0
	effect.Size = UDim2.new(1, 0, damagePercentage, 0)
	effect.Position = UDim2.new(0, 0, 1 - originalPercentage, 0)
	effect.ZIndex = 3
	effect.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
	effect.Parent = healthFill.Parent
	game:GetService("TweenService"):Create(effect, TweenInfo.new(0.3), {BackgroundColor3 = Color3.fromRGB(255, 0, 0), BackgroundTransparency = 1}):Play()
	game:GetService("Debris"):AddItem(effect, 0.5)
	local indicator = Instance.new("TextLabel")
	indicator.Font = Enum.Font.SourceSansBold
	indicator.BackgroundTransparency = 1
	indicator.TextScaled = true
	indicator.TextColor3 = Color3.fromRGB(255, 255, 255)
	indicator.TextStrokeTransparency = 0
	indicator.Text = "-" .. math.floor(amount)
	indicator.TextColor3 = Color3.fromRGB(255, 0, 0)
	indicator.Size = UDim2.new(1, 0, 0.35, 0)
	indicator.Position = UDim2.new(1, 0, 0.325, 0)
	indicator.Parent = healthFill.Parent
	game:GetService("TweenService"):Create(indicator, TweenInfo.new(0.75, Enum.EasingStyle.Linear), {Position = indicator.Position - UDim2.new(0, 0, 0.35, 0), TextTransparency = 1, TextStrokeTransparency = 1}):Play()
	game:GetService("Debris"):AddItem(indicator, 1)
end

function RankUpEffect()
	local rankUpGlow = rankLabel.Parent:WaitForChild("RankUp")
	if rankUpGlow.ImageTransparency == 1 then
		require(playSoundEffect)("RankUp")
		game:GetService("TweenService"):Create(rankUpGlow, TweenInfo.new(0.001), {Size = UDim2.new(1, 0, 1, 0), Position = UDim2.new(0, 0, 0, 0), Rotation = 0}):Play()
		wait()
		game:GetService("TweenService"):Create(rankUpGlow, TweenInfo.new(0.3, Enum.EasingStyle.Linear), {Size = UDim2.new(3, 0, 3, 0), Position = UDim2.new(-1, 0, -1, 0), Rotation = 40, ImageTransparency = 0}):Play()
		wait(0.3)
		game:GetService("TweenService"):Create(rankUpGlow, TweenInfo.new(0.5, Enum.EasingStyle.Linear), {Size = UDim2.new(6, 0, 6, 0), Position = UDim2.new(-2.5, 0, -2.5, 0), Rotation = 80, ImageTransparency = 1}):Play()
	end
end

function XPIncreaseEffect(amount)
	local glow = rankBar.Parent:WaitForChild("Glow")
	local increase = rankBar.Parent:WaitForChild("Increase")
	increase.Text = "+" .. amount
	game:GetService("TweenService"):Create(glow, TweenInfo.new(0.001), {ImageTransparency = 0}):Play()
	game:GetService("TweenService"):Create(increase, TweenInfo.new(0.001), {TextTransparency = 0, TextStrokeTransparency = 0}):Play()
	wait()
	game:GetService("TweenService"):Create(glow, TweenInfo.new(0.3, Enum.EasingStyle.Linear), {ImageTransparency = 1}):Play()
	game:GetService("TweenService"):Create(increase, TweenInfo.new(3, Enum.EasingStyle.Linear), {TextTransparency = 1, TextStrokeTransparency = 1}):Play()
end

function GoldIncreaseEffect(amount)
	goldIncreaseLabel.Text = "+" .. amount
	game:GetService("TweenService"):Create(goldIncreaseLabel, TweenInfo.new(0.001), {TextTransparency = 0, TextStrokeTransparency = 0}):Play()
	wait()
	game:GetService("TweenService"):Create(goldIncreaseLabel, TweenInfo.new(3, Enum.EasingStyle.Linear), {TextTransparency = 1, TextStrokeTransparency = 1}):Play()
end

function UpdateDefense()
	local armor = replicatedStorage.Armor:FindFirstChild(players.LocalPlayer.Stats.CurrentArmor.Value)
	if armor then
		defenseLabel.Text = armor.Defense.Value
	else
		defenseLabel.Text = "0"
	end
end

hud:WaitForChild("Armor").MouseButton1Click:Connect(function()
	require(switchMenu)("ArmorEquipMenu")
end)

hud:WaitForChild("Attributes").MouseButton1Click:Connect(function()
	require(switchMenu)("AttributesMenu")
end)

hud:WaitForChild("Spawn").MouseButton1Click:Connect(function()
	local areaName = workspace.Remotes.ReturnToSpawn:InvokeServer()
	if areaName then
		require(updateEnvironment).LoadArea(areaName)
	end
end)

hud:WaitForChild("Quests").MouseButton1Click:Connect(function()
	require(switchMenu)("QuestsMenu")
end)

function GetManaCap()
	local serverSettings = game:GetService("ReplicatedStorage").ServerSettings
	return serverSettings.StartingMana.Value + (serverSettings.ManaBoostPerMythicality.Value * players.LocalPlayer.Attributes.Mythicality.Value)
end

local rankCap = game:GetService("ReplicatedStorage").ServerSettings.RankCap
local gold = players.LocalPlayer:WaitForChild("Stats"):WaitForChild("Gold")
local xp = players.LocalPlayer:WaitForChild("Stats"):WaitForChild("XP")
local rank = players.LocalPlayer:WaitForChild("Stats"):WaitForChild("Rank")
local currentArmor = players.LocalPlayer:WaitForChild("Stats"):WaitForChild("CurrentArmor")
local prevGold = gold.Value
local prevXP = xp.Value
local prevRank = rank.Value
gold.Changed:Connect(function()
	if gold.Value > prevGold then
		GoldIncreaseEffect(math.floor(gold.Value - prevGold))
	end
	prevGold = gold.Value
end)
xp.Changed:Connect(function()
	if xp.Value > prevXP then
		XPIncreaseEffect(math.floor(xp.Value - prevXP))
	end
	prevXP = xp.Value
end)
rank.Changed:Connect(function()
	if rank.Value > prevRank then
		RankUpEffect()
	end
	prevRank = rank.Value
end)
UpdateDefense()
currentArmor.Changed:Connect(UpdateDefense)


Prompt:
--[[

	Inverse kinimatics solve.

	Functions.SolveIK(
		originCF,				<-- |REQ| 	Origin CFrame
		targetPos,				<-- |REQ| 	Target CFrame
		upperLength,			<-- |REQ| 	Upper length in studs
		lowerLength,			<-- |REQ| 	Lower length in studs
	)

--]]

Response:
return function (originCF, targetPos, l1, l2)
	-- Build intial values for solving
	local localized = originCF:pointToObjectSpace(targetPos)
	local localizedUnit = localized.Unit
	local l3 = localized.Magnitude

	-- Build a "rolled" planeCF for a more natural arm look
	local axis = Vector3.new(0, 0, -1):Cross(localizedUnit)
	local angle = math.acos(-localizedUnit.Z)
	local planeCF = (originCF * CFrame.fromAxisAngle(axis, angle))

	-- Case: point is to close, unreachable
	-- Action: push back planeCF so the "hand" still reaches, angles fully compressed
	if l3 < (math.max(l2, l1) - math.min(l2, l1)) then
		return planeCF * CFrame.new(0, 0,  math.max(l2, l1) - math.min(l2, l1) - l3), -math.pi/2, math.pi

	-- Case: point is to far, unreachable
	-- Action: for forward planeCF so the "hand" still reaches, angles fully extended
	elseif l3 > (l1 + l2) then
		--return planeCF * CFrame.new(0, 0, l1 + l2 - l3), math.pi/2, 0
		return planeCF, math.pi/2, 0

	-- Case: point is reachable
	-- Action: planeCF is fine, solve the angles of the triangle
	else
		local a1 = -math.acos((-(l2 * l2) + (l1 * l1) + (l3 * l3)) / (2 * l1 * l3))
		local a2 = math.acos(((l2  * l2) - (l1 * l1) + (l3 * l3)) / (2 * l2 * l3))

		return planeCF, a1 + math.pi/2, a2 - a1
	end
end


Response:
script.Parent.OtherAberto.TratarFeridasAberto.BloodBag.MouseButton1Down:Connect(function()
	if Saude.Variaveis.Doer.Value == false then
	if Target.Value == "N/A" then
		--Functions.PainKiller:FireServer()
	else
		FunctionsMulti.BloodBag:FireServer()
		Timer.Barra.Size = UDim2.new(0,0,1,0)
		TS:Create(Timer.Barra, TweenInfo.new(2), {Size =  UDim2.new(1,0,1,0)}):Play()
	end
	end
end)


Prompt: --local MasterControl = require(script.Parent)

Response:
local PathDisplay = nil
local LocalPlayer = Players.LocalPlayer


Prompt: -- после создания всех глобальных запускаем дневной

Response: script.Parent.Statues.ToDay.scrStatue.Enabled=true


Prompt: ---- GETTERS AND SETTERS ----

Response:
local function ModifyTransformation(cast: ActiveCast, velocity: Vector3?, acceleration: Vector3?, position: Vector3?)
	local trajectories = cast.StateInfo.Trajectories
	local lastTrajectory = trajectories[#trajectories]

	-- NEW BEHAVIOR: Don't create a new trajectory if we haven't even used the current one.
	if lastTrajectory.StartTime == cast.StateInfo.TotalRuntime then
		-- This trajectory is fresh out of the box. Let's just change it since it hasn't actually affected the cast yet, so changes won't have adverse effects.
		if (velocity == nil) then
			velocity = lastTrajectory.InitialVelocity
		end
		if (acceleration == nil) then
			acceleration = lastTrajectory.Acceleration
		end
		if (position == nil) then
			position = lastTrajectory.Origin
		end

		lastTrajectory.Origin = position
		lastTrajectory.InitialVelocity = velocity
		lastTrajectory.Acceleration = acceleration
	else
		-- The latest trajectory is done. Set its end time and get its location.
		lastTrajectory.EndTime = cast.StateInfo.TotalRuntime

		local point, velAtPoint = unpack(GetLatestTrajectoryEndInfo(cast))

		if not velocity then
			velocity = velAtPoint
		end

		if not acceleration then
			acceleration = lastTrajectory.Acceleration
		end

		if not position then
			position = point
		end

		table.insert(cast.StateInfo.Trajectories, {
			StartTime = cast.StateInfo.TotalRuntime,
			EndTime = -1,
			Origin = position,
			InitialVelocity = velocity,
			Acceleration = acceleration
		})

		cast.StateInfo.CancelHighResCast = true
	end
end

function ActiveCastStatic:SetVelocity(velocity: Vector3)
	assert(getmetatable(self) == ActiveCastStatic, ERR_NOT_INSTANCE:format("SetVelocity", "ActiveCast.new(...)"))
	assert(self.StateInfo.UpdateConnection ~= nil, ERR_OBJECT_DISPOSED)

	ModifyTransformation(self, velocity, nil, nil)
end

function ActiveCastStatic:SetAcceleration(acceleration: Vector3)
	assert(getmetatable(self) == ActiveCastStatic, ERR_NOT_INSTANCE:format("SetAcceleration", "ActiveCast.new(...)"))
	assert(self.StateInfo.UpdateConnection ~= nil, ERR_OBJECT_DISPOSED)

	ModifyTransformation(self, nil, acceleration, nil)
end

function ActiveCastStatic:SetPosition(position: Vector3)
	assert(getmetatable(self) == ActiveCastStatic, ERR_NOT_INSTANCE:format("SetPosition", "ActiveCast.new(...)"))
	assert(self.StateInfo.UpdateConnection ~= nil, ERR_OBJECT_DISPOSED)

	ModifyTransformation(self, nil, nil, position)
end

function ActiveCastStatic:GetVelocity(): Vector3
	assert(getmetatable(self) == ActiveCastStatic, ERR_NOT_INSTANCE:format("GetVelocity", "ActiveCast.new(...)"))
	assert(self.StateInfo.UpdateConnection ~= nil, ERR_OBJECT_DISPOSED)
	local currentTrajectory = self.StateInfo.Trajectories[#self.StateInfo.Trajectories]
	return GetVelocityAtTime(self.StateInfo.TotalRuntime - currentTrajectory.StartTime, currentTrajectory.InitialVelocity, currentTrajectory.Acceleration)
end

function ActiveCastStatic:GetAcceleration(): Vector3
	assert(getmetatable(self) == ActiveCastStatic, ERR_NOT_INSTANCE:format("GetAcceleration", "ActiveCast.new(...)"))
	assert(self.StateInfo.UpdateConnection ~= nil, ERR_OBJECT_DISPOSED)

	return self.StateInfo.Trajectories[#self.StateInfo.Trajectories].Acceleration
end

function ActiveCastStatic:GetPosition(): Vector3
	assert(getmetatable(self) == ActiveCastStatic, ERR_NOT_INSTANCE:format("GetPosition", "ActiveCast.new(...)"))
	assert(self.StateInfo.UpdateConnection ~= nil, ERR_OBJECT_DISPOSED)

	local currentTrajectory = self.StateInfo.Trajectories[#self.StateInfo.Trajectories]
	return GetPositionAtTime(self.StateInfo.TotalRuntime - currentTrajectory.StartTime, currentTrajectory.Origin, currentTrajectory.InitialVelocity, currentTrajectory.Acceleration)
end


Prompt:
--made by Bertox
--lul

Response:
script.Parent.Parent.Parent.Parent.DriveSeat.Electrics.Changed:connect(function()
	if script.Parent.Parent.Parent.Parent.DriveSeat.Electrics.Value == true then
		script.Parent.Material = Enum.Material.Neon
	else
		script.Parent.Material = Enum.Material.SmoothPlastic
	end
end)


Prompt: -- Testing AC FE support

Response:
local event = script.Parent
local car=script.Parent.Parent
local LichtNum = 0

event.OnServerEvent:connect(function(player,data)
	if data['ToggleLight'] then
		if car.Body.Light.on.Value==true then
			car.Body.Light.on.Value=false
		else
			car.Body.Light.on.Value=true
		end
	elseif data['EnableBrakes'] then
		car.Body.Brakes.on.Value=true
	elseif data['DisableBrakes'] then
		car.Body.Brakes.on.Value=false
	elseif data['ToggleLeftBlink'] then
		if car.Body.Left.on.Value==true then
			car.Body.Left.on.Value=false
		else
			car.Body.Left.on.Value=true
		end
	elseif data['ToggleRightBlink'] then
		if car.Body.Right.on.Value==true then
			car.Body.Right.on.Value=false
		else
			car.Body.Right.on.Value=true
		end
	elseif data['ToggleStandlicht'] then
		if LichtNum == 0 then
			LichtNum = 2
			car.Body.Headlight.on.Value = true
		elseif LichtNum == 1 then
			LichtNum = 2
			car.Body.Headlight.on.Value = true
		elseif LichtNum == 2 then
			LichtNum = 3
			car.Body.Highlight.on.Value = true
		elseif LichtNum == 3 then
			LichtNum = 1
			car.Body.Highlight.on.Value = false
			car.Body.Headlight.on.Value = false
		end
	end
end)


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

Response:
client = nil;
service = nil;
return function(p1)
	local u1 = nil;
	local u2 = {};
	local function v1(p2, p3, p4, p5, p6, p7)
		print(p5);
		local v2 = {
			Size = UDim2.new(1, 0, 0, 50),
			BackgroundTransparency = 1,
			AutomaticSize = "Y"
		};
		local v3 = {};
		local v4 = {
			ClassName = "Frame",
			Name = "LoggedItem",
			Size = UDim2.new(1, -10, 1, -10),
			Position = UDim2.new(0, 5, 0, 5),
			BackgroundTransparency = 0.5,
			AutomaticSize = "Y"
		};
		local v5 = {};
		local v6 = {
			ClassName = "TextButton",
			Name = "Function",
			Size = UDim2.new(1, -55, 0, 15),
			Position = UDim2.new(0, 55, 0, 30)
		};
		if p7 then
			local v7 = "Clickable";
		else
			v7 = "Not clickable";
		end;
		v6.Text = v7;
		v6.TextSize = "14";
		v6.TextXAlignment = "Right";
		v6.BackgroundTransparency = 1;
		v6.OnClick = p7;
		v5[1] = {
			ClassName = "ImageButton",
			Name = "Icon",
			Size = UDim2.new(0, 48, 0, 48),
			Position = UDim2.new(0, 1, 0, 1),
			Image = p5,
			OnClick = p7,
			BackgroundTransparency = 1
		};
		v5[2] = {
			ClassName = "TextButton",
			Name = "Title",
			Size = UDim2.new(1, -55, 0, 15),
			Position = UDim2.new(0, 55, 0, 0),
			Text = p3,
			TextSize = "14",
			TextXAlignment = "Left",
			BackgroundTransparency = 1,
			OnClick = p7
		};
		v5[3] = {
			ClassName = "TextButton",
			Name = "Type",
			Size = UDim2.new(1, -55, 0, 15),
			Position = UDim2.new(0, 55, 0, 0),
			Text = p2,
			TextSize = "14",
			TextXAlignment = "Right",
			BackgroundTransparency = 1,
			OnClick = p7
		};
		v5[4] = {
			ClassName = "TextButton",
			Name = "Time",
			Size = UDim2.new(1, -55, 0, 15),
			Position = UDim2.new(0, 55, 0, 15),
			Text = p6,
			TextSize = "14",
			TextXAlignment = "Right",
			BackgroundTransparency = 1,
			OnClick = p7
		};
		v5[5] = v6;
		v5[6] = {
			ClassName = "TextButton",
			Name = "Message",
			Size = UDim2.new(1, -55, 0, 10),
			Position = UDim2.new(0, 55, 0, 15),
			Text = p4,
			TextXAlignment = "Left",
			TextYAlignment = "Top",
			AutomaticSize = "Y",
			TextWrapped = true,
			TextScaled = false,
			RichText = true,
			BackgroundTransparency = 1,
			OnClick = p7
		};
		v4.Children = v5;
		v3[1] = v4;
		v2.Children = v3;
		table.insert(u2, (u1:Add("Frame", v2)));
		if #u2 > 200 then
			u2[1]:Destroy();
			table.remove(u2, 1);
		end;
	end;
	local v8, v9 = xpcall(function()
		return service.LocalizationService:GetCountryRegionForPlayerAsync(service.Players.LocalPlayer) == "US";
	end, function()
		return false;
	end);
	local v10 = {
		Name = "CommunicationsCenter"
	};
	if v9 then
		local v11 = "Communications Center";
	else
		v11 = "Communications Center";
	end;
	v10.Title = v11;
	v10.Icon = client.MatIcons.Forum;
	v10.Size = { 500, 300 };
	function v10.OnClose()
		client.Variables.CommsCenterBindableEvent = nil;
	end;
	local v12 = client.UI.Make("Window", v10);
	u1 = v12:Add("ScrollingFrame", {
		Size = UDim2.new(1, 0, 1, 0),
		Position = UDim2.new(0, 0, 0, 0),
		CanvasSize = UDim2.new(0, 0, 0, 0),
		BackgroundTransparency = 0.9
	});
	local v13 = service.New("UIListLayout", {
		Parent = u1,
		FillDirection = "Vertical",
		HorizontalAlignment = "Left",
		VerticalAlignment = "Bottom",
		SortOrder = "LayoutOrder"
	});
	v13:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
		u1.CanvasSize = UDim2.new(0, 0, 0, v13.AbsoluteContentSize.Y);
		u1.CanvasPosition = Vector2.new(0, v13.AbsoluteContentSize.Y);
	end);
	if client.Variables.CommunicationsHistory then
		for v14, v15 in ipairs(client.Variables.CommunicationsHistory) do
			v1(v15.Type, v15.Title, v15.Message, v15.Icon, v15.Time, v15.Function);
		end;
	end;
	service.HookEvent("CommsCenter", function(p8)
		v1(p8.Type, p8.Title, p8.Message, p8.Icon, p8.Time, p8.Function);
	end);
	local l__gTable__16 = v12.gTable;
	v12:Ready();
end;


Prompt: ---Controller

Response:
local Controller=false
local UserInputService = game:GetService("UserInputService")
local LStickX = 0
local RStickX = 0
local RStickY = 0
local RTriggerValue = 0
local LTriggerValue = 0

local ButtonX = 0
local ButtonY = 0
local ButtonL1 = 0
local ButtonR1 = 0
local ButtonR3 = 0
local DPadUp = 0
function DealWithInput(input,IsRobloxFunction)
	if Controller then
		if input.KeyCode ==Enum.KeyCode.ButtonX then
			if input.UserInputState == Enum.UserInputState.Begin then
				ButtonX=1
			elseif input.UserInputState == Enum.UserInputState.End then
				ButtonX=0
			end
		elseif input.KeyCode ==Enum.KeyCode.ButtonY then
			if input.UserInputState == Enum.UserInputState.Begin then
				ButtonY=1
			elseif input.UserInputState == Enum.UserInputState.End then
				ButtonY=0
			end
		elseif input.KeyCode ==Enum.KeyCode.ButtonL1 then
			if input.UserInputState == Enum.UserInputState.Begin then
				ButtonL1=1
			elseif input.UserInputState == Enum.UserInputState.End then
				ButtonL1=0
			end
		elseif input.KeyCode ==Enum.KeyCode.ButtonR1 then
			if input.UserInputState == Enum.UserInputState.Begin then
				ButtonR1=1
			elseif input.UserInputState == Enum.UserInputState.End then
				ButtonR1=0
			end
		elseif input.KeyCode ==Enum.KeyCode.DPadLeft then
			if input.UserInputState == Enum.UserInputState.Begin then
				DPadUp=1
			elseif input.UserInputState == Enum.UserInputState.End then
				DPadUp=0
			end
		elseif input.KeyCode ==Enum.KeyCode.ButtonR3 then
			if input.UserInputState == Enum.UserInputState.Begin then
				ButtonR3=1
			elseif input.UserInputState == Enum.UserInputState.End then
				ButtonR3=0
			end
		end
		if input.UserInputType.Name:find("Gamepad") then --it's one of 4 gamepads
			if input.KeyCode == Enum.KeyCode.Thumbstick1 then
				LStickX = input.Position.X
			elseif input.KeyCode == Enum.KeyCode.Thumbstick2 then
				RStickX = input.Position.X
				RStickY = input.Position.Y
			elseif input.KeyCode == Enum.KeyCode.ButtonR2 then--right shoulder
				RTriggerValue = input.Position.Z
			elseif input.KeyCode == Enum.KeyCode.ButtonL2 then--left shoulder
				LTriggerValue = input.Position.Z
			end
		end
	end
end
UserInputService.InputBegan:connect(DealWithInput)
UserInputService.InputChanged:connect(DealWithInput)--keyboards don't activate with Changed, only Begin and Ended. idk if digital controller buttons do too
UserInputService.InputEnded:connect(DealWithInput)

car.DriveSeat.ChildRemoved:connect(function(child)
	if child.Name=="SeatWeld" then
		for i,v in pairs(Binded) do
			run:UnbindFromRenderStep(v)
		end
		workspace.CurrentCamera.CameraType=Enum.CameraType.Custom
		workspace.CurrentCamera.FieldOfView=70
		player.CameraMaxZoomDistance=200
	end
end)
local Transition = 0.95
run.Stepped:connect(function()
	V01 = ((Sus.CurrentLength^2.0) + (Sus2.CurrentLength^2.0))^0.50
	local V1 = (Sus3.CurrentLength - Sus4.CurrentLength)/1.32
	local V2 = (Sus4.CurrentLength - Sus3.CurrentLength)/1.32
	V02 = V1
	local V1 = 3.0 - V01
	local V2 = (V1-0.1)/1.98
	local FL = V02
	local FL1 = FL/3.98
	m1.CurrentAngle = m1.CurrentAngle*Transition + (V2)*(1-Transition)
	m2.CurrentAngle = m2.CurrentAngle*Transition + (-FL1/3.98)*(1-Transition)

end)
function Camera()
	local cam=workspace.CurrentCamera
	local intcam=false
	local CRot=0
	local CBack=0
	local CUp=0
	local mode=0
	local look=0
	local camChange = 0
	local function CamUpdate()
		if not pcall (function()
			if camChange==0 and DPadUp==1 then
				intcam = not intcam
			end
			camChange=DPadUp
			if mode==1 then
				if math.abs(RStickX)>.1 then
					local sPos=1
					if RStickX<0 then sPos=-1 end
					if intcam then
						CRot=sPos*math.abs(((math.abs(RStickX)-.1)/(.9)))*-80
					else
						CRot=sPos*math.abs(((math.abs(RStickX)-.1)/(.9)))*-90
					end
				else
					CRot=0
				end
				if math.abs(RStickY)>.1 then
					local sPos=1
					if RStickY<0 then sPos=-1 end
					if intcam then
						CUp=sPos*math.abs(((math.abs(RStickY)-.1)/(.9)))*30
					else
						CUp=math.min(sPos*math.abs(((math.abs(RStickY)-.1)/(.9)))*-75,30)
					end
				else
					CUp=0
				end
			else
				if CRot>look then
					CRot=math.max(look,CRot-20)
				elseif CRot<look then
					CRot=math.min(look,CRot+20)
				end
				CUp=0
			end
			if intcam then
				CBack=0
			else
				CBack=-180*ButtonR3
			end
			if intcam then
				cam.CameraSubject=player.Character.Humanoid
				cam.CameraType=Enum.CameraType.Scriptable
				cam.FieldOfView=70 + car.DriveSeat.Velocity.Magnitude/40
				player.CameraMaxZoomDistance=5
				local cf=car.Misc.ActualCam.Parts.Cam.CFrame
				if ButtonR3==1 then
					cf=car.Body.RCam.CFrame
				end
				cam.CoordinateFrame=cf*CFrame.Angles(0,math.rad(CRot+CBack),0)*CFrame.Angles(math.rad(CUp),0,0)
			else
				cam.CameraSubject=car.DriveSeat
				cam.FieldOfView=70
				if mode==0 then
					cam.CameraType=Enum.CameraType.Custom
					player.CameraMaxZoomDistance=400
					run:UnbindFromRenderStep("CamUpdate")
				else
					cam.CameraType = "Scriptable"
					local pspeed = math.min(1,car.DriveSeat.Velocity.Magnitude/500)
					local cc = car.DriveSeat.Position+Vector3.new(0,8+(pspeed*2),0)-((car.DriveSeat.CFrame*CFrame.Angles(math.rad(CUp),math.rad(CRot+CBack),0)).lookVector*17)+(car.DriveSeat.Velocity.Unit*-7*pspeed)
					cam.CoordinateFrame = CFrame.new(cc,car.DriveSeat.Position)
				end
			end
		end) then
			cam.FieldOfView=70
			cam.CameraSubject=player.Character.Humanoid
			cam.CameraType=Enum.CameraType.Custom
			player.CameraMaxZoomDistance=400
			run:UnbindFromRenderStep("CamUpdate")
		end
	end
	local function ModeChange()
		if GMode~=mode then
			mode=GMode
			run:BindToRenderStep("CamUpdate",Enum.RenderPriority.Camera.Value,CamUpdate)
		end
	end
	mouse.KeyDown:connect(function(key)
		if key=="" then
			look=50
		elseif key=="" then
			if intcam then
				look=-160
			else
				look=-180
			end
		elseif key=="" then
			look=-50
		elseif key=="v" then
			run:UnbindFromRenderStep("CamUpdate")
			intcam=not intcam
			run:BindToRenderStep("CamUpdate",Enum.RenderPriority.Camera.Value,CamUpdate)
		end
	end)
	mouse.KeyUp:connect(function(key)
		if key=="" and look==50 then
			look=0
		elseif key=="" and (look==-160 or look==-180) then
			look=0
		elseif key=="" and look==-50 then
			look=0
		end
	end)
	run:BindToRenderStep("CMChange",Enum.RenderPriority.Camera.Value,ModeChange)
	table.insert(Binded,"CamUpdate")
	table.insert(Binded,"CMChange")
end
Camera()

mouse.KeyDown:connect(function(key)
	if key=="" then
		if GMode>=1 then
			GMode=0
		else
			GMode=GMode+1
		end
		if GMode==1 then
			Controller=true
		else
			Controller=false
		end
	end
end)


Prompt: -- luacheck: ignore 212

Response:
local Players = game:GetService("Players")
local Player = Players.LocalPlayer

return function (Cmdr)
	local AutoComplete = {
		Items = {};
		ItemOptions = {};
		SelectedItem = 0;
	}

	local Util = Cmdr.Util
	local Shorthands = Util.MakeDictionary({"me", "all", ".", "*", "others"})

	local Gui = Player:WaitForChild("PlayerGui"):WaitForChild("Cmdr"):WaitForChild("Autocomplete")
	local AutoItem = Gui:WaitForChild("TextButton")
	local Title = Gui:WaitForChild("Title")
	local Description = Gui:WaitForChild("Description")
	local Entry = Gui.Parent:WaitForChild("Frame"):WaitForChild("Entry")
	AutoItem.Parent = nil

	-- Helper function that sets text and resizes labels
	local function SetText(obj, textObj, text, sizeFromContents)
		obj.Visible = text ~= nil
		textObj.Text = text or ""

		if sizeFromContents then
			textObj.Size = UDim2.new(0, Util.GetTextSize(text or "", textObj, Vector2.new(1000, 1000), 1, 0).X, obj.Size.Y.Scale, obj.Size.Y.Offset)
		end
	end

	-- Update the info display (Name, type, and description) based on given options.
	local function UpdateInfoDisplay (options)
		-- Update the objects' text and sizes
		SetText(Title, Title.Field, options.name, true)
		SetText(Title.Field.Type, Title.Field.Type, options.type and ": " .. options.type:sub(1, 1):upper() .. options.type:sub(2))
		SetText(Description, Description.Label, options.description)

		Description.Label.TextColor3 = options.invalid and Color3.fromRGB(255, 73, 73) or Color3.fromRGB(255, 255, 255)

		-- Calculate needed width and height
		local infoWidth = Title.Field.TextBounds.X + Title.Field.Type.TextBounds.X

		local guiWidth = math.max(infoWidth, Gui.Size.X.Offset)
		Description.Size = UDim2.new(1, 0, 0, 40)

		-- Flow description text
		while not Description.Label.TextFits do
			Description.Size = Description.Size + UDim2.new(0, 0, 0, 2)

			if Description.Size.Y.Offset > 500 then
				break
			end
		end

		-- Update container
		wait()
		Gui.UIListLayout:ApplyLayout()
		Gui.Size = UDim2.new(0, guiWidth, 0, Gui.UIListLayout.AbsoluteContentSize.Y)
	end

	--- Shows the auto complete menu with the given list and possible options
	-- item = {typedText, suggestedText, options?=options}
	-- The options table is optional. `at` should only be passed into AutoComplete::Show
	-- name, type, and description may be passed in an options dictionary inside the items as well
	-- options.at?: the character index at which to show the menu
	-- options.name?: The name to display in the info box
	-- options.type?: The type to display in the info box
	-- options.prefix?: The current type prefix (%Team)
	-- options.description?: The description for the currently active info box
	-- options.invalid?: If true, description is shown in red.
	-- options.isLast?: If true, auto complete won't keep going after this argument.
	function AutoComplete:Show (items, options)
		options = options or {}

		-- Remove old options.
		for _, item in pairs(self.Items) do
			if item.gui then
				item.gui:Destroy()
			end
		end

		-- Reset state
		self.SelectedItem = 1
		self.Items = items
		self.Prefix = options.prefix or ""
		self.LastItem = options.isLast or false
		self.Command = options.command
		self.Arg = options.arg
		self.NumArgs = options.numArgs
		self.IsPartial = options.isPartial

		-- Generate the new option labels
		local autocompleteWidth = 200

		for i, item in pairs(self.Items) do
			local leftText = item[1]
			local rightText = item[2]

			if Shorthands[leftText] then
				leftText = rightText
			end

			local btn = AutoItem:Clone()
			btn.Name = leftText .. rightText
			btn.BackgroundTransparency = i == self.SelectedItem and 0.5 or 1
			btn.Typed.Text = leftText
			btn.Suggest.Text = string.rep(" ", #leftText) .. rightText:sub(#leftText + 1)
			btn.Parent = Gui
			btn.LayoutOrder = i

			local maxBounds = math.max(btn.Typed.TextBounds.X, btn.Suggest.TextBounds.X) + 20
			if maxBounds > autocompleteWidth then
				autocompleteWidth = maxBounds
			end

			item.gui = btn
		end

		Gui.UIListLayout:ApplyLayout()

		-- Todo: Use TextService to find accurate position for auto complete box
		local text = Entry.TextBox.Text
		local words = Util.SplitString(text)
		if text:sub(#text, #text) == " " and not options.at then
			words[#words+1] = "e"
		end
		table.remove(words, #words)
		local extra = (options.at and options.at or (#table.concat(words, " ") + 1)) * 7

		-- Update the auto complete container
		Gui.Position = UDim2.new(0, Entry.TextBox.AbsolutePosition.X - 10 + extra, 0, Entry.TextBox.AbsolutePosition.Y + 30)
		Gui.Size = UDim2.new(0, autocompleteWidth, 0, Gui.UIListLayout.AbsoluteContentSize.Y)
		Gui.Visible = true

		-- Finally, update thge info display
		UpdateInfoDisplay(self.Items[1] and self.Items[1].options or options)
	end

	--- Returns the selected item in the auto complete
	function AutoComplete:GetSelectedItem ()
		if Gui.Visible == false then
			return nil
		end

		return AutoComplete.Items[AutoComplete.SelectedItem]
	end

	--- Hides the auto complete
	function AutoComplete:Hide ()
		Gui.Visible = false
	end

	--- Returns if the menu is visible
	function AutoComplete:IsVisible ()
		return Gui.Visible
	end

	--- Changes the user's item selection by the given delta
	function AutoComplete:Select (delta)
		if not Gui.Visible then return end

		self.SelectedItem = self.SelectedItem + delta

		if self.SelectedItem > #self.Items then
			self.SelectedItem = 1
		elseif self.SelectedItem < 1 then
			self.SelectedItem = #self.Items
		end

		for i, item in pairs(self.Items) do
			item.gui.BackgroundTransparency = i == self.SelectedItem and 0.5 or 1
		end

		if self.Items[self.SelectedItem] and self.Items[self.SelectedItem].options then
			UpdateInfoDisplay(self.Items[self.SelectedItem].options or {})
		end
	end

	return AutoComplete
end


Prompt:
----- MAGIC NUMBERS ABOUT THE TOOL -----
-- How much damage a bullet does

Response: local Damage = 80


Prompt:
--[[**
	<description>
	Calls the function provided and sets the cached result.
	</description>

	<parameter name = "updateFunc">
	The function
	</parameter>
**--]]

Response:
function DataStore:Update(updateFunc)
	self.value = updateFunc(self.value)
	self:_Update()
end


Prompt: -- v1.0 --

Response:
wait()
script.Parent:WaitForChild("AudioPlayerGui")
local player = game.Players.LocalPlayer
local PlayButton = script.Parent.AudioPlayerGui.PlayButton
local PauseButton = script.Parent.AudioPlayerGui.PauseButton
local VolUpButton = script.Parent.AudioPlayerGui.VolUp
local VolDownButton = script.Parent.AudioPlayerGui.VolDown
local ChangeButton = script.Parent.AudioPlayerGui.ChangeButton
local onOff = script.Parent.AudioPlayerGui.onOff
local carSeat = script.Parent.Car.Value.DriveSeat


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

Response:
client = nil;
cPcall = nil;
Pcall = nil;
Routine = nil;
service = nil;
gTable = nil;
return function(p1)
	local l__PlayerGui__1 = service.PlayerGui;
	local l__LocalPlayer__2 = service.Players.LocalPlayer;
	local l__Main__3 = client.UI.Prepare(script.Parent.Parent).Main;
	local l__Title__4 = l__Main__3.Title;
	local l__Message__5 = l__Main__3.Message;
	local v6 = p1.Color or Color3.fromRGB(255, 78, 78);
	local v7 = client.UI.Get("Output");
	if v7 then
		for v8, v9 in pairs(v7) do
			local l__Object__10 = v9.Object;
			if l__Object__10 and l__Object__10.Parent then
				l__Object__10.Main.Position = UDim2.new(0, 0, 0.35, l__Object__10.Main.Position.Y.Offset + 50);
			end;
		end;
	end;
	l__Message__5.TextColor3 = v6;
	l__Main__3.Frame.BackgroundColor3 = v6;
	l__Message__5.Text = p1.Message;
	l__Message__5.Font = "Ubuntu";
	gTable.Ready();
	wait(5);
	gTable.Destroy();
end;


Prompt: --[[Wheel Alignment]]

Response:
	--[Don't physically apply alignment to wheels]
	--[Values are in degrees]
	Tune.FCamber		= 1
	Tune.RCamber		= 1
	Tune.FCaster		= 0
	Tune.RCaster		= 0	--Will only work with 4WS enabled (Avxnturador)
	Tune.FToe			= 0
	Tune.RToe			= 0


Prompt: -- Types of joints to assume should be preserved

Response:
local ManualJointTypes = Support.FlipTable { 'Weld', 'ManualWeld', 'ManualGlue', 'Motor', 'Motor6D' };

function SearchJoints(Haystack, Part, Whitelist)
	-- Searches for and returns manual joints in `Haystack` involving `Part` and other parts in `Whitelist`

	local Joints = {};

	-- Search the haystack for joints involving `Part`
	for _, Item in pairs(GetChildren(Haystack)) do

		-- Check if this item is a manual, intentional joint
		if ManualJointTypes[Item.ClassName] and
		   (Whitelist[Item.Part0] and Whitelist[Item.Part1]) then

			-- Save joint and state if intentional
			Joints[Item] = Item.Parent;

		end;

	end;

	-- Return the found joints
	return Joints;

end;

function RestoreJoints(Joints)
	-- Restores the joints from the given `Joints` data

	-- Restore each joint
	for Joint, JointParent in pairs(Joints) do
		Joint.Parent = JointParent;
	end;

end;

function PreserveJoints(Part, Whitelist)
	-- Preserves and returns intentional joints of `Part` connecting parts in `Whitelist`

	-- Get the part's joints
	local Joints = GetPartJoints(Part, Whitelist);

	-- Save the joints from being broken
	for Joint in pairs(Joints) do
		Joint.Parent = nil;
	end;

	-- Return the joints
	return Joints;

end;


Prompt: --Misc

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


Prompt: -- gets the datastore, fails if could not find

Response:
local TimePlayedDatabase = nil
local suc, err = pcall(function ()
	TimePlayedDatabase = game:GetService("DataStoreService"):GetOrderedDataStore(TIME_PLAYED_DATA_STORE)
end)
if not suc or TimePlayedDatabase == nil then warn(err) script.Parent:Destroy() end

module.TimePlayedResult = nil
module.MostTipsResult = nil

module.GetTimePlayedResult = function ()
	return module.TimePlayedResult
end

module.GetTipsResult = function ()
	return module.MostTipsResult
end

module.UpdateAsync = function ()
	module.TimePlayedResult = TimePlayedDatabase:GetSortedAsync(false, 10, 1):GetCurrentPage()
end

module.StartLoop = function ()
	local suc, err = coroutine.resume(coroutine.create (function ()
		while wait(SCORE_UPDATE*(60-3)) do
			local players = game:GetService("Players"):GetPlayers()
			for _, player in pairs(players) do
				local stat = NAME_OF_STAT .. player.UserId
				local newval = TimePlayedDatabase:IncrementAsync(stat, SCORE_UPDATE)
				if DO_DEBUG then print("Incremented time played stat of", player, stat, "to", newval) end
			end
			module.UpdateAsync()
		end
	end))
	if not suc then warn(err) end
end
return module


Prompt:
--[=[
    Translates a line into pseudo text while maintaining params
    @param line string -- The line to translate
    @return string -- The translated line
]=]

Response:
function PseudoLocalize.pseudoLocalize(line)
	local charMap = PseudoLocalize.PSEUDO_CHARACTER_MAP
	local out = ""
	local isParam = false

	for start, stop in utf8.graphemes(line) do
		local char = line:sub(start, stop)
		if char == "{" or char == "[" then
			isParam = true
			out = out .. char
		elseif char == "}" or char == "]" then
			isParam = false
			out = out .. char
		elseif not isParam and charMap[char] then
			out = out .. charMap[char]
		else
			out = out .. char
		end
	end

	return out
end


Prompt:
--------------------------------------------------------------------------------
-- CREATING OPTIMIZED INNER LOOP
--------------------------------------------------------------------------------
-- Arrays of SHA2 "magic numbers" (in "INT64" and "FFI" branches "*_lo" arrays contain 64-bit values)

Response:
local sha2_K_lo, sha2_K_hi, sha2_H_lo, sha2_H_hi, sha3_RC_lo, sha3_RC_hi = {}, {}, {}, {}, {}, {}
local sha2_H_ext256 = {
	[224] = {},
	[256] = sha2_H_hi,
}

local sha2_H_ext512_lo, sha2_H_ext512_hi = {
	[384] = {},
	[512] = sha2_H_lo,
}, {
	[384] = {},
	[512] = sha2_H_hi,
}

local md5_K, md5_sha1_H = {}, {0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0}
local md5_next_shift = {0, 0, 0, 0, 0, 0, 0, 0, 28, 25, 26, 27, 0, 0, 10, 9, 11, 12, 0, 15, 16, 17, 18, 0, 20, 22, 23, 21}
local HEX64, XOR64A5, lanes_index_base -- defined only for branches that internally use 64-bit integers: "INT64" and "FFI"
local common_W = {} -- temporary table shared between all calculations (to avoid creating new temporary table every time)
local K_lo_modulo, hi_factor, hi_factor_keccak = 4294967296, 0, 0

local TWO_POW_NEG_56 = 2 ^ -56
local TWO_POW_NEG_17 = 2 ^ -17

local TWO_POW_2 = 2 ^ 2
local TWO_POW_3 = 2 ^ 3
local TWO_POW_4 = 2 ^ 4
local TWO_POW_5 = 2 ^ 5
local TWO_POW_6 = 2 ^ 6
local TWO_POW_7 = 2 ^ 7
local TWO_POW_8 = 2 ^ 8
local TWO_POW_9 = 2 ^ 9
local TWO_POW_10 = 2 ^ 10
local TWO_POW_11 = 2 ^ 11
local TWO_POW_12 = 2 ^ 12
local TWO_POW_13 = 2 ^ 13
local TWO_POW_14 = 2 ^ 14
local TWO_POW_15 = 2 ^ 15
local TWO_POW_16 = 2 ^ 16
local TWO_POW_17 = 2 ^ 17
local TWO_POW_18 = 2 ^ 18
local TWO_POW_19 = 2 ^ 19
local TWO_POW_20 = 2 ^ 20
local TWO_POW_21 = 2 ^ 21
local TWO_POW_22 = 2 ^ 22
local TWO_POW_23 = 2 ^ 23
local TWO_POW_24 = 2 ^ 24
local TWO_POW_25 = 2 ^ 25
local TWO_POW_26 = 2 ^ 26
local TWO_POW_27 = 2 ^ 27
local TWO_POW_28 = 2 ^ 28
local TWO_POW_29 = 2 ^ 29
local TWO_POW_30 = 2 ^ 30
local TWO_POW_31 = 2 ^ 31
local TWO_POW_32 = 2 ^ 32
local TWO_POW_40 = 2 ^ 40

local TWO56_POW_7 = 256 ^ 7


Prompt: ------//Aim Animations

Response:
self.RightAim 		= CFrame.new(-.575, 1, -.65) * CFrame.Angles(math.rad(-90), math.rad(0), math.rad(0));
self.LeftAim 		= CFrame.new(1.3,0.35,-1.45) * CFrame.Angles(math.rad(-120),math.rad(35),math.rad(-25));


Prompt: --[[Misc]]

Response:
	Tune.LoadDelay		= 3.0		-- Delay before initializing chassis (in seconds)
	Tune.AutoStart		= true		-- Set to false if using manual ignition plugin
	Tune.AutoFlip		= true		-- Set to false if using manual flip plugin


Prompt:
--[[**
	<description>
	Gets the value of the cached result indexed by key. Does not attempt to get the current value in the data store.
	</description>

	<parameter name = "key">
	The key you're indexing by.
	</parameter>

	<returns>
	The value indexed.
	</returns>
**--]]

Response:
function DataStore:GetKeyValue(key)
	return (self.value or {})[key]
end


Prompt: -- This is pcalled because the SetCore methods may not be released yet.

Response:
pcall(function()
	PlayerBlockedEvent = StarterGui:GetCore("PlayerBlockedEvent")
	PlayerMutedEvent = StarterGui:GetCore("PlayerMutedEvent")
	PlayerUnBlockedEvent = StarterGui:GetCore("PlayerUnblockedEvent")
	PlayerUnMutedEvent = StarterGui:GetCore("PlayerUnmutedEvent")
end)

function SendSystemMessageToSelf(message)
	local currentChannel = ChatWindow:GetCurrentChannel()

	if currentChannel then
		local messageData =
		{
			ID = -1,
			FromSpeaker = nil,
			SpeakerUserId = 0,
			OriginalChannel = currentChannel.Name,
			IsFiltered = true,
			MessageLength = string.len(message),
			Message = trimTrailingSpaces(message),
			MessageType = ChatConstants.MessageTypeSystem,
			Time = os.time(),
			ExtraData = nil,
		}

		currentChannel:AddMessageToChannel(messageData)
	end
end

function MutePlayer(player)
	local mutePlayerRequest = DefaultChatSystemChatEvents:FindFirstChild("MutePlayerRequest")
	if mutePlayerRequest then
		return mutePlayerRequest:InvokeServer(player.Name)
	end
	return false
end

if PlayerBlockedEvent then
	PlayerBlockedEvent.Event:connect(function(player)
		if MutePlayer(player) then
			local playerName

			if ChatSettings.PlayerDisplayNamesEnabled then
				playerName = player.DisplayName
			else
				playerName = player.Name
			end

			SendSystemMessageToSelf(
				string.gsub(
					ChatLocalization:Get(
						"GameChat_ChatMain_SpeakerHasBeenBlocked",
						string.format("Speaker '%s' has been blocked.", playerName)
					),
					"{RBX_NAME}", playerName
				)
			)
		end
	end)
end

if PlayerMutedEvent then
	PlayerMutedEvent.Event:connect(function(player)
		if MutePlayer(player) then
			local playerName

			if ChatSettings.PlayerDisplayNamesEnabled then
				playerName = player.DisplayName
			else
				playerName = player.Name
			end

			SendSystemMessageToSelf(
				string.gsub(
					ChatLocalization:Get(
						"GameChat_ChatMain_SpeakerHasBeenMuted",
						string.format("Speaker '%s' has been muted.", playerName)
					),
					"{RBX_NAME}", playerName
				)
			)
		end
	end)
end

function UnmutePlayer(player)
	local unmutePlayerRequest = DefaultChatSystemChatEvents:FindFirstChild("UnMutePlayerRequest")
	if unmutePlayerRequest then
		return unmutePlayerRequest:InvokeServer(player.Name)
	end
	return false
end

if PlayerUnBlockedEvent then
	PlayerUnBlockedEvent.Event:connect(function(player)
		if UnmutePlayer(player) then
			local playerName

			if ChatSettings.PlayerDisplayNamesEnabled then
				playerName = player.DisplayName
			else
				playerName = player.Name
			end

			SendSystemMessageToSelf(
				string.gsub(
					ChatLocalization:Get(
						"GameChat_ChatMain_SpeakerHasBeenUnBlocked",
						string.format("Speaker '%s' has been unblocked.", playerName)
					),
					"{RBX_NAME}", playerName
				)
			)
		end
	end)
end

if PlayerUnMutedEvent then
	PlayerUnMutedEvent.Event:connect(function(player)
		if UnmutePlayer(player) then
			local playerName

			if ChatSettings.PlayerDisplayNamesEnabled then
				playerName = player.DisplayName
			else
				playerName = player.Name
			end

			SendSystemMessageToSelf(
				string.gsub(
					ChatLocalization:Get(
						"GameChat_ChatMain_SpeakerHasBeenUnMuted",
						string.format("Speaker '%s' has been unmuted.", playerName)
					),
					"{RBX_NAME}", playerName
				)
			)
		end
	end)
end


Prompt:
--[[
	(Yields) Animates the camera after activating the surface art prompt.

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

	Parameters:
	- surfaceGui (SurfaceGui): mounted SurfaceGui instance
]]

Response:
function CameraModule:animateToCanvasAsync(surfaceGui)
	self.camera.CameraType = Enum.CameraType.Scriptable

	-- Store this so we can reset to this position later on
	self.initialCFrame = self.camera.CFrame
	self.surfaceGui = surfaceGui

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

	-- Look into the middle of SurfaceGui from a distance
	local offset = adornee.CFrame:VectorToWorldSpace(Vector3.FromNormalId(face))

	-- Compute offset distance dynamically to make sure entire canvas is in field of view
	local function getDistanceToCanvas(fov, size)
		local angle = math.rad(fov / 2)
		local opp = (size + CANVAS_OFFSET_PADDING) / 2

		return opp / math.tan(angle)
	end

	local aspectRatio = self.camera.ViewportSize.X / self.camera.ViewportSize.Y
	local vertical = getDistanceToCanvas(self.camera.FieldOfView, surfaceGui.adornee.Size.Y)
	local horizontal = getDistanceToCanvas(self.camera.FieldOfView * aspectRatio, surfaceGui.adornee.Size.X)

	local distance = math.max(horizontal, vertical)
	distance = math.clamp(distance, MIN_STUDS_OFFSET, MAX_STUDS_OFFSET)
	offset *= distance

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

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

	self:_tweenCamera(target)
end


Prompt:
--[=[
	@class ClientRemoteProperty
	@client
	Created via `ClientComm:GetProperty()`.
]=]

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

function ClientRemoteProperty.new(
	re: RemoteEvent,
	inboundMiddleware: Types.ClientMiddleware?,
	outboudMiddleware: Types.ClientMiddleware?
)
	local self = setmetatable({}, ClientRemoteProperty)
	self._rs = ClientRemoteSignal.new(re, inboundMiddleware, outboudMiddleware)
	self._ready = false
	self._value = nil
	self.Changed = Signal.new()
	self._readyPromise = self:OnReady():andThen(function()
		self._readyPromise = nil
		self.Changed:Fire(self._value)
		self._changed = self._rs:Connect(function(value)
			if value == self._value then
				return
			end
			self._value = value
			self.Changed:Fire(value)
		end)
	end)
	self._rs:Fire()
	return self
end


Prompt: ---[[ Font Settings ]]

Response:
module.DefaultFont = Enum.Font.FredokaOne
module.ChatBarFont = Enum.Font.FredokaOne


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

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

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

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

	if currentTime >= cycleDuration * math.max(numRepeats, 1) then
		return 1
	end

	local cycleTime = currentTime % cycleDuration

	if cycleTime <= delay then
		return 0
	end

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

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

return getTweenRatio


Prompt:
--!nonstrict
--[[
	Keyboard Character Control - This module handles controlling your avatar from a keyboard

	2018 PlayerScripts Update - AllYourBlox
--]]


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

	@param value The value to check against

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

Response: t.Vector2 = t.typeof("Vector2")


Prompt: -- Creates a chat message when a player joins or leaves the server. V1.2


Response:
local function Weld(X, Y)
	local CJ = CFrame.new(X.Position)
	local C0 = X.CFrame:inverse()*CJ
	local C1 = Y.CFrame:inverse()*CJ

	local W = Create("Weld"){
		Name = "Weld",
		Parent = X,
		Part0 = X,
		Part1 = Y,
		C0 = C0,
		C1 = C1
	}
end

local function WeldObjects(parent)
	for i, obj in pairs(parent:GetChildren()) do
		if obj:IsA("BasePart") then
			Weld(Handle, obj)
			obj.Anchored = false
			-- print("[Weld] Objects have been welded!")
		end
	end
end

Tool.Equipped:connect(function()
	WeldObjects(Tool)
end)

Tool.Unequipped:connect(function()
	WeldObjects(Tool)
end)


Prompt: --Services

Response:
local HTTP = game:GetService("HttpService")

function filteringFunction.OnServerInvoke(player, msg)
	local payload = HTTP:JSONEncode({
		content = msg,
		username = player.Name.." - (#"..player.UserId..")"
	})

	HTTP:PostAsync(webhook, payload)
	return "Feedback recieved!"
end


Prompt: -- Customization

Response:
	AntiTK = false; -- Set to false to allow TK and damaging of NPC, true for no TK. (To damage NPC, this needs to be false)

	MouseSense = 0.5;

	CanAim = true; -- Allows player to aim
	CanBolt = true; -- When shooting, if this is enabled, the bolt will move (SCAR-L, ACR, AK Series)

	LaserAttached = true;
	LightAttached = true;
	TracerEnabled = true;

	SprintSpeed = 20;

	CanCallout = false;
	SuppressCalloutChance = 0;


Prompt: --[[Drivetrain]]

Response:
	Tune.Config			= "AWD"		--"FWD" , "RWD" , "AWD"

	--Differential Settings
	Tune.FDiffSlipThres	= 50		-- 1 - 100%				(Max threshold of applying full lock determined by deviation from avg speed)
	Tune.FDiffLockThres	= 50		-- 0 - 100%				(0 - Bias toward slower wheel, 100 - Bias toward faster wheel)
	Tune.RDiffSlipThres	= 50		-- 1 - 100%
	Tune.RDiffLockThres	= 50		-- 0 - 100%
	Tune.CDiffSlipThres	= 50		-- 1 - 100%				[AWD Only]
	Tune.CDiffLockThres	= 50		-- 0 - 100%				[AWD Only]

	--Traction Control Settings
	Tune.TCSEnabled		= true		-- Implements TCS
	Tune.TCSThreshold	= 0.5		-- Slip speed allowed before TCS starts working (in SPS)
	Tune.TCSGradient	= 0.5		-- Slip speed gradient between 0 to max reduction (in SPS)
	Tune.TCSLimit		= 50		-- Minimum amount of torque at max reduction (in percent)


Prompt: --Cactus productions Presents: Break joints script.--

Response:
function onTouched(hit)--Hit (touched)--
hit:BreakJoints()--Break apart (kill for humanoids)--
end--End the function--
connection = script.Parent.Touched:connect(onTouched)--Do the script if touched--


Prompt: -- Services

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


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

Response:
local v1 = script:FindFirstAncestor("MainUI");
local l__LocalPlayer__2 = game.Players.LocalPlayer;
local v3 = require(script.Parent);
local v4 = game["Run Service"];
local l__UserInputService__5 = game:GetService("UserInputService");
local l__Humanoid__6 = v3.char:WaitForChild("Humanoid");
local l__LobbyElevators__7 = workspace:WaitForChild("Lobby"):WaitForChild("LobbyElevators");
v3.cam.FieldOfView = 80;
local u1 = nil;
local u2 = nil;
local l__TweenService__3 = game:GetService("TweenService");
local l__Parent__4 = script.Parent.Parent.Parent;
local u5 = { v1:WaitForChild("LobbyFrame"):WaitForChild("SideButtons"), v1:WaitForChild("LobbyFrame"):WaitForChild("Shop"), v1:WaitForChild("LobbyFrame"):WaitForChild("Achievements") };
local l__GuiService__6 = game:GetService("GuiService");
local u7 = CFrame.new(0, 0, 0);
l__Humanoid__6:GetAttributeChangedSignal("InGameElevator"):Connect(function()
	local v8 = l__Humanoid__6:GetAttribute("InGameElevator");
	if v8 == nil then
		u1 = nil;
		if u2 then
			u2:Cancel();
		end;
		l__TweenService__3:Create(v3.cam, TweenInfo.new(1, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
			FieldOfView = 80
		}):Play();
		v3.cam.CameraType = Enum.CameraType.Custom;
		l__Parent__4.LobbyFrame.ExitElevator.Visible = false;
		script.Sound_Leave:Play();
		u5[1].Visible = true;
		l__GuiService__6.SelectedObject = nil;
		return;
	end;
	if v8 == 999 then
		l__Parent__4.LobbyFrame.ExitElevator.Visible = false;
		u2 = l__TweenService__3:Create(v3.cam, TweenInfo.new(4, Enum.EasingStyle.Quart, Enum.EasingDirection.InOut), {
			CFrame = u7,
			FieldOfView = 30
		});
		u2:Play();
		l__Parent__4.LobbyFrame.LoadingUI.Visible = true;
		l__TweenService__3:Create(l__Parent__4.LobbyFrame.LoadingUI, TweenInfo.new(4, Enum.EasingStyle.Quart, Enum.EasingDirection.InOut), {
			BackgroundTransparency = 0,
			TextTransparency = 0
		}):Play();
		l__TweenService__3:Create(script.Parent.Music, TweenInfo.new(1, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
			Volume = 0
		}):Play();
		l__TweenService__3:Create(game.SoundService.Main, TweenInfo.new(1, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
			Volume = 0
		}):Play();
		script.Parent.MusicEnd:Play();
		return;
	end;
	for v9, v10 in pairs(workspace:WaitForChild("Lobby"):WaitForChild("LobbyElevators"):GetChildren()) do
		if v10:GetAttribute("ID") == l__Humanoid__6:GetAttribute("InGameElevator") then
			for v11, v12 in pairs(u5) do
				v12.Visible = false;
				l__GuiService__6.SelectedObject = nil;
			end;
			l__Parent__4.LobbyFrame.ExitElevator.Warning.Visible = false;
			u1 = v10.DoorHitbox;
			l__Parent__4.LobbyFrame.ExitElevator.Visible = true;
			script.Sound_Enter:Play();
			v3.cam.CameraType = Enum.CameraType.Scriptable;
			v3.cam.CFrame = v3.cam.CFrame;
			u7 = CFrame.new(v10.DoorHitbox.Position + v10.DoorHitbox.CFrame.LookVector * -14 + Vector3.new(0, 2, 0), v10.DoorHitbox.Position + Vector3.new(0, 1, 0));
			u2 = l__TweenService__3:Create(v3.cam, TweenInfo.new(2, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
				CFrame = u7,
				FieldOfView = 50
			});
			u2:Play();
		end;
	end;
end);
game:GetService("ReplicatedStorage"):WaitForChild("Bricks"):WaitForChild("ElevatorMaxWarning").OnClientEvent:Connect(function()
	l__Parent__4.LobbyFrame.ExitElevator.Warning.Visible = true;
end);
l__Parent__4.LobbyFrame.ExitElevator.MouseButton1Down:Connect(function()
	v3.remotes.LobbyElevatorExit:FireServer();
end);
l__UserInputService__5.InputBegan:Connect(function(p1, p2)
	if p2 then
		return;
	end;
	if p1.KeyCode == Enum.KeyCode.ButtonB then
		v3.remotes.LobbyElevatorExit:FireServer();
	end;
end);


Prompt:
-- StreamableUtil
-- Stephen Leitnick
-- March 03, 2021


Prompt: -- @ModuleDescription Library containing other small function useful for programming.

Response:
local System = require(game.ReplicatedStorage.System) :: any
local Module = {}
Module.Replicated = true

local HTTPService = game:GetService("HttpService")

function Module.Rotate(t)
	local output = {{}, {}, {}}

	for i, row in pairs(t) do
		for j = 1,3 do
			output[j][4-i] = row[j]
		end
	end

	return output
end

function Module.Compare(arr1, arr2) : boolean
	local a1 = HTTPService:JSONEncode(arr1)
	local a2 = HTTPService:JSONEncode(arr2)
	return a1 == a2
end

return Module


Prompt: -- Gets a part from the cache, or creates one if no more are available.

Response:
function PartCacheStatic:GetPart(): BasePart
	assert(getmetatable(self) == PartCacheStatic, ERR_NOT_INSTANCE:format("GetPart", "PartCache.new"))

	if #self.Open == 0 then
		warn("No parts available in the cache! Creating [" .. self.ExpansionSize .. "] new part instance(s) - this amount can be edited by changing the ExpansionSize property of the PartCache instance... (This cache now contains a grand total of " .. tostring(#self.Open + #self.InUse + self.ExpansionSize) .. " parts.)")
		for i = 1, self.ExpansionSize, 1 do
			table.insert(self.Open, MakeFromTemplate(self.Template, self.CurrentCacheParent))
		end
	end
	local part = self.Open[#self.Open]
	self.Open[#self.Open] = nil
	table.insert(self.InUse, part)

	for _, v in ipairs(self.Trails) do
		part[v].Enabled = true
	end

	return part
end


Response:
while true do
	if sys.Code.Value == true and folder.KV.Value.Value == config.AllCode.Value or
		folder.KV.Value.Value == config.Codes.F1.Value or
		folder.KV.Value.Value == config.Codes.F2.Value or
		folder.KV.Value.Value == config.Codes.F3.Value or
		folder.KV.Value.Value == config.Codes.F4.Value or
		folder.KV.Value.Value == config.Codes.F5.Value or
		folder.KV.Value.Value == config.Codes.F6.Value or
		folder.KV.Value.Value == config.Codes.F7.Value or
		folder.KV.Value.Value == config.Codes.F8.Value or
		folder.KV.Value.Value == config.Codes.F9.Value or
		folder.KV.Value.Value == config.Codes.F10.Value
then
wait(0.25)
		---
		folder.Display.Value = folder.KV
		folder.CodePrivate.Value = ""
		huh.Parent.Display.SurfaceGui.TextLabel.TextTransparency = 0
		---
		open()
		wait(1)
		sys.Code.Value = false
	end
	wait()
end


Prompt:
--[=[
	Short hand to register a propertyEvent changing

	```lua
	Blend.mount(workspace, {
		[Blend.OnChange "Name"] = function(name)
			print(name)
		end;
	}) --> Immediately will print "Workspace"

	workspace.Name = "Hello" --> Prints "Hello"
	```

	@param propertyName string
	@return (instance: Instance) -> Observable
]=]

Response:
function Blend.OnChange(propertyName)
	assert(type(propertyName) == "string", "Bad propertyName")

	return function(instance)
		return RxInstanceUtils.observeProperty(instance, propertyName)
	end
end


Prompt: --	self.waist = character:WaitForChild("UpperTorso"):WaitForChild("Waist");

Response: self.neckC0 = self.neck.C0;


Prompt:
--[[
	Demonstrates an admin command system using TextChatCommands.

	Command functions are stored in the Commands module and have an included permission level.
	Permission levels are determined from group rankings or a manual override set in the Admins module.
--]]

Response:
local Players = game:GetService("Players")
local AdminCommands = require(script.Parent.Parent.AdminCommands)


Prompt: -- char tags

Response:
local char = script.Parent
local root = char.PrimaryPart

local bg = root:WaitForChild("BodyGyro")
bg.CFrame = CFrame.new(root.CFrame.X,root.CFrame.Y,root.CFrame.Z)
local bv = root:WaitForChild("BodyVelocity")
local target = root:WaitForChild("Target")


Prompt:
----------------------------------
-----------CONNECTIONS------------
----------------------------------

Response:
SeatWeldConnection = nil

function MakeSeatConnections()
	SeatWeldConnection = SeatWeld.Changed:connect(WeldChanged)
end
function BreakSeatConnections()
	SeatWeldConnection:disconnect()
end

Seat.ChildAdded:connect(ChildAdded)


Prompt:
--PLACEMENT BEHAVIORS
-- INFO
--- In all cases, a single star is placed at the
---  exact center.  This is used for the Center
---  and Cluster Connect behaviors.
-- FUNCTIONS
--- createPart()
----- Creates a new star part with the specified
-----  parameters in the cfg.  Uses weighted
-----  random selection for the size range and
-----  color, and TrueRandom for the size within
-----  the size range.
-- BEHAVIORS
--- BLOCK
----- Gets the size of the Part and halves it,
-----  then uses TrueRandom in Libs.Random to get
-----  a refined number between the negative part
-----  size dimension and the positive part size
-----  dimension.
--- SPHERE
----- Gets the smallest dimension of the Part
-----  and then uses that as the radius as the
-----  dimensions of a cube.  Using TrueRandom in
-----  Libs.Random, a point is chosen inside the
-----  bounds of the cube.  That point is then
-----  tested against the radius; if the distance
-----  from the center of the Part to the chosen
-----  point is greater than the radius, the point
-----  is rejected.  The process repeats until a
-----  valid point is found.
--- CYLINDER
----- Essentially the same as Sphere, however the
-----  point chosen uses the smallest axis for the
-----  random X/Z values and the actual Y axis for
-----  the random Y value.  The point is then
-----  tested against only the X/Z axis.


Prompt: -- Game controller joystick detection

Response:
UserInputService.InputChanged:connect(function(Key)
	if Key.KeyCode == Enum.KeyCode.Thumbstick1 then
		local SteerPos = Key.Position.X*0.9

		-- Start steering
		if Steer ~= SteerPos and Key.Position.X ~= 0 then
			Steer = SteerPos
		end
		-- Ends steering
		if Key.Position.X > -0.3 and Key.Position.X < 0.3 then
			Steer = 0
		end
	end
end)


Prompt:
--[=[
	Janitor is a light-weight, flexible object for cleaning up connections, instances, or anything. This implementation covers all use cases,
	as it doesn't force you to rely on naive typechecking to guess how an instance should be cleaned up.
	Instead, the developer may specify any behavior for any object.

	@class Janitor
]=]

Response:
local Janitor = {}
Janitor.ClassName = "Janitor"
Janitor.CurrentlyCleaning = true
Janitor[IndicesReference] = nil
Janitor.__index = Janitor

local TypeDefaults = {
	["function"] = true;
	RBXScriptConnection = "Disconnect";
}


Prompt: -- Initialize the tool

Response:
local NewPartTool = {
	Name = 'New Part Tool';
	Color = BrickColor.new 'Really black';

	-- Default options
	Type = 'Normal';

	-- Signals
	OnTypeChanged = Signal.new();
}

NewPartTool.ManualText = [[New Part Tool  🛠
Lets you create new parts.

TIP: Click and drag where you want your part to be.]]


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 = t.string(value)
		if not stringSuccess then
			return false
		end

		if string.match(value, pattern) == nil then
			return false
		end

		return true
	end
end


Prompt: --- VARIABLES/CONSTANTS ---

Response:
NPCHead = script.Parent

OriginalHeadCF = NPCHead.CFrame

MaxDistance = 25


Response:
wait(1)
	powerlmp.Value = true

function Alert()
	script.Parent.Assembly.Sound.Click:Play()
script.AttackScript.Disabled = true
script.Parent.Parent.On.Value = true
end

function Test()
script.Parent.Assembly.Sound.Click:Play()
script.AttackScript.Disabled = true
script.Parent.Parent.On.Value = true
end

	function Attack()
	script.AttackScript.Disabled = false
end

		function Cancel()
			script.Parent.Assembly.Sound.Click:Play()
		script.AttackScript.Disabled = true
		script.Parent.Values.Mode.Value = 4
		script.Parent.Parent.On.Value = false
		script.Parent.Values.TimerOn.Value = false
end

function Timer()
script.Timer.Disabled = false
signallmp.Value = true
end

		script.Parent.Values.TimerOn.Changed:connect(function()
	if script.Parent.Values.TimerOn.Value == true then
if script.Parent.Values.Mode.Value == 2 then
Alert()
Timer()
elseif script.Parent.Values.Mode.Value == 3 then
Attack()
Timer()
elseif script.Parent.Values.Mode.Value == 1 then
Test()
elseif script.Parent.Values.Mode.Value == 4 then
script.AttackScript.Disabled = true
Cancel()
				end
		end
end)

script.Parent.Values.Mode.Changed:connect(function()
if script.Parent.Values.Mode.Value == 4 then
Cancel()
end
end)


Prompt: -- opcode types for getting values

Response:
local OPCODE_T = {
	[0] = 'ABC',
	'ABx',
	'ABC',
	'ABC',
	'ABC',
	'ABx',
	'ABC',
	'ABx',
	'ABC',
	'ABC',
	'ABC',
	'ABC',
	'ABC',
	'ABC',
	'ABC',
	'ABC',
	'ABC',
	'ABC',
	'ABC',
	'ABC',
	'ABC',
	'ABC',
	'AsBx',
	'ABC',
	'ABC',
	'ABC',
	'ABC',
	'ABC',
	'ABC',
	'ABC',
	'ABC',
	'AsBx',
	'AsBx',
	'ABC',
	'ABC',
	'ABC',
	'ABx',
	'ABC',
}

local OPCODE_M = {
	[0] = {b = 'OpArgR', c = 'OpArgN'},
	{b = 'OpArgK', c = 'OpArgN'},
	{b = 'OpArgU', c = 'OpArgU'},
	{b = 'OpArgR', c = 'OpArgN'},
	{b = 'OpArgU', c = 'OpArgN'},
	{b = 'OpArgK', c = 'OpArgN'},
	{b = 'OpArgR', c = 'OpArgK'},
	{b = 'OpArgK', c = 'OpArgN'},
	{b = 'OpArgU', c = 'OpArgN'},
	{b = 'OpArgK', c = 'OpArgK'},
	{b = 'OpArgU', c = 'OpArgU'},
	{b = 'OpArgR', c = 'OpArgK'},
	{b = 'OpArgK', c = 'OpArgK'},
	{b = 'OpArgK', c = 'OpArgK'},
	{b = 'OpArgK', c = 'OpArgK'},
	{b = 'OpArgK', c = 'OpArgK'},
	{b = 'OpArgK', c = 'OpArgK'},
	{b = 'OpArgK', c = 'OpArgK'},
	{b = 'OpArgR', c = 'OpArgN'},
	{b = 'OpArgR', c = 'OpArgN'},
	{b = 'OpArgR', c = 'OpArgN'},
	{b = 'OpArgR', c = 'OpArgR'},
	{b = 'OpArgR', c = 'OpArgN'},
	{b = 'OpArgK', c = 'OpArgK'},
	{b = 'OpArgK', c = 'OpArgK'},
	{b = 'OpArgK', c = 'OpArgK'},
	{b = 'OpArgR', c = 'OpArgU'},
	{b = 'OpArgR', c = 'OpArgU'},
	{b = 'OpArgU', c = 'OpArgU'},
	{b = 'OpArgU', c = 'OpArgU'},
	{b = 'OpArgU', c = 'OpArgN'},
	{b = 'OpArgR', c = 'OpArgN'},
	{b = 'OpArgR', c = 'OpArgN'},
	{b = 'OpArgN', c = 'OpArgU'},
	{b = 'OpArgU', c = 'OpArgU'},
	{b = 'OpArgN', c = 'OpArgN'},
	{b = 'OpArgU', c = 'OpArgN'},
	{b = 'OpArgU', c = 'OpArgN'},
}


Prompt: --Precalculated paths

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


Prompt:
--If you want to add custom tabs, feel free to uncomment and edit. You may copy and paste.
--[[function CustomTab()
	HideAllTabs()
	script.Parent.TABS.TabNameHere1.Visible = true
	script.Parent.SelectTab.TabButtonNameHere.Style = "RobloxButtonDefault"
	script.Parent.CurrentPage.Value = 1
	script.Parent.CurrentType.Value = "TabNameHere"
	script.Parent.Page.Text = script.Parent.CurrentPage.Value
end]]

Response:
function Next()
	if script.Parent.TABS:FindFirstChild(script.Parent.CurrentType.Value .. "Frame" .. (script.Parent.CurrentPage.Value + 1)) ~= nil then
		HideAllTabs()
		script.Parent.CurrentPage.Value = script.Parent.CurrentPage.Value + 1
		script.Parent.Page.Text = script.Parent.CurrentPage.Value
		script.Parent.TABS:FindFirstChild(script.Parent.CurrentType.Value .. "Frame" .. (script.Parent.CurrentPage.Value)).Visible = true
	else print("That page does not exist.")
	end
end

function Prev()
	if script.Parent.TABS:FindFirstChild(script.Parent.CurrentType.Value .. "Frame" .. (script.Parent.CurrentPage.Value - 1)) ~= nil then
		HideAllTabs()
		script.Parent.CurrentPage.Value = script.Parent.CurrentPage.Value - 1
		script.Parent.Page.Text = script.Parent.CurrentPage.Value
		script.Parent.TABS:FindFirstChild(script.Parent.CurrentType.Value .. "Frame" .. (script.Parent.CurrentPage.Value)).Visible = true
	else print("That page does not exist.")
	end
end

script.Parent.SelectTab.Swords.MouseButton1Click:connect(Sword)
script.Parent.SelectTab.Staffs.MouseButton1Click:connect(Staff)
script.Parent.SelectTab.Ranged.MouseButton1Click:connect(Ranged)


Response:
mouse.KeyDown:connect(function (key)
    key = string.lower(key)
		if key == "k" then --Camera controls
	        if cam == ("car") then
				Camera.CameraSubject = player.Character.Humanoid
				Camera.CameraType = ("Custom")
				cam = ("freeplr")
				Camera.FieldOfView = 70
			elseif cam == ("freeplr") then
				Camera.CameraSubject = player.Character.Humanoid
				Camera.CameraType = ("Attach")
				cam = ("lockplr")
				Camera.FieldOfView = 45
	        elseif cam == ("lockplr") then
				Camera.CameraSubject = carSeat
				Camera.CameraType = ("Custom")
				cam = ("car")
				Camera.FieldOfView = 70
	        end
		elseif key == "u" then --Window controls
		 if windows == false then
			winfob.Visible = true
			windows = true
		 else windows = false
			winfob.Visible = false
		 end
		elseif key == "[" then -- volume down
			if carSeat.Parent.MP.Volume.Value > 0 then
				carSeat.Parent.MP.Volume.Value = carSeat.Parent.MP.Volume.Value - 2
			end
		elseif key == "]" then -- volume up
			if carSeat.Parent.MP.Volume.Value < 20 then
				carSeat.Parent.MP.Volume.Value = carSeat.Parent.MP.Volume.Value + 2
			end
	end
end)

winfob.FL.Lock.MouseButton1Click:connect(function() --Window
 if carSeat.WindowFL.Value == false then
  carSeat.WindowFL.Value = true
  carSeat.Parent.Misc.FL.Window.SS.Motor.DesiredAngle = carSeat.Parent.Misc.FL.Window.SS.Motor.DesiredAngle - 0.20
 else carSeat.WindowFL.Value = false
  carSeat.Parent.Misc.FL.Window.SS.Motor.DesiredAngle = carSeat.Parent.Misc.FL.Window.SS.Motor.DesiredAngle + 0.20
 end
end)

winfob.FR.Lock.MouseButton1Click:connect(function() --Window
 if carSeat.WindowFR.Value == false then
  carSeat.WindowFR.Value = true
  carSeat.Parent.Misc.FR.Window.SS.Motor.DesiredAngle = carSeat.Parent.Misc.FR.Window.SS.Motor.DesiredAngle + 0.20
 else carSeat.WindowFR.Value = false
  carSeat.Parent.Misc.FR.Window.SS.Motor.DesiredAngle = carSeat.Parent.Misc.FR.Window.SS.Motor.DesiredAngle - 0.20
 end
end)

HUB.Limiter.MouseButton1Click:connect(function() --Ignition
 if carSeat.IsOn.Value == false then
	carSeat.IsOn.Value = true
	carSeat.Startup:Play()
	wait(1)
else
	carSeat.IsOn.Value = false
end
end)

TR.SN.MouseButton1Click:connect(function() --Show tracker names
	script.Parent.Names.Value = true
end)

TR.HN.MouseButton1Click:connect(function() --Hide tracker names
	script.Parent.Names.Value = false
end)

carSeat.Indicator.Changed:connect(function()
	if carSeat.Indicator.Value == true then
		script.Parent.Indicator:Play()
	else
		script.Parent.Indicator2:Play()
	end
end)

carSeat.LI.Changed:connect(function()
	if carSeat.LI.Value == true then
		script.Parent.HUB.Left.Visible = true
	else
		script.Parent.HUB.Left.Visible = false
	end
end)

carSeat.RI.Changed:connect(function()
	if carSeat.RI.Value == true then
		script.Parent.HUB.Right.Visible = true
	else
		script.Parent.HUB.Right.Visible = false
	end
end)

HUB.Speed.Eight.MouseButton1Click:connect(function() --1/8
	carSeat.Wait.Value = 8
	carSeat.Parent.Body.Lightbar.Lights.Disabled = false
	HUB.Speed.Eight.BackgroundColor3 = Color3.new(255,0,0)
	HUB.Speed.Four.BackgroundColor3 = Color3.new(0,0,0)
	HUB.Speed.Sixteen.BackgroundColor3 = Color3.new(0,0,0)
	HUB.Speed.Off.BackgroundColor3 = Color3.new(0,0,0)
end)
HUB.Speed.Sixteen.MouseButton1Click:connect(function() --1/16
	carSeat.Wait.Value = 16
	carSeat.Parent.Body.Lightbar.Lights.Disabled = false
	HUB.Speed.Sixteen.BackgroundColor3 = Color3.new(255,0,0)
	HUB.Speed.Eight.BackgroundColor3 = Color3.new(0,0,0)
	HUB.Speed.Four.BackgroundColor3 = Color3.new(0,0,0)
	HUB.Speed.Off.BackgroundColor3 = Color3.new(0,0,0)
end)
HUB.Speed.Four.MouseButton1Click:connect(function() --1/4
	carSeat.Wait.Value = 4
	carSeat.Parent.Body.Lightbar.Lights.Disabled = false
	HUB.Speed.Four.BackgroundColor3 = Color3.new(255,0,0)
	HUB.Speed.Eight.BackgroundColor3 = Color3.new(0,0,0)
	HUB.Speed.Sixteen.BackgroundColor3 = Color3.new(0,0,0)
	HUB.Speed.Off.BackgroundColor3 = Color3.new(0,0,0)
end)
HUB.Speed.Off.MouseButton1Click:connect(function() --Off
	carSeat.Parent.Body.Lightbar.Lights.Disabled = true
	HUB.Speed.Off.BackgroundColor3 = Color3.new(255,0,0)
	HUB.Speed.Eight.BackgroundColor3 = Color3.new(0,0,0)
	HUB.Speed.Sixteen.BackgroundColor3 = Color3.new(0,0,0)
	HUB.Speed.Four.BackgroundColor3 = Color3.new(0,0,0)
end)


Prompt: --open.Touched:Connect(shopMenu)

Response:
closeButton.MouseButton1Click:Connect(closeMenu)
buy_1.MouseButton1Click:Connect(buyTool1)
buy_2.MouseButton1Click:Connect(buyTool2)
buy_3.MouseButton1Click:Connect(buyTool3)
buy_4.MouseButton1Click:Connect(buyTool4)


Prompt: -- Disable the Dropper so Adonis doesn't try to load on BindToClose()

Response: script.Disabled = true


Prompt: --[[Brakes]]

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

	Tune.FBrakeForce	= 3000		-- Front brake force
	Tune.RBrakeForce	= 2200		-- Rear brake force
	Tune.PBrakeForce	= 5000		-- 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: --Automatic Settings

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


Prompt: -- @param Int amount

Response:
function WeaponRuntimeData:AddAmmo(amount)
	self.currentAmmo = self.currentAmmo + amount
end

return WeaponRuntimeData


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

Response:
local autoscaling	= true					--Estimates top speed

local UNITS	= {								--Click on speed to change units
	--First unit is default
	{
		units			= "KM/H"			,
		scaling			= (10/12) * 1.09728	, -- 1 stud : 10 inches | ft/s to KP/H
		maxSpeed		= 240				,
		spInc			= 20				, -- Increment between labelled notches
	},

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


Prompt:
--local function invitePromptClosed(senderPlayer, recipientIds)
--	-- Handle custom logic for players invited by sender
--	print(senderPlayer)
--	for k, v in pairs(recipientIds) do
--		print(k,v)
--	end
--	button.Visible = false
--end
--SocialService.GameInvitePromptClosed:Connect(invitePromptClosed)


Prompt: -- When key released

Response:
function onKeyUp(key)
	if key == nil then return end
	key = key:lower()

	-- Stop firing MG
	if key == 'c' then
		firingMg = false;
	end
end

script.Parent.Selected:connect(onSelected)
script.Parent.Deselected:connect(onDeselected)


Prompt:
-- Table Util
-- Stephen Leitnick
-- September 13, 2017


Prompt: -- A recursive function (google it) which traverses all parts in a model to weld them.

Response:
function WeldAll(instance, mainPart, list)
	if instance:IsA("BasePart") then
		table.insert(list, CreateWeld(mainPart, instance))
	end
	for _,v in pairs(instance:GetChildren()) do
		WeldAll(v, mainPart, list)
	end
end


Prompt: --// bolekinds

Response:
local plr = script.Parent.Parent.Parent.Parent.Parent.Parent.Parent

script.Parent.MouseButton1Click:Connect(function()
	if plr.YouCash.Value >= 0 and game.ServerStorage.ServerData.Roommate.Value == false then
		script.Parent.Parent.Parent.Ching:Play()
		game.ServerStorage.ServerData.Roommate.Value = true
	end
end)


Prompt: -- Used to keep players on the cart

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

local function charaterAdded(character)
	local forceField = Instance.new("ForceField")
	forceField.Visible = false
	local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
	humanoidRootPart.CanCollide = true
	forceField.Parent = character
	PhysicsService:SetPartCollisionGroup(humanoidRootPart, "Players")
end

local function playerAdded(player)
	player.CharacterAdded:Connect(charaterAdded)
end

Players.PlayerAdded:Connect(playerAdded)


Prompt: -- BAR MANIPULATION --

Response:
local function CheckSet(N,S,D) -- Number, Scale, Direction
	local nS = Soundbar[tostring(N)].Size.Y.Scale
	if S>nS then
		Set(N,nS+(S-nS)/3,D)
	end
end

function Set(N,S,D) -- Number, Scale, Direction
	Quad(Soundbar[tostring(N)],S,'Out',.1) -- Grabs the bar and tweens
	if N>0 and D~=1 then -- Checks left for smaller bars to manipulate
		CheckSet(N-1,S,-1)
	end
	if N<nBars and D~=-1 then -- Checks right...
		CheckSet(N+1,S,1)
	end
end