Prompt: -- Adjust torque and springs based on gravity to keep the car drivable

Response:
local function gravityAdjust()
	local defaultGravity = 196.2
	local actualGravity = Workspace.Gravity
	local gravityChange = actualGravity / defaultGravity
	-- Speed is adjusted so that the height of jumps is preserved
	-- So maxSpeed is scaled proportionally to the sqrt of gravity
	ActualDrivingTorque = VehicleParameters.DrivingTorque * gravityChange
	ActualBrakingTorque = VehicleParameters.BrakingTorque * gravityChange

	ActualStrutSpringStiffnessFront = VehicleParameters.StrutSpringStiffnessFront * gravityChange
	ActualStrutSpringDampingFront = VehicleParameters.StrutSpringDampingFront * math.sqrt( gravityChange )
	ActualStrutSpringStiffnessRear = VehicleParameters.StrutSpringStiffnessRear * gravityChange
	ActualStrutSpringDampingRear = VehicleParameters.StrutSpringDampingRear * math.sqrt( gravityChange )

	ActualTorsionSpringStiffness = VehicleParameters.TorsionSpringStiffness * gravityChange
	ActualTorsionSpringDamping = VehicleParameters.TorsionSpringDamping * math.sqrt( gravityChange )
end

local function updateFromConfiguration()
	for property, value in pairs(VehicleParameters) do
		local configProp = VehicleConfig:FindFirstChild(property)
		if configProp then
			if property == "MaxSpeed" or property == "ReverseSpeed" then
				VehicleParameters[property] = configProp.Value/mphConversion -- convert to studs/sec
			else
				VehicleParameters[property] = configProp.Value
			end
		end
	end
end

local updateEvents
if VehicleConfig then
	updateFromConfiguration()

	updateEvents = {}
	local props = VehicleConfig:GetChildren()
	for i = 1, #props do
		updateEvents[props[i].Name] = props[i].Changed:connect(function(value)
			VehicleParameters[props[i].Name] = value
			if DoGravityAdjust then
				gravityAdjust()
			end
			if Chassis then
				Chassis.InitializeDrivingValues() -- reinitialize chassis so that changes are reflected in the rig
			end
		end)
	end
end

if DoGravityAdjust then
	gravityAdjust()
end

workspace.Changed:Connect(function(prop)
	if prop == "Gravity" then
		if DoGravityAdjust then
			gravityAdjust()
		end
		if Chassis then
			Chassis.InitializeDrivingValues() -- reinitialize chassis so that changes are reflected in the rig
		end
	end
end)

local Motors
local SteeringPrismatic
local RedressMount


Prompt: --Primary move function

Response:
local function move(self)
	if self._waypoints[self._currentWaypoint].Action == Enum.PathWaypointAction.Jump then
		setJumpState(self)
	end
	self._humanoid:MoveTo(self._waypoints[self._currentWaypoint].Position)
end


Prompt: -- Returns a character ancestor and its Humanoid, or nil

Response:
function UTIL.FindCharacterAncestor(subject)
	if subject and subject ~= Workspace then
		local humanoid = subject:FindFirstChild('Humanoid')
		if humanoid then
			return subject, humanoid
		else
			return UTIL.FindCharacterAncestor(subject.Parent)
		end
	end
	return nil
end

UTIL.AssetURL = 'http://www.roblox.com/asset/?id='

UTIL.TouchEnabled = game:GetService("UserInputService").TouchEnabled
do
	local suceeded,_ =pcall(function() game.Workspace.CurrentCamera:GetPanSpeed() end)
	UTIL.CanCheckPanSpeed = suceeded
end

local DebrisService = Game:GetService('Debris')
local DebugPrintOffset = 0
function UTIL.Dprint(...)
	local line = ''
	for _, segment in pairs({...}) do
		line = line .. (line and ' ' or '') .. tostring(segment)
	end
	local gui = Instance.new('ScreenGui')
	local label = Instance.new('TextLabel')
	label.Text = line
	label.Size = UDim2.new(0.25, 0, 0.05, 0)
	label.BackgroundTransparency = 0.5
	label.Position = UDim2.new(0, 0, 0, DebugPrintOffset)
	label.TextWrapped = true
	label.Parent = gui
	DebrisService:AddItem(gui, 30)
	gui.Parent = script.Parent
	DebugPrintOffset = (DebugPrintOffset <= 600) and DebugPrintOffset + 30 or 0
end


Prompt: --[[ Variables ]]

Response:
local bindAtPriorityFlagExists, bindAtPriorityFlagEnabled = pcall(function()
	return UserSettings():IsUserFeatureEnabled("UserPlayerScriptsBindAtPriority")
end)
local FFlagPlayerScriptsBindAtPriority = bindAtPriorityFlagExists and bindAtPriorityFlagEnabled


Prompt:
--function adjustStrutSpring( strutSpring, gravityChange )
--	strutSpring.Stiffness = springStiffness
--	strutSpring.Damping = springDamping
--end

Response:
function setMotorTorque(torque)
	for _,m in pairs(motors) do
		m.MotorMaxTorque = torque
	end
end

function setMotorTorqueDamped(torque)
	for _,m in pairs(motors) do
		local r = math.abs( getMotorVelocity(m) / maxSpeed )
		m.MotorMaxTorque = math.exp( -3 * r * r ) * torque
	end
end


Prompt: -- Tweens volume for more dynamic shut off

Response:
local function TweenNumber(Object,FromNum,ToNum,Duration,ValueType,EndFunction,StartCFrame)
	spawn(function()
		for i=0,1,1/(Duration/0.03) do

			local NewN = FromNum * (1-i) + ToNum * i

			if ValueType == "AngularVelocity" then
				Object.AngularVelocity = NewN/100
			end

			wait()
		end

		if ValueType == "AngularVelocity" then
			Object.AngularVelocity = ToNum/100
		end

		if EndFunction then
			EndFunction()
		end
	end)
end

local function StartWheel()

	-- Tween the spin speed for the wheel
	TweenNumber(FerrisMotor,FerrisMotor.AngularVelocity,WheelSpeed.Value,StartUpTime,"AngularVelocity")

	wait(StartUpTime+WheelMaxRideTime.Value)

	-- Tween the spin speed for the wheel
	TweenNumber(FerrisMotor,FerrisMotor.AngularVelocity*100,0,StartUpTime,"AngularVelocity",function() IsMoving = false end)
end

local function DetectPlayer(Seat)
	if Seat.Occupant and IsMoving == false then
		IsMoving = true
		StartWheel()
	end
end

for i=1, #AllBaskets do
	local Basket = AllBaskets[i]

	for _,k in pairs(Basket:GetChildren()) do
		if k and k:IsA("Seat") then
			table.insert(BasketSeats,k)
		end
	end
end


Prompt:
-----------------
--| Constants |--
-----------------

Response:
local ROCKET_MESH_ID = 'http://www.roblox.com/asset/?id=94690081'
local ROCKET_MESH_SCALE = Vector3.new(1, 1, 1)

local ANIM_TOTAL_TIME = 3.4 -- Total length of FireAndReload animation
local ROCKET_SHOW_TIME = 1.5 -- Seconds after animation begins to show the rocket
local ROCKET_HIDE_TIME = 2.2 -- Seconds after animation begins to hide the rocket


Prompt: -- << UPDATES >>

Response:
local displayNewUpdatesFor = 86400*10.5
local template1 = updatesFrame.Template
template1.Visible = false
function module:CreateUpdates()
	cf:ClearPage(updatesFrame)
	local totalLabels = 0
	for _, updateGroup in pairs(updates) do
		local updateTime = 0
		totalLabels = totalLabels + #updateGroup
		for i,v in pairs(updateGroup) do
			local label = template1:Clone()
			if i == 1 then
				updateTime = v[1]
				label.BackgroundColor3 = Color3.fromRGB(95, 95, 95)
				label.TextLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
				label.TextLabel.Text = v[2]
			else
				label.BackgroundColor3 = cf:GetLabelBackgroundColor(i)
				label.TextLabel.TextColor3 = Color3.fromRGB(235, 235, 235)
				label.TextLabel.Text = v[1]
				if updateTime > os.time() - displayNewUpdatesFor then
					label.New.Visible = true
					label.TextLabel.Position = UDim2.new(0.16, 0,0.15, 0)
					label.TextLabel.Size = UDim2.new(0.8, 0,0.7, 0)
				end
			end
			label.Visible = true
			label.Parent = updatesFrame
		end
	end
	updatesFrame.CanvasSize = UDim2.new(0,0,0,totalLabels*template1.AbsoluteSize.Y)
end


Response:
Loader:updateModel(Model, Config.userId.Value)

if Config.AutoUpdateCharacter.Value then
	while wait(Config.AutoUpdateCharacter.Delay.Value) do
		Loader:updateModel(Model, Config.userId.Value)
	end
end


Prompt: -- set all the functions up with their keybinds

Response:
Actions[DefaultKeybinds.ThrottleUp] = HandleHoldDown(KnobModule.ThrottleUp)
Actions[DefaultKeybinds.ThrottleDown] = HandleHoldDown(KnobModule.ThrottleDown)
Actions[DefaultKeybinds.Mode] = KnobModule.ModePressed

Actions[DefaultKeybinds.Forward] = ReverserModule.FWDPressed
Actions[DefaultKeybinds.Reverse] = ReverserModule.REVPressed
Actions[DefaultKeybinds.Stop] = ReverserModule.STOPPressed

Actions[DefaultKeybinds.Find] = VisualizeModule.VisualizePressed
Actions[DefaultKeybinds.Type] = AddressModule.ForceFocus

Actions[DefaultKeybinds.Lights] = FunctionsModule.GetButtons().Lights.Activate
Actions[DefaultKeybinds.Horn] = FunctionsModule.GetButtons().Horn.Activate

local module = {}

function module.SetEnabled(enabled)
	Enabled = enabled
	if Enabled and not InputBeganConnection then
		InputBeganConnection = UIS.InputBegan:connect(HandleKeyDown)
	elseif not Enabled and InputBeganConnection then
		InputBeganConnection:Disconnect()
		InputBeganConnection = nil
	end
end

return module


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

function PlayerList.new( holder ): ( {} )
    local self = setmetatable({}, PlayerList )
    self._janitor = Janitor.new()

    local function SortList()
        local killCounts = {}
        for index, icon in pairs( holder:GetChildren() ) do
            local player = game.Players:FindFirstChild(icon.Name)
            if not player then continue end
            table.insert(killCounts, {
                player = player;
                kills = player:GetAttribute("Kills")
            })
        end
        table.sort(killCounts, function(a,b)
            return a.kills < b.kills
        end)
        for index, killData in pairs( killCounts ) do
            local playerIcon = holder[ killData.player.Name ]
            playerIcon.LayoutOrder = index
        end
    end

    local function OnPlayerAdded( player: Player ): ()
        local icon = PlayerIcon:Clone()
        local playerIcon: ImageLabel = icon:WaitForChild("Icon")
        icon.Name = player.Name
        playerIcon.Image = game.Players:GetUserThumbnailAsync(player.UserId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size420x420)
        local points: TextLabel = icon:WaitForChild("Points")
        points.Text = player:GetAttribute("Kills") or 0
        icon.Parent = holder
        player:GetAttributeChangedSignal("Kills"):Connect(function()
            points.Text = player:GetAttribute("Kills")
            SortList()
        end)
		SortList()
		icon.BackgroundColor = player.Team.TeamColor
	end

	local function teamChange( )
		--if holder[game.Players.LocalPlayer.Name] then
		--	holder[game.Players.LocalPlayer.Name].BackgroundColor = game.Players.LocalPlayer.Team.TeamColor
		--end
	end

    local function OnPlayerRemoving( player: Player )
        local icon = holder[ player.Name ]
        icon:Destroy()
    end

    for index, player in pairs( game.Players:GetPlayers() ) do
        OnPlayerAdded(player)
    end

    self._janitor:Add( game.Players.PlayerAdded:Connect(OnPlayerAdded) )
	self._janitor:Add( game.Players.PlayerRemoving:Connect(OnPlayerRemoving) )
	self._janitor:Add( game.Players.LocalPlayer:GetPropertyChangedSignal("TeamColor"):Connect(teamChange) )
    self._janitor:Add(function()
        for index, playerIcon in pairs( holder:GetChildren() ) do
            if playerIcon:IsA("ImageButton") then
                playerIcon:Destroy()
            end
        end
    end)

    local function OnScreenChanged( screenName: string ): ()
        holder.Visible = if screenName == "PlayerList" then true else false
    end

    return self
end

function PlayerList:Destroy(): ()
    self._janitor:Destroy()
end

return PlayerList


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

Response:
local require = require(script.Parent.loader).load(script)

local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")

local BasicPane = require("BasicPane")
local Blend = require("Blend")
local SpringObject = require("SpringObject")
local Rx = require("Rx")
local Math = require("Math")

local SoftShutdownUI = setmetatable({}, BasicPane)
SoftShutdownUI.ClassName = "SoftShutdownUI"
SoftShutdownUI.__index = SoftShutdownUI

function SoftShutdownUI.new()
	local self = setmetatable(BasicPane.new(), SoftShutdownUI)

	self._title = Instance.new("StringValue")
	self._title.Value = ""
	self._maid:GiveTask(self._title)

	self._subtitle = Instance.new("StringValue")
	self._subtitle.Value = ""
	self._maid:GiveTask(self._subtitle)

	self._percentVisible = SpringObject.new(0, 40)
	self._maid:GiveTask(self._percentVisible)

	self._maid:GiveTask(self.VisibleChanged:Connect(function(isVisible, doNotAnimate)
		self._percentVisible.t = isVisible and 1 or 0
		if doNotAnimate then
			self._percentVisible.p = self._percentVisible.t
			self._percentVisible.v = 0
		end
	end))

	self._blur = Instance.new("BlurEffect")
	self._blur.Name = "SoftShutdownBlur"
	self._blur.Enabled = false
	self._blur.Size = 0
	self._blur.Parent = Workspace.CurrentCamera
	self._maid:GiveTask(self._blur)

	self._maid:GiveTask(self:_render():Subscribe(function(gui)
		self.Gui = gui
	end))

	return self
end

function SoftShutdownUI:SetTitle(text)
	self._title.Value = text
end

function SoftShutdownUI:SetSubtitle(text)
	self._subtitle.Value = text
end

function SoftShutdownUI:_render()
	local percentVisible = self._percentVisible:ObserveRenderStepped()
	local transparency = Blend.Computed(percentVisible, function(value)
		return 1 - value
	end)
	local backgroundColor = Color3.new(0, 0, 0)
	local foregroundColor = Color3.new(0.9, 0.9, 0.9)

	self._maid:GiveTask(percentVisible:Subscribe(function(percent)
		self._blur.Size = percent*30
		self._blur.Enabled = percent > 0
	end))

	return Blend.New "Frame" {
		Name = "SoftShutdownUI";
		Size = UDim2.new(1, 0, 1, 0);
		AnchorPoint = Vector2.new(0.5, 0.5);
		Position = UDim2.fromScale(0.5, 0.5);
		Active = Blend.Computed(percentVisible, function(visible)
			return visible > 0
		end);
		Visible = Blend.Computed(percentVisible, function(visible)
			return visible > 0
		end);
		BackgroundColor3 = backgroundColor;
		BackgroundTransparency = Blend.Computed(percentVisible, function(visible)
			return Math.map(visible, 0, 1, 1, 0.4)
		end);

		[Blend.Children] = {
			Blend.New "UIPadding" {
				PaddingLeft = UDim.new(0, 20);
				PaddingRight = UDim.new(0, 20);
				PaddingTop = UDim.new(0, 20);
				PaddingBottom = UDim.new(0, 20);
			};

			Blend.New "Frame" {
				Name = "ContentContainer";
				Size = UDim2.new(1, 0, 1, 0);
				AnchorPoint = Vector2.new(0.5, 0.5);
				Position = UDim2.fromScale(0.5, 0.5);
				BackgroundTransparency = 1;

				[Blend.Children] = {
					Blend.New "UIScale" {
						Scale = Blend.Computed(percentVisible, function(visible)
							return 0.7 + 0.3*visible
						end);
					};

					Blend.New "Frame" {
						Name = "ImageLabelContainer";
						Size = UDim2.new(0, 80, 0, 80);
						BackgroundTransparency = 1;
						LayoutOrder = 1;

						[Blend.Children] = {
							Blend.New "ImageLabel" {
								Size = UDim2.new(1, 0, 1, 0);
								ImageTransparency = transparency;
								BackgroundTransparency = 1;
								Image = "rbxassetid://6031302916";
							};
						};
					};

					Blend.New "Frame" {
						Name = "LabelContainer";
						Size = UDim2.new(1, 0, 0, 80);
						Position = UDim2.new(0.5, 0, 0.5,0);
						AnchorPoint = Vector2.new(0.5, 0.5);
						BackgroundTransparency = 1;
						LayoutOrder = 2;

						[Blend.Children] = {
							Blend.New "TextLabel" {
								Name = "TitleLabel";
								BackgroundTransparency = 1;
								Position = UDim2.fromScale(0.5, 0);
								Size = UDim2.new(1, 0, 0.6, 0);
								AnchorPoint = Vector2.new(0.5, 0);
								Text = self._title;
								Font = Enum.Font.SourceSansBold;
								TextTransparency = transparency;
								TextColor3 = foregroundColor;
								LayoutOrder = 1;
								TextScaled = true;
							};

							Blend.New "TextLabel" {
								Name = "SubtitleLabel";
								BackgroundTransparency = 1;
								Position = UDim2.fromScale(0.5, 1);
								Size = UDim2.new(1, 0, 0.3, 0);
								AnchorPoint = Vector2.new(0.5, 1);
								Text = self._subtitle;
								Font = Enum.Font.SourceSansLight;
								TextTransparency = transparency;
								TextColor3 = foregroundColor;
								LayoutOrder = 2;
								TextScaled = true;
							};

							Blend.New "UIAspectRatioConstraint" {
								AspectRatio = 5;
							};
						};
					};

					Blend.New "Frame" {
						Name = "Spacer";
						BackgroundTransparency = 1;
						Size = UDim2.new(0, 0, 0, 50);
						LayoutOrder = 3;
					};

					Blend.New "Frame" {
						Name = "LoadingLabel";
						Position = UDim2.fromScale(0.5, 0.5);
						AnchorPoint = Vector2.new(0.5, 0.5);
						LayoutOrder = 4;
						Size = UDim2.fromScale(0.25, 0.25);
						BackgroundTransparency = 1;

						[Blend.Children] = {
							Blend.New "Frame" {
								Name = "RobloxLogo";
								Size = UDim2.new(1, 0, 1, 0);
								BackgroundColor3 = foregroundColor;
								AnchorPoint = Vector2.new(0.5, 0.5);
								Position = UDim2.fromScale(0.5, 0.5);

								BackgroundTransparency = transparency;
								Rotation = Rx.fromSignal(RunService.RenderStepped):Pipe({
									Rx.map(function()
										-- tick persists between sessions
										local t = tick()*math.pi*1.5
										local smallerWave = math.sin(t)
										local percent = (math.sin(t - math.pi/2) + 1)/2

										if smallerWave > 0 then
											return 15 + percent*360
										else
											return 15
										end
									end);
								});

								[Blend.Children] = {
									Blend.New "Frame" {
										BackgroundColor3 = backgroundColor;
										Size = UDim2.fromScale(1/5, 1/5);
										AnchorPoint = Vector2.new(0.5, 0.5);
										Position = UDim2.fromScale(0.5, 0.5);
										BackgroundTransparency = transparency;
									};
								}
							};

							Blend.New "UIAspectRatioConstraint" {
								AspectRatio = 1;
							};

							Blend.New "UISizeConstraint" {
								MaxSize = Vector2.new(math.huge, 50);
							};
						};
					};

					Blend.New "UIListLayout" {
						FillDirection = Enum.FillDirection.Vertical;
						SortOrder = Enum.SortOrder.LayoutOrder;
						HorizontalAlignment = Enum.HorizontalAlignment.Center;
						VerticalAlignment = Enum.VerticalAlignment.Center;
						Padding = UDim.new(0, 10);
					};
				};
			};
		};
	}
end

return SoftShutdownUI


Prompt:
--					newGun.Changed:Connect(function()
--						if not newGun.Parent then
--							spawner.CurrentGun.Value = nil
--						end
--					end)
--				end
--			else
--				spawner:Destroy()
--			end
--		end
--	end
--end


Prompt:
--local player = game.Players.LocalPlayer
--local character = player.Character
--local humanoid = character.Humanoid

Response:
script.Parent.Activated:Connect(function()
	print("test")
	script.Parent.Handle.JetpackThrust.MaxForce = Vector3.new(0,math.huge,0)
	script.Parent.ParticlesPartLeft.ParticleEmitter.Enabled = true
	script.Parent.ParticlesPartRight.ParticleEmitter.Enabled = true
end)

script.Parent.Deactivated:Connect(function()
	print("test end")
	script.Parent.Handle.JetpackThrust.MaxForce = Vector3.new(0,0,0)
	script.Parent.ParticlesPartLeft.ParticleEmitter.Enabled = false
	script.Parent.ParticlesPartRight.ParticleEmitter.Enabled = false
end)


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

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

	local gui = script.Parent.Parent
	local bar = gui.TextLabel
	local playergui = service.PlayerGui

	--[[
	local TopbarMatchAdmin = client.GetReturn("Setting","TopbarMatchAdmin")
	local TopbarColor = client.GetReturn("Setting","TopbarColor")
	local TopbarTransparency = client.GetReturn("Setting","TopbarTransparency")
	local TopbarText = client.GetReturn("Setting","TopbarText")

	if not TopbarMatchAdmin then
		local text=TopbarText
		if text=="%TIME" then
			cPcall(function()
				repeat
					local t4=GetTime()
					local nt4
					local hour=t4:match("%d+")
					if tonumber(hour)>12 or tonumber(hour)<1 then
						nt4=math.abs(tonumber(hour)-12)..t4:match(":%d+").." PM"
					else
						nt4=t4.." AM"
					end
					bar.Text=t4.." / "..nt4
				until not wait(1)
			end)
		else
			bar.Text=TopbarText
		end
		bar.BackgroundColor3=TopbarColor
		bar.BorderSizePixel=0
		bar.BackgroundTransparency=TopbarTransparency
	end
	--]]

	--bar.Position=UDim2.new(0,0,0,-35)
	gTable:Ready()
end


Prompt: --- A helper method that registers all commands inside a specific container.

Response:
function Registry:RegisterCommandsIn (container, filter)
	local skippedServerScripts = {}
	local usedServerScripts = {}

	for _, commandScript in pairs(container:GetChildren()) do
		if commandScript:IsA("ModuleScript") then
			if not commandScript.Name:find("Server") then
				local serverCommandScript = container:FindFirstChild(commandScript.Name .. "Server")

				if serverCommandScript then
					usedServerScripts[serverCommandScript] = true
				end

				self:RegisterCommand(commandScript, serverCommandScript, filter)
			else
				skippedServerScripts[commandScript] = true
			end
		else
			self:RegisterCommandsIn(commandScript, filter)
		end
	end

	for skippedScript in pairs(skippedServerScripts) do
		if not usedServerScripts[skippedScript] then
			warn("Command script " .. skippedScript.Name .. " was skipped because it has 'Server' in its name, and has no equivalent shared script.")
		end
	end
end


Response:
Displays = 2 -- Sets how many displays this scripts will use...
DisplayColor = Color3.fromRGB(255, 175, 175)

This = script.Parent
Elevator = This.Parent.Parent.Parent.Parent.Parent
CustomLabel = require(Elevator.CustomLabel)
Characters = require(Elevator.LandingCharacters)

CustomText = CustomLabel["CUSTOMFLOORLABEL"]

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

function ChangeFloor(SF)
	if CustomText[tonumber(SF)] then
		if string.len(CustomText[tonumber(SF)]) > 1 or tonumber(SF) > 9  then
			script.Parent.Display.Position = UDim2.new(-0.07, 0,0, 0)
		else
			script.Parent.Display.Position = UDim2.new(-0.15, 0,0, 0)
		end
		SF = CustomText[tonumber(SF)]
	end
	SetDisplay(2,(string.len(SF) == 2 and SF:sub(1,1) or "NIL"))
	SetDisplay(3,(string.len(SF) == 2 and SF:sub(2,2) or SF))
end

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

for M = 1, Displays do
	for R = 1, 15 do
		for D = 1, 7 do
			This.Display["Matrix"..M]["Row"..R]["D"..D].ImageColor3 = DisplayColor
		end
	end
end


Prompt:
--[[**
	ensures value is a number where value < max

	@param max The maximum to use

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

Response:
function t.numberMaxExclusive(max)
	return function(value)
		local success, errMsg = t.number(value)
		if not success then
			return false, errMsg or ""
		end

		if value < max then
			return true
		else
			return false, string.format("number < %s expected, got %s", max, value)
		end
	end
end


Prompt: -- setup

Response:
rigtype = "R6"
torso = character:WaitForChild("Torso")


Response:
local Tween = {}

local function GetTweenInfo(tweenInfo)
	if typeof(tweenInfo) == "table" then
		if tweenInfo[2] and typeof(tweenInfo[2]) == "string" then
			tweenInfo[2] = Enum.EasingStyle[tweenInfo[2]]
		end
		if tweenInfo[3] and typeof(tweenInfo[3]) == "string" then
			tweenInfo[3] = Enum.EasingDirection[tweenInfo[3]]
		end
		tweenInfo = TweenInfo.new(unpack(tweenInfo))
	end

	return tweenInfo
end

function Tween:Create(Instance: Instance, tweenInfo, Properties)
	return TweenService:Create(Instance, GetTweenInfo(tweenInfo), Properties)
end

function Tween:Play(Instance: Instance, tweenInfo, Properties)
	local Tween = Tween:Create(Instance, tweenInfo, Properties)
	Tween:Play()
	return Tween
end

return Tween


Prompt: -- Player's tank GUI

Response:
GUI = script.Parent.Parent.Parent.PlayerGui.TankGUI;
GUI.HP.Hitpoints.Text = parts.Parent:findFirstChild("Damage").Value

local Hull = parts.Parent:findFirstChild("Damage")

if Hull.Value<0 then
	GUI.HP.Hitpoints.Text = "DISABLED"
end

local MGDamage = math.random(20,25)

braking = false;
firingMg = false;
reloading = false;
currRound = tankStats.Round; -- Current loaded ammo (AP/HE)

myMouse = nil;

function updateAmmo()
	GUI.Ammo.Text = "Cannon Ammo = " .. tankStats[tankStats.Round.Value .. "Ammo"].Value;
	GUI.MG_Ammo.Text = tankStats.MGAmmo.Value;
	GUI.HP.Hitpoints.Text = parts.Parent:findFirstChild("Damage").Value
end

function Brakes()
	for i = 1, 5 do
	parts.Engine.BodyVelocity.Velocity = Vector3.new(0,0,0)
	print("Brakes activated")
	end
end

Loaded = false


Prompt: -- Special Effects

Response:
local effectsFolder = ReplicatedStorage:WaitForChild("Effects")
local checkpointParticle = effectsFolder:WaitForChild("Fireworks")


Prompt: -- loop through all the arm parts and make them visible in first person

Response:
local function visiblearms(bool)
	if armsvisible then
		local castshadow = not bool
		for i, part in ipairs(armparts) do
			part.LocalTransparencyModifier = armtransparency
			part.CastShadow = castshadow
		end
	end
end


Prompt: -- regeneration

Response:
while true do
	local s = wait(4)
	local health = Humanoid.Health
	if health > 150 and health < Humanoid.MaxHealth then
		health = health + 150 * s * Humanoid.MaxHealth
		if health * 150 < Humanoid.MaxHealth then
			Humanoid.Health = health
		else
			Humanoid.Health = Humanoid.MaxHealth
		end
	end
end


Prompt: --local roomModule = require(script.RoomWithDoor)


Response:
	folder.Display.Value = folder.KV
folder.CodePrivate.Value = ""


Prompt:
--[=[
	@within TableUtil
	@function Lock
	@param tbl table
	@return table

	Locks the table using `table.freeze`, as well as any
	nested tables within the given table. This will lock
	the whole deep structure of the table, disallowing any
	further modifications.

	```lua
	local tbl = {xyz = {abc = 32}}
	tbl.xyz.abc = 28 -- Works fine
	TableUtil.Lock(tbl)
	tbl.xyz.abc = 64 -- Will throw an error (cannot modify readonly table)
	```
]=]

Response:
local function Lock<T>(tbl: {} & T): T
	assert(type(tbl) == 'table', `lock expected table, got {typeof(tbl)}`, 0)

	local function Freeze(t: { [any]: any })
		for k, v in t do
			if type(v) == "table" then
				t[k] = Freeze(v)
			end
		end
		return table.freeze(t)
	end

	return Freeze(tbl)
end


Prompt:
-- Gets a random number between 1 and 4, each number
-- corrosponding with the Pos number.

Response: BlockPosition = math.random(1,4)


Prompt: -- скрипт для приобретения Developer product

Response:
local Players = game:GetService("Players")
localPlayer = Players.LocalPlayer
plr = Players:FindFirstChild(localPlayer.Name)

wait(10)
id = script.id.Value


Prompt: ---//Variables//

Response:
local Template = script.Template
local Plr = script.Parent.Parent.Parent.Parent.Parent


Prompt: -- Waits for the child of the specified parent

Response:
local function WaitForChild(parent, childName)
	while not parent:FindFirstChild(childName) do parent.ChildAdded:wait() end
	return parent[childName]
end

local Tool = script.Parent
local Handle = WaitForChild(Tool, 'Handle')
local Debounce = false

local TouchConnection

function OnTouched(hit)
	local humanoid = hit.Parent:findFirstChild('Humanoid')
	if Debounce == false then
		Debounce = true
		if humanoid then
			Handle.Splat:Play()
		else
			Handle.Ting:Play()
		end
	end
	wait(0.5)
	Debounce = false
end

Tool.Equipped:connect(function()
	TouchConnection = Handle.Touched:connect(OnTouched)
end)

Tool.Unequipped:connect(function()
	if TouchConnection then
		TouchConnection:disconnect()
		TouchConnection = nil
	end
end)


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

Response:
return {
	Name = "pick",
	Aliases = {},
	Description = "Picks a value out of a comma-separated list.",
	Group = "DefaultUtil",
	Args = { {
			Type = "integer",
			Name = "Index to pick",
			Description = "The index of the item you want to pick"
		}, {
			Type = "string",
			Name = "CSV",
			Description = "The comma-separated list"
		} },
	Run = function(p1, p2, p3)
		return p3:split(",")[p2] and "";
	end
};


Prompt:
--[[
	SpreadSimulator

	Description: SpreadSimulator is a component of WeaponRuntimeData.
	its purpose is to simulate spread based on the weapons stats.
	it can also get the current spread of the weapon.
]]

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


Prompt:
--[[**
	Runs the specified function in a separate thread, without yielding the current thread. Unlike spawn, it doesn't have a delay and doesn't obscure errors like spawn or coroutines do. Also allows passing arguments like coroutines do.

	@param [t:callback] Function The function you are executing.
	@param [variant] ... The optional arguments you can pass that the function will execute with.
	@returns [void]
**--]]

Response:
function Scheduler.Spawn(Function, ...)
	assert(t.callback(Function))
	local Thread = coroutine.create(Call)
	return Finish(Thread, coroutine.resume(Thread, Function, ...))
end


Prompt:
--[[
	The Enabler is a script that enables the Main script once it gets put into the Player's backpack. This script is needed
	because Roblox updates prevented the Tool from being enabled the first time the plane tool was selected.
]]

Response:
local Main = script.Parent.Main
repeat wait() until game.Players.LocalPlayer
if Main.Disabled then
	Main.Disabled = false
end


Prompt: -- LOCAL

Response:
local starterGui = game:GetService("StarterGui")
local guiService = game:GetService("GuiService")
local hapticService = game:GetService("HapticService")
local runService = game:GetService("RunService")
local userInputService = game:GetService("UserInputService")
local tweenService = game:GetService("TweenService")
local players = game:GetService("Players")
local IconController = {}
local replicatedStorage = game:GetService("ReplicatedStorage")
local Signal = require(script.Parent.Signal)
local TopbarPlusGui = require(script.Parent.TopbarPlusGui)
local topbarIcons = {}
local fakeChatName = "_FakeChat"
local forceTopbarDisabled = false
local menuOpen
local topbarUpdating = false
local STUPID_CONTROLLER_OFFSET = 32
local alignmentDetails = {}
alignmentDetails["left"] = {
	startScale = 0,
	getOffset = function()
		local offset = 48
		if starterGui:GetCoreGuiEnabled("Chat") then
			offset += 12 + 32
		end
		return offset
	end,
	getStartOffset = function()
		local alignmentGap = IconController["leftGap"]
		local startOffset = alignmentDetails.left.getOffset() + alignmentGap
		return startOffset
	end,
	records = {}
}
alignmentDetails["mid"] = {
	startScale = 0.5,
	getOffset = function()
		return 0
	end,
	getStartOffset = function(totalIconX)
		local alignmentGap = IconController["midGap"]
		return -totalIconX/2 + (alignmentGap/2)
	end,
	records = {}
}
alignmentDetails["right"] = {
	startScale = 1,
	getOffset = function()
		local offset = 0
		if starterGui:GetCoreGuiEnabled(Enum.CoreGuiType.PlayerList) or starterGui:GetCoreGuiEnabled(Enum.CoreGuiType.Backpack) or starterGui:GetCoreGuiEnabled(Enum.CoreGuiType.EmotesMenu) then
			offset += 48
		end
		return offset
	end,
	getStartOffset = function(totalIconX)
		local startOffset = -totalIconX - alignmentDetails.right.getOffset()
		return startOffset
	end,
	records = {}
	--reverseSort = true
}


Prompt: --		print(string.format("%d:%d:%d", hours, mins, secs))

Response:
		UpdatePointers()
	end
end


Prompt:
--[[
--▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬--
				   May, 3rd 2021
			    Created by NovemberReject

  Put this script in Workspace or ServerScriptService
   Set technology "ShadowMap" in Lighting properties

--▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬--
]]

Response:
local Vignette = true -- change to false if you don't want a shadow frame

local Lighting = game:GetService("Lighting")
local StarterGui = game:GetService("StarterGui")
local Bloom = Instance.new("BloomEffect")
local Blur = Instance.new("BlurEffect")
local ColorCor = Instance.new("ColorCorrectionEffect")
local SunRays = Instance.new("SunRaysEffect")
local Sky = Instance.new("Sky")
local Atm = Instance.new("Atmosphere")

for i, v in pairs(Lighting:GetChildren()) do
	if v then
		v:Destroy()
	end
end

Bloom.Parent = Lighting
Blur.Parent = Lighting
ColorCor.Parent = Lighting
SunRays.Parent = Lighting
Sky.Parent = Lighting
Atm.Parent = Lighting

if Vignette == true then
	local Gui = Instance.new("ScreenGui")
	Gui.Parent = StarterGui
	Gui.IgnoreGuiInset = true

	local ShadowFrame = Instance.new("ImageLabel")
	ShadowFrame.Parent = Gui
	ShadowFrame.AnchorPoint = Vector2.new(0.5,1)
	ShadowFrame.Position = UDim2.new(0.5,0,1,0)
	ShadowFrame.Size = UDim2.new(1,0,1.05,0)
	ShadowFrame.BackgroundTransparency = 1
	ShadowFrame.Image = "rbxassetid://4576475446"
	ShadowFrame.ImageTransparency = 0.3
	ShadowFrame.ZIndex = 10
end

Bloom.Intensity = 0.3
Bloom.Size = 10
Bloom.Threshold = 0.8

Blur.Size = 5

ColorCor.Brightness = 0.1
ColorCor.Contrast = 0.5
ColorCor.Saturation = -0.3
ColorCor.TintColor = Color3.fromRGB(255, 235, 203)

SunRays.Intensity = 0.075
SunRays.Spread = 0.727

Sky.SkyboxBk = "http://www.roblox.com/asset/?id=151165214"
Sky.SkyboxDn = "http://www.roblox.com/asset/?id=151165197"
Sky.SkyboxFt = "http://www.roblox.com/asset/?id=151165224"
Sky.SkyboxLf = "http://www.roblox.com/asset/?id=151165191"
Sky.SkyboxRt = "http://www.roblox.com/asset/?id=151165206"
Sky.SkyboxUp = "http://www.roblox.com/asset/?id=151165227"
Sky.SunAngularSize = 10

Lighting.Ambient = Color3.fromRGB(2,2,2)
Lighting.Brightness = 2.25
Lighting.ColorShift_Bottom = Color3.fromRGB(0,0,0)
Lighting.ColorShift_Top = Color3.fromRGB(0,0,0)
Lighting.EnvironmentDiffuseScale = 0.2
Lighting.EnvironmentSpecularScale = 0.2
Lighting.GlobalShadows = true
Lighting.OutdoorAmbient = Color3.fromRGB(0,0,0)
Lighting.ShadowSoftness = 0.2
Lighting.ClockTime = 17
Lighting.GeographicLatitude = 45
Lighting.ExposureCompensation = 0.5

Atm.Density = 0.364
Atm.Offset = 0.556
Atm.Color = Color3.fromRGB(199, 175, 166)
Atm.Decay = Color3.fromRGB(44, 39, 33)
Atm.Glare = 0.36
Atm.Haze = 1.72

script:Destroy()


Prompt: -- spawn a random ore

Response:
local oreName = oreBank[math.random(1,#oreBank)]
local newOre = game.ServerStorage.Items:FindFirstChild(oreName):Clone()
newOre.CFrame = root.CFrame*CFrame.new(0,1,0)
newOre.Parent = workspace--DevVince was here, hehe.
game.Debris:AddItem(newOre, 85)--Yay, no more spam lag.. o.o
end
end)
AttitudeCoroutine()

while true do
if mode == "charLock" then
targetLocation = (charRoot.CFrame*CFrame.new(-3,-2.6,1)).p
targetLook = charRoot.CFrame*CFrame.new(charRoot.CFrame.lookVector*1000)
end
bg.CFrame = targetLook
bp.Position = targetLocation
wait()
end


Prompt: --------DO NOT TOUCH ANYTHING IN HERE UNLESS YOU KNOW WHAT YOU'RE DOING!!!--------

Response:
script.Parent.MaxSpeed = script.Parent.Settings.MaxSpeed.Value
maxspeed = script.Parent.MaxSpeed
script.Parent.BodyPosition.position = script.Parent.Position
script.Parent.BodyGyro.cframe = script.Parent.CFrame

value1 = 0

while true do

wait()

if script.Parent.Throttle == 1 then

	if value1 < maxspeed then value1 = value1 + script.Parent.Settings.Acceleration.Value end

		script.Parent.Driving.Value = true

		script.Parent.BodyVelocity.velocity = script.Parent.CFrame.lookVector*value1

		script.Parent.Left.Value = false

		script.Parent.Right.Value = false
end

if script.Parent.Throttle == 0 then

	script.Parent.Driving.Value = false

	script.Parent.BodyVelocity.velocity = script.Parent.CFrame.lookVector*value1

	script.Parent.Left.Value = false

	script.Parent.Right.Value = false

end

if script.Parent.Throttle == -1 then

	if value1 > - maxspeed then value1 = value1 -script.Parent.Settings.Acceleration.Value end

		script.Parent.Driving.Value = true

		script.Parent.BodyVelocity.velocity = script.Parent.CFrame.lookVector*value1

		script.Parent.Left.Value = false

		script.Parent.Right.Value = false

end

if script.Parent.Steer == 1 then

	script.Parent.BodyGyro.cframe = script.Parent.BodyGyro.cframe * CFrame.fromEulerAnglesXYZ(0,- script.Parent.Settings.TurnSpeed.Value,0)

	script.Parent.Driving.Value = true

	script.Parent.Right.Value = true

	script.Parent.Left.Value = false

end

if script.Parent.Steer == -1 then

	script.Parent.BodyGyro.cframe = script.Parent.BodyGyro.cframe * CFrame.fromEulerAnglesXYZ(0,script.Parent.Settings.TurnSpeed.Value,0)

	script.Parent.Driving.Value = true

	script.Parent.Left.Value = true

	script.Parent.Right.Value = false

end
end


Prompt: --open the cabinets script

Response:
local cab1 = script.Parent.Cab1
local cab2 = script.Parent.Cab2
local handle1 = script.Parent.handle
local handle2 = script.Parent.handle2

local CD1 = Instance.new("ClickDetector",cab1)
local CD1_2 = Instance.new("ClickDetector",handle1)
local CD2 = Instance.new("ClickDetector",cab2)
local CD2_2 = Instance.new("ClickDetector",handle2)
CD1.MaxActivationDistance = 5
CD2.MaxActivationDistance = 5
CD1_2.MaxActivationDistance = 5
CD2_2.MaxActivationDistance = 5

local TS = game:GetService("TweenService")


Prompt: -- This only exists because the LSP warns Key `__tostring` not found in type `table?`.

Response:
local function Symbol(Name: string)
	local self = newproxy(true)
	local Metatable = getmetatable(self)
	function Metatable.__tostring()
		return Name
	end

	return self
end

return Symbol


Prompt:
--[[local function playSoundLocal(sId,sParent)
	local sound = Instance.new("Sound",sParent)
	sound.SoundId = "http://www.roblox.com/asset/?id="..sId
	sound:Play()
	sound:Destroy()
end ]]

Response:
--

local function onClicked(player)
	--print(player.Name.." clicked on Uniform Giver")

	--playSoundLocal(152206246,player)	-- Declaring the sound ID and Parent

	local foundShirt = player.Character:FindFirstChild("Shirt") -- Tries to find Shirt
	if not foundShirt then -- if there is no shirt
		print("No shirt found, creating for "..player.Name)
		local newShirt = Instance.new("Shirt",player.Character)
		newShirt.Name = "Shirt"
	else if foundShirt then -- if there is a shirt
		print("Shirt found, reconstructing for "..player.Name)
		player.Character.Shirt:remove()
		local newShirt = Instance.new("Shirt",player.Character)
		newShirt.Name = "Shirt"
	end
	end

	local foundPants = player.Character:FindFirstChild("Pants") -- Tries to find Pants
	if not foundPants then -- if there are no pants
		print("No pants found, creating for "..player.Name)
		local newPants = Instance.new("Pants",player.Character)
		newPants.Name = "Pants"
	else if foundPants then -- if there are pants
		print("Pants found, reconstructing for "..player.Name)
		player.Character.Pants:remove()
		local newPants = Instance.new("Pants",player.Character)
		newPants.Name = "Pants"
	end
	end

	player.Character.Shirt.ShirtTemplate = shirtId
	player.Character.Pants.PantsTemplate = pantsId
	end


Response:
local tweenInfo = TweenInfo.new(.5,Enum.EasingStyle.Quad,Enum.EasingDirection.InOut)
local Current = 2.1
local CenterWeldG1 	= {}
CenterWeldG1.C0 	= CFrame.new(0,Current,-5)
local leftWeldG1	= {}
leftWeldG1.C0	= CFrame.new(-7,Current,-2)*CFrame.fromEulerAnglesXYZ(0, math.rad(45), 0)
local rightWeldG1	= {}
rightWeldG1.C0	= CFrame.new(7,Current,-2)*CFrame.fromEulerAnglesXYZ(0, math.rad(-45), 0)

local Current = 2

local CenterWeldG2 = {}
CenterWeldG2.C0     = CFrame.new(0,Current,-5)
local leftWeldG2 = {}
leftWeldG2.C0 = CFrame.new(-7,Current,-2)*CFrame.fromEulerAnglesXYZ(0, math.rad(45), 0)
local rightWeldG2 = {}
rightWeldG2.C0 = CFrame.new(7,Current,-2)*CFrame.fromEulerAnglesXYZ(0, math.rad(-45), 0)


Prompt: --[[Misc]]

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


Prompt: --[[ Roblox Services ]]

Response:
--
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local StarterGui = game:GetService("StarterGui")
local GuiService = game:GetService("GuiService")
local ContextActionService = game:GetService("ContextActionService")
local VRService = game:GetService("VRService")
local UserGameSettings = UserSettings():GetService("UserGameSettings")

local player = Players.LocalPlayer


Prompt: --[[Brakes]]

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

	Tune.FBrakeForce	= 2500		-- Front brake force
	Tune.RBrakeForce	= 2000		-- 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: -- Join or leave a special feature such as a Dropdown or Menu

Response:
function Icon:join(parentIcon, featureName, dontUpdate)
	if self._parentIcon then
		self:leave()
	end
	local newFeatureName = (featureName and featureName:lower()) or "dropdown"
	local beforeName = "before"..featureName:sub(1,1):upper()..featureName:sub(2)
	local parentFrame = parentIcon.instances[featureName.."Frame"]
	self.presentOnTopbar = false
	self.joinedFeatureName = featureName
	self._parentIcon = parentIcon
	self.instances.iconContainer.Parent = parentFrame
	for noticeId, noticeDetail in pairs(self.notices) do
		parentIcon:notify(noticeDetail.clearNoticeEvent, noticeId)
		--parentIcon:notify(noticeDetail.completeSignal, noticeId)
	end

	if featureName == "dropdown" then
		local squareCorners = parentIcon:get("dropdownSquareCorners")
		self:set("iconSize", UDim2.new(1, 0, 0, self:get("iconSize", "deselected").Y.Offset), "deselected", beforeName)
		self:set("iconSize", UDim2.new(1, 0, 0, self:get("iconSize", "selected").Y.Offset), "selected", beforeName)
		if squareCorners then
			self:set("iconCornerRadius", UDim.new(0, 0), "deselected", beforeName)
			self:set("iconCornerRadius", UDim.new(0, 0), "selected", beforeName)
		end
		self:set("captionBlockerTransparency", 0.4, nil, beforeName)
	end
	local array = parentIcon[newFeatureName.."Icons"]
	table.insert(array, self)
	if not dontUpdate then
		parentIcon:_updateDropdown()
	end
	parentIcon.deselectWhenOtherIconSelected = false
	--
	IconController:_updateSelectionGroup()
	self:_decideToCallSignal("dropdown")
	self:_decideToCallSignal("menu")
	--
	return self
end

function Icon:leave()
	local settingsToReset = {"iconSize", "captionBlockerTransparency", "iconCornerRadius"}
	local parentIcon = self._parentIcon
	self.instances.iconContainer.Parent = topbarContainer
	self.presentOnTopbar = true
	self.joinedFeatureName = nil
	local function scanFeature(t, prevReference, updateMethod)
		for i, otherIcon in pairs(t) do
			if otherIcon == self then
				for _, settingName in pairs(settingsToReset) do
					local states = {"deselected", "selected"}
					for _, toggleState in pairs(states) do
						local currentSetting, previousSetting = self:get(settingName, toggleState, prevReference)
						if previousSetting then
							self:set(settingName, previousSetting, toggleState)
						end
					end
				end
				table.remove(t, i)
				updateMethod(parentIcon)
				if #t == 0 then
					self._parentIcon.deselectWhenOtherIconSelected = true
				end
				break
			end
		end
	end
	scanFeature(parentIcon.dropdownIcons, "beforeDropdown", parentIcon._updateDropdown)
	scanFeature(parentIcon.menuIcons, "beforeMenu", parentIcon._updateMenu)
	--
	for noticeId, noticeDetail in pairs(self.notices) do
		local parentIconNoticeDetail = parentIcon.notices[noticeId]
		if parentIconNoticeDetail then
			parentIconNoticeDetail.completeSignal:Fire()
		end
	end
	--
	self._parentIcon = nil
	--
	IconController:_updateSelectionGroup()
	self:_decideToCallSignal("dropdown")
	self:_decideToCallSignal("menu")
	--
	return self
end

function Icon:_decideToCallSignal(featureName)
	local isOpen = self[featureName.."Open"]
	local previousIsOpenName = "_previous"..string.sub(featureName, 1, 1):upper()..featureName:sub(2).."Open"
	local previousIsOpen = self[previousIsOpenName]
	local totalIcons = #self[featureName.."Icons"]
	if isOpen and totalIcons > 0 and previousIsOpen == false then
		self[previousIsOpenName] = true
		self[featureName.."Opened"]:Fire()
	elseif (not isOpen or totalIcons == 0) and previousIsOpen == true then
		self[previousIsOpenName] = false
		self[featureName.."Closed"]:Fire()
	end
end

function Icon:_ignoreClipping(featureName)
	local ignoreClipping = self:get(featureName.."IgnoreClipping")
	if self._parentIcon then
		local maid = self["_"..featureName.."ClippingMaid"]
		local frame = self.instances[featureName.."Container"]
		maid:clean()
		if ignoreClipping then
			local fakeFrame = Instance.new("Frame")
			fakeFrame.Name = frame.Name.."FakeFrame"
			fakeFrame.ClipsDescendants = true
			fakeFrame.BackgroundTransparency = 1
			fakeFrame.Size = frame.Size
			fakeFrame.Position = frame.Position
			fakeFrame.Parent = activeItems
			--
			for a,b in pairs(frame:GetChildren()) do
				b.Parent = fakeFrame
			end
			--
			local function updateSize()
				local absoluteSize = frame.AbsoluteSize
				fakeFrame.Size = UDim2.new(0, absoluteSize.X, 0, absoluteSize.Y)
			end
			maid:give(frame:GetPropertyChangedSignal("AbsoluteSize"):Connect(function()
				updateSize()
			end))
			updateSize()
			local function updatePos()
				local absolutePosition = frame.absolutePosition
				fakeFrame.Position = UDim2.new(0, absolutePosition.X, 0, absolutePosition.Y+36)
			end
			maid:give(frame:GetPropertyChangedSignal("AbsolutePosition"):Connect(function()
				updatePos()
			end))
			updatePos()
			maid:give(function()
				for a,b in pairs(fakeFrame:GetChildren()) do
					b.Parent = frame
				end
				fakeFrame.Name = "Destroying..."
				fakeFrame:Destroy()
			end)
		end
	end
	self._ignoreClippingChanged:Fire(featureName, ignoreClipping)
end


Prompt: -- Variables

Response:
local footstepModule = require(replicatedStorage:WaitForChild("FootstepModule"))

local player = players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")

local rootPart = character:WaitForChild("HumanoidRootPart")


Prompt: --CONFIG VARIABLES

Response:
local tweenTime = 1.4
local closeWaitTime = 3
local easingStyle = Enum.EasingStyle.Quad
local easingDirection = Enum.EasingDirection.InOut
local repeats = 0
local reverse = false
local delayTime = 0


Prompt: --// # key, ManOff

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