Response:
local tool = script.Parent
local player = game.Players.LocalPlayer

local DB = false
tool.Selected:connect(function(mouse)
	mouse.Icon = "rbxasset://textures\\GunCursor.png"
	mouse.Button1Down:connect(function()
		if not DB then
			DB = true
			script.Parent.Click:FireServer()
			mouse.Icon = "rbxasset://textures\\GunWaitCursor.png"
			wait(RechargeTime)
			DB = false
			mouse.Icon = "rbxasset://textures\\GunCursor.png"
		end
	end)
end)


Prompt: --workspace.Camera.FieldOfView = 70+((orderch-speed)*10)

Response:
if carSeat.Steer ~= 0 and speed > 90 and script.Parent.Active.CC.Value == true then
	b = 0.5
else
	b = 1
end

if (speed*1.07)*0.621371 >= script.Parent.Storage.Limiter.Value + 0.5 then
	xi = 0
else
	xi = 1
end

if speed < 30 then
	script.Parent.Active.CC.Value = false
end

if script.Parent.Active.CC.Value == true then
	if rpm.Value > 3500 and currentgear.Value ~= script.Parent.Storage.AmountOfGears.Value +2 and carSeat.Storage.Automatic.Value == true then
		script.Parent.Functions.ShiftUpRequested.Value = true
	end
	if (script.Parent.Active.CC.SP.Value*1.07)*0.621371 > script.Parent.Storage.Limiter.Value then
		script.Parent.Active.CC.SP.Value = (script.Parent.Storage.Limiter.Value/1.07)/0.621371
	end
	if speed >= script.Parent.Active.CC.SP.Value then
		xi = 0
	else
		xi = 1
	end

	throttle.Value = 1
	if carSeat.Throttle == 1 then
		script.Parent.Active.CC.SP.Value = script.Parent.Active.CC.SP.Value +0.5
	elseif carSeat.Throttle == -1 then
		script.Parent.Active.CC.Value = false
	end
else
	if rpm.Value > redline.Value then
		if script.Parent.Storage.EngineType.Value ~= "Electric" then
	throttle.Value = 1 end
	else
		if script.Parent.Functions.ShiftDownRequested.Value == true or script.Parent.Functions.ShiftUpRequested.Value == true then
			throttle.Value = 0
			else
throttle.Value = TCount
end
end
end

if script.Parent.Storage.EngineType.Value == "Electric" then
	low = 1
	mid = 1
	hi  = 1
	tL = .3*TC
else

	if ind.Value == "Natural" then
		low = 1
		mid = 1
		hi  = 1

	elseif ind.Value == "Single" then
		if inds.Value >= 0 and inds.Value < 2 then
		low = 1+(.4*(inds.Value))*(boost.Value/1.21)
		mid = 1+(.08*(inds.Value))*(boost.Value/1.21)
		hi  = 1+(.4*(inds.Value))*(boost.Value/1.21)

		elseif inds.Value >= 2 and inds.Value < 3 then
		low = 1+(.4*(inds.Value))*(boost.Value/1.21)
		mid = 1+(.08*(inds.Value))*(boost.Value/1.21)
		hi  = 1+(.4*(inds.Value))*(boost.Value/1.21)

		elseif inds.Value >= 3 then
		low = 1+(.4*(inds.Value))*(boost.Value/1.21)
		mid = 1+(.08*(inds.Value))*(boost.Value/1.21)
		hi  = 1+(.4*(inds.Value))*(boost.Value/1.21)
		end

	elseif ind.Value == "Twin" then
		low = 1+(.4*(inds.Value))*(boost.Value/1.21)
		mid = 1+(.08*(inds.Value))*(boost.Value/1.21)
		hi  = 1+(.4*(inds.Value))*(boost.Value/1.21)

	elseif ind.Value == "Supercharger" then
		low = 1+(.1*(inds.Value))*(boost.Value/1.21)
		mid = 1+(.08*(inds.Value))*(boost.Value/1.21)
		hi  = 1+(.1*(inds.Value))*(boost.Value/1.21)
		end
end

front = (FL.Parent.RotVelocity.Magnitude+FR.Parent.RotVelocity.Magnitude)/2
back = (RL.Parent.RotVelocity.Magnitude+RR.Parent.RotVelocity.Magnitude)/2
average = (front + back)/2

if carSeat.Storage.TC.Value == true then
	if (1.4-(front + 0)/(average + 5)) < 0.6 then
		ft = (1.4-(front + 0)/(average + 5))

	elseif (1.4-(back + 0)/(average + 5)) < 0.6 then
		rt = (1.4-(back + 0)/(average + 5))

	else
		ft = 1
		rt = 1
	end
else
	ft = 1
		rt = 1
end


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

					RikOne2 | Enjin
--]]


Response:
local player=game.Players.LocalPlayer
local mouse=player:GetMouse()

local car = script.Parent.Parent.Car.Value
local _Tune = require(car["A-Chassis Tune"])

local gauges = script.Parent
local values = script.Parent.Parent.Values
local isOn = script.Parent.Parent.IsOn

local intach = car.Body.Dash.Tac.G.Needle
local inspd = car.Body.Dash.Spd.G.Needle

gauges:WaitForChild("Speedo")
gauges:WaitForChild("Tach")
gauges:WaitForChild("Boost")
gauges:WaitForChild("ln")
gauges:WaitForChild("bln")
gauges:WaitForChild("Gear")
gauges:WaitForChild("Speed")

car.DriveSeat.HeadsUpDisplay = false

local _pRPM = _Tune.PeakRPM
local _lRPM = _Tune.Redline

local currentUnits = 1
local revEnd = math.ceil(_lRPM/1000)


Prompt: -- Assign hotkeys for redoing (left or right shift + Y)

Response:
AssignHotkey({ 'LeftShift', 'Y' }, History.Redo);
AssignHotkey({ 'RightShift', 'Y' }, History.Redo);


Prompt:
----------------------------------------------------------------------------------------------------
-----------------=[ RECOIL & PRECISAO ]=------------------------------------------------------------
----------------------------------------------------------------------------------------------------

Response:
	,VRecoil = {13,17}				--- Vertical Recoil
	,HRecoil = {6,8}				--- Horizontal Recoil
	,AimRecover = .75				---- Between 0 & 1

	,RecoilPunch = .15
	,VPunchBase = 2.75				--- Vertical Punch
	,HPunchBase = 1.35				--- Horizontal Punch
	,DPunchBase = 1 				--- Tilt Punch | useless

	,AimRecoilReduction = 5 		--- Recoil Reduction Factor While Aiming (Do not set to 0)
	,PunchRecover = 0.2
	,MinRecoilPower = .5
	,MaxRecoilPower = 3.5
	,RecoilPowerStepAmount = .25

	,MinSpread = 1.25				--- Min bullet spread value | Studs
	,MaxSpread = 40					--- Max bullet spread value | Studs
	,AimInaccuracyStepAmount = 0.75
	,WalkMultiplier = 0				--- Bullet spread based on player speed

	,SwayBase = 0.05				--- Weapon Base Sway | Studs
	,MaxSway =	1.5					--- Max sway value based on player stamina | Studs


Prompt: -- Time it takes to reload weapon

Response: local ReloadTime = 2.3


Prompt:
------------------------------------------------------------------------------------------------------------------------------
--// Module

Response:
local module = {};

for _, class in next, {"TextLabel", "TextBox", "TextButton", "TextReplace"} do
	module[string.sub(class, 5)] = function(child)
		return customFont.new("A", class == "TextReplace" and child or class, class == "TextButton" or (class == "TextReplace" and child:IsA("TextButton")));
	end;
end;

wait(); -- top bar can mess with stuff if fonts called instantly

return module;


Prompt: --------------------[ GUI SETUP FUNCTION ]--------------------------------------------

Response:
function ConvertKey(Key)
	if Key == string.char(8) then
		return "BKSPCE"
	elseif Key == string.char(9) then
		return "TAB"
	elseif Key == string.char(13) then
		return "ENTER"
	elseif Key == string.char(17) then
		return "UP"
	elseif Key == string.char(18) then
		return "DOWN"
	elseif Key == string.char(19) then
		return "RIGHT"
	elseif Key == string.char(20) then
		return "LEFT"
	elseif Key == string.char(22) then
		return "HOME"
	elseif Key == string.char(23) then
		return "END"
	elseif Key == string.char(27) then
		return "F2"
	elseif Key == string.char(29) then
		return "F4"
	elseif Key == string.char(30) then
		return "F5"
	elseif Key == string.char(32) or Key == " " then
		return "F7"
	elseif Key == string.char(33) or Key == "!" then
		return "F8"
	elseif Key == string.char(34) or Key == '"' then
		return "F9"
	elseif Key == string.char(35) or Key == "#" then
		return "F10"
	elseif Key == string.char(37) or Key == "%" then
		return "F12"
	elseif Key == string.char(47) or Key == "/" then
		return "R-SHIFT"
	elseif Key == string.char(48) or Key == "0" then
		return "L-SHIFT"
	elseif Key == string.char(49) or Key == "1" then
		return "R-CTRL"
	elseif Key == string.char(50) or Key == "2" then
		return "L-CTRL"
	elseif Key == string.char(51) or Key == "3" then
		return "R-ALT"
	elseif Key == string.char(52) or Key == "4" then
		return "L-ALT"
	else
		return string.upper(Key)
	end
end

function CreateControlFrame(Key, Desc, Num)
	local Controls = Gui_Clone:WaitForChild("HUD"):WaitForChild("Controls")

	local C = Instance.new("Frame")
	C.BackgroundTransparency = ((Num % 2) == 1 and 0.7 or 1)
	C.BorderSizePixel = 0
	C.Name = "C"..Num
	C.Position = UDim2.new(0, 0, 0, Num * 20)
	C.Size = UDim2.new(1, 0, 0, 20)

	local K = Instance.new("TextLabel")
	K.BackgroundTransparency = 1
	K.Name = "Key"
	K.Size = UDim2.new(0, 45, 1, 0)
	K.Font = Enum.Font.ArialBold
	K.FontSize = Enum.FontSize.Size14
	K.Text = Key
	K.TextColor3 = Color3.new(1, 1, 1)
	K.TextScaled = (string.len(Key) > 5)
	K.TextWrapped = (string.len(Key) > 5)
	K.Parent = C

	local D = Instance.new("TextLabel")
	D.BackgroundTransparency = 1
	D.Name = "Desc"
	D.Position = UDim2.new(0, 50, 0, 0)
	D.Size = UDim2.new(1, -50, 1, 0)
	D.Font = Enum.Font.ArialBold
	D.FontSize = Enum.FontSize.Size14
	D.Text = "- "..Desc
	D.TextColor3 = Color3.new(1, 1, 1)
	D.TextXAlignment = Enum.TextXAlignment.Left
	D.Parent = C

	C.Parent = Controls
end

function SetUpGui()
	local HUD = Gui_Clone:WaitForChild("HUD")
	local Scope = Gui_Clone:WaitForChild("Scope")
	local Grenades = HUD:WaitForChild("Grenades")
	local Controls = HUD:WaitForChild("Controls")
	local CurrentNum = 1

	if S.CanChangeStance then
		local Dive = (S.DolphinDive and " / Dive" or "")
		CreateControlFrame(ConvertKey(S.LowerStanceKey), "Lower Stance"..Dive, CurrentNum)
		CurrentNum = CurrentNum + 1

		CreateControlFrame(ConvertKey(S.RaiseStanceKey), "Raise Stance", CurrentNum)
		CurrentNum = CurrentNum + 1
	end

	CreateControlFrame(ConvertKey(S.ReloadKey), "Reload", CurrentNum)
	CurrentNum = CurrentNum + 1

	if S.CanKnife then
		CreateControlFrame(ConvertKey(S.KnifeKey), "Knife", CurrentNum)
		CurrentNum = CurrentNum + 1
	end

	if S.Throwables then
		CreateControlFrame(ConvertKey(S.LethalGrenadeKey), "Throw Lethal", CurrentNum)
		CurrentNum = CurrentNum + 1

		CreateControlFrame(ConvertKey(S.TacticalGrenadeKey), "Throw Tactical", CurrentNum)
		CurrentNum = CurrentNum + 1
	else
		Grenades.Visible = false
		HUD.Position = UDim2.new(1, -200, 1, -100)
		HUD.Size = UDim2.new(0, 175, 0, 50)
	end

	CreateControlFrame(ConvertKey(S.SprintKey), "Sprint", CurrentNum)
	CurrentNum = CurrentNum + 1

	if S.ADSKey ~= "" then
		local Hold = (S.HoldMouseOrKeyToADS and "HOLD " or "")
		CreateControlFrame(Hold..ConvertKey(S.ADSKey).." OR R-MOUSE", "Aim Down Sights", CurrentNum)
		CurrentNum = CurrentNum + 1
	end

	Controls.Size = UDim2.new(1, 0, 0, CurrentNum * 20)
	Controls.Position = UDim2.new(0, 0, 0, -(CurrentNum * 20) - 80)

	if S.GuiScope then
		Scope:WaitForChild("Img").Image = S.GuiId
		Scope:WaitForChild("Steady").Text = "Hold "..ConvertKey(S.ScopeSteadyKey).." to Steady"
	end

	if HUD:FindFirstChild("Co") then
		HUD.Co:Destroy()
	end
	local Co = Instance.new("TextLabel")
	Co.BackgroundTransparency = 1
	Co.Name = "Co"
	Co.Position = UDim2.new(0, 0, 1, 5)
	Co.Size = UDim2.new(1, 0, 0, 20)
	Co.Font = Enum.Font.ArialBold
	Co.FontSize = Enum.FontSize.Size14
	Co.Text = ("noisuFobruT yb detpircs tiK nuG"):reverse()
	Co.TextColor3 = Color3.new(1, 1, 0)
	Co.TextStrokeTransparency = 0
	Co.TextXAlignment = Enum.TextXAlignment.Right
	Co.Parent = HUD

	HUD:WaitForChild("Grenades"):WaitForChild("Lethals"):WaitForChild("Icon").Image = LethalIcons[S.LethalGrenadeType]
	HUD:WaitForChild("Grenades"):WaitForChild("Tacticals"):WaitForChild("Icon").Image = TacticalIcons[S.TacticalGrenadeType]
end


Prompt: -- ProfileVersionQuery object:

Response:
local ProfileVersionQuery = {
	--[[
		_profile_store = profile_store,
		_profile_key = profile_key,
		_sort_direction = sort_direction,
		_min_date = min_date,
		_max_date = max_date,

		_query_pages = pages, -- [DataStoreVersionPages]
		_query_index = index, -- [number]
		_query_failure = false,

		_is_query_yielded = false,
		_query_queue = {},
	--]]
}
ProfileVersionQuery.__index = ProfileVersionQuery

function ProfileVersionQuery:_MoveQueue()
	while #self._query_queue > 0 do
		local queue_entry = table.remove(self._query_queue, 1)
		task.spawn(queue_entry)
		if self._is_query_yielded == true then
			break
		end
	end
end

function ProfileVersionQuery:NextAsync(_is_stacking) --> [Profile] or nil

	if self._profile_store == nil then
		return nil
	end

	local profile
	local is_finished = false

	local function query_job()

		if self._query_failure == true then
			is_finished = true
			return
		end

		-- First "next" call loads version pages:

		if self._query_pages == nil then

			self._is_query_yielded = true
			task.spawn(function()
				profile = self:NextAsync(true)
				is_finished = true
			end)

			local list_success, error_message = pcall(function()
				self._query_pages = self._profile_store._global_data_store:ListVersionsAsync(
					self._profile_key,
					self._sort_direction,
					self._min_date,
					self._max_date
				)
				self._query_index = 0
			end)

			if list_success == false or self._query_pages == nil then
				warn("[ProfileService]: Version query fail - " .. tostring(error_message))
				self._query_failure = true
			end

			self._is_query_yielded = false
			self:_MoveQueue()

			return

		end

		local current_page = self._query_pages:GetCurrentPage()
		local next_item = current_page[self._query_index + 1]

		-- No more entries:

		if self._query_pages.IsFinished == true and next_item == nil then
			is_finished = true
			return
		end

		-- Load next page when this page is over:

		if next_item == nil then

			self._is_query_yielded = true
			task.spawn(function()
				profile = self:NextAsync(true)
				is_finished = true
			end)

			local success = pcall(function()
				self._query_pages:AdvanceToNextPageAsync()
				self._query_index = 0
			end)

			if success == false or #self._query_pages:GetCurrentPage() == 0 then
				self._query_failure = true
			end

			self._is_query_yielded = false
			self:_MoveQueue()

			return

		end

		-- Next page item:

		self._query_index += 1
		profile = self._profile_store:ViewProfileAsync(self._profile_key, next_item.Version)
		is_finished = true

	end

	if self._is_query_yielded == false then
		query_job()
	else
		if _is_stacking == true then
			table.insert(self._query_queue, 1, query_job)
		else
			table.insert(self._query_queue, query_job)
		end
	end

	while is_finished == false do
		task.wait()
	end

	return profile

end


Prompt:
-- Bind functions to when player equips/unequips the tool. Right now just need to turn on and
-- off AutoRotate

Response:
equipEvent.OnServerEvent:connect(function(player)
	player.Character.Humanoid.AutoRotate = false
end)
unequipEvent.OnServerEvent:connect(function(player)
	player.Character.Humanoid.AutoRotate = true
end)


Prompt: -- ROBLOX deviation: moved to RobloxShared to avoid reaching into internals with rotriever workspaces

Response: local getObjectSubset = RobloxShared.expect.getObjectSubset


Prompt:
--[[
	Create a promise that represents the immediately resolved value.
]]

Response:
function Promise.resolve(value)
	return Promise.new(function(resolve)
		resolve(value)
	end)
end


Prompt: -- show and hide animations

Response:
local function show()
	UITween.fade(welcomeFrame1, 0, 2, 0)
	UITween.size(welcomeFrame1, frameSizeStart, 0.4, 0, false)
	UITween.size(welcomeBg, bgSizeStart, 0.6, 0, false)
	UITween.fade(welcomeFrame2, 0, 2, 0)
	UITween.size(welcomeFrame2, frame2SizeStart, 0.4, 0, false)
	wait(0.25)
	UITween.turnOn(welcomeUIPointLight, 1, 2)
	UITween.fade(welcomeBg, 0.6, 2, 0)
	UITween.size(welcomeFrame1, frameSizeMid, 0.4, 0, false)
	UITween.size(welcomeFrame2, frame2SizeMid, 0.4, 0, false)
	UITween.size(welcomeBg, bgSizeStart, 0.4, 0, false)
	wait(0.25)
	UITween.size(welcomeFrame1, frameSizeEnd, 0.4, 0, false)
	UITween.size(welcomeFrame2, frame2SizeEnd, 0.4, 0, false)
	UITween.size(welcomeBg, bgSizeMid, 0.4, 0, false)
	UITween.turnOn(welcomeUIGlow, 2, 0.5)
	--UITween.turnOn(welcomeConsoleGlow, 2, 0.5)
	wait(0.25)
	UITween.size(welcomeFrame1, frameSizeEnd, 0.4, 0, false)
	UITween.size(welcomeBg, bgSizeEnd, 0.4, 0, false)
	UITween.fade(welcomeGrid, 0.8, 0.5, 0)
	UITween.fade(btnLeft, 0, 2, 0)
	UITween.fade(btnRight, 0, 2, 0)
	UITween.fade(lobbyScreen1, 0, 2, 0)
	welcomeMenuIsShowing = true
end

local function hide()
	UITween.fade(lobbyScreen1, 1, 0.5, 0)
	UITween.fade(lobbyScreen2, 1, 0.5, 0)
	UITween.fade(lobbyScreen3, 1, 0.5, 0)
	UITween.fade(btnLeft, 1, 0.5, 0)
	UITween.fade(btnRight, 1, 0.5, 0)
	UITween.fade(welcomeGrid, 1, 0.5, 0)
	UITween.turnOn(welcomeUIGlow, 0, 0.5)
	--UITween.turnOn(welcomeConsoleGlow, 0, 0.5)
	UITween.turnOn(welcomeUIPointLight, 0, 0.5)
	UITween.size(welcomeBg, bgSizeEnd, 0.4, 0, false)
	UITween.size(welcomeBg, bgSizeMid, 0.4, 0, false)
	wait(0.25)
	UITween.size(welcomeBg, bgSizeMid, 0.4, 0, false)
	UITween.size(welcomeFrame1, frameSizeEnd, 0.4, 0, false)
	UITween.size(welcomeFrame1, frameSizeMid, 0.4, 0, false)
	UITween.size(welcomeFrame2, frame2SizeEnd, 0.4, 0, false)
	UITween.size(welcomeFrame2, frame2SizeMid, 0.4, 0, false)
	wait(0.25)
	UITween.size(welcomeBg, bgSizeStart, 0.4, 0, false)
	UITween.fade(welcomeBg, 1, 2, 0)
	wait(0.25)
	UITween.size(welcomeFrame1, frameSizeStart, 0.4, 0, false)
	UITween.fade(welcomeFrame1, 1, 2, 0)
	UITween.size(welcomeFrame2, frame2SizeStart, 0.4, 0, false)
	UITween.fade(welcomeFrame2, 1, 2, 0)
	welcomeMenuIsShowing = false
end


Prompt: -- Barrier visualization variables

Response:
local barrierPartsFolder = workspace:WaitForChild("BarrierParts")
local barrierPartInfos = {}
local NUMBER_OF_LARGEST_SUBDIVISIONS = 40 -- initial number of barrierParts
local BARRIER_HEIGHT = 2048
local BARRIER_THICKNESS = 0.05
local FRACTION_OF_RADIUS_BEFORE_SPLITTING = 0.5 -- this is the fraction of the current storm radius that an initial barrierPart will split.
												-- following subdivisions will split based on SPLIT_FACTOR
local SPLIT_FACTOR = 0.75 -- this should always be less than 1. The lower the value, the closer the player must be for a barrierPart to split
local MAX_SPLIT_LEVEL = 7 -- max number of times an initial barrierPart can split
local MIN_BARRIERPART_WIDTH = 4
local TRANSPARENCY_FALLOFF_RANGE = NumberRange.new(0, 3000)
local BARRIERPART_COLOR = Color3.fromRGB(195, 14, 255)


Prompt:
--[[
	Connects the events for UI state.

	Returns a Rodux Signal class. This has the same API as RBXScriptSignal but
	lowercase. For example:

	```lua
	local store = Rodux.Store.new(reducer)
	local conn = uiStateEvents.connect(store)

	conn:disconnect()
	```
]]

Response:
function uiStatesEvents.connect(store)
	return store.changed:connect(function(newState: reducer.State, oldState: reducer.State)
		-- 3 booleans, one for each of the UI states
		local oldClosedState = not oldState.ui.merchBoothOpen
		local oldCatalogState = oldState.ui.merchBoothOpen and oldState.ui.viewedItemId == nil
		local oldItemState = oldState.ui.merchBoothOpen and oldState.ui.viewedItemId ~= nil

		local newClosedState = not newState.ui.merchBoothOpen
		local newCatalogState = newState.ui.merchBoothOpen and newState.ui.viewedItemId == nil
		local newItemState = newState.ui.merchBoothOpen and newState.ui.viewedItemId ~= nil

		if not oldClosedState and newClosedState then
			uiStatesEvents.merchBoothClosed:Fire()
		end
		if oldClosedState and not newClosedState then
			uiStatesEvents.merchBoothOpened:Fire()
		end

		if not oldCatalogState and newCatalogState then
			uiStatesEvents.catalogViewOpened:Fire()
		end
		if oldCatalogState and not newCatalogState then
			uiStatesEvents.catalogViewClosed:Fire()
		end

		if not oldItemState and newItemState then
			uiStatesEvents.itemViewOpened:Fire(newState.ui.viewedItemId)
		end
		if oldItemState and not newItemState then
			uiStatesEvents.itemViewClosed:Fire(oldState.ui.viewedItemId)
		end
	end)
end

return uiStatesEvents


Prompt: -- ok

Response:
script.Parent.PrimaryPart:SetNetworkOwner(nil)

local RunS = game:GetService('RunService')
local PFS = game:GetService('PathfindingService')


Prompt: -- Tire Effect Parameters

Response:
local SLIDE_THRESHOLD = 0.6			-- The threshold at which skid-marks appear
local SLIDE_DEBOUNCE = 0.2			-- The minimum time to display skid-marks for
local SLIDE_MARK_OFFSET = 0.02		-- The studs to offset the skid-marks from the ground by

local defaultAudioData = { -- what to use if no custom sounds are provided
	{
		RPM = BASE_RPM,
		MinRPM = 0,
		MaxRPM = BASE_RPM + RPM_CROSSOVER,
		Volume = 3,
		PitchModification = 1,
		SoundID = "rbxassetid://5257533692",
	},
	{
		RPM = 3000,
		MinRPM = BASE_RPM + RPM_CROSSOVER,
		MaxRPM = 3500,
		Volume = 1,
		PitchModification = 1,
		SoundID = "rbxassetid://5257534962"--"rbxasset://sounds/Medium.ogg",
	},
	{
		RPM = 4000,
		MinRPM = 3500,
		MaxRPM = 9e9,
		Volume = 1,
		PitchModification = 1,
		SoundID = "rbxassetid://5257536258"--"rbxasset://sounds/High.ogg",
	},
}

local audio = {}

local Effects = {}
Effects.__index = Effects

function Effects.new(chassis, effectsFolder, topModel)
	local self = setmetatable({},Effects)

	self.ignore = topModel

	self.base = chassis:FindFirstChild("FloorPanel")
	self.attachmentContainer = self.base

	local suspensions = {}
	table.insert(suspensions, chassis:FindFirstChild("SuspensionFL"))
	table.insert(suspensions, chassis:FindFirstChild("SuspensionFR"))
	table.insert(suspensions, chassis:FindFirstChild("SuspensionRL"))
	table.insert(suspensions, chassis:FindFirstChild("SuspensionRR"))

	local function createSound(soundId)
		local sound = Instance.new("Sound")
		sound.Volume = 0
		sound.Looped = true
		sound.SoundId = soundId
		sound.Parent = topModel.PrimaryPart
		if not sound.IsLoaded then
			sound.Loaded:Wait()
		end
		return sound
	end

	local function generateAudioInfo(soundId, baseRPM, minRPM, maxRPM, volume, pitchMod)
		return {
			RPM = baseRPM,
			MinRPM = minRPM,
			MaxRPM = maxRPM,
			Volume = volume,
			PitchModification = pitchMod,
			SoundID = soundId,
			Sound = createSound(soundId)
		}
	end

	local function createSounds(audioInfo)
		local effects = topModel:FindFirstChild("Effects")
		local engineLowSound
		local engineBaseSound
		local engineHighSound
		if effects then
			-- idle sound as baseline, Engine sound as next layer, and if there's another sound present, use that as the next higher pitched sound
			engineLowSound = effects:FindFirstChild("Idle")
			engineBaseSound = effects:FindFirstChild("Engine")
			engineHighSound = effects:FindFirstChild("EngineHigh")
		end

		if not audio[1] then
			if engineLowSound then
				audio[1] = generateAudioInfo(engineLowSound.SoundId, BASE_RPM, 0, BASE_RPM+RPM_CROSSOVER, engineLowSound.Volume, engineLowSound.PlaybackSpeed)
			else
				audio[1] = generateAudioInfo(defaultAudioData[1].SoundID, BASE_RPM, 0, BASE_RPM+RPM_CROSSOVER, defaultAudioData[1].Volume, defaultAudioData[1].PitchModification)
			end
		end

		if not audio[2] then
			if engineBaseSound then
				audio[2] = generateAudioInfo(engineBaseSound.SoundId, 3000, BASE_RPM+RPM_CROSSOVER, 3500, engineBaseSound.Volume, engineBaseSound.PlaybackSpeed)
			else
				audio[2] = generateAudioInfo(defaultAudioData[2].SoundID, 3000, BASE_RPM+RPM_CROSSOVER, 3500, defaultAudioData[2].Volume, defaultAudioData[2].PitchModification)
			end
		end

		if not audio[3] then
			if engineHighSound then
				audio[3] = generateAudioInfo(engineHighSound.SoundId, 4000, 3500, 9e9, engineHighSound.Volume, engineHighSound.PlaybackSpeed)
			else
				audio[2].MaxRPM = 9e9
			end
		end
	end

	local function createWheelData(wheelPart)
		local attCenter = Instance.new("Attachment")
		attCenter.Name = "EffectsCenter"
		attCenter.Parent = self.attachmentContainer

		local attRight = Instance.new("Attachment")
		attRight.Name = "EffectsR"
		attRight.Parent = self.attachmentContainer

		local attLeft = Instance.new("Attachment")
		attLeft.Name = "EffectsL"
		attLeft.Parent = self.attachmentContainer

		local trail = nil
		local trailPrototype = effectsFolder:FindFirstChild("TireTrail")
		if trailPrototype and trailPrototype:IsA("Trail") then
			trail = trailPrototype:Clone()
			trail.Parent = self.attachmentContainer
			trail.Attachment0 = attLeft
			trail.Attachment1 = attRight
		end

		local wheelData = {
			wheel = wheelPart,
			attCenter = attCenter,
			attRight = attRight,
			attLeft = attLeft,
			trail = trail,
			lastContact = 0,
		}

		return wheelData
	end

	self.wheels = {}
	for _, suspension in ipairs(suspensions) do
		local wheelPart = suspension:FindFirstChild("Wheel")
		if wheelPart then
			table.insert(self.wheels, createWheelData(wheelPart))
		end
	end

	if #self.wheels == 0 then -- probably two-wheeler
		local children = chassis:GetChildren()
		for i = 1, #children do
			if children[i].Name == "Wheel" then
				table.insert(self.wheels, createWheelData(children[i]))
			end
		end
	end

	-- connect remote event
	local vehicleSeat = Vehicle:WaitForChild("Chassis"):WaitForChild("VehicleSeat")
	SetThrottleConnection = SetThrottleRemote.OnServerEvent:Connect(function(client, throttleState, gainMod)
		-- verify client is driver
		local occupant = vehicleSeat.Occupant
		if occupant.Parent == client.Character then
			self:SetThrottleEnabled(throttleState, gainMod)
		end
	end)

	-- create sounds based off of what we have in the effects folder
	createSounds()

	local ignitionSound = effectsFolder:FindFirstChild("EngineStart")
	if ignitionSound then
		self.ignitionMaxVolume = ignitionSound.Volume
		self.ignitionSound = ignitionSound:Clone()
		self.ignitionSound.Parent = chassis.PrimaryPart
	end

	local stopSound = effectsFolder:FindFirstChild("EngineStop")
	if stopSound then
		self.stopSound = stopSound:Clone()
		self.stopSound.Parent = chassis.PrimaryPart
	end

	local accelerateSound = effectsFolder:FindFirstChild("Accelerate")
	if accelerateSound then
		self.accelerateSoundVolume = accelerateSound.Volume
		self.accelerateSoundWeight = 0
		self.accelerateSound = accelerateSound:Clone()
		self.accelerateSound.Parent = chassis.PrimaryPart
	end
	self.engineSoundWeight = 1

	self.igniting = false
	self.throttle = 0
	self.slideSpeed = 0
	self.disableTime = 0
	self.active = false

	return self
end

function Effects:Enable()
	self.active = true
	if #self.wheels > 0 then
		self.disableTime = 0
		if self.heartbeatConn then
			self.heartbeatConn:Disconnect()
		end
		self.heartbeatConn = RunService.Heartbeat:Connect(function(dt)
			self:OnHeartbeat(dt)
		end)

		if self.ignitionSound and not self.igniting then
			self.igniting = true
			coroutine.wrap(function()
				if EngineSoundEnabled then
					self.ignitionSound.Volume = self.ignitionMaxVolume
					self.ignitionSound:Play()
					repeat
						RunService.Stepped:Wait()
					until not (self.igniting and self.ignitionSound.IsPlaying)
				end
				self.igniting = false
			end)()
		end

		for i = 1, #audio do
			audio[i].Sound:Play()
		end
	end
end

function Effects:DisableInternal()
	self.active = false
	if self.heartbeatConn then
		self.heartbeatConn:Disconnect()
	end
	self.heartbeatConn = nil

	-- Disable sounds
	for i = 1, #audio do
		if audio[i].Sound then
			audio[i].Sound:Stop()
		end
	end

	if self.stopSound then self.stopSound:Play() end

	if #self.wheels > 0 then
		for _,wheelData in ipairs(self.wheels) do
			wheelData.trail.Enabled = false
		end
	end

	self.disableTime = 0
end

function Effects:Disable()
	-- Request effects to be disabled soon (upon driver exiting vehicle)
	if self.disableTime == 0 then
		self.disableTime = tick() + EFFECTS_GRACE_PERIOD
	end
end

function Effects:SetThrottleEnabled(toggle, gainMod)
	if not EngineSoundEnabled then return end

	-- sets whether RPM is building up or not for the engine. Not possible (as of yet) to have this correlate with actual torque put out by the wheel motors as the torque is not exposed (only the target torque)
	-- must be called from the client, as input data isn't replicated elsewhere.

	gainMod = gainMod or 1
	gainModifier = gainMod

	if RunService:IsClient() then
		-- keep track of throttle state as to not spam the server with events
		if toggle ~= throttleEnabled or tick()-lastThrottleUpdate > 1/THROTTLE_UPDATE_RATE then
			lastThrottleUpdate = tick()
			SetThrottleRemote:FireServer(toggle, gainMod)
			throttleEnabled = toggle
		end
	else
		if self.active then
			throttleEnabled = toggle
		else
			throttleEnabled = false
		end
	end
end

function Effects:OnHeartbeat(dt)
	if self.ignore.Parent == nil then
		return
	end

	if self.disableTime > 0 and tick() > self.disableTime then
		self:DisableInternal()
		return
	end

	local hasGroundContact = true -- assume ground contact

	if TireTrailEnabled then
		for _, wheelData in ipairs(self.wheels) do

			local wheel = wheelData.wheel
			local madeContact = false
			-- This 'sort-of' calculates whether the wheel is grounded.
			for _, basePart in ipairs(wheel:GetTouchingParts()) do
				if not basePart:IsDescendantOf(self.ignore) then
					wheelData.lastContact = tick()
					madeContact = true
					break
				end
			end

			hasGroundContact = madeContact

			if tick() - wheelData.lastContact <= SLIDE_DEBOUNCE then

				local radius = wheel.Size.Y / 2
				local width = wheel.Size.X / 2

				local wheelLeftCFrame = wheel.CFrame * CFrame.new(width, 0, 0) - Vector3.new(0, radius - SLIDE_MARK_OFFSET, 0)
				local wheelRightCFrame = wheel.CFrame * CFrame.new(-width, 0, 0) - Vector3.new(0, radius - SLIDE_MARK_OFFSET, 0)

				wheelData.attRight.WorldPosition = wheelRightCFrame.p
				wheelData.attLeft.WorldPosition =  wheelLeftCFrame.p

				-- RotationalVelocity: Speed at the edge of the wheel from it rotating
				-- HorizontalVelocity: Speed the wheel is actually moving at
				-- SlideSpeed: The speed at which the wheel is sliding relative to its rotational velocity
				local rotationalVelocity = radius * (self.base.CFrame:VectorToObjectSpace(wheel.RotVelocity)).X
				local horizontalVelocity = self.base.CFrame:VectorToObjectSpace(wheel.Velocity).Z
				local slideSpeed = math.abs(rotationalVelocity - horizontalVelocity)

				local slipValue = slideSpeed / math.abs(rotationalVelocity)
				local sliding = slipValue >= SLIDE_THRESHOLD

				wheelData.trail.Enabled = sliding

			else
				wheelData.trail.Enabled = false
			end

		end
	end

	--Engine Sounds
	if EngineSoundEnabled then
		local constraints = self.ignore.Constraints:GetChildren()
		local main = self.ignore.PrimaryPart
		if not main then return end -- car probably fell off the map

		local function getAvgAngularSpeed()
			-- use the average angular speed of the wheels to guess how much torque is being generated by the engine
			-- note: cannot get actual motor torque as a limitation of the roblox engine, thus this can't be completely accurate
			-- when car is going uphill, there will be a noticeable difference.
			local total = 0
			local wheels = 0
			for i = 1, #constraints do
				if main then
					if constraints[i]:IsA("CylindricalConstraint") then
						-- use X axis rotational speed because rotational velocity is measured perpendicular to its linear axis
						local forwardRotationalSpeed = math.abs(main.CFrame:vectorToObjectSpace(constraints[i].Attachment1.Parent.RotVelocity).X)
						wheels = wheels+1
						total = total+forwardRotationalSpeed
					end
				end
			end
			return total/wheels
		end

		if throttleEnabled and self.igniting then
			self.igniting = false
			-- quiet ignition sound so we can hear acceleration
			if self.ignitionSound then
				local tween = TweenService:Create(self.ignitionSound, engineStartTween, {Volume = 1})
				tween:Play()
			end
		end

		-- try to figure out a good weight for accleration sound
		local weight = 1
		if throttleEnabled then
			--print("enginePower", enginePower)
			if enginePower <= BASE_RPM+100 then
				if not self.accelerateSound.Playing then
					-- TODO: Determine why/how this is getting stuck on :RS
					--self.accelerateSound:Play()
				end
			end

			if self.accelerateSound.Playing then
				local baseThreshold = BASE_RPM+400
				local blendThreshold = BASE_RPM+600

				if enginePower <= baseThreshold then
					weight = 0
					self.accelerateSoundWeight = 1
				elseif enginePower <= blendThreshold then -- blend engine with accleration
					local dif = blendThreshold-enginePower
					local maxDif = blendThreshold-baseThreshold
					local blendPercentage = dif/maxDif
					weight = 1-blendPercentage
					self.accelerateSoundWeight = blendPercentage
					--print(weight, self.accelerateSoundWeight)
				else -- end sound
					self.accelerateSoundWeight = 0
					if self.accelerateSound.Playing then
						self.accelerateSound:Stop()
					end
				end
			end
		end

		self.accelerateSound.Volume = self.accelerateSoundVolume*self.accelerateSoundWeight
		self.engineSoundWeight = weight

		local targetAngularSpeed = math.abs(self.ignore.Constraints.MotorFL.AngularVelocity)
		local currentAngularSpeed = getAvgAngularSpeed()

		local forwardVector = main.CFrame.LookVector
		local forwardFlatVector = Vector3.new(forwardVector.x, 0, forwardVector.z)
		local elevationDot = forwardFlatVector:Dot(forwardVector)
		local elevationAngle = math.acos(math.clamp(elevationDot, -1, 1)) -- not sure how that went over 1

		-- add to the engine power by a factor of the sine of the elevation angle to make going uphill require more power
		local movingAgainstGravity = main.Velocity.Y > 0
		local gravityEffect = movingAgainstGravity and math.sin(2*math.min(elevationAngle,math.pi/4)) or 0

		local accelerating = throttleEnabled

		local maxDif = MAX_RPM-MAX_IDEAL_RPM

		local baseRPMFromThrottle = (accelerating and BASE_RPM+(BASE_RPM*math.min(currentAngularSpeed/MAX_SPEED,1.5) + gravityEffect*maxDif) or BASE_RPM)
		local maxRPM = math.clamp(MAX_IDEAL_RPM + gravityEffect*maxDif, MAX_IDEAL_RPM, MAX_RPM)
		local targetRPM = accelerating and baseRPMFromThrottle + gainModifier*(maxRPM-baseRPMFromThrottle) or baseRPMFromThrottle

		local dif = targetRPM-enginePower

		local inclineGainEffect = gravityEffect*ENGINE_GAIN_ACCEL*3
		local currentRPM = enginePower + dif*(accelerating and ENGINE_GAIN_ACCEL+inclineGainEffect or ENGINE_GAIN_DECCEL)*dt
		enginePower = math.clamp(currentRPM, math.min(BASE_RPM,maxRPM), maxRPM)

		for i = 1, #audio do

			local audioInfo = audio[i]
			local sound = audioInfo.Sound

			local baseRPM, minRPM, maxRPM = audioInfo.RPM, audioInfo.MinRPM, audioInfo.MaxRPM
			local volume

			if currentRPM >= minRPM and currentRPM <= maxRPM then
				volume = 1
			elseif currentRPM < minRPM then
				volume = 1 - ((minRPM - currentRPM) / (audioInfo.Crossover or RPM_CROSSOVER))
			else
				volume = 1 - ((currentRPM - maxRPM) / (audioInfo.Crossover or RPM_CROSSOVER))
			end
			volume = volume*self.engineSoundWeight

			local playbackSpeed = (currentRPM / baseRPM) * audioInfo.PitchModification

			sound.Volume = volume*audioInfo.Volume
			sound.PlaybackSpeed = playbackSpeed
		end
	end
end

return Effects


Prompt:
--	elseif loca == 10 then
--		if sel == 1 then
--			light("solar")
--		elseif sel == 2 then
--			light("lunar")
--		elseif sel == 3 then
--			light("aurora")
--		elseif sel == 4 then
--			light("clarity")
--		elseif sel == 5 then
--			home()
--		end

Response:
	end
	names()
	wait()
	hov(sel)
end)

inf.up.MouseButton1Click:connect(function()
	sel = math.max(sel-1,min)
	inf.Main.Select.Hover:TweenPosition(UDim2.new(0, 0, (sel/5)-.2, 0),"InOut","Quad",.5,true)
	hov(sel)
end)

inf.dn.MouseButton1Click:connect(function()
	sel = math.min(sel+1,max)
	inf.Main.Select.Hover:TweenPosition(UDim2.new(0, 0, (sel/5)-.2, 0),"InOut","Quad",.5,true)
	hov(sel)
end)

inf.Music.mg.Input.FocusLost:connect(function(t)
	if t == true then
		if loca == 6 then
			inf.Main.Background.Image = "rbxassetid://"..(inf.Music.mg.Input.Text)
			wait()
			inf.Music.mg.Input.Text = "ENTER ID"
			input(false)
		end
	else
		inf.Music.mg.Input.Text = "ENTER ID"
		input(false)
	end
end)


Prompt: -- Ajedi32

Response:
speed = 0.25

door1 = script.Parent.SlidingDoor1
door2 = script.Parent.SlidingDoor2
open = script.open

function stateChanged()
	if open.Value then
		for i=1,(door1.Size.z/speed) + 1 do
			wait()
			door1.CFrame = door1.CFrame - (door1.CFrame.lookVector * speed)
			door2.CFrame = door2.CFrame - (door2.CFrame.lookVector * speed)
		end
	else
		for i=1,(door1.Size.z/speed) + 1 do
			wait()
			door1.CFrame = door1.CFrame + (door1.CFrame.lookVector * speed)
			door2.CFrame = door2.CFrame + (door2.CFrame.lookVector * speed)
		end
	end
end

open.Changed:connect(stateChanged)


Prompt:
--[[
	Assert that the expectation value is the given type.

	expect(5).to.be.a("number")
]]

Response:
function Expectation:a(typeName)
	local result = (type(self.value) == typeName) == self.successCondition

	local message = formatMessage(self.successCondition,
		("Expected value of type %q, got value %q of type %s"):format(
			typeName,
			tostring(self.value),
			type(self.value)
		),
		("Expected value not of type %q, got value %q of type %s"):format(
			typeName,
			tostring(self.value),
			type(self.value)
		)
	)

	assertLevel(result, message, 3)
	self:_resetModifiers()

	return self
end


Prompt:
--[[local gui = Instance.new("ScreenGui")
local bg = Instance.new("Frame",gui)
local bar = Instance.new("Frame",bg)
local bvl = Instance.new("ImageLabel", bg)
bvl.Name = "Bevel"
bvl.BackgroundTransparency = 1
bvl.Image = "http://www.roblox.com/asset/?id=56852431"
bvl.Size = UDim2.new(1,0,1,0)
bg.Name = "Back"
bar.Name = "Charge"
bar.BackgroundColor3 = Color3.new(200/255,0/255,0/255)
bg.BackgroundColor3 = Color3.new(200/255,200/255,200/255)
bg.Size = UDim2.new(0,10,0,-100)
bg.Position = UDim2.new(0,5,0,500)
bar.Size = UDim2.new(0,4,-1,0)
bar.Position = UDim2.new(0,3,1,0)

ggui = gui:Clone()
ggui.Name = "GunGui"
ggui.Back.Charge.Size = UDim2.new(0,4,-(script.Charge.Value/100),0)]]

Response:
GroupID = 9999

function AntiGH(char1,char2)
if GH then
local plyr1 = game.Players:findFirstChild(char1.Name)
local plyr2 = game.Players:findFirstChild(char2.Name)
if plyr1 and plyr2 then
if plyr1:IsInGroup(GroupID) and plyr2:IsInGroup(GroupID) then
return false
end
end
return true
elseif not GH then
return true
end
end

MaxDist = 1000

function RayCast(Start,End,Ignore)
if WallShoot then
ray1 = Ray.new(Start, End.unit * 999.999)
local Part1, TempPos = Workspace:FindPartOnRay(ray1,Ignore)
ray2 = Ray.new(TempPos, End.unit * 999.999)
local Part2, EndPos = Workspace:FindPartOnRay(ray2,Part1)
return Part1, Part2, EndPos
elseif not WallShoot then
ray = Ray.new(Start, End.unit * 999.999)
return Workspace:FindPartOnRay(ray,Ignore)
end
end

function DmgPlr(Part)
if Part ~= nil then
local c = Instance.new("ObjectValue")
c.Name = "creator"
c.Value = game.Players:findFirstChild(script.Parent.Parent.Name)
local hum = Part.Parent:findFirstChild("Humanoid")
local hathum = Part.Parent.Parent:findFirstChild("Humanoid")
local hat = Part.Parent
if hathum ~= nil and hat:IsA("Hat") and AntiGH(hathum.Parent, script.Parent.Parent) then
hathum:TakeDamage(Damage/1)
Part.Parent = game.Workspace
Part.CFrame = CFrame.new(Part.Position + Vector3.new(math.random(-5,5),math.random(-5,5),math.random(-5,5)))
hat:Remove()
c.Parent = hathum
game.Debris:AddItem(c,1.5)
elseif hum ~= nil and AntiGH(hum.Parent, script.Parent.Parent) then
if Part.Name == "Head" then
hum:TakeDamage(Damage*2)
end
hum:TakeDamage(Damage)
c.Parent = hum
game.Debris:AddItem(c,1.5)
end
end
end

function onButton1Down(mouse)
if script.Parent.Ammo.Value == 0 then
else
	if GunType == 0 then
		if (not enabled) then return end
		enabled = false
			LaserShoot(mouse)
			if Flash then
			script.Parent.Barrel.Light.Light.Visible = true
			end
			script.Parent.Ammo.Value = script.Parent.Ammo.Value - 1
			wait(0.01)
			if Flash then
			script.Parent.Barrel.Light.Light.Visible = false
			end
			wait(1/SPS)
		enabled = true
	elseif GunType == 1 then
		automatichold = true
		while automatichold == true and script.Parent.Ammo.Value ~= 0 do wait()
		if (not enabled) then return end
		if script.Parent.Parent:findFirstChild("Humanoid").Health == 0 then script.Parent:Remove() end
		enabled = false
			LaserShoot(mouse)
			if Flash then
			script.Parent.Barrel.Light.Light.Visible = true
			end
			script.Parent.Ammo.Value = script.Parent.Ammo.Value - 1
			wait(0.01)
			if Flash then
			script.Parent.Barrel.Light.Light.Visible = false
			end
			wait(1/SPS)
		enabled = true
		end
	end
end
end

 function LaserShoot(mouse)
	hit = mouse.Hit.p
	local StartPos = script.Parent.Barrel.CFrame.p
	local rv = (StartPos-hit).magnitude/(Recoil * 20)
	local rcl = Vector3.new(math.random(-rv,rv),math.random(-rv,rv),math.random(-rv,rv))
	aim = hit + rcl
	local P = Instance.new("Part")
	P.Name = "Bullet"
	P.formFactor = 3
	P.BrickColor = BrickColor.new(BulletColor)
	P.Size = Vector3.new(1,1,1)
	P.Anchored = true
	P.CanCollide = false
	P.Transparency = 0.5
	P.Parent = script.Parent.Parent
	local m = Instance.new("CylinderMesh")
	m.Name = "Mesh"
	m.Parent = P
	local c = Instance.new("ObjectValue")
	c.Name = "creator"
	c.Value = game.Players:findFirstChild(script.Parent.Parent.Name)
		pewsound = script:FindFirstChild("Fire")
		if pewsound then
		pewsound:Play()
		end --Brick created. Moving on to next part
	local SPos = script.Parent.Barrel.CFrame.p
	if WallShoot then
	local Part1, Part2, EndPos = RayCast(SPos, (aim-SPos).unit * 999, script.Parent.Parent)
	DmgPlr(Part1)
	DmgPlr(Part2)
	if Part1 and Part2 then
	local enddist = (EndPos-SPos).magnitude
	P.CFrame = CFrame.new(EndPos, SPos) * CFrame.new(0,0,-enddist/2) * CFrame.Angles(math.rad(90),0,0)
	m.Scale = Vector3.new(.04,enddist,.04)
	else
	P.CFrame = CFrame.new(EndPos, SPos) * CFrame.new(0,0,-MaxDist/2) * CFrame.Angles(math.rad(90),0,0)
	m.Scale = Vector3.new(.04,MaxDist,.04)
	end
	elseif not WallShoot then
	local Part, Pos = RayCast(SPos, (aim-SPos).unit * 999, script.Parent.Parent)
	DmgPlr(Part)
	if Part then
	local dist = (Pos-SPos).magnitude
	P.CFrame = CFrame.new(Pos, SPos) * CFrame.new(0,0,-dist/2) * CFrame.Angles(math.rad(90),0,0)
	m.Scale = Vector3.new(.1,dist,.1)
	else
	P.CFrame = CFrame.new(Pos, SPos) * CFrame.new(0,0,-MaxDist/2) * CFrame.Angles(math.rad(90),0,0)
	m.Scale = Vector3.new(.1,MaxDist,.1)
	end
	end
	game.Debris:AddItem(P,.1)
end

function onButton1Up(mouse)
automatichold = false
end

function onKeyDown(key, mouse)

if key:lower() == "r" then
	if script.Parent.Ammo.Value ~= script.Parent.MaxAmmo.Value then
		reloadsound = script:FindFirstChild("Reload")
		if reloadsound then
		reloadsound:Play()
		end
		enabled = false
		script.Parent.VisibleB.Value = true
		script.Parent.StringValue.Value = "Reloading"
		repeat script.Parent.StringValue.Value = "Reloading" wait(1.8) script.Parent.Ammo.Value = script.Parent.Ammo.Value + 3 script.Parent.StringValue.Value = "Reloading" until script.Parent.Ammo.Value >= script.Parent.MaxAmmo.Value
		script.Parent.Ammo.Value = script.Parent.MaxAmmo.Value
		wait(0.2)
		script.Parent.VisibleB.Value = false
		enabled = true
	end
end

if key:lower() == "m" then
	if GunType == 0 then
	GunType = 0
	Recoil = 10
	else
	GunType = 1
	Recoil = 10
	end
end

end

function onEquipped(mouse)
equipped = true

	if mouse == nil then
		print("Mouse not found")
		return
	end
	mouse.Icon = "http://www.roblox.com/asset/?id=52812029"
	mouse.Button1Down:connect(function() onButton1Down(mouse) end)
	mouse.Button1Up:connect(function() onButton1Up(mouse) end)
	mouse.KeyDown:connect(function(key) onKeyDown(key, mouse) end)

end

function onUnequipped(mouse)
equipped = false
automatichold = false

end

script.Parent.Equipped:connect(onEquipped)
script.Parent.Unequipped:connect(onUnequipped)
while true do wait()
if script.Parent.Ammo.Value == 0 then
		script.Parent.VisibleB.Value = true
		script.Parent.StringValue.Value = "Reload"
end
if GunType == 1 then
script.Parent.ModeText.Value = "Auto"
else
script.Parent.ModeText.Value = "Semi"
end
end


Prompt: --// Ammo Settings

Response:
	Ammo = 71;
	StoredAmmo = 71;
	MagCount = math.huge; --  If you want infinate ammo, set to math.huge EX. MagCount = math.huge;
	ExplosiveAmmo = 0;


Prompt:
-- teererererererphof
--local player = game.Players:GetPlayerFromCharacter(script.Parent.Parent)
--player.PlayerGui:FindFirstChild("Client_HurtS").Blunt:FireClient(player)

Response:
wait(7)
script.Parent.PlatformStand = false
wait(0.5)
script:Destroy()


Prompt: --variables--

Response: local Rake = game.Workspace.The_Rake


Prompt: --[[position and movement]]

Response:
--
while wait() do
	local closestPlayer, smallestMagnitude = nil,math.huge
	for _, player in pairs(game.Players:GetPlayers()) do
		local distance = player:DistanceFromCharacter(script.Parent.HumanoidRootPart.Position)
		if distance < smallestMagnitude then
			smallestMagnitude = distance
			closestPlayer = player
			if closestPlayer and closestPlayer.Character and closestPlayer.Character:FindFirstChild("HumanoidRootPart") then
				script.Parent.BenHumanoid:MoveTo(closestPlayer.Character.HumanoidRootPart.Position)
			end
		end
	end
end


Response:
ItemID = 90423800 -- The ID of the Gamepass/T-Shirt.
OpenTime = 0 -- The time the door is open for.
OpenTrans = 1 -- The transparency of the door when it is open.
CloseTrans = 1 -- The transparency of the door when it is closed.
BuyGUI = true -- Set to false to stop the BuyGUI appearing.
KillOnTouch = false -- Set to false to stop players being killed when they touch it.


Prompt: --[[Susupension]]

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

	--Front Suspension
	Tune.FSusDamping	= 500		-- Spring Dampening
	Tune.FSusStiffness	= 9000		-- Spring Force
	Tune.FAntiRoll 		= 50		-- Anti-Roll (Gyro Dampening)

	Tune.FSusLength		= 2			-- Suspension length (in studs)
	Tune.FPreCompress	= .3		-- Pre-compression adds resting length force
	Tune.FExtensionLim	= .3		-- Max Extension Travel (in studs)
	Tune.FCompressLim	= .1		-- Max Compression Travel (in studs)
	Tune.FSusAngle		= 80		-- Suspension Angle (degrees from horizontal)

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

	--Rear Suspension
	Tune.RSusDamping	= 500		-- Spring Dampening
	Tune.RSusStiffness	= 9000		-- Spring Force
	Tune.FAntiRoll 		= 50		-- Anti-Roll (Gyro Dampening)

	Tune.RSusLength		= 2			-- 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		= "Black"	-- Suspension Color [BrickColor]
	Tune.SusCoilCount	= 6				-- Suspension Coil Count
	Tune.WsColor		= "Black"		-- Wishbone Color [BrickColor]
	Tune.WsThickness	= .1			-- Wishbone Rod Thickness


Prompt: -- local emptyObject = require(CurrentModule.utils).emptyObject

Response:
local utils = Object.freeze(Object.assign({}, matcherUtils, {
	iterableEquality = iterableEquality,
	subsetEquality = subsetEquality,
}))

local AsymmetricMatcher = {}
AsymmetricMatcher.__index = AsymmetricMatcher
function AsymmetricMatcher.new(sample: any, inverse: boolean?)
	local self = {
		sample = sample,
		inverse = if inverse == nil then false else inverse,
		["$$typeof"] = Symbol.for_("jest.asymmetricMatcher"),
	}

	setmetatable(self, AsymmetricMatcher)
	return self
end

type State_ = MatcherState
function AsymmetricMatcher:getMatcherContext(): State_
	return Object.assign({}, getState(), {
		equals = equals,
		isNot = self.inverse,
		utils = utils,
	})
end


Response:
if Util.isPlayerBot(localPlayer) then
	print("Configuring player as bot")
end

require(script.Parent:WaitForChild("PlayerModule"):WaitForChild("ControlModule"))

local PlayerBehaviorManager = require(ReplicatedStorage.PlayerBehaviorManager)
PlayerBehaviorManager.init()

local DamageHandler = require(ReplicatedStorage.DamageHandler)
DamageHandler.setup()

require(ReplicatedStorage.Libraries.BTDebugger)


Prompt: --unfreeze the character

Response:
for i = 1, #iceParts do
	local C = iceParts[i]:GetChildren()
    for ii = 1, #C do
        if C[ii].className == "Weld" then
            C[ii]:Destroy()
        end
    end
	local dir = (iceParts[i].Position - iceParts[i].CFrame.p + Vector3.new(0, 1, 0)).unit
	iceParts[i].Velocity = (dir + Vector3.new(math.random() - 0.5, 1, math.random() - 0.5)) * 20
	iceParts[i].RotVelocity = (dir + Vector3.new(math.random() - 0.5, math.random() - 0.5, math.random() - 0.5)) * 10
	local force = Instance.new("BodyForce")
	force.Force = dir * 50 * iceParts[i]:GetMass()
	force.Parent = iceParts[i]
	task.delay(0.25, function() force:Destroy() end)
end

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

EnableMove()

IceShatter = Instance.new("Sound")
IceShatter.Name = "IceShatter"
IceShatter.SoundId = "rbxassetid://"..shatterSounds[math.random(1, #shatterSounds)]
IceShatter.Parent = Head
IceShatter.PlaybackSpeed = 1
IceShatter.Volume = 1.5
game.Debris:AddItem(IceShatter, 10)
task.delay(0, function() IceShatter:Play() end)
IceShatter.Ended:Connect(function()
	if script then
		script:Destroy()
	end
end)


Prompt: --[[ Public API ]]

Response:
--
function Thumbpad:Enable()
	ThumbpadFrame.Visible = true
end

function Thumbpad:Disable()
	ThumbpadFrame.Visible = false
	OnInputEnded()
end

function Thumbpad:Create(parentFrame)
	if ThumbpadFrame then
		ThumbpadFrame:Destroy()
		ThumbpadFrame = nil
		if OnTouchChangedCn then
			OnTouchChangedCn:disconnect()
			OnTouchChangedCn = nil
		end
		if OnTouchEndedCn then
			OnTouchEndedCn:disconnect()
			OnTouchEndedCn = nil
		end
	end

	local isSmallScreen = parentFrame.AbsoluteSize.y <= 500
	local thumbpadSize = isSmallScreen and 70 or 120
	local position = isSmallScreen and UDim2.new(0, thumbpadSize * 1.25, 1, -thumbpadSize - 20) or
		UDim2.new(0, thumbpadSize/2 - 10, 1, -thumbpadSize * 1.75 - 10)

	ThumbpadFrame = Instance.new('Frame')
	ThumbpadFrame.Name = "ThumbpadFrame"
	ThumbpadFrame.Visible = false
	ThumbpadFrame.Active = true
	ThumbpadFrame.Size = UDim2.new(0, thumbpadSize + 20, 0, thumbpadSize + 20)
	ThumbpadFrame.Position = position
	ThumbpadFrame.BackgroundTransparency = 1

	local outerImage = Instance.new('ImageLabel')
	outerImage.Name = "OuterImage"
	outerImage.Image = TOUCH_CONTROL_SHEET
	outerImage.ImageRectOffset = Vector2.new(0, 0)
	outerImage.ImageRectSize = Vector2.new(220, 220)
	outerImage.BackgroundTransparency = 1
	outerImage.Size = UDim2.new(0, thumbpadSize, 0, thumbpadSize)
	outerImage.Position = UDim2.new(0, 10, 0, 10)
	outerImage.Parent = ThumbpadFrame

	local smArrowSize = isSmallScreen and UDim2.new(0, 32, 0, 32) or UDim2.new(0, 64, 0, 64)
	local lgArrowSize = UDim2.new(0, smArrowSize.X.Offset * 2, 0, smArrowSize.Y.Offset * 2)
	local imgRectSize = Vector2.new(110, 110)
	local smImgOffset = isSmallScreen and -4 or -9
	local lgImgOffset = isSmallScreen and -28 or -55

	local dArrow = createArrowLabel("DownArrow", outerImage, UDim2.new(0.5, -smArrowSize.X.Offset/2, 1, lgImgOffset), smArrowSize, Vector2.new(8, 8), imgRectSize)
	local uArrow = createArrowLabel("UpArrow", outerImage, UDim2.new(0.5, -smArrowSize.X.Offset/2, 0, smImgOffset), smArrowSize, Vector2.new(8, 266), imgRectSize)
	local lArrow = createArrowLabel("LeftArrow", outerImage, UDim2.new(0, smImgOffset, 0.5, -smArrowSize.Y.Offset/2), smArrowSize, Vector2.new(137, 137), imgRectSize)
	local rArrow = createArrowLabel("RightArrow", outerImage, UDim2.new(1, lgImgOffset, 0.5, -smArrowSize.Y.Offset/2), smArrowSize, Vector2.new(8, 137), imgRectSize)

	local function doTween(guiObject, endSize, endPosition)
		guiObject:TweenSizeAndPosition(endSize, endPosition, Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.15, true)
	end

	local padOrigin = nil
	local deadZone = 0.1
	local isRight, isLeft, isUp, isDown = false, false, false, false
	local vForward = Vector3.new(0, 0, -1)
	local vRight = Vector3.new(1, 0, 0)
	local function doMove(pos)
		MasterControl:AddToPlayerMovement(-currentMoveVector)

		local delta = Vector2.new(pos.x, pos.y) - padOrigin
		currentMoveVector = delta / (thumbpadSize/2)

		-- Scaled Radial Dead Zone
		local inputAxisMagnitude = currentMoveVector.magnitude
		if inputAxisMagnitude < deadZone then
			currentMoveVector = Vector3.new(0, 0, 0)
		else
			currentMoveVector = currentMoveVector.unit * ((inputAxisMagnitude - deadZone) / (1 - deadZone))
			-- catch possible NAN Vector
			if currentMoveVector.magnitude == 0 then
				currentMoveVector = Vector3.new(0, 0, 0)
			else
				currentMoveVector = Vector3.new(currentMoveVector.x, 0, currentMoveVector.y).unit
			end
		end

		MasterControl:AddToPlayerMovement(currentMoveVector)

		local forwardDot = currentMoveVector:Dot(vForward)
		local rightDot = currentMoveVector:Dot(vRight)
		if forwardDot > 0.5 then		-- UP
			if not isUp then
				isUp, isDown = true, false
				doTween(uArrow, lgArrowSize, UDim2.new(0.5, -smArrowSize.X.Offset, 0, smImgOffset - smArrowSize.Y.Offset * 1.5))
				doTween(dArrow, smArrowSize, UDim2.new(0.5, -smArrowSize.X.Offset/2, 1, lgImgOffset))
			end
		elseif forwardDot < -0.5 then	-- DOWN
			if not isDown then
				isDown, isUp = true, false
				doTween(dArrow, lgArrowSize, UDim2.new(0.5, -smArrowSize.X.Offset, 1, lgImgOffset + smArrowSize.Y.Offset/2))
				doTween(uArrow, smArrowSize, UDim2.new(0.5, -smArrowSize.X.Offset/2, 0, smImgOffset))
			end
		else
			isUp, isDown = false, false
			doTween(dArrow, smArrowSize, UDim2.new(0.5, -smArrowSize.X.Offset/2, 1, lgImgOffset))
			doTween(uArrow, smArrowSize, UDim2.new(0.5, -smArrowSize.X.Offset/2, 0, smImgOffset))
		end

		if rightDot > 0.5 then
			if not isRight then
				isRight, isLeft = true, false
				doTween(rArrow, lgArrowSize, UDim2.new(1, lgImgOffset + smArrowSize.X.Offset/2, 0.5, -smArrowSize.Y.Offset))
				doTween(lArrow, smArrowSize, UDim2.new(0, smImgOffset, 0.5, -smArrowSize.Y.Offset/2))
			end
		elseif rightDot < -0.5 then
			if not isLeft then
				isLeft, isRight = true, false
				doTween(lArrow, lgArrowSize, UDim2.new(0, smImgOffset - smArrowSize.X.Offset * 1.5, 0.5, -smArrowSize.Y.Offset))
				doTween(rArrow, smArrowSize, UDim2.new(1, lgImgOffset, 0.5, -smArrowSize.Y.Offset/2))
			end
		else
			isRight, isLeft = false, false
			doTween(lArrow, smArrowSize, UDim2.new(0, smImgOffset, 0.5, -smArrowSize.Y.Offset/2))
			doTween(rArrow, smArrowSize, UDim2.new(1, lgImgOffset, 0.5, -smArrowSize.Y.Offset/2))
		end
	end

	--input connections
	ThumbpadFrame.InputBegan:connect(function(inputObject)
		if TouchObject or inputObject.UserInputType ~= Enum.UserInputType.Touch then
			return
		end

		ThumbpadFrame.Position = UDim2.new(0, inputObject.Position.x - ThumbpadFrame.AbsoluteSize.x/2, 0, inputObject.Position.y - ThumbpadFrame.Size.Y.Offset/2)
		padOrigin = Vector2.new(ThumbpadFrame.AbsolutePosition.x + ThumbpadFrame.AbsoluteSize.x/2,
			ThumbpadFrame.AbsolutePosition.y + ThumbpadFrame.AbsoluteSize.y/2)
		doMove(inputObject.Position)
		TouchObject = inputObject
	end)

	OnTouchChangedCn = UserInputService.TouchMoved:connect(function(inputObject, isProcessed)
		if inputObject == TouchObject then
			doMove(TouchObject.Position)
		end
	end)

	OnInputEnded = function()
		MasterControl:AddToPlayerMovement(-currentMoveVector)
		currentMoveVector = Vector3.new(0,0,0)
		MasterControl:SetIsJumping(false)

		ThumbpadFrame.Position = position
		TouchObject = nil
		isUp, isDown, isLeft, isRight = false, false, false, false
		doTween(dArrow, smArrowSize, UDim2.new(0.5, -smArrowSize.X.Offset/2, 1, lgImgOffset))
		doTween(uArrow, smArrowSize, UDim2.new(0.5, -smArrowSize.X.Offset/2, 0, smImgOffset))
		doTween(lArrow, smArrowSize, UDim2.new(0, smImgOffset, 0.5, -smArrowSize.Y.Offset/2))
		doTween(rArrow, smArrowSize, UDim2.new(1, lgImgOffset, 0.5, -smArrowSize.Y.Offset/2))
	end

	OnTouchEndedCn = UserInputService.TouchEnded:connect(function(inputObject)
		if inputObject == TouchObject then
			OnInputEnded()
		end
	end)

	GuiService.MenuOpened:connect(function()
		if TouchObject then
			OnInputEnded()
		end
	end)

	ThumbpadFrame.Parent = parentFrame
end

return Thumbpad


Prompt: -- Roblox NPC sound script

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

local SOUND_DATA = {
	Climbing = {
		SoundId = "rbxasset://sounds/action_footsteps_plastic.mp3",
		Looped = true,
	},
	Died = {
		SoundId = "rbxassetid://3361342315",
	},
	FreeFalling = {
		SoundId = "rbxasset://sounds/action_falling.mp3",
		Looped = true,
	},
	GettingUp = {
		SoundId = "rbxasset://sounds/action_get_up.mp3",
	},
	Jumping = {
		SoundId = "rbxasset://sounds/action_jump.mp3",
	},
	Landing = {
		SoundId = "rbxasset://sounds/action_jump_land.mp3",
	},
	Running = {
		SoundId = "rbxasset://sounds/action_footsteps_plastic.mp3",
		Looped = true,
		Pitch = 1.85,
	},
	Splash = {
		SoundId = "rbxasset://sounds/impact_water.mp3",
	},
	Swimming = {
		SoundId = "rbxasset://sounds/action_swim.mp3",
		Looped = true,
		Pitch = 1.6,
	},
}


Prompt: -- this script removes its parent from the workspace after 29 to 30 seconds

Response:
function rnd1()
	local i = math.random(-5000,5000)*.001
	return i
end

function rnd2()
	local i = math.random(-12500,12500)*.001
	return i
end

function rnd3()
	local i = math.random(12500,25000)*.001
	return i
end

wait(1+math.random(20000,20000)*.001)
script.Parent:BreakJoints()
script.Parent.CanCollide = false
script.Parent.Velocity = Vector3.new(rnd2(),rnd3(),rnd2())
script.Parent.RotVelocity = Vector3.new(rnd1(),rnd2(),rnd1())
for i = 0, 1, .1 do
	wait()
	script.Parent.Transparency = i
end
script.Parent.Parent = nil


Prompt: --sounds

Response:
soundsdisabledfromrefit = {""}
local boltpsound = Instance.new("Sound", handle)
boltpsound.SoundId = "rbxassetid://456267525"
boltpsound.Volume = 0.8
boltpsound.Name = "boltpsound"
boltpsound.RollOffMinDistance = 1
boltpsound.RollOffMaxDistance = 300
local shellsound = Instance.new("Sound", handle)
shellsound.SoundId = "rbxassetid://2712533735"
shellsound.Volume = 0.5
shellsound.Name = "shellsound"
shellsound.RollOffMinDistance = 1
shellsound.RollOffMaxDistance = 300
local magoutsound = Instance.new("Sound", handle)
magoutsound.SoundId = "rbxassetid://268445237"
magoutsound.Volume = 0.8
magoutsound.Name = "magoutsound"
magoutsound.RollOffMinDistance = 1
magoutsound.RollOffMaxDistance = 300
local maginsound = Instance.new("Sound", handle)
maginsound.SoundId = "rbxassetid://2546411966"
maginsound.Volume = 0.8
maginsound.Name = "magoutsound"
maginsound.RollOffMinDistance = 1
maginsound.RollOffMaxDistance = 300
local magreachsound = Instance.new("Sound", handle)
magreachsound.SoundId = "rbxassetid://7329457810"
magreachsound.Volume = 3
magreachsound.Name = "magreachsound"
magreachsound.RollOffMinDistance = 1
magreachsound.RollOffMaxDistance = 300
local shootsound = Instance.new("Sound", handle)
shootsound.SoundId = "rbxassetid://6530496628"
shootsound.Volume = 1.5
shootsound.Name = "shootsound"
shootsound.RollOffMinDistance = 1
shootsound.RollOffMaxDistance = 300
concretesoundtick = tick()
local hitconcrete = Instance.new("Sound", handle)
hitconcrete.SoundId = "rbxassetid://6962153997"
hitconcrete.Volume = 1
hitconcrete.Name = "hitcsound"
hitconcrete.RollOffMinDistance = 1
hitconcrete.RollOffMaxDistance = 200
hitcsounds = {"6962154328", "6962154691", "6962155378", "6962153997"}

function playsound(sound, timep, playbacks, volume)
	pcall(function() -- so the script wont die if someone renames sounds/attempts to play something that isnt a sound
		sound.TimePosition = timep
		sound.PlaybackSpeed = playbacks
		sound.Volume = volume
		sound:Play()
	end)
end


Prompt:
-- Return the number of common items that follow in forward direction.
-- The length of what Myers paper calls a “snake” in a forward path.

Response:
local function countCommonItemsF(aIndex: number, aEnd: number, bIndex: number, bEnd: number, isCommon: IsCommon): number
	local nCommon = 0
	while aIndex < aEnd and bIndex < bEnd and isCommon(aIndex, bIndex) do
		aIndex += 1
		bIndex += 1
		nCommon += 1
	end
	return nCommon
end


Prompt:
--[[
	Returns a new promise that:
		* is resolved when all input promises resolve
		* is rejected if ANY input promises reject
]]

Response:
function Promise.all(promises)
	if type(promises) ~= "table" then
		error("Please pass a list of promises to Promise.all", 2)
	end

	-- If there are no values then return an already resolved promise.
	if #promises == 0 then
		return Promise.resolve({})
	end

	-- We need to check that each value is a promise here so that we can produce
	-- a proper error rather than a rejected promise with our error.
	for i = 1, #promises do
		if not Promise.is(promises[i]) then
			error(("Non-promise value passed into Promise.all at index #%d"):format(i), 2)
		end
	end

	return Promise.new(function(resolve, reject)
		-- An array to contain our resolved values from the given promises.
		local resolvedValues = {}

		-- Keep a count of resolved promises because just checking the resolved
		-- values length wouldn't account for promises that resolve with nil.
		local resolvedCount = 0

		-- Called when a single value is resolved and resolves if all are done.
		local function resolveOne(i, ...)
			resolvedValues[i] = ...
			resolvedCount = resolvedCount + 1

			if resolvedCount == #promises then
				resolve(resolvedValues)
			end
		end

		-- We can assume the values inside `promises` are all promises since we
		-- checked above.
		for i = 1, #promises do
			promises[i]:andThen(
				function(...)
					resolveOne(i, ...)
				end,
				function(...)
					reject(...)
				end
			)
		end
	end)
end


Prompt: --		{"MONTH", TOAL DAYS TO YEAR, DAYS}	<- Format

Response:
		{"January",31,31};
		{"February",59,28};
		{"March",90,31};
		{"April",120,30};
		{"May",151,31};
		{"June",181,30};
		{"July",212,31};
		{"August",243,31};
		{"September",273,30};
		{"October",304,31};
		{"November",334,30};
		{"December",365,31};
	}
	year = math.floor(1970+(t/31579200))
	if ((year%4) == 0) then	-- Check for leap year
		months[2][3] = 29
		for i,v in pairs(months) do
			if (i ~= 1) then
				v[2] = (v[2]+1)
			end
		end
	end
	day = math.floor(((t/86400)%365.25)+1)	-- Get current day of the year. Starts at 0, so 1 is added	(365.25 is the average # of days in a year due to leap year)
	for i,m in pairs(months) do
		if ((m[2]-m[3]) <= day) then	-- Get month based on day
			month = i
		end
	end
	local m = months[month]
	day = (day+m[3]-m[2])	-- Get day of the month
	year,day = tostring(year),tostring(day)
	local c,s = ", "," "	-- Comma, space
	Date = (months[month][1] .. s .. day .. c .. year)
end

function getTime()
	local min = math.floor((t/60)%60)
	local hour = math.floor((t/3600)%24)
	min = tostring((min < 10 and "0" or "") .. min)
	tag = (Type == 0 and (hour < 24 and "" or "") or "")
	hour = ((Type == 1 and hour < 24 and "0" or "") .. tostring(Type == 0 and (hour == 0 and 24 or hour > 24 and (hour-24) or hour) or hour))	-- Ternary operators FTW. Helps get rid of 'if then' stuff. Actually learned this off of Java programming:	z = (x == y ? "Yes" : "No")
	local c,s = ":",(Type == 0 and " " or "")	-- Colon, (space if 12 hr clock)
	Time = (hour .. c .. min .. (Sec and "") .. s .. tag)
end

function display(start)
	if (start) then
		getDate()
		getTime()
		delay(0,function()
			for i = 1,0,-0.05 do
				script.Parent.Time.TextTransparency,script.Parent.Date.TextTransparency = i,i
				wait()
			end
			script.Parent.Time.TextTransparency,script.Parent.Date.TextTransparency = 0,0
		end)
	end
	script.Parent.Time.Text = Time	-- ORLY?
	script.Parent.Date.Text = Date
end

function start()

	display(true)
	while (true) do
		-- Simplicity FTW:
		t = tick()
		getDate()
		getTime()
		display()
		wait()
	end
end

start()


Prompt: -- Don't mess with anything in the script. The constants and variables are all mixed together

Response:
local Type = 0		-- Manipulated by GUI	(0 = 12 hr, 1 = 24 hr)
local Sec = true	-- Manipulated by GUI

local year = 1970
local month = 1
local day = 1
local Date = "January 1, 1970"

local hour = 0
local min = 0
local tag = "AM"
local Time = "12:00 AM"

function getDate()
	local months = {


Prompt:
--All loading and saving data should be done in this module
--Currently uses DataPersistence but could be changed to use a DataStore easily

Response:
local dataHandler = {}

local function recurLoadNumber(key, player, depth)
	local ok, number = pcall(function() return player:LoadNumber(key) end)
	if not ok or number == 0 then
		if depth >= 5 then
			return number
		else
			return recurLoadNumber(key, player, depth + 1)
		end
	end
	return number
end

local function recurSaveNumber(key, player, depth, value)
	local ok = pcall(function() player:SaveNumber(key, value) end)
	if not ok then
		if depth < 5 then
			return recurSaveNumber(key, player, depth + 1, value)
		end
	end
end

function dataHandler:LoadNumber(player, key)
	return recurLoadNumber(key, player, 0)
end

function dataHandler:SaveNumber(player, key, value)
	return recurSaveNumber(key, player, 0, value)
end

return dataHandler


Prompt: -- API

Response:
local Core = require(Tool.Core)
local Selection = Core.Selection


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

Response:
return function(data)
	local playergui = service.PlayerGui
	local localplayer = service.Players.LocalPlayer
	local scr = client.UI.Prepare(script.Parent.Parent)
	local main = scr.Main
	local t1 = main.Title
	local t2 = main.Message
	local msg = data.Message
	local color = data.Color
	--[[
	local found = client.UI.Get("Output")
	if found then
		for i,v in pairs(found) do
			local p = v.Object
			if p and p.Parent then
				p.Main.Position = UDim2.new(0, 0, 0.35, p.Main.Position.Y.Offset+50)
			end
		end
	end--]]

	t2.Text = msg
	t2.Font = "Arial"
	--t2.Position = UDim2.new(0, 0, 0.35, 0)
	gTable.Ready()
	wait(5)
	gTable.Destroy()
end


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

Response:
return function(data)
	local player = service.Players.LocalPlayer
	local playergui = player.PlayerGui
	local gui = script.Parent.Parent
	local frame = gui.Frame
	local text = gui.Frame.TextBox
	local scroll = gui.Frame.ScrollingFrame
	local players = gui.Frame.PlayerList
	local entry = gui.Entry
	local BindEvent = gTable.BindEvent

	local opened = false
	local scrolling = false
	local debounce = false
	local settings = client.Remote.Get("Setting",{"SplitKey","ConsoleKeyCode","BatchKey","Prefix"})
	local splitKey = settings.SplitKey
	local consoleKey = settings.ConsoleKeyCode
	local batchKey = settings.BatchKey
	local prefix = settings.Prefix
	local commands = client.Remote.Get('FormattedCommands') or {}

	local tweenInfo = TweenInfo.new(0.15)----service.SafeTweenSize(frame,UDim2.new(1,0,0,40),nil,nil,0.3,nil,function() if scrollOpen then frame.Size = UDim2.new(1,0,0,140) end end)
	local scrollOpenTween = service.TweenService:Create(frame, tweenInfo, {
		Size = UDim2.new(1, 0, 0, 140);
	})

	local scrollCloseTween = service.TweenService:Create(frame, tweenInfo, {
		Size = UDim2.new(1, 0, 0, 40);
	})

	local consoleOpenTween = service.TweenService:Create(frame, tweenInfo, {
		Position = UDim2.new(0, 0, 0, 0);
	})

	local consoleCloseTween = service.TweenService:Create(frame, tweenInfo, {
		Position = UDim2.new(0, 0, 0, -200);
	})

	frame.Position = UDim2.new(0,0,0,-200)
	frame.Visible = false
	frame.Size = UDim2.new(1,0,0,40)
	scroll.Visible = false

	if client.Variables.ConsoleOpen then
		if client.Variables.ChatEnabled then
			service.StarterGui:SetCoreGuiEnabled("Chat",true)
		end

		if client.Variables.PlayerListEnabled then
			service.StarterGui:SetCoreGuiEnabled('PlayerList',true)
		end
		if client.UI.Get("Notif") then
			client.UI.Get("Notif",nil,true).Object.LABEL.Visible = true
		end

		local scr = client.UI.Get("Chat",nil,true)
		if scr then scr.Object.Drag.Visible = true end

		local scr = client.UI.Get("PlayerList",nil,true)
		if scr then scr.Object.Drag.Visible = true end

		local scr = client.UI.Get("HintHolder",nil,true)
		if scr then scr.Object.Frame.Visible = true end
	end

	client.Variables.ChatEnabled = service.StarterGui:GetCoreGuiEnabled("Chat")
	client.Variables.PlayerListEnabled = service.StarterGui:GetCoreGuiEnabled('PlayerList')

	local function close()
		if gui:IsDescendantOf(game) and not debounce then
			debounce = true
			scroll:ClearAllChildren()
			scroll.CanvasSize = UDim2.new(0,0,0,0)
			scroll.ScrollingEnabled = false
			frame.Size = UDim2.new(1,0,0,40)
			scroll.Visible = false
			players.Visible = false
			scrollOpen = false

			if client.Variables.ChatEnabled then
				service.StarterGui:SetCoreGuiEnabled("Chat",true)
			end

			if client.Variables.PlayerListEnabled then
				service.StarterGui:SetCoreGuiEnabled('PlayerList',true)
			end

			if client.UI.Get("Notif") then
				client.UI.Get("Notif",nil,true).Object.LABEL.Visible = true
			end

			local scr = client.UI.Get("Chat",nil,true)
			if scr then scr.Object.Drag.Visible = true end

			local scr = client.UI.Get("PlayerList",nil,true)
			if scr then scr.Object.Drag.Visible = true end

			local scr = client.UI.Get("HintHolder",nil,true)
			if scr then scr.Object.Frame.Visible = true end

			consoleCloseTween:Play();
			--service.SafeTweenPos(frame,UDim2.new(0,0,0,-200),'Out','Linear',0.2,true)
			--frame:TweenPosition(UDim2.new(0,0,0,-200),'Out','Linear',0.2,true)
			debounce = false
			opened = false
		end
	end

	local function open()
		if gui:IsDescendantOf(game) and not debounce then
			debounce = true
			client.Variables.ChatEnabled = service.StarterGui:GetCoreGuiEnabled("Chat")
			client.Variables.PlayerListEnabled = service.StarterGui:GetCoreGuiEnabled('PlayerList')

			service.StarterGui:SetCoreGuiEnabled("Chat",false)
			service.StarterGui:SetCoreGuiEnabled('PlayerList',false)

			scroll.ScrollingEnabled = true
			players.ScrollingEnabled = true

			if client.UI.Get("Notif") then
				client.UI.Get("Notif",nil,true).Object.LABEL.Visible = false
			end

			local scr = client.UI.Get("Chat",nil,true)
			if scr then scr.Object.Drag.Visible = false end

			local scr = client.UI.Get("PlayerList",nil,true)
			if scr then scr.Object.Drag.Visible = false end

			local scr = client.UI.Get("HintHolder",nil,true)
			if scr then scr.Object.Frame.Visible = false end

			consoleOpenTween:Play();

			frame.Size = UDim2.new(1,0,0,40)
			scroll.Visible = false
			players.Visible = false
			scrollOpen = false
			text.Text = ''
			frame.Visible = true
			frame.Position = UDim2.new(0,0,0,0)
			text:CaptureFocus()
			text.Text = ''
			wait()
			text.Text = ''
			debounce = false
			opened = true
		end
	end

	text.FocusLost:Connect(function(enterPressed)
		if enterPressed then
			if text.Text~='' and string.len(text.Text)>1 then
				spawn(function()
					local sound = Instance.new("Sound",service.LocalContainer())
					sound.SoundId = "rbxassetid://669596713"
					sound.Volume = 0.2
					sound:Play()
					wait(0.5)
					sound:Destroy()
				end)
				client.Remote.Send('ProcessCommand',text.Text)
			end
		end

		close()
	end)

	text.Changed:Connect(function(c)
		if c == 'Text' and text.Text ~= '' and open then
			if string.sub(text.Text, string.len(text.Text)) == "	" then
				if players:FindFirstChild("Entry 0") then
					text.Text = (string.sub(text.Text, 1, (string.len(text.Text) - 1))..players["Entry 0"].Text).." "
				elseif scroll:FindFirstChild("Entry 0") then
					text.Text = string.split(scroll["Entry 0"].Text, "<")[1]
				else
					text.Text = text.Text..prefix
				end
				text.CursorPosition = string.len(text.Text) + 1
				text.Text = string.gsub(text.Text, "	", "")
			end
			scroll:ClearAllChildren()
			players:ClearAllChildren()

			local nText = text.Text
			if string.match(nText,".*"..batchKey.."([^']+)") then
				nText = string.match(nText,".*"..batchKey.."([^']+)")
				nText = string.match(nText,"^%s*(.-)%s*$")
			end

			local pNum = 0
			local pMatch = string.match(nText,".+"..splitKey.."(.*)$")
			for i,v in next,service.Players:GetPlayers() do
				if (pMatch and string.sub(string.lower(tostring(v)),1,#pMatch) == string.lower(pMatch)) or string.match(nText,splitKey.."$") then
					local new = entry:Clone()
					new.Text = tostring(v)
					new.Name = "Entry "..pNum
					new.TextXAlignment = "Right"
					new.Visible = true
					new.Parent = players
					new.Position = UDim2.new(0,0,0,20*pNum)
					new.MouseButton1Down:Connect(function()
						text.Text = text.Text..tostring(v)
						text:CaptureFocus()
					end)
					pNum = pNum+1
				end
			end

			players.CanvasSize = UDim2.new(0,0,0,pNum*20)

			local num = 0
			for i,v in next,commands do
				if string.sub(string.lower(v),1,#nText) == string.lower(nText) or string.find(string.lower(v), string.match(string.lower(nText),"^(.-)"..splitKey) or string.lower(nText), 1, true) then
					if not scrollOpen then
						scrollOpenTween:Play();
						--frame.Size = UDim2.new(1,0,0,140)
						scroll.Visible = true
						players.Visible = true
						scrollOpen = true
					end
					local b = entry:Clone()
					b.Visible = true
					b.Parent = scroll
					b.Text = v
					b.Name = "Entry "..num
					b.Position = UDim2.new(0,0,0,20*num)
					b.MouseButton1Down:Connect(function()
						text.Text = b.Text
						text:CaptureFocus()
					end)
					num = num+1
				end
			end
			frame.Size = UDim2.new(1, 0, 0, math.clamp((num*20)+40, 40, 140))
			scroll.CanvasSize = UDim2.new(0,0,0,num*20)
		elseif c == 'Text' and text.Text == '' and opened then
			scrollCloseTween:Play();
			--service.SafeTweenSize(frame,UDim2.new(1,0,0,40),nil,nil,0.3,nil,function() if scrollOpen then frame.Size = UDim2.new(1,0,0,140) end end)
			scroll.Visible = false
			players.Visible = false
			scrollOpen = false
			scroll:ClearAllChildren()
			scroll.CanvasSize = UDim2.new(0,0,0,0)
		end
	end)

	BindEvent(service.UserInputService.InputBegan, function(InputObject)
		local textbox = service.UserInputService:GetFocusedTextBox()
		if not (textbox) and rawequal(InputObject.UserInputType, Enum.UserInputType.Keyboard) and InputObject.KeyCode.Name == (client.Variables.CustomConsoleKey or consoleKey) then
			if opened then
				close()
			else
				open()
			end
			client.Variables.ConsoleOpen = opened
		end
	end)

	gTable:Ready()
end


Prompt: --------- DEFAULTS ---------

Response: local defaults = {}


Prompt:
---------------
--// Code
---------------

Response:
while true do

	task.wait()

	count1 = count1 + 0.001*speed
	count2 = count2 + 0.001*speed2

	if count1 > 1 then
		count1 = 0
	end

	if count2 > 1 then
		count2 = 0
	end

	local Color1 = ColorSequenceKeypoint.new(0, Color3.fromHSV(count1,1,1))
	local Color2 = ColorSequenceKeypoint.new(1, Color3.fromHSV(count2,1,1))

	local Color4 = ColorSequenceKeypoint.new(1, Color3.fromHSV(count1,1,1))
	local Color5 = ColorSequenceKeypoint.new(0, Color3.fromHSV(count2,1,1))

	for i,v in pairs(script.Parent:GetChildren()) do
		if v:IsA("SurfaceGui") then

			if v.Name == "Top" then
				v.Frame.UIGradient.Color =  ColorSequence.new({Color5, Color2})

			elseif v.Name == "Bottom" then
				v.Frame.UIGradient.Color =  ColorSequence.new({Color1, Color4})

			else

				v.Frame.UIGradient.Color =  ColorSequence.new({Color1, Color2})
			end

		end
	end

end


Prompt: -- ROBLOX FIXME: Can we define ClientChatModules statically in the project config

Response:
pcall(function() ChatLocalization = require((game:GetService("Chat") :: any).ClientChatModules.ChatLocalization :: any) end)
if ChatLocalization == nil then ChatLocalization = {} end
if not ChatLocalization.FormatMessageToSend or not ChatLocalization.LocalizeFormattedMessage then
	function ChatLocalization:FormatMessageToSend(key,default) return default end
end

local MAX_BYTES_PER_UTF8_CODEPOINT = 6
local DISALLOWED_WHITESPACE = {"\n", "\r", "\t", "\v", "\f"}

if ChatSettings.DisallowedWhiteSpace then
	DISALLOWED_WHITESPACE = ChatSettings.DisallowedWhiteSpace
end

local function isMessageValidServer(msg)
    -- worst-case byte length check - fast for large strings
    if msg:len() > ChatSettings.MaximumMessageLength*MAX_BYTES_PER_UTF8_CODEPOINT then
        return false
    end

    -- check for invalid unicode sequence
    -- avoid normalizing first because utf8.nfcnormalize throws for invalid sequences
    if utf8.len(msg) == nil then
        return false
    end

    -- check codepoint length
    if utf8.len(utf8.nfcnormalize(msg)) > ChatSettings.MaximumMessageLength then
        return false
    end

    return true
end

local function CanUserChat(playerObj)
	if RunService:IsStudio() then
		return true
	end
	local success, canChat = pcall(function()
		return Chat:CanUserChatAsync(playerObj.UserId)
	end)
	return success and canChat
end

local function Run(ChatService)
	local function ValidateChatFunction(speakerName, message, channel)
		local speakerObj = ChatService:GetSpeaker(speakerName)
		local playerObj = speakerObj:GetPlayer()
		if not speakerObj then return false end
		if not playerObj then return false end

		if not RunService:IsStudio() and playerObj.UserId < 1 then
			return true
		end

		if not CanUserChat(playerObj) then
			speakerObj:SendSystemMessage(ChatLocalization:FormatMessageToSend(
				"GameChat_ChatMessageValidator_SettingsError",
				"Your chat settings prevent you from sending messages."
			), channel)
			return true
		end

		if not isMessageValidServer(message) then
			local localizedError = ChatLocalization:FormatMessageToSend(
				"GameChat_ChatMessageValidator_MaxLengthError",
				"Your message exceeds the maximum message length."
			)
			speakerObj:SendSystemMessage(localizedError, channel)
			return true
		end

		for _, whitespace in pairs(DISALLOWED_WHITESPACE) do
			if message:find(whitespace) then
				speakerObj:SendSystemMessage(ChatLocalization:FormatMessageToSend(
					"GameChat_ChatMessageValidator_WhitespaceError",
					"Your message contains whitespace that is not allowed."
				), channel)
				return true
			end
		end

		return false
	end

	ChatService:RegisterProcessCommandsFunction("message_validation", ValidateChatFunction, ChatConstants.VeryHighPriority)
end

return Run


Prompt:
--[=[
	Runs the given callback once an instance has been parented to the DataModel.

	This is used in particular for adding Gamepad support because Setting
	[GuiService.SelectedObject] requires that an instance be fully parented to
	the DM, which isn't always a guarantee with Roact.

	@within Modules
]=]

Response:
local function onInstanceLoaded(instance: Instance, callback: () -> ())
	task.spawn(function()
		while not instance:IsDescendantOf(game) do
			instance.AncestryChanged:Wait()
		end

		callback()
	end)
end

return onInstanceLoaded


Prompt: -- The name of the folder containing the 3D GUI elements for visualizing casts in debug mode.

Response: local FC_VIS_OBJ_NAME = "FastCastVisualizationObjects"


Prompt: -- Client:

Response:
network.onClientEvent = function(name,callback)
	return get(name).OnClientEvent:Connect(callback);
end

function network:invoke(name,...)
	return get(name):InvokeServer(...);
end

function network:fire(name,...)
	get(name):FireServer(...);
end

return network;


Prompt: -- create arrow

Response:
local p = Instance.new("Part")
p.formFactor = 2
p.Size = Vector3.new(1,.4,1)
p.Transparency = .5
p.BrickColor = BrickColor.new(119)
p.CanCollide = false
p.Locked = true
p.RotVelocity = Vector3.new(math.random(), math.random(), math.random()) * 10
local v = Vector3.new(script.Parent.Torso.CFrame.lookVector.x, 0, script.Parent.Torso.CFrame.lookVector.z)

p.CFrame = CFrame.new(script.Parent.Torso.CFrame.p + v * 8, v.unit)

local m = script.ArrowMesh:Clone() -- NASTY
m.Parent = p

local b = Instance.new("BodyPosition")
b.position = p.Position
b.Parent = p

local g = Instance.new("BodyGyro")
g.cframe = CFrame.new(Vector3.new(0,0,0), Vector3.new(0,0,1)) -- point North
g.maxTorque = Vector3.new(7e7, 7e7, 7e7)
g.Parent = p

p.Parent = game.Workspace

debris:AddItem(p, 10)

wait(5)

script.Parent = nil


Prompt: --// F key, HornOn

Response:
mouse.KeyDown:connect(function(key)
	if key=="h" then
		veh.Lightbar.middle.Airhorn:Play()
		veh.Lightbar.middle.Wail.Volume = 0
		veh.Lightbar.middle.Yelp.Volume = 0
		veh.Lightbar.middle.Priority.Volume = 0
	end
end)


Prompt: --damage values

Response:
damagelimbs = {
	["Left Arm"] = 15,
	["Right Arm"] = 15,
	["Left Leg"] = 25,
	["Right Leg"] = 25,
	["Torso"] = 35,
	["HumanoidRootPart"] = 35,
	["UpperTorso"] = 35,
	["LowerTorso"] = 30,
	["Head"] = 80,
}


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

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


Prompt: --	end

Response:
	if spd > 140 then
if carSeat.Steer == 0 then
	if m == false then
	m = true
	local lockL = Instance.new("Motor")
	lockL.Parent = carSeat.Parent.Parent.LW.ML
	lockL.Part0 = carSeat.Parent.Parent.LW.ML
	lockL.Part1 = carSeat.Parent.Parent.Suspension.ML
	end
else
	if m == true then
		m = false
	carSeat.Parent.Parent.LW.ML.Motor:remove()
	end
end
	else
		if m == true and occ == false then
		m = false
	carSeat.Parent.Parent.LW.ML.Motor:remove()
	end
end
end


Prompt:
---////==========================================\\\---
--To install the product, group them together with the switch. You can have multiple products installed and be controlled by one switch!--
--Products include, but not limited to: some fans, lights, alarms, etc.
---////==========================================\\\---

Response:
IsOn = false
function onClicked()
	if IsOn == false then
	IsOn = true
 	script.Parent.Parent.Switch2.Transparency = 1
	script.Parent.Parent.Switch1.Transparency = 0
	script.Parent.Parent.IsOn.Value = true
	elseif IsOn == true then
	IsOn = false
	script.Parent.Parent.Switch2.Transparency = 0.1
	script.Parent.Parent.Switch1.Transparency = 1
	script.Parent.Parent.IsOn.Value = false
	end
end
script.Parent.ClickDetector.MouseClick:connect(onClicked)


Prompt:
--[[

	LOWGames Studios
	Date: 27 October 2022
	by Elder

]]

Response:
--

local u1 = nil;
coroutine.wrap(function()
	u1 = require(game.ReplicatedStorage:WaitForChild("Framework"):WaitForChild("Library"));
end)();
return function(p1, p2)
	if type(p1) ~= "table" then
		p1 = { p1 };
	elseif typeof(p1) == "Instance" then
		p1 = p1:GetChildren();
	end;
	for v4, v5 in ipairs(p1) do
		local v6 = nil;
		local v7 = nil;
		if v5.ClassName == "Model" and v5.PrimaryPart then
			v6 = v5.PrimaryPart;
			v7 = v6.CFrame;
		elseif v5:IsA("BasePart") then
			v6 = v5;
			v7 = v5.CFrame;
			v5.Size = v5.Size * p2;
		end;
		for v8, v9 in pairs(v5:GetDescendants()) do
			if v9:IsA("BasePart") then
				v9.Size = v9.Size * p2;
				if not v6 then
					v6 = v9;
					v7 = v9.CFrame;
				elseif v9 ~= v6 then
					v9.CFrame = (v7 + v7:inverse() * v9.CFrame.p * p2) * CFrame.Angles(v9.CFrame:toEulerAnglesXYZ());
				end;
			elseif v9.ClassName == "Attachment" then
				v9.Position = v9.Position * p2;
			elseif v9.ClassName == "ParticleEmitter" then
				u1.Functions.ScaleParticle(v9, p2);
			elseif v9.ClassName == "SpecialMesh" then
				v9.Scale = v9.Scale * p2;
			end;
		end;
	end
end;


Prompt:
--[[
	Calculate success, failure, and skipped test counts in the tree at the
	current point in the execution.
]]

Response:
function TestSession:calculateTotals()
	local results = self.results

	results.successCount = 0
	results.failureCount = 0
	results.skippedCount = 0

	results:visitAllNodes(function(node)
		local status = node.status
		local nodeType = node.planNode.type

		if nodeType == TestEnum.NodeType.It then
			if status == TestEnum.TestStatus.Success then
				results.successCount = results.successCount + 1
			elseif status == TestEnum.TestStatus.Failure then
				results.failureCount = results.failureCount + 1
			elseif status == TestEnum.TestStatus.Skipped then
				results.skippedCount = results.skippedCount + 1
			end
		end
	end)
end


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

CustomText = CustomLabel["CUSTOMFLOORLABEL"]

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

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

function SetDisplay(ID,CHAR)
	if This.Display:FindFirstChild("DIG"..ID) and Characters[CHAR] ~= nil then
 		for i,l in pairs(Characters[CHAR]) do
			for r=1,7 do
				This.Display["DIG"..ID]["D"..r].BrickColor = (l:sub(r,r) == "1" and BrickColor.new("Dark green") or BrickColor.new("Really black"))
			end
		end
	end
end


Prompt: -- periodically re-join the studs to the center

Response:
while true do
	wait(30)
	local cf = center.CFrame
	rebuildStud(top, cf * CFrame.new(0,3,0))
	rebuildStud(bottom, cf * CFrame.new(0,-3,0))
	rebuildStud(left, cf * CFrame.new(3,0,0))
	rebuildStud(right, cf * CFrame.new(-3,0,0))
	rebuildStud(front, cf * CFrame.new(0,0,-3))
	rebuildStud(back, cf * CFrame.new(0,0,3))
end


Prompt:
--fs.Reflectance = (val1.Value-120)*0.01
--bs.Reflectance = (val1.Value-120)*0.01

Response:
end
if val1.Value > 130 and val1.Value <= 135 then
ch1m.MaxVelocity = 0.65-(val1.Value-125)*0.005
ch2m.MaxVelocity = 0.65-(val1.Value-125)*0.005
ch3m.MaxVelocity = 0.65-(val1.Value-125)*0.005
fs.Transparency = 1-(val1.Value-120)*0.01
bs.Transparency = 1-(val1.Value-120)*0.01


Prompt: -- Local functions

Response:
local function FormatThousands(n) -- Credit to http://richard.warburton.it
	local left, num, right = string.match(n, '^([^%d]*%d)(%d*)(.-)$')
	return left .. (num:reverse():gsub('(%d%d%d)','%1,'):reverse()) .. right
end

local function ConvertToShortNum(number)
	local exponent = math.floor(math.log10(number))

	-- Check if the number is too short
	if (exponent <= 2) then
		return tostring(number)
	end
	-- Create a table for the symbols
	local symbols = {
		[1] = { "3", "k" }, [2] = { "6", "M" }, [3] = { "9", "G" },
		[4] = { "12", "T" }, [5] = { "15", "P" }, [6] = { "18", "E" },
		[7] = { "21", "Z" }, [8] = { "24", "Y" }
	}

	local suffix = ""
	local currentExponent = 1

	-- Loop through the symbols
	for index = 1, #symbols do
		local info = symbols[index]

		-- Check if the index is not the last entry in the table
		if (index ~= #symbols) then
			-- Check if the symbol's exponent is less than the number's
			if (exponent >= tonumber(info[1])) then
				-- Change the last exponent and suffix to the current symbol's
				currentExponent = tonumber(info[1])
				suffix = info[2]

				-- Continue so that the loop does not break
				continue
			end

			-- Break as the symbol's exponent is greater than the numbers
			break
		end
	end

	-- Get the divisor and the final string
	local divisor = math.pow(10, currentExponent)
	local str =	("%.2f%s"):format(number / divisor, suffix)

	-- Return the string
	return str
end


Prompt:
--[[
	Performs property validation if the static method validateProps is declared.
	validateProps should follow assert's expected arguments:
	(false, message: string) | true. The function may return a message in the
	true case; it will be ignored. If this fails, the function will throw the
	error.
]]

Response:
function Component:__validateProps(props)
	if not config.propValidation then
		return
	end

	local validator = self[InternalData].componentClass.validateProps

	if validator == nil then
		return
	end

	if typeof(validator) ~= "function" then
		error(("validateProps must be a function, but it is a %s.\nCheck the definition of the component %q."):format(
			typeof(validator),
			self.__componentName
		))
	end

	local success, failureReason = validator(props)

	if not success then
		failureReason = failureReason or "<Validator function did not supply a message>"
		error(("Property validation failed: %s\n\n%s"):format(
			tostring(failureReason),
			self:getElementTraceback() or "<enable element tracebacks>"),
		0)
	end
end


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

Response:
debounce = true

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

script.Parent.Touched:connect(onTouched)


Prompt:
--[[
	p1 = Instance.new("Part")
	p1.FormFactor = "Custom"
	p1.Size = Vector3.new(0,0,0)
	p1.Name = "Aimer"
	p1.Transparency = 0.5
	mesh = Instance.new("BlockMesh")
	mesh.Parent = p1
	mesh.Scale = Vector3.new(0.5,0.5,8)
	mesh.Offset = Vector3.new(0,0,-1)
	p1.Anchored = true
	p1.CanCollide = false
	p1.BrickColor = BrickColor.new("Institutional white")
	p2 = p1:clone()
	p3 = p1:clone()
	p4 = p1:clone()
	]]

Response:
enabled = true
down = false
mouser = game.Players.LocalPlayer:GetMouse()


Prompt: -- New

Response:
function StringLabel.new(label)
	local newStringLabel = {}
	setmetatable(newStringLabel, StringLabel)

	newStringLabel._textLabel = label
	newStringLabel._textFrame = nil
	newStringLabel._characters = {}
	newStringLabel._characterLabels = {}
	newStringLabel._oldCharacterLabels = {}
	newStringLabel._lastChangedTime = 0
	newStringLabel._lastAbsolutePosition = nil
	newStringLabel._lastAbsoluteSize = nil
	newStringLabel._lastAbsolutePositionUpdateTime = 0
	newStringLabel._lastAbsoluteSizeUpdateTime = 0

	setup(newStringLabel)

	if label.Text ~= "" then
		if label.AbsoluteSize.X > 0 and label.AbsoluteSize.Y > 0 then
			update(newStringLabel)
		else
			delay(1, function()
				update(newStringLabel)
			end)
		end
	end

	return newStringLabel
end

return StringLabel


Prompt: -- / Actions / --

Response:
local Swing = Humanoid:LoadAnimation(SwingAnimation)

local Settings = {
	Damage = 10,
	OnCD = false,
	CDTime = 0.5
}

local DamageBlacklist = {

}


Prompt: -- This enables data on volumes, HumanoidRootParts, etc to be handled on an event-basis, instead of being retrieved every interval


Response:
local FOV = 80				-- HOW MUCH YOU WANT CAMERA TO ZOOM IN.  70 IS DEFAULT.  SMALLER NUMBER = MORE ZOOM
local cooldowntime = .0		-- HOW LONG BEFORE THEY CAN ZOOM IN/OUT AGAIN.
local KEYBIND = Enum.KeyCode.R	-- CHANGE E TO WHATEVER KEY YOU WANT THEM TO PRESS TO ZOOM.


Prompt:
-- url : (string)
-- customHeaders : (dictionary<string, string>, optional)
-- returns : (promise<HttpResponse/HttpError>)

Response:
function Networking:GET(url, customHeaders)
	if not customHeaders then
		customHeaders = self._headers
	end

	assert(type(url) == "string", "expected 'url' to be a string")
	assert(type(customHeaders) == "table", "expected 'customHeaders' to be a dictionary")

	local httpFunc = function()
		return self._httpImpl:RequestAsync({
			Url = url,
			Method = "GET",
			Headers = customHeaders,
		})
	end

	return commonHttpHandler(url, httpFunc)
end


Prompt: -- ROBLOX FIXME: these *should* return a function, but they don't. we're misaligned on types and implementation here

Response:
local function getReceivedColorForChalkInstance(chalkInstance: Chalk): any --: DiffOptionsColor
	-- return function(_: string): string
	local level = chalkInstance.level

	if level == 3 then
		return chalkInstance.rgb(bForeground3[1], bForeground3[2], bForeground3[3])
			.. chalkInstance.bgRgb(bBackground3[1], bBackground3[2], bBackground3[3])
	end

	if level == 2 then
		return chalkInstance.ansi256(bForeground2) .. chalkInstance.bgAnsi256(bBackground2)
	end

	return chalkInstance.cyan .. chalk.bgWhiteBright -- also known as teal
	-- end
end

local aSnapshotColor = getSnapshotColorForChalkInstance(chalk)
local bReceivedColor = getReceivedColorForChalkInstance(chalk)

local function noColor(string_: string)
	return string_
end

local HINT_ARG = "hint"
local SNAPSHOT_ARG = "snapshot"
local PROPERTIES_ARG = "properties"

local function matcherHintFromConfig(matchSnapshotConfig: MatchSnapshotConfig, isUpdatable: boolean): string
	local context = matchSnapshotConfig.context
	local hint = matchSnapshotConfig.hint
	local inlineSnapshot = matchSnapshotConfig.inlineSnapshot
	local matcherName = matchSnapshotConfig.matcherName
	local properties = matchSnapshotConfig.properties

	local options: MatcherHintOptions = {
		isNot = context.isNot,
		promise = context.promise,
	}
	if isUpdatable then
		options.receivedColor = bReceivedColor
	end

	local expectedArgument = ""

	if typeof(properties) == "table" then
		expectedArgument = PROPERTIES_ARG
		if isUpdatable then
			options.expectedColor = noColor
		end

		if typeof(hint) == "string" and #hint ~= 0 then
			options.secondArgument = HINT_ARG
			options.secondArgumentColor = BOLD_WEIGHT
		elseif typeof(inlineSnapshot) == "string" then
			options.secondArgument = SNAPSHOT_ARG
			if isUpdatable then
				options.secondArgumentColor = aSnapshotColor
			else
				options.secondArgumentColor = noColor
			end
		end
	else
		if typeof(hint) == "string" and #hint ~= 0 then
			expectedArgument = HINT_ARG
			options.expectedColor = BOLD_WEIGHT
		elseif typeof(inlineSnapshot) == "string" then
			expectedArgument = SNAPSHOT_ARG
			if isUpdatable then
				options.expectedColor = aSnapshotColor
			end
		end
	end

	return matcherHint(matcherName, nil, expectedArgument, options)
end


Prompt: --Front Suspension

Response:
Tune.FSusDamping	= 401		-- Spring Dampening
Tune.FSusStiffness	= 17000		-- Spring Force
Tune.FAntiRoll 		= 22.92		-- Anti-Roll (Gyro Dampening)

Tune.FSusLength		= 1.9			-- Suspension length (in studs)
Tune.FPreCompress	= .15		-- Pre-compression adds resting length force
Tune.FExtensionLim	= .3		-- Max Extension Travel (in studs)
Tune.FCompressLim	= .05		-- Max Compression Travel (in studs)
Tune.FSusAngle		= 54		-- 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


Prompt:
-- Generated by EramsorGR in order to organize the core systems a tiny bit more-- cringe
--i also did this ~wild

Response: local module = {}


Prompt:
------------------
--| Clock Loop |--
------------------

Response:
while true do
	if Running and TimeObject.Value >= 0 then -- Change TimeObject's Value by how much time has passed
		local now = tick()
		local deltaTime = now - LastTime
		if CountingDown then
			TimeObject.Value = TimeObject.Value - deltaTime
		else
			TimeObject.Value = TimeObject.Value + deltaTime
		end
		LastTime = now
	end
	wait()
end


Prompt:
--
-- Verify that everything is where it should be

Response:
    assert(Self:FindFirstChild'Humanoid' ~= nil, 'Monster does not have a humanoid')
    assert(Settings ~= nil, 'Monster does not have a Configurations object')
	assert(Settings:FindFirstChild'MaximumDetectionDistance' ~= nil and Settings.MaximumDetectionDistance:IsA'NumberValue', 'Monster does not have a MaximumDetectionDistance (NumberValue) setting')
	assert(Settings:FindFirstChild'CanGiveUp' ~= nil and Settings.CanGiveUp:IsA'BoolValue', 'Monster does not have a CanGiveUp (BoolValue) setting')
	assert(Settings:FindFirstChild'CanRespawn' ~= nil and Settings.CanRespawn:IsA'BoolValue', 'Monster does not have a CanRespawn (BoolValue) setting')
	assert(Settings:FindFirstChild'SpawnPoint' ~= nil and Settings.SpawnPoint:IsA'Vector3Value', 'Monster does not have a SpawnPoint (Vector3Value) setting')
	assert(Settings:FindFirstChild'AutoDetectSpawnPoint' ~= nil and Settings.AutoDetectSpawnPoint:IsA'BoolValue', 'Monster does not have a AutoDetectSpawnPoint (BoolValue) setting')
	assert(Settings:FindFirstChild'FriendlyTeam' ~= nil and Settings.FriendlyTeam:IsA'BrickColorValue', 'Monster does not have a FriendlyTeam (BrickColorValue) setting')
	assert(Settings:FindFirstChild'AttackDamage' ~= nil and Settings.AttackDamage:IsA'NumberValue', 'Monster does not have a AttackDamage (NumberValue) setting')
	assert(Settings:FindFirstChild'AttackFrequency' ~= nil and Settings.AttackFrequency:IsA'NumberValue', 'Monster does not have a AttackFrequency (NumberValue) setting')
	assert(Settings:FindFirstChild'AttackRange' ~= nil and Settings.AttackRange:IsA'NumberValue', 'Monster does not have a AttackRange (NumberValue) setting')
    assert(Mind ~= nil, 'Monster does not have a Mind object')
	assert(Mind:FindFirstChild'CurrentTargetHumanoid' ~= nil and Mind.CurrentTargetHumanoid:IsA'ObjectValue', 'Monster does not have a CurrentTargetHumanoid (ObjectValue) mind setting')
assert(script:FindFirstChild'Attack' and script.Attack:IsA'Animation', 'Monster does not have a MonsterScript.Attack Animation')


Prompt: --// DON'T EDIT BELOW

Response:
local target = plr.Character.HumanoidRootPart

local vel,pvel = script.Parent.Vel , script.Parent.PVel

local sensitivity = Vector3.new(sens,sens,sens)

local slurAngle = 0
local previousDesiredAngle = 0
local spinSpeed = 1 --ratio per second
local rotationOffset = -90 --in degrees
rotationOffset = math.rad(rotationOffset)

function Rotate()
	local vec = target.CFrame.lookVector
	local desiredAngle = math.atan2(vec.z, vec.x)
	if desiredAngle < -1.57 and previousDesiredAngle > 1.57 then
		slurAngle = slurAngle - math.pi*2
	elseif desiredAngle > 1.57 and previousDesiredAngle < -1.57 then
		slurAngle = slurAngle + math.pi*2
	end
	slurAngle = slurAngle*(1-spinSpeed) + desiredAngle*spinSpeed
	local a = slurAngle + rotationOffset
	previousDesiredAngle = desiredAngle
	script.Parent.F.Rotation = -math.deg(a)
end
while true do
	vel.Value = target.Velocity
	wait() --REQUIRED while loop
	pvel.Value = vel.Value
	vel.Value = target.Velocity

	local diff = script.Parent.Diff
	diff.Value = ((pvel.Value-vel.Value) * sensitivity)

	local xz = ((diff.Value.X)/20)
	xz = math.min(xz,.5) xz = math.max(xz,-.5)

	local yz = ((diff.Value.Z)/20)
	yz = math.min(yz,.5) yz = math.max(yz,-.5)
	Rotate()
	script.Parent.F.Dot.Position = UDim2.new(-xz+.5,-8,(-yz)+.5,-8)

	local mag = Vector2.new(diff.Value.X/2,diff.Value.Z/2).Magnitude
	if mag < min then mag = 0 end
	script.Parent.TL.Text = math.floor(math.min(mag,max)*100)/100 .. " G"
end


Prompt: --------------------[ MATH FUNCTIONS ]------------------------------------------------

Response:
function NumLerp(A, B, Alpha)
	return (A + ((B - A) * Alpha))
end

function RAND(Min, Max, Accuracy)
	local Inverse = 1 / (Accuracy or 1)
	return (math.random(Min * Inverse, Max * Inverse) / Inverse)
end


Prompt: -- ROBLOX TODO: import correct types

Response:
type AssymetricMatcherInterface = any
type MatcherState = Types.MatcherState
local Utils = require(CurrentModule.utils)
local iterableEquality = Utils.iterableEquality
local subsetEquality = Utils.subsetEquality