Prompt:
-- When someone steps on the food, drop what they're holding and attach the food to them along with an eatingScript
-- (They must: Not be the creator, be alive, have a right arm, not be eating, and not be poisoned)

Response:
Food.Touched:connect(function(otherPart)
	if otherPart and otherPart.Parent and otherPart.Parent:IsA("Model") and otherPart.Parent ~= creator then
		local otherModel = otherPart.Parent
		if otherModel:FindFirstChild("Humanoid") and otherModel.Humanoid.Health > 0 and otherModel:FindFirstChild("Right Arm") then
			local otherHumanoid = otherModel.Humanoid
			if not otherHumanoid:FindFirstChild(eatingScript.Name) and not otherHumanoid:FindFirstChild("Poisoned") then
				if Food:FindFirstChild("SelfDestruct") then Food.SelfDestruct:Destroy() end -- lol
				if Food:FindFirstChild("BodyGyro") then Food.BodyGyro:Destroy() end
				local children = otherModel:GetChildren()
				for i = 1, #children do -- Remove current Tool
					local child = children[i]
					if child and child:IsA("Tool") then
						child.Parent = Workspace
						break
					end
				end
				Food.Parent = otherModel
				local weld = Instance.new("Weld", Game.JointsService)
				weld.Part0 = otherModel["Right Arm"]
				weld.Part1 = Food
				weld.C1 = CFrame.Angles(math.pi/2, 0, 0) + Vector3.new(0, 0, 1.4)
				local eatingScriptClone = eatingScript:Clone()
				Game:GetService("Debris"):AddItem(eatingScriptClone, 60) -- In case non-player humanoids pick it up
				eatingScriptClone.Parent = otherHumanoid
				eatingScriptClone.Disabled = false
				script:Destroy()
			end
		end
	end
end)


Prompt: --				AI.Head:BreakJoints()

Response:
			if Hit.Name ~= "Torso" and Hit.Name ~= "Head" then
				Hit.CanCollide = true
			else
				Hit.Parent.Humanoid:TakeDamage(0)
			end -- kill

			Logic = 0
			Hit = nil

		elseif Hit.Parent.Name == AIName then


Prompt: ------//Sprinting Animations

Response:
self.RightSprint 	= CFrame.new(-1, 1.5, -0.45) * CFrame.Angles(math.rad(-30), math.rad(0), math.rad(0));
self.LeftSprint 	= CFrame.new(1,1.35,-0.75) * CFrame.Angles(math.rad(-30),math.rad(35),math.rad(-25));

return self


Prompt:
-----------------
--| Variables |--
-----------------

Response:
local GamePassService = game:GetService('MarketplaceService')
local PlayersService = game:GetService('Players')

local VipDoor = script.Parent

local GamePassIdObject = script:WaitForChild( 'GamePassId')

local JustTouched = {}


Prompt:
-- Convenience function so that calling code does not have to first get the activeController
-- and then call GetMoveVector on it. When there is no active controller, this function returns
-- nil so that this case can be distinguished from no current movement (which returns zero vector).

Response:
function ControlModule:GetMoveVector()
	if self.activeController then
		return self.activeController:GetMoveVector()
	end
	return Vector3.new(0,0,0)
end

function ControlModule:GetActiveController()
	return self.activeController
end

function ControlModule:EnableActiveControlModule()
	if self.activeControlModule == ClickToMove then
		-- For ClickToMove, when it is the player's choice, we also enable the full keyboard controls.
		-- When the developer is forcing click to move, the most keyboard controls (WASD) are not available, only jump.
		self.activeController:Enable(
			true,
			Players.LocalPlayer.DevComputerMovementMode == Enum.DevComputerMovementMode.UserChoice,
			self.touchJumpController
		)
	elseif self.touchControlFrame then
		self.activeController:Enable(true, self.touchControlFrame)
	else
		self.activeController:Enable(true)
	end
end

function ControlModule:Enable(enable)
	if not self.activeController then
		return
	end

	if enable == nil then
		enable = true
	end
	if enable then
		self:EnableActiveControlModule()
	else
		self:Disable()
	end
end


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

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

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

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

	-- Tool Animation handling
	local tool = getTool()
	if tool and tool:FindFirstChild("Handle") then

		local animStringValueObject = getToolAnim(tool)

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

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

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


Prompt: -- ROBLOX deviation: toBeInstanceOf checks for Lua prototypical classes, major deviation from upstream

Response:
local function toBeInstanceOf(
	-- ROBLOX deviation: self param in Lua needs to be explicitely defined
	self: MatcherState,
	received: any,
	expected: any
)
	local matcherName = "toBeInstanceOf"
	local isNot = self.isNot
	local options: MatcherHintOptions = {
		isNot = isNot,
		promise = self.promise,
	}

	if typeof(expected) ~= "table" then
		error(
			Error(
				matcherErrorMessage(
					matcherHint(matcherName, nil, nil, options),
					string.format("%s value must be a prototype class", EXPECTED_COLOR("expected")),
					printWithType("Expected", expected, printExpected)
				)
			)
		)
	end

	local pass = instanceof(received, expected)
	local receivedPrototype = nil
	if typeof(getmetatable(received)) == "table" and typeof(getmetatable(received).__index) == "table" then
		receivedPrototype = getmetatable(received).__index
	end

	local message
	if pass then
		message = function()
			local retval = matcherHint(matcherName, nil, nil, options)
				.. "\n\n"
				.. printExpectedConstructorNameNot("Expected constructor", expected)

			if receivedPrototype and receivedPrototype ~= expected then
				retval = retval .. printReceivedConstructorNameNot("Received constructor", receivedPrototype, expected)
			end

			return retval
		end
	else
		message = function()
			local retval = matcherHint(matcherName, nil, nil, options)
				.. "\n\n"
				.. printExpectedConstructorName("Expected constructor", expected)
			if isPrimitive(received) or receivedPrototype == nil then
				retval = retval
					.. string.format("\nReceived value has no prototype\nReceived value: %s", printReceived(received))
			else
				retval = retval .. printReceivedConstructorName("Received constructor", receivedPrototype)
			end

			return retval
		end
	end

	return { message = message, pass = pass }
end

local function toBeLessThan(
	-- ROBLOX deviation: self param in Lua needs to be explicitely defined
	self: MatcherState,
	received: number,
	expected: number
)
	local matcherName = "toBeLessThan"
	local isNot = self.isNot
	local options: MatcherHintOptions = {
		isNot = isNot,
		promise = self.promise,
	}
	ensureNumbers(received, expected, matcherName, options)

	local pass = received < expected

	local message = function()
		return matcherHint(matcherName, nil, nil, options)
			.. "\n\n"
			.. string.format("Expected:%s < %s\n", isNot and " never" or "", printExpected(expected))
			.. string.format("Received:%s   %s", isNot and "      " or "", printReceived(received))
	end

	return { message = message, pass = pass }
end

local function toBeLessThanOrEqual(
	-- ROBLOX deviation: self param in Lua needs to be explicitely defined
	self: MatcherState,
	received: number,
	expected: number
)
	local matcherName = "toBeLessThanOrEqual"
	local isNot = self.isNot
	local options: MatcherHintOptions = {
		isNot = isNot,
		promise = self.promise,
	}
	ensureNumbers(received, expected, matcherName, options)

	local pass = received <= expected

	local message = function()
		return matcherHint(matcherName, nil, nil, options)
			.. "\n\n"
			.. string.format("Expected:%s <= %s\n", isNot and " never" or "", printExpected(expected))
			.. string.format("Received:%s    %s", isNot and "      " or "", printReceived(received))
	end

	return { message = message, pass = pass }
end

local function toBeNan(
	-- ROBLOX deviation: self param in Lua needs to be explicitely defined
	self: MatcherState,
	received: any,
	expected: nil
)
	local matcherName = "toBeNan"
	local options: MatcherHintOptions = {
		isNot = self.isNot,
		promise = self.promise,
	}
	ensureNoExpected(expected, matcherName, options)

	local pass = Number.isNaN(received)

	local message = function()
		return matcherHint(matcherName, nil, "", options)
			.. "\n\n"
			.. string.format("Received: %s", printReceived(received))
	end

	return { message = message, pass = pass }
end

local function toBeNil(
	-- ROBLOX deviation: self param in Lua needs to be explicitely defined
	self: MatcherState,
	received: any,
	expected: nil
)
	local matcherName = "toBeNil"
	local options: MatcherHintOptions = {
		isNot = self.isNot,
		promise = self.promise,
	}
	ensureNoExpected(expected, matcherName, options)

	local pass = received == nil

	local message = function()
		return matcherHint(matcherName, nil, "", options)
			.. "\n\n"
			.. string.format("Received: %s", printReceived(received))
	end

	return { message = message, pass = pass }
end

local function toBeTruthy(
	-- ROBLOX deviation: self param in Lua needs to be explicitely defined
	self: MatcherState,
	received: any,
	expected: nil
)
	local matcherName = "toBeTruthy"
	local options: MatcherHintOptions = {
		isNot = self.isNot,
		promise = self.promise,
	}
	ensureNoExpected(expected, matcherName, options)

	local pass = not not received

	local message = function()
		return matcherHint(matcherName, nil, "", options)
			.. "\n\n"
			.. string.format("Received: %s", printReceived(received))
	end

	return { message = message, pass = pass }
end


Prompt:
--[=[
	Chains a Promise from this one that is resolved if this Promise is already resolved, and rejected if it is not resolved at the time of calling `:now()`. This can be used to ensure your `andThen` handler occurs on the same frame as the root Promise execution.

	```lua
	doSomething()
		:now()
		:andThen(function(value)
			print("Got", value, "synchronously.")
		end)
	```

	If this Promise is still running, Rejected, or Cancelled, the Promise returned from `:now()` will reject with the `rejectionValue` if passed, otherwise with a `Promise.Error(Promise.Error.Kind.NotResolvedInTime)`. This can be checked with [[Error.isKind]].

	@param rejectionValue? any -- The value to reject with if the Promise isn't resolved
	@return Promise
]=]

Response:
function Promise.prototype:now(rejectionValue)
	local traceback = debug.traceback(nil, 2)
	if self._status == Promise.Status.Resolved then
		return self:_andThen(traceback, function(...)
			return ...
		end)
	else
		return Promise.reject(rejectionValue == nil and Error.new({
			kind = Error.Kind.NotResolvedInTime,
			error = "This Promise was not resolved in time for :now()",
			context = ":now() was called at:\n\n" .. traceback,
		}) or rejectionValue)
	end
end


Prompt: --[[Susupension]]

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

	--Front Suspension
	Tune.FSusDamping	= 400		-- Spring Dampening
	Tune.FSusStiffness	= 17000		-- Spring Force
	Tune.FSusLength		= 1.9		-- Resting Suspension length (in studs)
	Tune.FSusMaxExt		= .15		-- Max Extension Travel (in studs)
	Tune.FSusMaxComp	= .05		-- Max Compression Travel (in studs)
	Tune.FSusAngle		= 75		-- Suspension Angle (degrees from horizontal)

	Tune.FWsBoneLen		= 6			-- Wishbone Length
	Tune.FWsBoneAngle	= 3			-- 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	= 400		-- Spring Dampening
	Tune.RSusStiffness	= 17000		-- Spring Force
	Tune.RSusLength		= 2.1		-- Resting Suspension length (in studs)
	Tune.RSusMaxExt		= .15		-- Max Extension Travel (in studs)
	Tune.RSusMaxComp	= .05		-- Max Compression Travel (in studs)
	Tune.RSusAngle		= 80		-- Suspension Angle (degrees from horizontal)

	Tune.RWsBoneLen		= 5			-- Wishbone Length
	Tune.RWsBoneAngle	= 2			-- 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		= true			-- Spring Visible
	Tune.WsBVisible		= false			-- Wishbone Visible
	Tune.SusRadius		= .2			-- Suspension Coil Radius
	Tune.SusThickness	= .1			-- Suspension Coil Thickness
	Tune.SusColor		= "Bronze"		-- Suspension Color [BrickColor]
	Tune.SusCoilCount	= 8				-- Suspension Coil Count
	Tune.WsColor		= "Black"		-- Wishbone Color [BrickColor]
	Tune.WsThickness	= .1			-- Wishbone Rod Thickness


Prompt: -- GUI

Response:
local weaponsGUI = script.Parent
local weapon1Label = weaponsGUI.Weapon1
local weapon2Label = weaponsGUI.Weapon2
local weapon3Label = weaponsGUI.Weapon3

local primaryWeaponSlot = localPlayer.Backpack:WaitForChild("Primary")
local secondaryWeaponSlot = localPlayer.Backpack:WaitForChild("Secondary")
local tertiaryWeaponSlot = localPlayer.Backpack:WaitForChild("Tertiary")

local heatBar = weaponsGUI.HeatBar
local images = weaponsGUI:WaitForChild("Images")


Prompt: --[[  MAKE SURE TO READ THE TEXT ABOVE, OR THIS WON'T WORK!!  ]]


Prompt: -- Meant for internal use, no documentation given


Prompt: --// ACLI - Adonis Client Loading Initializer

Response:
if true then return end --// #DISABLED

local DebugMode = false
local otime = os.time
local time = time
local game = game
local pcall = pcall
local xpcall = xpcall
local error = error
local type = type
local print = print
local assert = assert
local string = string
local setfenv = setfenv
local getfenv = getfenv
local require = require
local tostring = tostring
local coroutine = coroutine
local Instance = Instance
local script = script
local select = select
local unpack = unpack
local spawn = spawn
local debug = debug
local pairs = pairs
local wait = wait
local next = next
local time = time
local finderEvent
local realWarn = warn
local realPrint = print
local foundClient = false
local checkedChildren = {}
local replicated = game:GetService("ReplicatedFirst")
local runService = game:GetService("RunService")
local player = game:GetService("Players").LocalPlayer
local Kick = player.Kick
local start = time()
local checkThese = {}
local services = {
	"Chat";
	"Teams";
	"Players";
	"Workspace";
	"LogService";
	"TestService";
	"InsertService";
	"SoundService";
	"StarterGui";
	"StarterPack";
	"StarterPlayer";
	"ReplicatedFirst";
	"ReplicatedStorage";
	"JointsService";
	"Lighting";
}

local function print(...)
	--realPrint(...)
end

local function warn(str)
	if DebugMode or player.UserId == 1237666 then
		realWarn("ACLI: "..tostring(str))
	end
end

local function Kill(info)
	if DebugMode then warn(info) return end
	pcall(function() Kick(player, info) end)
	wait(1)
	pcall(function() while not DebugMode and wait() do pcall(function() while true do end end) end end)
end

local function Locked(obj)
	return (not obj and true) or not pcall(function() return obj.GetFullName(obj) end)
end

local function callCheck(child)
	warn("CallCheck: "..tostring(child))
	if Locked(child) then
		warn("Child locked?")
		Kill("ACLI: Locked")
	else
		warn("Child not locked")
		xpcall(function()
			return child[{}]
		end, function()
			if getfenv(1) ~= getfenv(2) then
				Kill("ACLI: Error")
			end
		end)
	end
end

local function doPcall(func, ...)
	local ran,ret = pcall(func, ...)
	if ran then
		return ran,ret
	else
		warn(tostring(ret))
		Kill("ACLI: Error\n"..tostring(ret))
		return ran,ret
	end
end

local function lockCheck(obj)
	callCheck(obj)
	obj.Changed:Connect(function(p)
		warn("Child changed; Checking...")
		callCheck(obj)
	end)
end

local function loadingTime()
	warn("LoadingTime Called")
	setfenv(1,{})
	warn(tostring(time() - start))
end

local function checkChild(child)
	warn("Checking child: ".. tostring(child and child.ClassName) .." : ".. tostring(child and child:GetFullName()))
	callCheck(child)
	if child and not foundClient and not checkedChildren[child] and child:IsA("Folder") and child.Name == "Adonis_Client" then
		warn("Loading Folder...")
		local nameVal
		local origName
		local depsFolder
		local clientModule
		local oldChild = child
		local container = child.Parent

		warn("Adding child to checked list & setting parent...")
		checkedChildren[child] = true

		warn("Waiting for Client & Special")
		nameVal = child:WaitForChild("Special", 30)
		clientModule = child:WaitForChild("Client", 30)

		warn("Checking Client & Special")
		callCheck(nameVal)
		callCheck(clientModule)

		warn("Getting origName")
		origName = (nameVal and nameVal.Value) or child.Name
		warn("Got name: "..tostring(origName))

		warn("Changing child parent...")
		child.Parent = nil

		warn("Destroying parent...")
		if container and container:IsA("ScreenGui") and container.Name == "Adonis_Container" then
			spawn(function()
				wait(0.5);
				container:Destroy();
			end)
		end

		if clientModule and clientModule:IsA("ModuleScript") then
			print("Debug: Loading the client?")
			local meta = require(clientModule)
			warn("Got metatable: "..tostring(meta))
			if meta and type(meta) == "userdata" and tostring(meta) == "Adonis" then
				local ran,ret = pcall(meta,{
					Module = clientModule,
					Start = start,
					Loader = script,
					Name = origName,
					LoadingTime = loadingTime,
					CallCheck = callCheck,
					Kill = Kill
				})

				warn("Got return: "..tostring(ret))
				if ret ~= "SUCCESS" then
					warn(ret)
					Kill("ACLI: Loading Error [Bad Module Return]")
				else
					print("Debug: The client was found and loaded?")
					warn("Client Loaded")
					oldChild:Destroy()
					child.Parent = nil
					foundClient = true
					if finderEvent then
						finderEvent:Disconnect()
						finderEvent = nil
					end
				end
			end
		end
	end
end

local function scan(folder)
	warn("Scanning for client...")
	if not doPcall(function()
		for i,child in folder:GetChildren() do
			if child.Name == "Adonis_Container" then
				local client = child:FindFirstChildOfClass("Folder") or child:WaitForChild("Adonis_Client", 5);
				if client then
					doPcall(checkChild, client);
				end
			end
		end
	end) then warn("Scan failed?") Kick(player, "ACLI: Loading Error [Scan failed]"); end
end


Prompt:
-- Automatically installs user-added maps on server start.
--
-- ForbiddenJ

Response:
LogHolder = require(game.ServerScriptService.LogHolder)

MapWorkspace = workspace.MapWorkspace
OwnerMapInstallFolder = game.ServerStorage.Maps

function InstallMap(map)
	local success, messages = script.Parent.InstallMap:Invoke(map)
	local log = LogHolder.new()
	log:BulkLog(messages)
	log:SendToServerLog()


Prompt:
----------------------------------
------------FUNCTIONS-------------
----------------------------------

Response:
function Receive(player, action, ...)
	local args = {...}
	if player == User and action == "play" then
		HighlightPianoKey(args[1])
		Connector:FireAllClients("play", User, args[1], Settings.SoundSource.Position, Settings.PianoSoundRange, Settings.PianoSounds)
	elseif player == User and action == "abort" then
		Deactivate()
		if SeatWeld then
			SeatWeld:remove()
		end
	end
end
function Activate(player)
	Connector:FireClient(player, "activate", Settings.CameraCFrame, Settings.PianoSounds)
	User = player
end
function Deactivate()
	Connector:FireClient(User, "deactivate")
	User = nil
end


Prompt: -- Listener for changes to workspace.CurrentCamera

Response:
function BaseCamera:OnCurrentCameraChanged()
	if UserInputService.TouchEnabled then
		if self.viewportSizeChangedConn then
			self.viewportSizeChangedConn:Disconnect()
			self.viewportSizeChangedConn = nil
		end

		local newCamera = game.Workspace.CurrentCamera

		if newCamera then
			self:OnViewportSizeChanged()
			self.viewportSizeChangedConn = newCamera:GetPropertyChangedSignal("ViewportSize"):Connect(function()
				self:OnViewportSizeChanged()
			end)
		end
	end

	-- VR support additions
	if self.cameraSubjectChangedConn then
		self.cameraSubjectChangedConn:Disconnect()
		self.cameraSubjectChangedConn = nil
	end

	local camera = game.Workspace.CurrentCamera
	if camera then
		self.cameraSubjectChangedConn = camera:GetPropertyChangedSignal("CameraSubject"):Connect(function()
			self:OnNewCameraSubject()
		end)
		self:OnNewCameraSubject()
	end
end

function BaseCamera:OnDynamicThumbstickEnabled()
	if UserInputService.TouchEnabled then
		self.isDynamicThumbstickEnabled = true
	end
end

function BaseCamera:OnDynamicThumbstickDisabled()
	self.isDynamicThumbstickEnabled = false
end

function BaseCamera:OnGameSettingsTouchMovementModeChanged()
	if player.DevTouchMovementMode == Enum.DevTouchMovementMode.UserChoice then
		if (UserGameSettings.TouchMovementMode == Enum.TouchMovementMode.DynamicThumbstick
			or UserGameSettings.TouchMovementMode == Enum.TouchMovementMode.Default) then
			self:OnDynamicThumbstickEnabled()
		else
			self:OnDynamicThumbstickDisabled()
		end
	end
end

function BaseCamera:OnDevTouchMovementModeChanged()
	if player.DevTouchMovementMode == Enum.DevTouchMovementMode.DynamicThumbstick then
		self:OnDynamicThumbstickEnabled()
	else
		self:OnGameSettingsTouchMovementModeChanged()
	end
end

function BaseCamera:OnPlayerCameraPropertyChange()
	-- This call forces re-evaluation of player.CameraMode and clamping to min/max distance which may have changed
	self:SetCameraToSubjectDistance(self.currentSubjectDistance)
end

function BaseCamera:GetCameraHeight()
	if VRService.VREnabled and not self.inFirstPerson then
		return math.sin(VR_ANGLE) * self.currentSubjectDistance
	end
	return 0
end

function BaseCamera:InputTranslationToCameraAngleChange(translationVector, sensitivity)
	return translationVector * sensitivity
end

function BaseCamera:GamepadZoomPress()
	local dist = self:GetCameraToSubjectDistance()

	if dist > (GAMEPAD_ZOOM_STEP_2 + GAMEPAD_ZOOM_STEP_3)/2 then
		self:SetCameraToSubjectDistance(GAMEPAD_ZOOM_STEP_2)
	elseif dist > (GAMEPAD_ZOOM_STEP_1 + GAMEPAD_ZOOM_STEP_2)/2 then
		self:SetCameraToSubjectDistance(GAMEPAD_ZOOM_STEP_1)
	else
		self:SetCameraToSubjectDistance(GAMEPAD_ZOOM_STEP_3)
	end
end

function BaseCamera:Enable(enable)
	if self.enabled ~= enable then
		self.enabled = enable
		if self.enabled then
			CameraInput.setInputEnabled(true)

			self.gamepadZoomPressConnection = CameraInput.gamepadZoomPress:Connect(function()
				self:GamepadZoomPress()
			end)

			if player.CameraMode == Enum.CameraMode.LockFirstPerson then
				self.currentSubjectDistance = 0.5
				if not self.inFirstPerson then
					self:EnterFirstPerson()
				end
			end
		else
			CameraInput.setInputEnabled(false)

			if self.gamepadZoomPressConnection then
				self.gamepadZoomPressConnection:Disconnect()
				self.gamepadZoomPressConnection = nil
			end
			-- Clean up additional event listeners and reset a bunch of properties
			self:Cleanup()
		end
	end
end

function BaseCamera:GetEnabled()
	return self.enabled
end

function BaseCamera:Cleanup()
	if self.subjectStateChangedConn then
		self.subjectStateChangedConn:Disconnect()
		self.subjectStateChangedConn = nil
	end
	if self.viewportSizeChangedConn then
		self.viewportSizeChangedConn:Disconnect()
		self.viewportSizeChangedConn = nil
	end

	self.lastCameraTransform = nil
	self.lastSubjectCFrame = nil

	-- Unlock mouse for example if right mouse button was being held down
	if UserInputService.MouseBehavior ~= Enum.MouseBehavior.LockCenter then
		UserInputService.MouseBehavior = Enum.MouseBehavior.Default
	end
end

function BaseCamera:UpdateMouseBehavior()
	if self.isCameraToggle then
		CameraUI.setCameraModeToastEnabled(true)
		CameraInput.enableCameraToggleInput()
		CameraToggleStateController(self.inFirstPerson)
	else
		CameraUI.setCameraModeToastEnabled(false)
		CameraInput.disableCameraToggleInput()

		-- first time transition to first person mode or mouse-locked third person
		if self.inFirstPerson or self.inMouseLockedMode then
			UserGameSettings.RotationType = Enum.RotationType.MovementRelative
			UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
		else
			UserGameSettings.RotationType = Enum.RotationType.MovementRelative
			UserInputService.MouseBehavior = Enum.MouseBehavior.Default
		end
	end
end

function BaseCamera:UpdateForDistancePropertyChange()
	-- Calling this setter with the current value will force checking that it is still
	-- in range after a change to the min/max distance limits
	self:SetCameraToSubjectDistance(self.currentSubjectDistance)
end

function BaseCamera:SetCameraToSubjectDistance(desiredSubjectDistance)
	local lastSubjectDistance = self.currentSubjectDistance

	-- By default, camera modules will respect LockFirstPerson and override the currentSubjectDistance with 0
	-- regardless of what Player.CameraMinZoomDistance is set to, so that first person can be made
	-- available by the developer without needing to allow players to mousewheel dolly into first person.
	-- Some modules will override this function to remove or change first-person capability.
	if player.CameraMode == Enum.CameraMode.LockFirstPerson then
		self.currentSubjectDistance = 0.5
		if not self.inFirstPerson then
			self:EnterFirstPerson()
		end
	else
		local newSubjectDistance = math.clamp(desiredSubjectDistance, player.CameraMinZoomDistance, player.CameraMaxZoomDistance)
		if newSubjectDistance < FIRST_PERSON_DISTANCE_THRESHOLD then
			self.currentSubjectDistance = 0.5
			if not self.inFirstPerson then
				self:EnterFirstPerson()
			end
		else
			self.currentSubjectDistance = newSubjectDistance
			if self.inFirstPerson then
				self:LeaveFirstPerson()
			end
		end
	end

	-- Pass target distance and zoom direction to the zoom controller
	ZoomController.SetZoomParameters(self.currentSubjectDistance, math.sign(desiredSubjectDistance - lastSubjectDistance))

	-- Returned only for convenience to the caller to know the outcome
	return self.currentSubjectDistance
end

function BaseCamera:SetCameraType( cameraType )
	--Used by derived classes
	self.cameraType = cameraType
end

function BaseCamera:GetCameraType()
	return self.cameraType
end


Prompt: ----- sink plug handler -----

Response:
plug.Interactive.ClickDetector.MouseClick:Connect(function()
	if plugged.Value == false then
		plugged.Value = true
		plug.Plug.CFrame = plug.Plug.CFrame * CFrame.new(0, -0.08, 0)
		plug.Interactive.CFrame = plug.Interactive.CFrame * CFrame.new(0, 0.14, 0)
		plug.Shaft.CFrame = plug.Shaft.CFrame * CFrame.new(0, 0.14, 0)
	else
		plugged.Value = false
		plug.Plug.CFrame = plug.Plug.CFrame * CFrame.new(0, 0.08, 0)
		plug.Interactive.CFrame = plug.Interactive.CFrame * CFrame.new(0, -0.14, 0)
		plug.Shaft.CFrame = plug.Shaft.CFrame * CFrame.new(0, -0.14, 0)
	end
end)


Prompt: -----FPS DATA-----

Response:
local FPSHandsEnbled = true --The fps arms visibility when first person is on. true/false to toggle
local AutoFirstPerson = true --Forces the player to firstperson camera. true/false to toggle


Prompt: --// Handling Settings

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

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


Prompt: --		print(animName .. " " .. idx .. " [" .. origRoll .. "]")

Response:
		local anim = animTable[animName][idx].anim

		-- load it to the humanoid; get AnimationTrack
		oldAnimTrack = currentAnimTrack
		currentAnimTrack = humanoid:LoadAnimation(anim)

		-- play the animation
		currentAnimTrack:Play(transitionTime)
		currentAnim = animName

		-- set up keyframe name triggers
		if (currentAnimKeyframeHandler ~= nil) then
			currentAnimKeyframeHandler:Disconnect()
		end
		currentAnimKeyframeHandler = currentAnimTrack.KeyframeReached:Connect(keyFrameReachedFunc)
	end
end


Prompt: -- Tween variables

Response:
local tweenInfo = TweenInfo.new(
	TWEEN_TIME,  -- Time
	Enum.EasingStyle.Quad,  -- EasingStyle
	Enum.EasingDirection.InOut,  -- EasingDirection
	-1,  -- RepeatCount (when less than zero the tween will loop indefinitely)
	true  -- Reverses (tween will reverse once reaching its goal)
)
local function startTween()
	-- If the part is already tweening, prevent it from starting a new tween
	if inTween == true then
		return
	end
	-- Calculate new CFrame for part position
	local offsetCFrame = CFrame.new(0, TWEEN_MOVE_DISTANCE, 0)
	local newCFrame = partToTween.CFrame:ToWorldSpace(offsetCFrame)
	-- Create a tween and play it
	local tweenPart = TweenService:Create(partToTween, tweenInfo, {CFrame = newCFrame})
	tweenPart:Play()
	inTween = true
	-- On tween completion, make part ready for another tween
	tweenPart.Completed:Connect(function()
		inTween = false
	end)
end

startTween()


Prompt:
--[[
	Creates the initial systems
]]

Response:
function SystemManager.createSystems()
	local generatorModel = CollectionService:GetTagged(Constants.Tag.System.Generator)[1]
	systems.generator = Generator.new(generatorModel)

	local engineModel = CollectionService:GetTagged(Constants.Tag.System.Engine)[1]
	systems.engine = Engine.new(engineModel)

	local gravityModel = CollectionService:GetTagged(Constants.Tag.System.Gravity)[1]
	systems.gravity = Gravity.new(gravityModel)

	local lightsModel = CollectionService:GetTagged(Constants.Tag.System.Lights)[1]
	systems.lights = Lights.new(lightsModel)

	local cameraModel = CollectionService:GetTagged(Constants.Tag.System.Camera)[1]
	systems.camera = Camera.new(cameraModel)

	local shieldModel = CollectionService:GetTagged(Constants.Tag.System.Shield)[1]
	systems.shield = Shield.new(shieldModel)
end


Prompt: -- When mouse released

Response:
function onButton1Up(mouse)
	--print("Up");
end


Prompt: -- Variables

Response:
local playerListButton = script.Parent:WaitForChild("Ignore")

local playerListFrame = script.Parent:WaitForChild("MainFrame")


Prompt: -- Loading

Response:
local CutsceneFolder = workspace.Cutscenes:WaitForChild("Run") -- The folder that contains the cutscene data (Cameras...)
local Destroy = true -- Destroy folder after loading? you don't want your player to see your cameras floating around!
local NoYield = false -- Generally you want this to be set to false, because loading takes a little bit of time, and you don't want to interact with the cutscene when it's not loaded
local SafeMode = true -- This is adviced to be turned on, especially if the cutscene folder data is too big to load at one frame. when turned on, it loads a camera every frame, not all at once.

local Cutscene = require(CutsceneModule)

local Demo = Cutscene.new(Camera, Looping, Speed, FreezeControls) -- Create cutscene
Demo:Load(CutsceneFolder, Destroy, NoYield, SafeMode) -- Load cutscene data from folder

local PlayOnPartTouch = script:FindFirstChild("PlayOnPartTouch")
local PlayOnPlayerJoin = script:FindFirstChild("PlayOnPlayerJoin")
local PlayOnCharacterAdded = script:FindFirstChild("PlayOnCharacterAdded")
local PlayOnCharacterDied = script:FindFirstChild("PlayOnCharacterDied")
local PlayOnEventFire = script:FindFirstChild("PlayOnEventFire")
local PlayOnRemoteEventFire = script:FindFirstChild("PlayOnRemoteEventFire")
local ProtectTheCharacterWhilePlaying = script:FindFirstChild("ProtectTheCharacterWhilePlaying")
local CharacterProtector = script:FindFirstChild("CharacterProtector")
local Music = script:FindFirstChild("Music")
local StopMusicWhenFinished = script:FindFirstChild("StopMusicWhenFinished")
local StopOnEventFire = script:FindFirstChild("StopOnEventFire")
local StopOnRemoteEventFire = script:FindFirstChild("StopOnRemoteEventFire")
local PlayOnce = script:FindFirstChild("PlayOnce")
local Debounce = script:FindFirstChild("Cooldown")
local OnFinishedRemove = script:FindFirstChild("OnFinishedRemove")
local bin = true
local Player = game:GetService("Players").LocalPlayer
local CutsceneGui = script:FindFirstChild("Cutscene")


Prompt: -- toggle pause event

Response:
local togglePauseEvent = replicatedStorage.Events.TogglePause
togglePauseEvent.OnServerEvent:Connect((function(player, paused)
	Paused = paused
	togglePauseEvent:FireAllClients(Paused)
end))


Prompt: ----- Local -----

Response:
local Player = game:GetService("Players").LocalPlayer
local UserInputService = game:GetService("UserInputService")
local IconosFrame = script.Parent


Prompt: --[[Driver Handling]]

Response:
	--Driver Sit
	car.DriveSeat.ChildAdded:connect(function(child)
		if child.Name=="SeatWeld" and child:IsA("Weld") and game.Players:GetPlayerFromCharacter(child.Part1.Parent)~=nil then
			--Distribute Client Interface
			local p=game.Players:GetPlayerFromCharacter(child.Part1.Parent)
			car.Body.MainPart.Anchored = false
			car.DriveSeat:SetNetworkOwner(p)
			local g=script.Parent["A-Chassis Interface"]:Clone()
			g.Parent=p.PlayerGui
		end
	end)

	--Driver Leave
	car.DriveSeat.ChildRemoved:connect(function(child)
		if child.Name=="SeatWeld" and child:IsA("Weld") then
			--Remove Flip Force
			if car.DriveSeat:FindFirstChild("Flip")~=nil then
				car.DriveSeat.Flip.MaxTorque = Vector3.new()
			end

			--Remove Wheel Force
			for i,v in pairs(car.Wheels:GetChildren()) do
				if v:FindFirstChild("#AV")~=nil then
					if v["#AV"]:IsA("BodyAngularVelocity") then
						if v["#AV"].AngularVelocity.Magnitude>0 then
							v["#AV"].AngularVelocity = Vector3.new()
							v["#AV"].MaxTorque = Vector3.new()
						end
					else
						if v["#AV"].AngularVelocity>0 then
							v["#AV"].AngularVelocity = 0
							v["#AV"].MotorMaxTorque = 0
						end
					end
				end
			end
		end
		wait(.2)
		car.Body.MainPart.Anchored = true
	end)


Prompt: -- declarations

Response:
local toolAnim = "None"
local toolAnimTime = 0

local jumpAnimTime = 0
local jumpAnimDuration = 0.175

local toolTransitionTime = 0.1
local fallTransitionTime = 0.2
local jumpMaxLimbVelocity = 0.75


Prompt: --[[Run]]

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

	--Runtime Loops

	-- ~60 c/s
	game["Run Service"].Stepped:connect(function()
		--Steering
		Steering()

		--RPM
		RPM()

		--Update External Values
		_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 * _Tune.EqPoint / _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.Body.CarName.Value.VehicleSeat.Velocity.Magnitude/_Tune.SteerDecay,1-(_Tune.MinSteer/100)))
		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.ABS.Value = _ABS
		script.Parent.Values.ABSActive.Value = _ABSActive
		script.Parent.Values.MouseSteerOn.Value = _MSteer
		script.Parent.Values.Velocity.Value = car.Body.CarName.Value.VehicleSeat.Velocity
	end)

	-- ~15 c/s
	while wait(.0667) do
		--Power
		Engine()

		--Flip
		if _Tune.AutoFlip then Flip() end
	end


Prompt:
-- This is basically a function that finds all unanchored parts and adds them to childList.
-- Note: This should only be run once for each object

Response:
function checkObject(obj)
	if (obj ~= hole) and (obj.className == "Part" and obj.Parent~=hole.Parent and obj~=tele1) then
		if (obj.Anchored == false) then
			table.insert(childList, 1, obj)
		end
	elseif (obj.className == "Model") or (obj.className == "Hat") or (obj.className == "Tool") or (obj == workspace) then
		local child = obj:GetChildren()
		for x = 1, #child do
			checkObject(child[x])
		end
		obj.ChildAdded:connect(checkObject)
	end
end

checkObject(workspace)

print("Black Hole script loaded.")

local n = 0
while true do
	if n < #childList then
		n = n + 1
		if n % 800 == 0 then
			wait()
		end
	else
		n = 1
		wait()
	end

	local child = childList[n]
	if (child ~= hole) and (child.className == "Part") and (child.Anchored == false) then
		local relPos = hole.Position - child.Position
		local motivator = child:FindFirstChild("BlackHole Influence")
		if relPos.magnitude * 240 * massConstant < mass then
			if (relPos.magnitude * 320 * massConstant < mass) and (child.Size.z + hole.Size.x >  relPos.magnitude * 2 - 4) then
				mass = mass + child:GetMass()
				table.remove(childList, n)
				n = n - 1 -- This is the reason I need a counter of my own design
			else
				child.CanCollide = false -- I Can assume that things won't escape the black hole.
				if motivator == nil then
					motivator = Instance.new("BodyPosition")
					motivator.Parent = child
					motivator.Name = "BlackHole Influence"
				end
				motivator.position = hole.Position
				motivator.maxForce = Vector3.new(1, 1, 1) * mass * child:GetMass() / (relPos.magnitude * massConstant)
			end
		elseif motivator ~= nil then
			motivator:Remove()
		end
	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: -- Cast Ray

Response:
castray.OnServerEvent:Connect(function(fired, ray, position)
	local beam = Instance.new("Part")

	beam.BrickColor = BrickColor.new("Really red")
	beam.FormFactor = Enum.FormFactor.Custom
	beam.Material = Enum.Material.Neon
	beam.Transparency = 0
	beam.Anchored = true
	beam.Locked = true
	beam.CanCollide = false
	beam.Parent = workspace

	local distance = (tool:WaitForChild("Hole").CFrame.p - position).Magnitude
	beam.Size = Vector3.new(0.1, 0.1, distance)
	beam.CFrame = CFrame.new(tool:WaitForChild("Hole").CFrame.p, position) * CFrame.new(0, 0, -distance / 2)

	game:GetService("Debris"):AddItem(beam, 0.025)
end)


Prompt:
--[[
	CameraModule - This ModuleScript implements a singleton class to manage the
	selection, activation, and deactivation of the current camera controller,
	character occlusion controller, and transparency controller. This script binds to
	RenderStepped at Camera priority and calls the Update() methods on the active
	controller instances.

	The camera controller ModuleScripts implement classes which are instantiated and
	activated as-needed, they are no longer all instantiated up front as they were in
	the previous generation of PlayerScripts.

	2018 PlayerScripts Update - AllYourBlox
--]]

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

local FFlagUserCameraToggle do
	local success, result = pcall(function()
		return UserSettings():IsUserFeatureEnabled("UserCameraToggle")
	end)
	FFlagUserCameraToggle = success and result
end


Prompt: -- When Clicked

Response:
function onButton1Down(mouse)
	--print("Down");
	--print(mouse.hit.p);
	fire();
	updateAmmo();
end


Prompt: --print("health script start")

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


Prompt:
--[[

	VERSION: v0.0.2

	----------[ UPDATES ]----------------------------------------------------

	Pre-Release: -Added a copyright
	             -fixed the issue where you couldn't run when you selected the tool
	             -Added an ADS key and allowed ADS to either be toggle or hold
	             -Made the Ammo values external so they can be changed by outside scripts

	v0.0.2: -Created new arms for the gun
	        -Fixed an issue where the arms would glitch if PlayerAnimations was set to false and the gun was fired
	        -Updated credit security
	        -Put the Arm cframes in the SETTINGS
	        -Made the stance changing animations slightly smoother
	        -Added bullet drop
	        -Fixed some bullet hit handling code
	        -Made the torso being able to rotate while sitting down a setting
	        -Added bullet settings
	        -Added shockwave settings
	        -Added an Explosive guntype
	        -Added a version label in the Gui

	-------------------------------------------------------------------------

	Hello there!

	Glad to know you're using my one and only Gun Kit!

	Even though this kit has many features and is rather advanced, it's pretty easy to use

	There are 4 things that this gun needs in order to function:
		One brick called "AimPart"
		At least one brick called "Mag"
		One brick called "Handle"
		One brick called "Main"

	The AimPart is what the gun will use to aim down the sights. When you aim down your sights, this brick will be in the center
	of the player's head. It basically allows the gun to have any type of sight, which can be placed anywhere on the gun. As long as
	the AimPart is aligned with the sight, the gun will aim down the sights properly.
	(NOTE: Make sure the AimPart is behind the Sight and the FRONT of the AimPart is facing the Sight)

	The Mag is what the gun will move around when you reload the gun. If the mag is made up of more than one brick, make sure those
	bricks are also called "Mag" so that the gun will move them around. If you set ReloadAnimation to false in the SETTINGS, you don't
	need any bricks called "Mag". But if ReloadAnimation is set to true, the gun needs at least one brick called "Mag" or it will break

	The Handle is obviously the most important part of the Gun. Without it, the tool itself wouldn't work. It's that simple
	(NOTE: If you want a sound to play when you fire, name it "FireSound" and place it in the Handle. If you want a sound to play when
	you reload, name it "ReloadSound" and place it in the Handle)

	The Main is the brick where the bullets will originate from. It's also the brick where the flash effects are kept.
	(NOTE: If you want a flash billboardgui to appear when you fire, name it "FlashGui" and place it in the Main. If you want a light
	to flash when you fire, name it "FlashFX" and place it in the Main)

	----------[ INSTRUCTIONS ]-----------------------------------------------

	HOW TO USE THIS KIT:
		1) If the gun already has a Handle, make sure it is facing forward. If the gun doesn't have a Handle, create one and place
		   it wherever you like, and make sure it is facing forward

		2) If the gun already has a brick called "AimPart", move it to where you would like, and make sure it is facing the sight.
		   If the gun doesn't have a brick called "AimPart", create one and move it where you would like it to be, and make sure
		   it is facing the sight

		3) If the gun already has a brick called "Main", move it to the very front of the gun. If the gun doesn't have a brick
		   called "Main", create one and move it to the very front of the gun

		4) If ReloadAnimation is set to true in the SETTINGS, make sure the gun has at least one brick called "Mag". If
		   ReloadAnimation is set to false, the gun doesn't need any bricks called "Mag".

		5) Open the SETTINGS and edit them however you like

	That's it! Only 5 steps! It's not that complicated, just follow the Directions and it should work fine. If you have any questions /
	comments / concerns, message me.

	     ______   ______           __          ______           _                ______
	    / _/ _/  /_  __/_  _______/ /_  ____  / ____/_  _______(_)___  ____     /  /  /
	   / // /     / / / / / / ___/ __ \/ __ \/ /_  / / / / ___/ / __ \/ __ \    / // /
	  / // /     / / / /_/ / /  / /_/ / /_/ / __/ / /_/ (__  ) / /_/ / / / /   / // /
	 / // /     /_/  \__,_/_/  /_.___/\____/_/    \__,_/____/_/\____/_/ /_/  _/ // /
	/__/__/                                                                 /__/__/

--]]

Response:
wait(math.random(0, 200) / 200) --This is to prevent more than one Ignore_Model from being created

if _G.Ignore_Code then --If the Ignore_Code already exists, then the script creates the Ignore_Model
	--[[
		The purpose of this is so that every gun in a game that uses this gun kit will share one Ignore_Model. That way,
		bullet trails, bullet holes, and other fake arms will be ignored by the gun which makes the bullets more likely to
		hit a character part
	--]]
	if (not game.Workspace:FindFirstChild("Ignore_Model_".._G.Ignore_Code)) then
		local Ignore_Model = Instance.new("Model")
		Ignore_Model.Name = "Ignore_Model_".._G.Ignore_Code
		Ignore_Model.Parent = game.Workspace

		spawn(function()
			while true do
				Ignore_Model.Parent = game.Workspace
				wait(1 / 20)
			end
		end)
	end

	script.Parent:WaitForChild("Gun_Main"):WaitForChild("Ignore_Code").Value = _G.Ignore_Code
else
	--[[
		If there isn't already an Ignore_Code, then this creates one. The purpose of it being random is so that if there is
		an Ignore_Model for something else in the game, the script won't end up placing the ignored objects in that Ignore_Model
	--]]
	_G.Ignore_Code = math.random(1, 1e4)

	if (not game.Workspace:FindFirstChild("Ignore_Model_".._G.Ignore_Code)) then
		local Ignore_Model = Instance.new("Model")
		Ignore_Model.Name = "Ignore_Model_".._G.Ignore_Code
		Ignore_Model.Parent = game.Workspace

		spawn(function()
			while true do
				Ignore_Model.Parent = game.Workspace
				wait(1 / 20)
			end
		end)
	end

	script.Parent:WaitForChild("Gun_Main"):WaitForChild("Ignore_Code").Value = _G.Ignore_Code
end


Prompt: -- Libraries

Response:
local RbxUtility = LoadLibrary 'RbxUtility';
local History = require(script.Parent.HistoryModule);
local Support = require(script.Parent.SupportLibrary);


Prompt:
--[[
	Calls the given callback, and stores any used external dependencies.
	Arguments can be passed in after the callback.
	If the callback completed successfully, returns true and the returned value,
	otherwise returns false and the error thrown.
	The callback shouldn't yield or run asynchronously.

	NOTE: any calls to useDependency() inside the callback (even if inside any
	nested captureDependencies() call) will not be included in the set, to avoid
	self-dependencies.
]]

Response:
local Package = script.Parent.Parent
local PubTypes = require(Package.PubTypes)
local parseError = require(Package.Logging.parseError)
local sharedState = require(Package.Dependencies.sharedState)

type Set<T> = {[T]: any}

local initialisedStack = sharedState.initialisedStack
local initialisedStackCapacity = 0

local function captureDependencies(
	saveToSet: Set<PubTypes.Dependency>,
	callback: (...any) -> any,
	...
): (boolean, any)

	local prevDependencySet = sharedState.dependencySet
	sharedState.dependencySet = saveToSet

	sharedState.initialisedStackSize += 1
	local initialisedStackSize = sharedState.initialisedStackSize

	local initialisedSet
	if initialisedStackSize > initialisedStackCapacity then
		initialisedSet = {}
		initialisedStack[initialisedStackSize] = initialisedSet
		initialisedStackCapacity = initialisedStackSize
	else
		initialisedSet = initialisedStack[initialisedStackSize]
		table.clear(initialisedSet)
	end

	local data = table.pack(xpcall(callback, parseError, ...))

	sharedState.dependencySet = prevDependencySet
	sharedState.initialisedStackSize -= 1

	return table.unpack(data, 1, data.n)
end

return captureDependencies


Prompt: --//Controller//--

Response:
Oxygen.Changed:Connect(function()
	TweenService:Create(
		OxygenDisplayBar,

		TweenInfo.new(
			0.5
		),

		{
			Size = UDim2.new(Oxygen.Value / PlayerStatsConfiguration.MaximumOxygenValue.Value, 0, 1, 0)
		}
	):Play()
end)

Humanoid:GetPropertyChangedSignal("Health"):Connect(function()
	TweenService:Create(
		HealthDisplayBar,

		TweenInfo.new(
			0.5
		),

		{
			Size = UDim2.new(Humanoid.Health / Humanoid.MaxHealth, 0, 1, 0)
		}
	):Play()
end)

while true do
	if Player.Team == PlayingTeam then
		if Humanoid:GetState() == Enum.HumanoidStateType.Swimming then
			if Oxygen.Value > 0 then
				Oxygen.Value = Oxygen.Value - PlayerStatsConfiguration.OxygenChangeValue.Value

			elseif Oxygen.Value <= 0 then
				Oxygen.Value = 0

				Humanoid:TakeDamage(PlayerStatsConfiguration.NoOxygenDamage.Value)
			end

			task.wait(PlayerStatsConfiguration.OxygenDecreaseTime.Value)

		else
			if Oxygen.Value >= PlayerStatsConfiguration.MaximumOxygenValue.Value then
				Oxygen.Value = PlayerStatsConfiguration.MaximumOxygenValue.Value

			elseif Oxygen.Value < PlayerStatsConfiguration.MaximumOxygenValue.Value then
				Oxygen.Value = Oxygen.Value + PlayerStatsConfiguration.OxygenChangeValue.Value
			end

			task.wait(PlayerStatsConfiguration.OxygenIncreaseTime.Value)
		end
	end

	task.wait()
end


Prompt: --				handler:FireServer('updateLights', 'fog', false)

Response:
			else lights.Value = false
				handler:FireServer('updateLights', 'beam', false)


Prompt:
--[[
	Novena Constraint Type: Motorcycle
			The Bike Chassis

					RikOne2 | Enjin
--]]


Prompt:
--[=[
	@param ignorePlayer Player -- The client to ignore
	@param ... any -- Arguments passed to the other clients
	Fires the signal to all clients _except_ the specified
	client.

	:::note Outbound Middleware
	All arguments pass through any outbound middleware before being
	sent to the client.
	:::
]=]

Response:
function RemoteSignal:FireExcept(ignorePlayer: Player, ...: any)
	self:FireFilter(function(plr)
		return plr ~= ignorePlayer
	end, ...)
end


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


Prompt: --[[Front]]

Response:
--
	Tune.FTireProfile	= 1			-- Tire profile, aggressive or smooth
	Tune.FProfileHeight	= .4		-- Profile height, conforming to tire

	Tune.FTireCompound	= 1			-- The more compounds you have, the harder your tire will get towards the middle, sacrificing grip for wear
	Tune.FTireFriction	= 1.1		-- Your tire's friction in the best conditions.


Prompt: --Light off

Response:
	src.Parent.right.Value.Value = 0
	src.Parent.left.Value.Value = 0
	light.Value = false
	else
	src.Parent.right.Value.Value = 1
	src.Parent.left.Value.Value = 1
	light.Value = true
	return
	end
end
end)
src.Parent.ChildRemoved:connect(function(child)
	if child.Name=="SeatWeld" then
		src:Stop()
		script.Parent:Destroy()
	end
end)


Prompt: -- Initialize the tool

Response:
local AnchorTool = {

	Name = 'Anchor Tool';
	Color = BrickColor.new 'Really black';

}

AnchorTool.ManualText = [[Anchor Tool  🛠
Lets you anchor and unanchor parts.

TIP: Press Enter to toggle anchor quickly.]]


Prompt: --// Firemode Functions

Response:
function CreateBullet(L_165_arg1)
	local L_166_ = L_41_.Position
	local L_167_ = (L_4_.Hit.p - L_166_).unit
	local L_168_ = CFrame.Angles(math.rad(math.random(-L_165_arg1, L_165_arg1)), math.rad(math.random(-L_165_arg1, L_165_arg1)), math.rad(math.random(-L_165_arg1, L_165_arg1)))
	L_167_ = L_168_ * L_167_
	local L_169_ = CFrame.new(L_166_, L_166_ + L_167_)

	local L_170_ = Instance.new("Part", L_76_)
	game.Debris:AddItem(L_170_, 10)
	L_170_.Shape = Enum.PartType.Ball
	L_170_.Size = Vector3.new(1, 1, 12)
	L_170_.Name = "Bullet"
	L_170_.TopSurface = "Smooth"
	L_170_.BottomSurface = "Smooth"
	L_170_.BrickColor = BrickColor.new("Bright green")
	L_170_.Material = "Neon"
	L_170_.CanCollide = false
		--Bullet.CFrame = FirePart.CFrame + (Grip.CFrame.p - Grip.CFrame.p)
	L_170_.CFrame = L_169_

	local L_171_ = Instance.new("Sound")
	L_171_.SoundId = "rbxassetid://341519743"
	L_171_.Looped = true
	L_171_:Play()
	L_171_.Parent = L_170_
	L_171_.Volume = 0.4
	L_171_.MaxDistance = 30

	L_170_.Transparency = 1
	local L_172_ = L_170_:GetMass()
	local L_173_ = Instance.new('BodyForce', L_170_)

	if not L_60_ then
		L_173_.Force = L_23_.BulletPhysics
		L_170_.Velocity = L_167_ * L_23_.BulletSpeed
	else
		L_173_.Force = L_23_.ExploPhysics
		L_170_.Velocity = L_167_ * L_23_.ExploSpeed
	end

	local L_174_ = Instance.new('Attachment', L_170_)
	L_174_.Position = Vector3.new(0.1, 0, 0)
	local L_175_ = Instance.new('Attachment', L_170_)
	L_175_.Position = Vector3.new(-0.1, 0, 0)

	local L_176_ = TracerCalculation()

	if L_23_.TracerEnabled == true and L_176_ then
		local L_177_ = Instance.new('Trail', L_170_)
		L_177_.Attachment0 = L_174_
		L_177_.Attachment1 = L_175_
		L_177_.Transparency = NumberSequence.new(L_23_.TracerTransparency)
		L_177_.LightEmission = L_23_.TracerLightEmission
		L_177_.TextureLength = L_23_.TracerTextureLength
		L_177_.Lifetime = L_23_.TracerLifetime
		L_177_.FaceCamera = L_23_.TracerFaceCamera
		L_177_.Color = ColorSequence.new(L_23_.TracerColor.Color)
	end

	if L_1_:FindFirstChild('Shell') and not L_60_ then
		CreateShell()
	end

	delay(0.2, function()
		L_170_.Transparency = 0
	end)

	return L_170_
end

function CheckForHumanoid(L_178_arg1)
	local L_179_
	local L_180_
	if (L_178_arg1.Parent:FindFirstChild("Humanoid") or L_178_arg1.Parent.Parent:FindFirstChild("Humanoid")) then
		L_179_ = true
		if L_178_arg1.Parent:FindFirstChild('Humanoid') then
			L_180_ = L_178_arg1.Parent.Humanoid
		elseif L_178_arg1.Parent.Parent:FindFirstChild('Humanoid') then
			L_180_ = L_178_arg1.Parent.Parent.Humanoid
		end
	else
		L_179_ = false
	end
	return L_179_, L_180_
end

function CastRay(L_181_arg1)
	local L_182_, L_183_, L_184_
	local L_185_ = L_38_.Position;
	local L_186_ = L_181_arg1.Position;
	local L_187_ = 0

	local L_188_ = L_60_

	while true do
		L_81_:wait()
		L_186_ = L_181_arg1.Position;
		L_187_ = L_187_ + (L_186_ - L_185_).magnitude
		L_182_, L_183_, L_184_ = workspace:FindPartOnRayWithIgnoreList(Ray.new(L_185_, (L_186_ - L_185_)), IgnoreList);
		local L_189_ = Vector3.new(0, 1, 0):Cross(L_184_)
		local L_190_ = math.asin(L_189_.magnitude) -- division by 1 is redundant
		if L_187_ > 10000 then
			break
		end
		if L_182_ and (L_182_ and L_182_.Transparency >= 1 or L_182_.CanCollide == false) then
			table.insert(IgnoreList, L_182_)
		end

		if L_182_ then
			L_189_ = Vector3.new(0, 1, 0):Cross(L_184_)
			L_190_ = math.asin(L_189_.magnitude) -- division by 1 is redundant

			local L_191_ = CheckForHumanoid(L_182_)
			if L_191_ == false then
				L_181_arg1:Destroy()
				local L_192_ = L_88_:InvokeServer(L_183_, L_189_, L_190_, L_184_, "Part")
				table.insert(IgnoreList, L_192_)
			elseif L_191_ == true then
				L_181_arg1:Destroy()
				local L_193_ = L_88_:InvokeServer(L_183_, L_189_, L_190_, L_184_, "Human")
				table.insert(IgnoreList, L_193_)
			end
		end

		if L_182_ and L_188_ then
			L_91_:FireServer(L_183_)
		end

		if L_182_ and (L_182_.Parent:FindFirstChild("Humanoid") or L_182_.Parent.Parent:FindFirstChild("Humanoid")) then
			local L_194_, L_195_ = CheckForHumanoid(L_182_)
			if L_194_ then
				L_86_:FireServer(L_195_)
				if L_23_.AntiTK then
					if game.Players:FindFirstChild(L_195_.Parent.Name) and game.Players:FindFirstChild(L_195_.Parent.Name).TeamColor ~= L_2_.TeamColor then
						if L_182_.Name == 'Head' then
							L_85_:FireServer(L_195_, L_23_.HeadDamage)
							local L_196_ = L_18_:WaitForChild('BodyHit'):clone()
							L_196_.Parent = L_2_.PlayerGui
							L_196_:Play()
							game:GetService("Debris"):addItem(L_196_, L_196_.TimeLength)
						elseif L_182_.Name ~= 'Head' and not (L_182_.Parent:IsA('Accessory') or L_182_.Parent:IsA('Hat')) then
							L_85_:FireServer(L_195_, L_23_.Damage)
							local L_197_ = L_18_:WaitForChild('BodyHit'):clone()
							L_197_.Parent = L_2_.PlayerGui
							L_197_:Play()
							game:GetService("Debris"):addItem(L_197_, L_197_.TimeLength)
						elseif (L_182_.Parent:IsA('Accessory') or L_182_.Parent:IsA('Hat')) then
							L_85_:FireServer(L_195_, L_23_.HeadDamage)
							local L_198_ = L_18_:WaitForChild('BodyHit'):clone()
							L_198_.Parent = L_2_.PlayerGui
							L_198_:Play()
							game:GetService("Debris"):addItem(L_198_, L_198_.TimeLength)
						end
					end
				else
					if L_182_.Name == 'Head' then
						L_85_:FireServer(L_195_, L_23_.HeadDamage)
						local L_199_ = L_18_:WaitForChild('BodyHit'):clone()
						L_199_.Parent = L_2_.PlayerGui
						L_199_:Play()
						game:GetService("Debris"):addItem(L_199_, L_199_.TimeLength)
					elseif L_182_.Name ~= 'Head' and not (L_182_.Parent:IsA('Accessory') or L_182_.Parent:IsA('Hat')) then
						L_85_:FireServer(L_195_, L_23_.Damage)
						local L_200_ = L_18_:WaitForChild('BodyHit'):clone()
						L_200_.Parent = L_2_.PlayerGui
						L_200_:Play()
						game:GetService("Debris"):addItem(L_200_, L_200_.TimeLength)
					elseif (L_182_.Parent:IsA('Accessory') or L_182_.Parent:IsA('Hat')) then
						L_85_:FireServer(L_195_, L_23_.HeadDamage)
						local L_201_ = L_18_:WaitForChild('BodyHit'):clone()
						L_201_.Parent = L_2_.PlayerGui
						L_201_:Play()
						game:GetService("Debris"):addItem(L_201_, L_201_.TimeLength)
					end
				end
			end
		end

		if L_182_ and L_182_.Parent:FindFirstChild("Humanoid") then
			return L_182_, L_183_;
		end
		L_185_ = L_186_;
	end
end

function fireSemi()
	if L_15_ then
		L_51_ = false
		Recoiling = true
		Shooting = true
		L_41_:WaitForChild('Fire'):Play()
		L_84_:FireServer()
		L_77_ = CreateBullet(0)
		L_78_ = L_78_ - 1
		RecoilFront = true
		local L_202_, L_203_ = spawn(function()
			CastRay(L_77_)
		end)

		if L_23_.CanBolt == true then
			BoltingBackAnim()
			delay(L_23_.Firerate / 2, function()
				if L_23_.CanSlideLock == false then
					BoltingForwardAnim()
				elseif L_23_.CanSlideLock == true and L_78_ <= 0 then
					BoltingBackAnim()
				end
			end)
		end

		delay(L_23_.Firerate / 2, function()
			Recoiling = false
			RecoilFront = false
		end)

		wait(L_23_.Firerate)

		local L_204_ = JamCalculation()
		if L_204_ then
			L_51_ = false
		else
			L_51_ = true
		end
		Shooting = false
	end
end

function fireExplo()
	if L_15_ then
		L_51_ = false
		Recoiling = true
		Shooting = true
		L_42_:WaitForChild('Fire'):Play()
		L_84_:FireServer()
		L_77_ = CreateBullet(0)
		L_80_ = L_80_ - 1
		RecoilFront = true
		local L_205_, L_206_ = spawn(function()
			CastRay(L_77_)
		end)

		delay(L_23_.Firerate / 2, function()
			Recoiling = false
			RecoilFront = false
		end)

		L_51_ = false
		Shooting = false
	end
end

function fireShot()
	if L_15_ then
		L_51_ = false
		Recoiling = true
		Shooting = true
		RecoilFront = true
		L_41_:WaitForChild('Fire'):Play()
		L_84_:FireServer()
		for L_208_forvar1 = 1, L_23_.ShotNum do
			L_77_ = CreateBullet(2)
			local L_209_, L_210_ = spawn(function()
				CastRay(L_77_)
			end)
		end

		for L_211_forvar1, L_212_forvar2 in pairs(L_41_:GetChildren()) do
			if L_212_forvar2.Name:sub(1, 7) == "FlashFX" then
				L_212_forvar2.Enabled = true
			end
		end

		delay(1 / 30, function()
			for L_213_forvar1, L_214_forvar2 in pairs(L_41_:GetChildren()) do
				if L_214_forvar2.Name:sub(1, 7) == "FlashFX" then
					L_214_forvar2.Enabled = false
				end
			end
		end)

		if L_23_.CanBolt == true then
			BoltingBackAnim()
			delay(L_23_.Firerate / 2, function()
				if L_23_.CanSlideLock == false then
					BoltingForwardAnim()
				elseif L_23_.CanSlideLock == true and L_78_ > 0 then
					BoltingBackAnim()
				end
			end)
		end

		delay(L_23_.Firerate / 2, function()
			Recoiling = false
			RecoilFront = false
		end)
		L_78_ = L_78_ - 1
		wait(L_23_.Firerate)

		L_58_ = true
		BoltBackAnim()
		BoltForwardAnim()
		IdleAnim()
		L_58_ = false

		local L_207_ = JamCalculation()
		if L_207_ then
			L_51_ = false
		else
			L_51_ = true
		end

		Shooting = false
	end
end

function fireBoltAction()
	if L_15_ then
		L_51_ = false
		Recoiling = true
		Shooting = true
		L_41_:WaitForChild('Fire'):Play()
		L_84_:FireServer()
		L_77_ = CreateBullet(0)
		L_78_ = L_78_ - 1
		RecoilFront = true
		local L_215_, L_216_ = spawn(function()
			CastRay(L_77_)
		end)

		for L_218_forvar1, L_219_forvar2 in pairs(L_41_:GetChildren()) do
			if L_219_forvar2.Name:sub(1, 7) == "FlashFX" then
				L_219_forvar2.Enabled = true
			end
		end

		delay(1 / 30, function()
			for L_220_forvar1, L_221_forvar2 in pairs(L_41_:GetChildren()) do
				if L_221_forvar2.Name:sub(1, 7) == "FlashFX" then
					L_221_forvar2.Enabled = false
				end
			end
		end)

		if L_23_.CanBolt == true then
			BoltingBackAnim()
			delay(L_23_.Firerate / 2, function()
				if L_23_.CanSlideLock == false then
					BoltingForwardAnim()
				elseif L_23_.CanSlideLock == true and L_78_ > 0 then
					BoltingBackAnim()
				end
			end)
		end

		delay(L_23_.Firerate / 2, function()
			Recoiling = false
			RecoilFront = false
		end)
		wait(L_23_.Firerate)

		L_58_ = true
		BoltBackAnim()
		BoltForwardAnim()
		IdleAnim()
		L_58_ = false

		local L_217_ = JamCalculation()
		if L_217_ then
			L_51_ = false
		else
			L_51_ = true
		end

		Shooting = false
	end
end

function fireAuto()
	while not Shooting and L_78_ > 0 and L_50_ and L_51_ and L_15_ do
		L_51_ = false
		Recoiling = true
		L_41_:WaitForChild('Fire'):Play()
		L_84_:FireServer()
		L_78_ = L_78_ - 1
		Shooting = true
		RecoilFront = true
		L_77_ = CreateBullet(0)
		local L_222_, L_223_ = spawn(function()
			CastRay(L_77_)
		end)

		for L_225_forvar1, L_226_forvar2 in pairs(L_41_:GetChildren()) do
			if L_226_forvar2.Name:sub(1, 7) == "FlashFX" then
				L_226_forvar2.Enabled = true
			end
		end

		delay(1 / 30, function()
			for L_227_forvar1, L_228_forvar2 in pairs(L_41_:GetChildren()) do
				if L_228_forvar2.Name:sub(1, 7) == "FlashFX" then
					L_228_forvar2.Enabled = false
				end
			end
		end)

		if L_23_.CanBolt == true then
			BoltingBackAnim()
			delay(L_23_.Firerate / 2, function()
				if L_23_.CanSlideLock == false then
					BoltingForwardAnim()
				elseif L_23_.CanSlideLock == true and L_78_ > 0 then
					BoltingForwardAnim()
				end
			end)
		end

		delay(L_23_.Firerate / 2, function()
			Recoiling = false
			RecoilFront = false
		end)
		wait(L_23_.Firerate)

		local L_224_ = JamCalculation()
		if L_224_ then
			L_51_ = false
		else
			L_51_ = true
		end

		Shooting = false
	end
end

function fireBurst()
	if not Shooting and L_78_ > 0 and L_50_ and L_15_ then
		for L_229_forvar1 = 1, L_23_.BurstNum do
			if L_78_ > 0 and L_50_ then
				L_51_ = false
				Recoiling = true
				L_41_:WaitForChild('Fire'):Play()
				L_84_:FireServer()
				L_77_ = CreateBullet(0)
				local L_230_, L_231_ = spawn(function()
					CastRay(L_77_)
				end)

				for L_233_forvar1, L_234_forvar2 in pairs(L_41_:GetChildren()) do
					if L_234_forvar2.Name:sub(1, 7) == "FlashFX" then
						L_234_forvar2.Enabled = true
					end
				end

				delay(1 / 30, function()
					for L_235_forvar1, L_236_forvar2 in pairs(L_41_:GetChildren()) do
						if L_236_forvar2.Name:sub(1, 7) == "FlashFX" then
							L_236_forvar2.Enabled = false
						end
					end
				end)

				if L_23_.CanBolt == true then
					BoltingBackAnim()
					delay(L_23_.Firerate / 2, function()
						if L_23_.CanSlideLock == false then
							BoltingForwardAnim()
						elseif L_23_.CanSlideLock == true and L_78_ > 0 then
							BoltingForwardAnim()
						end
					end)
				end

				L_78_ = L_78_ - 1
				RecoilFront = true
				delay(L_23_.Firerate / 2, function()
					Recoiling = false
					RecoilFront = false
				end)
				wait(L_23_.Firerate)

				local L_232_ = JamCalculation()
				if L_232_ then
					L_51_ = false
				else
					L_51_ = true
				end

			end
			Shooting = true
		end
		Shooting = false
	end
end

function Shoot()
	if L_15_ and L_51_ then
		if L_69_ == 1 then
			fireSemi()
		elseif L_69_ == 2 then
			fireAuto()
		elseif L_69_ == 3 then
			fireBurst()
		elseif L_69_ == 4 then
			fireBoltAction()
		elseif L_69_ == 5 then
			fireShot()
		elseif L_69_ == 6 then
			fireExplo()
		end
	end
end


Prompt: -- you can mess with these settings

Response:
local easingtime = 0.1 --0~1
local walkspeeds = {
	enabled =		  true;
	walkingspeed =		16;
	backwardsspeed =	10;
	sidewaysspeed =		15;
	diagonalspeed =		16;
	runningspeed =		250;
	runningFOV=			85;
}


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	= 2000	-- Spring Force
	Tune.FAntiRoll 		= 60		-- Anti-Roll (Gyro Dampening)

	Tune.FSusLength		= 1		-- 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	= 4000	-- Spring Force
	Tune.FAntiRoll 		= 60		-- Anti-Roll (Gyro Dampening)

	Tune.RSusLength		= 1	-- 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		= true			-- Spring Visible
	Tune.WsBVisible		= false			-- Wishbone Visible
	Tune.SusRadius		= .2			-- Suspension Coil Radius
	Tune.SusThickness	= .1			-- Suspension Coil Thickness
	Tune.SusColor		= "Really black"	-- Suspension Color [BrickColor]
	Tune.SusCoilCount	= 6				-- Suspension Coil Count
	Tune.WsColor		= "Black"		-- Wishbone Color [BrickColor]
	Tune.WsThickness	= .1			-- Wishbone Rod Thickness


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

Response:
game:GetService("Chat"):RegisterChatCallback(Enum.ChatCallbackType.OnCreatingChatWindow, function()
	return {
		BubbleChatEnabled = true
	};
end);


Prompt:
--[[
	Returns the last word in a PascalCase string, ignoring any trailing numbers. E.g.

	LeftUpperArm -> Arm
	LeftElbow -> Elbow
	LeftUpperLeg4 -> Leg
	TestT3st4 -> T3st
	test -> test (whole string returned if there are no uppercase characters)
	3 -> ""
--]]

Response:
return function (str)
	-- Get the last word in the PascalCase name (e.g. Arm from UpperLeftArm)
	local lastWord = str:sub(#str - ((str:reverse():find("%u") or #str+1) - 1))
	-- Remove trailing numbers from the name
	lastWord = lastWord:gsub("%d+$", "")

	return lastWord
end


Response:
local function updateAnimVars()
	wait()
	Forward = (UIS:IsKeyDown("W") or UIS:IsKeyDown("Up"))
	Backward = (UIS:IsKeyDown("S") or UIS:IsKeyDown("Down"))
	local Right = UIS:IsKeyDown("D")
	local Left = UIS:IsKeyDown("A")

	local walkingForward = (Forward and (not Backward))
	local walkingBackward = ((not Forward) and Backward)
	local walkingRight = (Right and (not Left))
	local walkingLeft = ((not Right) and Left)

	if (Forward or Backward or Right or Left) then
		Walking, Idling = true, false
		if (not Running) and (not Aimed) then
			spreadMotion = "Moving"
			baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
		end
	elseif (not (Forward and Backward and Right and Left)) then
		Walking, Idling = false, true
		if (not Aimed) then
			spreadMotion = "Idling"
			baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
		end
	end

	local newArmTilt = (
		((walkingForward or walkingBackward) and walkingRight) and 2.5 or
		((walkingForward or walkingBackward) and walkingLeft) and -2.5 or
		((not (walkingForward and walkingBackward)) and walkingRight) and 5 or
		((not (walkingForward and walkingBackward)) and walkingLeft) and -5 or 0
	)
	local newMoveAng = (
		(walkingForward and (not (walkingRight or walkingLeft))) and 0 or
		(walkingForward and walkingRight) and RAD(-45) or
		((not (walkingForward or walkingBackward)) and walkingRight) and RAD(-90) or
		(walkingBackward and walkingRight) and RAD(-135) or
		(walkingBackward and (not (walkingRight or walkingLeft))) and (moveAng < 0 and RAD(-180) or RAD(180)) or
		(walkingBackward and walkingLeft) and RAD(135) or
		((not (walkingForward or walkingBackward)) and walkingLeft) and RAD(90) or
		(walkingForward and walkingLeft) and RAD(45) or 0
	)

	local newAnimCode = math.random(-1e9, 1e9)
	animCode = newAnimCode
	local startTilt = armTilt
	local startAng = (ABS(moveAng) == RAD(180)) and (newMoveAng > 0 and RAD(180) or RAD(-180)) or moveAng
	local Increment = (startTilt == newArmTilt and 1.5 / 0.7 or 1.5 / (0.35 * ABS(startTilt - newArmTilt) / 5))
	local X = 0
	while true do
		RS.RenderStepped:wait()
		local newX = X + Increment
		X = (newX > 90 and 90 or newX)
		if animCode ~= newAnimCode then break end
		armTilt = numLerp(startTilt, newArmTilt, Sine(X))
		moveAng = numLerp(startAng, newMoveAng, Sine(X))
		if X == 90 then break end
	end
end

M2.KeyDown:connect(updateAnimVars)
M2.KeyUp:connect(updateAnimVars)
updateAnimVars()


Prompt: --	self.waistC0 = self.waist.C0;

Response:
	self.spring = spring.new(Vector3.new(), Vector3.new(), Vector3.new(), 10, 1);

	return setmetatable(self, lookAt_mt);
end

function lookAt:calcGoal(target)
	local goal = Vector3.new(0, 0, 0);

	local eye = (self.hrp.CFrame * CFrame.new(0, 3, 0)):pointToObjectSpace(target).unit;
	local horizontal = -math.atan2(eye.x, -eye.z);
	local vertical = math.asin(eye.y);

	if not (math.abs(horizontal) > SETTINGS.horizontalRange or math.abs(vertical) > SETTINGS.verticalRange) then
		local hsign, habs = math.sign(horizontal), math.abs(horizontal);
		local hneck, hwaist = habs*0.5, habs*0.5;

		if (hwaist > SETTINGS.maxHorizontalWaist) then
			local remainder = hwaist - SETTINGS.maxHorizontalWaist;
			hwaist = SETTINGS.maxHorizontalWaist;
			hneck = math.clamp(hneck + remainder, 0, SETTINGS.maxHorizontalHead);
		end

		goal = Vector3.new(hsign*hneck, hsign*hwaist, vertical);
	end

	self.spring.target = goal;
end

function lookAt:update(dt)
	self.spring:update(dt);
	local set = self.spring.p;
	self.neck.C0 = self.neckC0 * CFrame.fromEulerAnglesYXZ(set.z*0.5, set.x, 0);


Prompt: -- Instead of putting GUI into StarterGui, this will just give the GUI to the player after the spawn/respawn:

Response:
function characterHandling(p)
	p.CharacterAdded:connect(function()
		if (not p:findFirstChild("PlayerGui")) then
			repeat wait() until (p:findFirstChild("PlayerGui"))
		end
		gui:clone().Parent = p.PlayerGui
	end)
end


Prompt: -- << GROUP PERMISSIONS >>

Response: local Group_Permissions = false -- Set to 'true' to use


Prompt: --// Weapon Parts

Response:
local L_34_ = L_1_:WaitForChild('AimPart')
local L_35_
local L_36_ = L_1_:WaitForChild('Grip')
local L_37_ = L_1_:WaitForChild('FirePart')
local L_38_ = L_1_:WaitForChild('Mag')
local L_39_ = L_1_:WaitForChild('Bolt')


Prompt: -- warn("TWEEN START ********************************************")

Response:
local me = script.Parent
local timer = 5 -- секунд = 50000 тиков


Prompt:
-- Version 3
-- Last updated: 31/07/2020

Response:
local Module = {}

DebugEnabled = false

Debris = game:GetService("Debris")

function Module.FracturePart(PartToFracture)

	local BreakingPointAttachment = PartToFracture:FindFirstChild("BreakingPoint")

	-- Settings
	local Configuration = PartToFracture:FindFirstChild("Configuration")

	local DebrisDespawn = false
	local DebrisDespawnDelay = 0
	local WeldDebris = false
	local AnchorDebris = false

	if DebugEnabled then
		local DebugPart = Instance.new("Part")
		DebugPart.Shape = "Ball"
		DebugPart.CanCollide = false
		DebugPart.Anchored = true
		DebugPart.Size = Vector3.new(0.5, 0.5, 0.5)
		DebugPart.Color = Color3.fromRGB(255, 0, 0)
		DebugPart.Position = BreakingPointAttachment.WorldPosition
		DebugPart.Parent = workspace
	end

	local BreakSound = PartToFracture:FindFirstChild("BreakSound")

	if BreakSound then
		local SoundPart = Instance.new("Part")
		SoundPart.Size = Vector3.new(0.2, 0.2, 0.2)
		SoundPart.Position = PartToFracture.Position
		SoundPart.Name = "TemporarySoundEmitter"
		SoundPart.Anchored = true
		SoundPart.CanCollide = false
		SoundPart.Transparency = 1
		local Sound = BreakSound:Clone()
		Sound.Parent = SoundPart
		SoundPart.Parent = workspace
		Sound:Play()
		Debris:AddItem(SoundPart, Sound.PlaybackSpeed)
	end

	if Configuration then
		DebrisDespawn = Configuration.DebrisDespawn.Value
		DebrisDespawnDelay = Configuration.DebrisDespawnDelay.Value
		WeldDebris = Configuration.WeldDebris.Value
		AnchorDebris = Configuration.AnchorDebris.Value
	else
		warn("The 'Configuration' is not a valid member of " .. PartToFracture.Name .. ". Please insert a 'Configuration' with the following values; 'DebrisDespawn' (bool), 'WeldDebris' (bool), 'DebrisDespawnDelay' (number/int)")
	end

	if not BreakingPointAttachment then
		warn("The 'BreakingPoint' attachment is not a valid member of " .. PartToFracture.Name .. ". Please insert an attachment named 'BreakingPoint'")
	end

	local BreakingPointY = BreakingPointAttachment.Position.Y
	local BreakingPointZ = BreakingPointAttachment.Position.Z

	local ShardBottomLeft = Instance.new("WedgePart")
	local ShardBottomRight = Instance.new("WedgePart")
	local ShardTopLeft = Instance.new("WedgePart")
	local ShardTopRight = Instance.new("WedgePart")

	local BreakSound = PartToFracture:FindFirstChild("BreakSound")

	-- Bottom Left
	ShardBottomLeft.Material = PartToFracture.Material
	ShardBottomLeft.Color = PartToFracture.Color
	ShardBottomLeft.Transparency = PartToFracture.Transparency
	ShardBottomLeft.Size = PartToFracture.Size - Vector3.new(0, (PartToFracture.Size.Y / 2) - BreakingPointY, (PartToFracture.Size.Z / 2) + BreakingPointZ)
	local OldSizeY = ShardBottomLeft.Size.Y
	local OldSizeZ = ShardBottomLeft.Size.Z
	ShardBottomLeft.CFrame = PartToFracture.CFrame * CFrame.new(0, BreakingPointY - (ShardBottomLeft.Size.Y / 2), BreakingPointZ + (ShardBottomLeft.Size.Z / 2))
	ShardBottomLeft.CFrame = ShardBottomLeft.CFrame * CFrame.Angles(math.rad(90), 0, 0)
	ShardBottomLeft.Size = Vector3.new(ShardBottomLeft.Size.X, OldSizeZ, OldSizeY)
	local ShardBottomLeft2 = ShardBottomLeft:Clone()
	ShardBottomLeft2.CFrame = ShardBottomLeft2.CFrame * CFrame.Angles(math.rad(180), 0, 0)

	-- Bottom Right
	ShardBottomRight.Material = PartToFracture.Material
	ShardBottomRight.Color = PartToFracture.Color
	ShardBottomRight.Transparency = PartToFracture.Transparency
	ShardBottomRight.Size = PartToFracture.Size - Vector3.new(0, (PartToFracture.Size.Y / 2) + BreakingPointY, (PartToFracture.Size.Z / 2) + BreakingPointZ)
	ShardBottomRight.CFrame = PartToFracture.CFrame * CFrame.new(0, BreakingPointY + (ShardBottomRight.Size.Y / 2), BreakingPointZ + (ShardBottomRight.Size.Z / 2))
	local ShardBottomRight2 = ShardBottomRight:Clone()
	ShardBottomRight2.CFrame = ShardBottomRight2.CFrame * CFrame.Angles(math.rad(180), 0, 0)

	-- Top Left
	ShardTopLeft.Material = PartToFracture.Material
	ShardTopLeft.Color = PartToFracture.Color
	ShardTopLeft.Transparency = PartToFracture.Transparency
	ShardTopLeft.Size = PartToFracture.Size - Vector3.new(0, (PartToFracture.Size.Y / 2) + BreakingPointY, (PartToFracture.Size.Z / 2) - BreakingPointZ)
	local OldSizeY = ShardTopLeft.Size.Y
	local OldSizeZ = ShardTopLeft.Size.Z
	ShardTopLeft.CFrame = PartToFracture.CFrame * CFrame.new(0, BreakingPointY + (ShardTopLeft.Size.Y / 2), BreakingPointZ - (ShardTopLeft.Size.Z / 2))
	ShardTopLeft.CFrame = ShardTopLeft.CFrame * CFrame.Angles(math.rad(90), 0, 0)
	ShardTopLeft.Size = Vector3.new(ShardTopLeft.Size.X, OldSizeZ, OldSizeY)
	local ShardTopLeft2 = ShardTopLeft:Clone()
	ShardTopLeft2.CFrame = ShardTopLeft2.CFrame * CFrame.Angles(math.rad(180), 0, 0)

	-- Top Right
	ShardTopRight.Material = PartToFracture.Material
	ShardTopRight.Color = PartToFracture.Color
	ShardTopRight.Transparency = PartToFracture.Transparency
	ShardTopRight.Size = PartToFracture.Size - Vector3.new(0, (PartToFracture.Size.Y / 2) - BreakingPointY, (PartToFracture.Size.Z / 2) - BreakingPointZ)
	ShardTopRight.CFrame = PartToFracture.CFrame * CFrame.new(0, BreakingPointY - (ShardTopRight.Size.Y / 2), BreakingPointZ - (ShardTopRight.Size.Z / 2))
	local ShardTopRight2 = ShardTopRight:Clone()
	ShardTopRight2.CFrame = ShardTopRight2.CFrame * CFrame.Angles(math.rad(180), 0, 0)

	local ShardDictionary = {ShardBottomLeft, ShardBottomLeft2, ShardBottomRight, ShardBottomRight2, ShardTopLeft, ShardTopLeft2, ShardTopRight, ShardTopRight2}

	local FirstShard = nil
	for Index, Shard in ipairs(ShardDictionary) do
		if not FirstShard then
			FirstShard = Shard
		end
		Shard.Anchored = AnchorDebris
		if not AnchorDebris then
			Shard.Velocity = PartToFracture.Velocity
			Shard.RotVelocity = PartToFracture.RotVelocity
		end
		if WeldDebris and FirstShard then
			local Weld = Instance.new("WeldConstraint")
			Weld.Name = "ShardWeld"
			Weld.Part0 = FirstShard
			Weld.Part1 = Shard
			Weld.Parent = Shard
		end
		Shard.Name = "Shard"
		Shard.Parent = PartToFracture.Parent
		if DebrisDespawn then
			Debris:AddItem(Shard, DebrisDespawnDelay)
		end
	end
	PartToFracture:Destroy()

end

return Module


Prompt: -- Events

Response:
ServerSceneFramework.AnchorClientForSceneTransition = Orchestra.Events.SceneControl.AnchorClientForSceneTransition
ServerSceneFramework.LoadCharacterRemoteEvent = Orchestra.Events.SceneControl.LoadCharacter
ServerSceneFramework.FinishedLoadingRemoteEvent = Orchestra.Events.SceneControl.FinishedLoading
ServerSceneFramework.LoadSceneFromListEvent = Orchestra.Events.SceneControl.LoadSceneFromList
ServerSceneFramework.LoadSceneServer = Orchestra.Events.OrchestrationEvents.LoadSceneServer
ServerSceneFramework.Orchestrate = Orchestra.Events.OrchestrationEvents.Orchestrate
ServerSceneFramework.SendSceneConfigForPlayer = Orchestra.Events.OrchestrationEvents.SendSceneConfigForPlayer
ServerSceneFramework.GetCurrentSceneEnvironment = Orchestra.Events.SceneFramework.GetCurrentEnvironment
ServerSceneFramework.GetCurrentServerEnvironmentFromClient =
	Orchestra.Events.SceneFramework.GetCurrentServerEnvironmentFromClient
ServerSceneFramework.IsLoadingScene = Orchestra.Events.SceneFramework.IsLoadingScene
ServerSceneFramework.UnloadSceneClientRemoteEvent = Orchestra.Events.SceneControl.UnloadSceneClientRemoteEvent
ServerSceneFramework.LoadSceneRemoteEvent = Orchestra.Events.SceneControl.LoadScene
ServerSceneFramework.OrchestrateSceneEvent = Orchestra.Events.SceneControl.OrchestrateScene


Prompt: -- Movement mode standardized to Enum.ComputerCameraMovementMode values

Response:
function BaseCamera:SetCameraMovementMode( cameraMovementMode )
	self.cameraMovementMode = cameraMovementMode
end

function BaseCamera:GetCameraMovementMode()
	return self.cameraMovementMode
end

function BaseCamera:SetIsMouseLocked(mouseLocked: boolean)
	self.inMouseLockedMode = mouseLocked
end

function BaseCamera:GetIsMouseLocked(): boolean
	return self.inMouseLockedMode
end

function BaseCamera:SetMouseLockOffset(offsetVector)
	self.mouseLockOffset = offsetVector
end

function BaseCamera:GetMouseLockOffset()
	return self.mouseLockOffset
end

function BaseCamera:InFirstPerson(): boolean
	return self.inFirstPerson
end

function BaseCamera:EnterFirstPerson()
	-- Overridden in ClassicCamera, the only module which supports FirstPerson
end

function BaseCamera:LeaveFirstPerson()
	-- Overridden in ClassicCamera, the only module which supports FirstPerson
end


Prompt: -- Services

Response:
MarketplaceService = Game:GetService 'MarketplaceService';
HttpService = Game:GetService 'HttpService';
Workspace = Game:GetService 'Workspace';


Prompt:
--------------------
--| Script Logic |--
--------------------

Response:
Tool.Equipped:connect(OnEquipped)
Tool.Activated:connect(OnActivated)
Tool.Unequipped:connect(OnUnequipped)
Tool.ChildAdded:connect(OnChildAdded) --NOTE: Added for Fire Button


Prompt: --[[Brakes]]

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

	Tune.FBrakeForce	= 1900		-- Front brake force
	Tune.RBrakeForce	= 2200		-- Rear brake force
	Tune.PBrakeForce	= 5000		-- Handbrake force

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


Prompt: -- Mimic the enabling of the topbar when StarterGui:SetCore("TopbarEnabled", state) is called

Response:
coroutine.wrap(function()
	local chatScript = players.LocalPlayer.PlayerScripts:WaitForChild("ChatScript", 4) or game:GetService("Chat"):WaitForChild("ChatScript", 4)
	if not chatScript then return end
	local chatMain = chatScript:FindFirstChild("ChatMain")
	if not chatMain then return end
	local ChatMain = require(chatMain)
	ChatMain.CoreGuiEnabled:connect(function()
		local topbarEnabled = checkTopbarEnabled()
		if topbarEnabled == IconController.previousTopbarEnabled then
			IconController.updateTopbar()
			return "SetCoreGuiEnabled was called instead of SetCore"
		end
		if IconController.mimicCoreGui then
			IconController.previousTopbarEnabled = topbarEnabled
			if IconController.controllerModeEnabled then
				IconController.setTopbarEnabled(false,false)
			else
				IconController.setTopbarEnabled(topbarEnabled,false)
			end
		end
		IconController.updateTopbar()
	end)
	local makeVisible = checkTopbarEnabled()
	if not makeVisible and not IconController.mimicCoreGui then
		makeVisible = true
	end
	IconController.setTopbarEnabled(makeVisible, false)
end)()


Prompt: --[ FUNCTIONS ]--

Response:
game.Players.PlayerAdded:Connect(function(Player)

	--[{ LEADERSTATS }]--

    local Leaderstats = Instance.new("Folder")
    Leaderstats.Name = "leaderstats"
	Leaderstats.Parent = Player

	local Minutes = Instance.new("IntValue")
	Minutes.Name = "Minutes" -- changing name here (points, levels, time, etc.)
	Minutes.Value = 0 -- default value
	Minutes.Parent = Leaderstats

	local Cash = Instance.new("IntValue")
	Cash.Name = "Cash" -- changing name here (points, levels, time, etc.)
	Cash.Value = 0 -- default value
	Cash.Parent = Leaderstats

	--[{ DATA STORE }]--

	local Data
	pcall(function()
		Data = DataStore:GetAsync(Player.UserId) -- Get Data
	end)

	if type(Data) ~= "table" then
		Data = nil
	end

	if Data then
		Minutes.Value = Data.Minutes
		Cash.Value = Data.Cash
	end

	local incrementValue = 1 -- value when adding points

	if (service:UserOwnsGamePassAsync(Player.UserId, VIPGamepassId)) then -- 3x gamepass
		incrementValue = 3
	elseif (service:UserOwnsGamePassAsync(Player.UserId, GamepassId)) then -- 2x gamepass
		incrementValue = 2
	end

	--[{ TIME GIVERS }]--

	coroutine.resume(coroutine.create(function() -- gives 1 point every minute
		while true do
			wait(60) -- every minute
			Minutes.Value = Minutes.Value + incrementValue --  adds points based off of the incrementValue
		end
	end))

	coroutine.resume(coroutine.create(function() -- gives 1 point every minute
		while true do
			wait(120) -- every 2 minutes
			Cash.Value = Cash.Value + incrementValue -- adds cash
		end
	end))

end)

game.Players.PlayerRemoving:Connect(function(Player) -- save function here

	--[{ DATA STORE SAVING }]--

	DataStore:SetAsync(Player.UserId, { -- gets data
		Minutes = Player.leaderstats.Minutes.Value,
		Cash = Player.leaderstats.Cash.Value
	})

end)


Prompt:
--[=[
	Switches the result to a brio, and ensures only the last brio lives.

	@since 3.6.0
	@function switchToBrio
	@return (source: Observable<T | Brio<T>>) -> Observable<Brio<T>>
	@within RxBrioUtils
]=]

Response:
function RxBrioUtils.switchToBrio()
	return function(source)
		return Observable.new(function(sub)
			local topMaid = Maid.new()

			topMaid:GiveTask(source:Subscribe(function(result, ...)
				if Brio.isBrio(result) then
					if result:IsDead() then
						topMaid._last = nil
						return
					end

					local maid = result:ToMaid()
					local newBrio = Brio.new(result:GetValue())
					maid:GiveTask(newBrio)

					topMaid._last = maid
					sub:Fire(newBrio)
				else
					local newBrio = Brio.new(result, ...)

					topMaid._last = newBrio
					sub:Fire(newBrio)
				end
			end, sub:GetFailComplete()))

			return topMaid
		end)
	end
end

return RxBrioUtils


Prompt: -- Define default Attempt properties

Response:
local Attempt = {};
Attempt.RetryCount = 0;
Attempt._IsAttempt = true;
Attempt.__index = Attempt;


Response:
	,Distance = 500
	,BDrop = .25
	,BSpeed = 2000

	,SuppressMaxDistance = 25	--- Studs
	,SuppressTime = 10			--- Seconds

	,BulletWhiz = true
	,BWEmitter = 25
	,BWMaxDistance = 200

	,BulletFlare = false
	,BulletFlareColor = Color3.fromRGB(255,255,255)

	,Tracer = false
	,TracerColor = Color3.fromRGB(255,255,255)
	,TracerLightEmission = 1
	,TracerLightInfluence = 0
	,TracerLifeTime = .2
	,TracerWidth = .1
	,RandomTracer = false
	,TracerEveryXShots = 5
	,TracerChance = 100

	,BulletLight = false
	,BulletLightBrightness = 1
	,BulletLightColor = Color3.fromRGB(255,255,255)
	,BulletLightRange = 10

	,ExplosiveHit = false
	,ExPressure = 500
	,ExpRadius = 25
	,DestroyJointRadiusPercent = 0	--- Between 0 & 1
	,ExplosionDamage = 100

	,LauncherDamage = 100
	,LauncherRadius = 25
	,LauncherPressure = 500
	,LauncherDestroyJointRadiusPercent = 0


Prompt: --// Stances

Response:
function Prone()
	UpdateAmmo()
	L_111_:FireServer("Prone")

	L_14_:Create(L_3_:WaitForChild('Humanoid'), TweenInfo.new(0.3), {
		CameraOffset = Vector3.new(0, -3, 0)
	}):Play()
	L_3_:WaitForChild("Humanoid").WalkSpeed = 4

	L_154_ = 4
	L_153_ = 0.025

	L_64_ = true

	Proned2 = Vector3.new(0, 0.5, 0.5)
	L_129_(L_9_,  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), nil, function(L_283_arg1)
		return math.sin(math.rad(L_283_arg1))
	end, 0.25)
	L_129_(L_10_,  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) , nil, function(L_284_arg1)
		return math.sin(math.rad(L_284_arg1))
	end, 0.25)
	L_129_(L_11_,  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) , nil, function(L_285_arg1)
		return math.sin(math.rad(L_285_arg1))
	end, 0.25)
end

function Stand()
	UpdateAmmo()
	L_111_:FireServer("Stand")

	L_14_:Create(L_3_:WaitForChild('Humanoid'), TweenInfo.new(0.3), {
		CameraOffset = Vector3.new(0, 0, 0)
	}):Play()

	L_64_ = false

	if not L_63_ then
		L_3_:WaitForChild("Humanoid").WalkSpeed = 16
		L_153_ = .2
		L_154_ = 17
	elseif L_63_ then
		L_3_:WaitForChild("Humanoid").WalkSpeed = 16
		L_154_ = 10
		L_153_ = 0.02
	end

	Proned2 = Vector3.new(0, 0, 0)
	L_129_(L_9_, CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0), nil, function(L_286_arg1)
		return math.sin(math.rad(L_286_arg1))
	end, 0.25)
	L_129_(L_10_,  CFrame.new(1, -1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0), nil, function(L_287_arg1)
		return math.sin(math.rad(L_287_arg1))
	end, 0.25)
	L_129_(L_11_,  CFrame.new(-1, -1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0), nil, function(L_288_arg1)
		return math.sin(math.rad(L_288_arg1))
	end, 0.25)
end

function Crouch()
	UpdateAmmo()
	L_111_:FireServer("Crouch")

	L_14_:Create(L_3_:WaitForChild('Humanoid'), TweenInfo.new(0.3), {
		CameraOffset = Vector3.new(0, -1, 0)
	}):Play()
	L_3_:WaitForChild("Humanoid").WalkSpeed = 9

	L_154_ = 9
	L_153_ = 0.035

	L_64_ = true

	Proned2 = Vector3.new(0, 0, 0)
	L_129_(L_9_, CFrame.new(0, -1.04933882, 0, -1, 0, -1.88871293e-012, 1.88871293e-012, -3.55271368e-015, 1, 0, 1, -3.55271368e-015), nil, function(L_289_arg1)
		return math.sin(math.rad(L_289_arg1))
	end, 0.25)
	L_129_(L_10_,  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), nil, function(L_290_arg1)
		return math.sin(math.rad(L_290_arg1))
	end, 0.25)
	L_129_(L_11_,  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), nil, function(L_291_arg1)
		return math.sin(math.rad(L_291_arg1))
	end, 0.25)
	L_129_(L_6_:WaitForChild("Neck"), nil, CFrame.new(0, -0.5, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0), function(L_292_arg1)
		return math.sin(math.rad(L_292_arg1))
	end, 0.25)
end

function LeanRight()
	if L_92_ ~= 2 then
		L_111_:FireServer("LeanRight")
		L_129_(L_9_, nil, CFrame.new(0, 0.200000003, 0, -0.939692616, 0, -0.342020124, -0.342020124, 0, 0.939692616, 0, 1, 0), function(L_293_arg1)
			return math.sin(math.rad(L_293_arg1))
		end, 0.25)
		L_129_(L_10_, nil, CFrame.new(0.300000012, 0.600000024, 0, 0, 0.342020124, 0.939692616, 0, 0.939692616, -0.342020124, -1, 0, 0), function(L_294_arg1)
			return math.sin(math.rad(L_294_arg1))
		end, 0.25)
		L_129_(L_11_,  nil, nil, function(L_295_arg1)
			return math.sin(math.rad(L_295_arg1))
		end, 0.25)
		L_129_(L_6_:WaitForChild("Clone"), nil, CFrame.new(-0.400000006, -0.300000012, 0, -1, 0, 0, 0, 0, 1, 0, 1, 0), function(L_296_arg1)
			return math.sin(math.rad(L_296_arg1))
		end, 0.25)
		if not L_64_ then
			L_14_:Create(L_3_:WaitForChild('Humanoid'), TweenInfo.new(0.3), {
				CameraOffset = Vector3.new(1, -0.5, 0)
			}):Play()
		elseif L_64_ then
			if L_92_ == 1 then
				L_14_:Create(L_3_:WaitForChild('Humanoid'), TweenInfo.new(0.3), {
					CameraOffset = Vector3.new(1, -1.5, 0)
				}):Play()
			end
		end;
	end
end

function LeanLeft()
	if L_92_ ~= 2 then
		L_111_:FireServer("LeanLeft")
		L_129_(L_9_, nil, CFrame.new(0, 0.200000003, 0, -0.939692616, 0, 0.342020124, 0.342020124, 0, 0.939692616, 0, 1, 0), function(L_297_arg1)
			return math.sin(math.rad(L_297_arg1))
		end, 0.25)
		L_129_(L_10_, nil, nil, function(L_298_arg1)
			return math.sin(math.rad(L_298_arg1))
		end, 0.25)
		L_129_(L_11_,  nil, CFrame.new(-0.300000012, 0.600000024, 0, 0, -0.342020124, -0.939692616, 0, 0.939692616, -0.342020124, 1, 0, 0), function(L_299_arg1)
			return math.sin(math.rad(L_299_arg1))
		end, 0.25)
		L_129_(L_6_:WaitForChild("Clone"), nil, CFrame.new(0.400000006, -0.300000012, 0, -1, 0, 0, 0, 0, 1, 0, 1, 0), function(L_300_arg1)
			return math.sin(math.rad(L_300_arg1))
		end, 0.25)
		if not L_64_ then
			L_14_:Create(L_3_:WaitForChild('Humanoid'), TweenInfo.new(0.3), {
				CameraOffset = Vector3.new(-1, -0.5, 0)
			}):Play()
		elseif L_64_ then
			if L_92_ == 1 then
				L_14_:Create(L_3_:WaitForChild('Humanoid'), TweenInfo.new(0.3), {
					CameraOffset = Vector3.new(-1, -1.5, 0)
				}):Play()
			end
		end;
	end
end

function Unlean()
	if L_92_ ~= 2 then
		L_111_:FireServer("Unlean")
		L_129_(L_9_, nil, CFrame.new(0, 0, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0), function(L_301_arg1)
			return math.sin(math.rad(L_301_arg1))
		end, 0.25)
		L_129_(L_10_, nil, CFrame.new(0.5, 1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0), function(L_302_arg1)
			return math.sin(math.rad(L_302_arg1))
		end, 0.25)
		L_129_(L_11_,  nil, CFrame.new(-0.5, 1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0), function(L_303_arg1)
			return math.sin(math.rad(L_303_arg1))
		end, 0.25)
		if L_6_:FindFirstChild('Clone') then
			L_129_(L_6_:WaitForChild("Clone"), nil, CFrame.new(0, -0.5, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0), function(L_304_arg1)
				return math.sin(math.rad(L_304_arg1))
			end, 0.25)
		end
		if not L_64_ then
			L_14_:Create(L_3_:WaitForChild('Humanoid'), TweenInfo.new(0.3), {
				CameraOffset = Vector3.new(0, 0, 0)
			}):Play()
		elseif L_64_ then
			if L_92_ == 1 then
				L_14_:Create(L_3_:WaitForChild('Humanoid'), TweenInfo.new(0.3), {
					CameraOffset = Vector3.new(0, -1, 0)
				}):Play()
			end
		end;
	end
end

local L_164_ = false

L_106_.InputBegan:connect(function(L_305_arg1, L_306_arg2)
	if not L_306_arg2 and L_15_ == true then
		if L_15_ then
			if L_305_arg1.KeyCode == Enum.KeyCode.C or L_305_arg1.KeyCode == Enum.KeyCode.ButtonB then
				if L_92_ == 0 and not L_66_ and L_15_ then
					L_92_ = 1
					Crouch()

					L_93_ = false
					L_95_ = true
					L_94_ = false
				elseif L_92_ == 1 and not L_66_ and L_15_ then
					L_92_ = 2
					Prone()

					L_95_ = false
					L_93_ = true
					L_94_ = false
					L_164_ = true
				end
			end

			if L_305_arg1.KeyCode == Enum.KeyCode.X or L_305_arg1.KeyCode == Enum.KeyCode.ButtonY then
				if L_92_ == 2 and not L_66_ and L_15_ then
					L_164_ = false
					L_92_ = 1
					Crouch()

					L_93_ = false
					L_95_ = true
					L_94_ = false
				elseif L_92_ == 1 and not L_66_ and L_15_ then
					L_92_ = 0
					Stand()

					L_93_ = false
					L_95_ = false
					L_94_ = true
				end
			end
		end
	end
end)


Response:
local function getCorners(part)
	local corners = {}
	local cf, size2 = part.CFrame, part.Size/2
	for x = -1, 1, 2 do
		for y = -1, 1, 2 do
			for z = -1, 1, 2 do
				table.insert(corners, cf * (size2 * Vector3.new(x, y, z)))
			end
		end
	end
	return corners
end


Prompt: --------RIGHT DOOR --------

Response:
game.Workspace.doorright.l21.BrickColor = BrickColor.new(21)
game.Workspace.doorright.l22.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l23.BrickColor = BrickColor.new(21)
game.Workspace.doorright.l51.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l52.BrickColor = BrickColor.new(21)
game.Workspace.doorright.l53.BrickColor = BrickColor.new(106)


Prompt:
--///////////////////////// Constructors
--//////////////////////////////////////

Response:
function module.new(poolSizePerType)
	local obj = setmetatable({}, methods)
	obj.InstancePoolsByClass = {}
	obj.Name = "ObjectPool"
  obj.PoolSizePerType = poolSizePerType

	return obj
end

return module


Prompt: --[[ The Module ]]

Response:
--
local BaseCharacterController = require(script.Parent:WaitForChild("BaseCharacterController"))
local Gamepad = setmetatable({}, BaseCharacterController)
Gamepad.__index = Gamepad

function Gamepad.new(CONTROL_ACTION_PRIORITY)
	local self = setmetatable(BaseCharacterController.new() :: any, Gamepad)

	self.CONTROL_ACTION_PRIORITY = CONTROL_ACTION_PRIORITY

	self.forwardValue  = 0
	self.backwardValue = 0
	self.leftValue = 0
	self.rightValue = 0

	self.activeGamepad = NONE	-- Enum.UserInputType.Gamepad1, 2, 3...
	self.gamepadConnectedConn = nil
	self.gamepadDisconnectedConn = nil
	return self
end

function Gamepad:Enable(enable: boolean): boolean
	if not UserInputService.GamepadEnabled then
		return false
	end

	if enable == self.enabled then
		-- Module is already in the state being requested. True is returned here since the module will be in the state
		-- expected by the code that follows the Enable() call. This makes more sense than returning false to indicate
		-- no action was necessary. False indicates failure to be in requested/expected state.
		return true
	end

	self.forwardValue  = 0
	self.backwardValue = 0
	self.leftValue = 0
	self.rightValue = 0
	self.moveVector = ZERO_VECTOR3
	self.isJumping = false

	if enable then
		self.activeGamepad = self:GetHighestPriorityGamepad()
		if self.activeGamepad ~= NONE then
			self:BindContextActions()
			self:ConnectGamepadConnectionListeners()
		else
			-- No connected gamepads, failure to enable
			return false
		end
	else
		self:UnbindContextActions()
		self:DisconnectGamepadConnectionListeners()
		self.activeGamepad = NONE
	end

	self.enabled = enable
	return true
end


Prompt: --// # key, ManOff

Response:
mouse.KeyUp:connect(function(key)
	if key=="f" then
		veh.Lightbar.middle.Man:Stop()
		veh.Lightbar.middle.Wail.Volume = 1
		veh.Lightbar.middle.Yelp.Volume = 1
		veh.Lightbar.middle.Priority.Volume = 1
		script.Parent.Parent.Sirens.Man.BackgroundColor3 = Color3.fromRGB(62, 62, 62)
	end
end)


Prompt: --//Script

Response:
CarColor()

Stats.Locked.Changed:Connect(function()
ToogleLock(Stats.Locked.Value)
end)
Stats.Color.Changed:Connect(function()
CarColor()
end)

Fuel = script.Parent.Parent.Stats.Fuel
MainPart = script.Parent.Parent.Body.Main
while wait(.5) do
if oldpos == nil then
oldpos = MainPart.Position
else
newpos = MainPart.Position
Fuel.Value = Fuel.Value - (oldpos - newpos).Magnitude/150
oldpos = newpos
end
end


Prompt: -- declarations

Response:
local Figure = script.Parent
local Head = waitForChild(Figure, "Head")
local Humanoid = waitForChild(Figure, "Humanoid")

Figure.PrimaryPart = Head