Response:
script.Parent:WaitForChild("Gear")
script.Parent:WaitForChild("Speed")

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

local car = script.Parent.Parent.Car.Value
script.Parent.CarName.Text = car.Name
car.Body.CarName.Value.VehicleSeat.HeadsUpDisplay = false

local _Tune = require(car["A-Chassis Tune"])

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

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


Prompt:
-- DONT EDIT NOTHING IN THE SCRIPT IF YOU DONT KNOW WHAT YOU DOING!
-- This script is for iiFireGamingOfDoom.

Response:
wait(.1)
local InputService=game:GetService("UserInputService")
local Camera=game.Workspace.CurrentCamera
local Player=game.Players.LocalPlayer
local Character=Player.Character
local Head=Character.Head
local Torso=Character.Torso
local RootPart=Character.HumanoidRootPart
local RootJoint=RootPart.RootJoint
local Neck=Torso.Neck
Camera.FieldOfView=90
Camera.CameraType="Scriptable"
InputService.MouseBehavior = Enum.MouseBehavior.LockCenter

local v3=Vector3.new
local cf=CFrame.new
local components=cf().components
local inverse=cf().inverse
local fromAxisAngle=CFrame.fromAxisAngle
local atan,atan2=math.atan,math.atan2
local acos=math.acos

local function toAxisAngleFromVector(v)
	local z=v.z
	return z*z<0.99999 and v3(v.y,-v.x,0).unit*acos(-z) or v3()
end

local function AxisAngleLookOrientation(c,v,t)--CFrame,Vector,Tween
	local c=c-c.p
	local rv=(inverse(c)*v).unit
	local rz=rv.z
	return rz*rz<0.99999 and c*fromAxisAngle(v3(rv.y,-rv.x,0),acos(-rz)*(t or 1)) or c
end

local function AxisAngleLookNew(v,t)--CFrame,Vector,Tween
	local rv=v.unit
	local rz=rv.z
	return rz*rz<0.99999 and fromAxisAngle(v3(rv.y,-rv.x,0),acos(-rz)*(t or 1)) or cf()
end

local function AxisAngleLook(c,v,t)--CFrame,Vector,Tween
	local rv=(inverse(c)*v).unit
	local rz=rv.z
	return rz*rz<0.99999 and c*fromAxisAngle(v3(rv.y,-rv.x,0),acos(-rz)*(t or 1)) or c
end

local Sensitivity=0.005

local CameraDirection=Vector3.new(0,0,0)

local function EulerAnglesYX(l)
	local x,z=l.x,l.z
	return atan(l.y/(x*x+z*z)^0.5),-atan2(x,-z)
end

local function AnglesXY(l)
	local z=l.z
	return atan2(l.y,-z),-atan2(l.x,-z)
end

local function MouseMoved(Input)
	if Input.UserInputType==Enum.UserInputType.MouseMovement then
		local dx,dy=Input.Delta.x*Sensitivity,Input.Delta.y*Sensitivity
		local m2=dx*dx+dy*dy
		if m2>0 then
			CameraDirection=(AxisAngleLookOrientation(RootPart.CFrame,CameraDirection)*fromAxisAngle(v3(-dy,-dx,0),m2^0.5)).lookVector
		end
		local RootOrientation=RootPart.CFrame-RootPart.Position
		local RelativeDirection=RootOrientation:inverse()*CameraDirection
		local AngX,AngY=AnglesXY(RelativeDirection)--RootOrientation:inverse()*
		if AngX<-1.57*11/12 then
			local y,z,c,s=RelativeDirection.y,RelativeDirection.z,math.cos(-1.57*11/12-AngX),-math.sin(-1.57*11/12-AngX)
			z,y=z*c-y*s,z*s+y*c
			CameraDirection=RootOrientation*v3(RelativeDirection.x<0 and -(1-y*y-z*z)^0.5 or (1-y*y-z*z)^0.5,y,z)
		elseif AngX>1.57*11/12 then
			local y,z,c,s=RelativeDirection.y,RelativeDirection.z,math.cos(1.57*11/12-AngX),-math.sin(1.57*11/12-AngX)
			z,y=z*c-y*s,z*s+y*c
			CameraDirection=RootOrientation*v3(RelativeDirection.x<0 and -(1-y*y-z*z)^0.5 or (1-y*y-z*z)^0.5,y,z)
		end
	end
end

local Mouse=Player:GetMouse()

local Zoom=-0.5

Mouse.KeyDown:connect(function(k)
	if k=="e" then
		Zoom=-0.5
	elseif k=="q" then
		Zoom=-0.5
	end
end)

InputService.InputChanged:connect(MouseMoved)

Neck.C1=cf()

local _
local DirectionBound=3.14159/3
local CurrentAngY=0

local function CameraUpdate()
	Camera.CameraType="Scriptable"
	local cx,cz=CameraDirection.x,CameraDirection.z
	local rvx,rvz=RootPart.Velocity.x,RootPart.Velocity.z
	if rvx*rvx+rvz*rvz>4 and cx*rvx+cz*rvz<-0.5*(cx*cx+cz*cz)^0.5*(rvx*rvx+rvz*rvz)^0.5 then
		DirectionBound=math.min(DirectionBound*0.9,math.abs(CurrentAngY*0.9))
	else
		DirectionBound=DirectionBound*0.1+3.14159/3*0.9
	end
	local AngX,AngY=EulerAnglesYX((RootPart.CFrame-RootPart.Position):inverse()*CameraDirection)
	if AngY>DirectionBound then
		RootPart.CFrame=RootPart.CFrame*CFrame.Angles(0,AngY-DirectionBound,0)
	elseif AngY<-DirectionBound then
		RootPart.CFrame=RootPart.CFrame*CFrame.Angles(0,AngY+DirectionBound,0)
	end
	_,CurrentAngY=EulerAnglesYX((RootPart.CFrame-RootPart.Position):inverse()*CameraDirection)
	local CameraOrientation=AxisAngleLookNew((RootPart.CFrame-RootPart.Position):inverse()*CameraDirection,1)
	Neck.C0=CFrame.new(0,1,0)*CameraOrientation*CFrame.new(0,0.5,0)
	local PreCam=AxisAngleLook(RootPart.CFrame*cf(0,1,0),RootPart.CFrame*v3(0,1,0)+CameraDirection)*CFrame.new(0,0.825,0)
	if Zoom==8 then
		local Part,Position=Workspace:findPartOnRay(Ray.new(PreCam.p,PreCam.lookVector*-8),Character)
		Camera.CoordinateFrame=PreCam*CFrame.new(0,0,(Position-PreCam.p).magnitude)
	else
		Camera.CoordinateFrame=PreCam*CFrame.new(0,0,Zoom)
	end
end

game:GetService("RunService").RenderStepped:connect(CameraUpdate)


Prompt: --[[Engine]]

Response:
	--Torque Curve
	Tune.Horsepower		= 984		--	[TORQUE CURVE VISUAL]
	Tune.IdleRPM		= 1100		--		https://www.desmos.com/calculator/2uo3hqwdhf
	Tune.PeakRPM		= 8250		--		Use sliders to manipulate values
	Tune.Redline		= 8750		--		Copy and paste slider values into the respective tune values
	Tune.EqPoint		= 5250
	Tune.PeakSharpness	= 5.8
	Tune.CurveMult		= 0.294

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

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


Prompt: --Scripted by DermonDarble

Response:
local car = script.Parent
local stats = car.Configurations
local Raycast = require(script.RaycastModule)

local mass = 0

for i, v in pairs(car:GetChildren()) do
	if v:IsA("BasePart") then
		mass = mass + (v:GetMass() * 196.2)
	end
end

local bodyPosition = Instance.new("BodyPosition", car.Chassis)
bodyPosition.MaxForce = Vector3.new()
local bodyGyro = Instance.new("BodyGyro", car.Chassis)
bodyGyro.MaxTorque = Vector3.new()

local function UpdateThruster(thruster)
	-- Raycasting
	local hit, position = Raycast.new(thruster.Position, thruster.CFrame:vectorToWorldSpace(Vector3.new(0, -1, 0)) * stats.Height.Value) --game.Workspace:FindPartOnRay(ray, car)
	local thrusterHeight = (position - thruster.Position).magnitude

	-- Wheel
	local wheelWeld = thruster:FindFirstChild("WheelWeld")
	wheelWeld.C0 = CFrame.new(0, -math.min(thrusterHeight, stats.Height.Value * 0.8) + (wheelWeld.Part1.Size.Y / 2), 0)
	-- Wheel turning
	local offset = car.Chassis.CFrame:inverse() * thruster.CFrame
	local speed = car.Chassis.CFrame:vectorToObjectSpace(car.Chassis.Velocity)
	if offset.Z < 0 then
		local direction = 1
		if speed.Z > 0 then
			direction = -1
		end
		wheelWeld.C0 = wheelWeld.C0 * CFrame.Angles(0, (car.Chassis.RotVelocity.Y / 2) * direction, 0)
	end

	-- Particles
	if hit and thruster.Velocity.magnitude >= 5 then
		wheelWeld.Part1.ParticleEmitter.Enabled = true
	else
		wheelWeld.Part1.ParticleEmitter.Enabled = false
	end
end

car.DriveSeat.Changed:connect(function(property)
	if property == "Occupant" then
		if car.DriveSeat.Occupant then
			local player = game.Players:GetPlayerFromCharacter(car.DriveSeat.Occupant.Parent)
			if player then
				car.DriveSeat:SetNetworkOwner(player)
				local localCarScript = script.LocalCarScript:Clone()
				localCarScript.Parent = player.PlayerGui
				localCarScript.Car.Value = car
				localCarScript.Disabled = false
			end
		else
			car.DriveSeat:SetNetworkOwnershipAuto()
		end
	end
end)

spawn(function()
	while true do
		game:GetService("RunService").Stepped:wait()
		for i, part in pairs(car:GetChildren()) do
			if part.Name == "Thruster" then
				UpdateThruster(part)
			end
		end
		if car.DriveSeat.Occupant then
			bodyPosition.MaxForce = Vector3.new()
			bodyGyro.MaxTorque = Vector3.new()
		else
			local hit, position, normal = Raycast.new(car.Chassis.Position, car.Chassis.CFrame:vectorToWorldSpace(Vector3.new(0, -1, 0)) * stats.Height.Value)
			if hit and hit.CanCollide then
				bodyPosition.MaxForce = Vector3.new(mass / 5, math.huge, mass / 5)
				bodyPosition.Position = (CFrame.new(position, position + normal) * CFrame.new(0, 0, -stats.Height.Value + 0.5)).p
				bodyGyro.MaxTorque = Vector3.new(math.huge, 0, math.huge)
				bodyGyro.CFrame = CFrame.new(position, position + normal) * CFrame.Angles(-math.pi/2, 0, 0)
			else
				bodyPosition.MaxForce = Vector3.new()
				bodyGyro.MaxTorque = Vector3.new()
			end
		end
	end
end)


Prompt: -- Other

Response:
local MainBase = script.Parent:WaitForChild("MainBase")
local BottomBase = MainBase:WaitForChild("Bottom")
local WaterLoop = BottomBase:WaitForChild("WaterLoop")
local IsTweeningVolumeSession = 0


Prompt:
--[=[
	@tag Component Class
	`Construct` is called before the component is started, and should be used
	to construct the component instance.

	```lua
	local MyComponent = Component.new({Tag = "MyComponent"})

	function MyComponent:Construct()
		self.SomeData = 32
		self.OtherStuff = "HelloWorld"
	end
	```
]=]

Response: function Component:Construct() end


Prompt: --/Recoil Modification

Response:
module.camRecoil = {
	RecoilUp 		= 1.1
	,RecoilTilt 	= 1
	,RecoilLeft 	= .9
	,RecoilRight 	= .9
}

module.gunRecoil = {
	RecoilUp 		= 1.1
	,RecoilTilt 	= 1
	,RecoilLeft 	= .9
	,RecoilRight 	= .9
}

module.AimRecoilReduction = 1
module.AimSpreadReduction = 1

module.MinRecoilPower 			= 1
module.MaxRecoilPower 			= 1
module.RecoilPowerStepAmount 	= 1

module.MinSpread 				= 1
module.MaxSpread 				= 1
module.AimInaccuracyStepAmount 	= 1
module.AimInaccuracyDecrease 	= 1
module.WalkMult 				= 1

module.MuzzleVelocityMod	 	= 1

return module


Prompt: --// Renders

Response:
local L_136_

L_81_:connect(function()
	if L_15_ then
		L_131_, L_132_ = L_131_ or 0, L_132_ or 0
		if L_134_ == nil or L_133_ == nil then
			L_134_ = L_30_.C0
			L_133_ = L_30_.C1
		end

		local L_239_ = (math.sin(L_125_ * L_127_ / 2) * L_126_)
		local L_240_ = (math.sin(L_125_ * L_127_) * L_126_)
		local L_241_ = CFrame.new(L_239_, L_240_, 0.02)

		local L_242_ = (math.sin(L_121_ * L_124_ / 2) * L_123_)
		local L_243_ = (math.cos(L_121_ * L_124_) * L_123_)
		local L_244_ = CFrame.new(L_242_, L_243_, 0.02)

		if L_118_ then
			L_125_ = L_125_ + .017
			if L_23_.WalkAnimEnabled == true then
				L_119_ = L_241_
			else
				L_119_ = CFrame.new()
			end
		else
			L_125_ = 0
			L_119_ = CFrame.new()
		end

		L_117_.t = Vector3.new(L_112_, L_113_, 0)
		local L_245_ = L_117_.p
		local L_246_ = L_245_.X / L_114_ * (L_46_ and L_116_ or L_115_)
		local L_247_ = L_245_.Y / L_114_ * (L_46_ and L_116_ or L_115_)

		L_5_.CFrame = L_5_.CFrame:lerp(L_5_.CFrame * L_120_, 0.2)

		if L_46_ then
			L_108_ = CFrame.Angles(math.rad(-L_246_), math.rad(L_246_), math.rad(L_247_)) * CFrame.fromAxisAngle(Vector3.new(5, 0, -1), math.rad(L_246_))
			L_121_ = 0
			L_122_ = CFrame.new()
		elseif not L_46_ then
			L_108_ = CFrame.Angles(math.rad(-L_247_), math.rad(-L_246_), math.rad(-L_246_)) * CFrame.fromAxisAngle(L_29_.Position, math.rad(-L_247_))
			L_121_ = L_121_ + 0.017
			L_122_ = L_244_
		end

		if L_23_.SwayEnabled ==  true then
			L_30_.C0 = L_30_.C0:lerp(L_134_ * L_108_ * L_119_ * L_122_, 0.1)
		else
			L_30_.C0 = L_30_.C0:lerp(L_134_ * L_119_, 0.1)
		end

		if L_49_ and not L_52_ and L_54_ and not L_46_ and not L_48_ and not Shooting then
			L_30_.C1 = L_30_.C1:lerp(L_30_.C0 * L_23_.SprintPos, 0.1)
		elseif not L_49_ and not L_52_ and not L_54_ and not L_46_ and not L_48_ and not Shooting then
			L_30_.C1 = L_30_.C1:lerp(CFrame.new(), 0.1)
		end

		if L_46_ and not L_49_ then
			if not L_47_ then
				L_67_ = L_23_.AimCamRecoil
				L_66_ = L_23_.AimGunRecoil
				L_68_ = L_23_.AimKickback
			end

			if (L_3_.Head.Position - L_5_.CoordinateFrame.p).magnitude < 2 then
				L_30_.C1 = L_30_.C1:lerp(L_30_.C0 * CFrame.new(L_105_.position), L_23_.AimSpeed)

				L_27_:WaitForChild('Sense'):WaitForChild('Sensitivity').Visible = true
				L_27_:WaitForChild('Sense'):WaitForChild('Sensitivity').Text = L_36_
				L_82_.MouseDeltaSensitivity = L_36_
			end
		elseif not L_46_ and not L_49_ and L_15_ then
			if (L_3_.Head.Position - L_5_.CoordinateFrame.p).magnitude < 2 then
				L_30_.C1 = L_30_.C1:lerp(CFrame.new(L_105_.position) * L_106_, L_23_.UnaimSpeed)

				L_27_:WaitForChild('Sense'):WaitForChild('Sensitivity').Visible = false
				L_27_:WaitForChild('Sense'):WaitForChild('Sensitivity').Text = L_36_
				L_82_.MouseDeltaSensitivity = L_37_
			end
		end

		if Recoiling then
			L_120_ = CFrame.Angles(L_67_, 0, 0)
			--cam.CoordinateFrame = cam.CoordinateFrame *  CFrame.fromEulerAnglesXYZ(math.rad(camrecoil*math.random(0,3)), math.rad(camrecoil*math.random(-1,1)), math.rad(camrecoil*math.random(-1,1)))
			L_30_.C0 = L_30_.C0:lerp(L_30_.C0 * CFrame.new(0, 0, L_66_) * CFrame.Angles(-math.rad(L_68_), 0, 0), 0.3)
		elseif not Recoiling then
			L_120_ = CFrame.Angles(0, 0, 0)
			L_30_.C0 = L_30_.C0:lerp(CFrame.new(), 0.2)
		end

		if L_47_ then
			L_3_:WaitForChild('Humanoid').Jump = false
		end

		if L_15_ then
			L_5_.FieldOfView = L_5_.FieldOfView * (1 - L_23_.ZoomSpeed) + (L_74_ * L_23_.ZoomSpeed)
			if (L_3_.Head.Position - L_5_.CoordinateFrame.p).magnitude >= 2 then
				L_67_ = L_23_.AimCamRecoil
				L_66_ = L_23_.AimGunRecoil
				L_68_ = L_23_.AimKickback

				L_27_:WaitForChild('Sense'):WaitForChild('Sensitivity').Visible = true
				L_27_:WaitForChild('Sense'):WaitForChild('Sensitivity').Text = L_36_
				L_82_.MouseDeltaSensitivity = L_36_
			elseif (L_3_.Head.Position - L_5_.CoordinateFrame.p).magnitude < 2 and not L_46_ and not L_47_ then
				L_67_ = L_23_.camrecoil
				L_66_ = L_23_.gunrecoil
				L_68_ = L_23_.Kickback

				L_27_:WaitForChild('Sense'):WaitForChild('Sensitivity').Visible = false
				L_27_:WaitForChild('Sense'):WaitForChild('Sensitivity').Text = L_36_
				L_82_.MouseDeltaSensitivity = L_37_
			end
		end

		if L_15_ and L_23_.CameraGo then --and (char.Head.Position - cam.CoordinateFrame.p).magnitude < 2 then
			L_4_.TargetFilter = game.Workspace
			local L_248_ =  L_3_:WaitForChild("HumanoidRootPart").CFrame * CFrame.new(0, 1.5, 0) * CFrame.new(L_3_:WaitForChild("Humanoid").CameraOffset)
			L_33_.C0 = L_8_.CFrame:toObjectSpace(L_248_)
			L_33_.C1 = CFrame.Angles(-math.asin((L_4_.Hit.p - L_4_.Origin.p).unit.y), 0, 0)
			L_82_.MouseIconEnabled = false
		end

		if L_15_ and (L_3_.Head.Position - L_5_.CoordinateFrame.p).magnitude >= 2 then
			L_4_.Icon = "http://www.roblox.com/asset?id=" .. L_23_.TPSMouseIcon
			L_82_.MouseIconEnabled = true

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


Prompt: -- Create checkpoint sound

Response:
local checkpointSound = Instance.new("Sound")
checkpointSound.SoundId = "rbxassetid://4110925712"

local Soundscape = game.Soundscape
local RaceFinishedSound = Soundscape:FindFirstChild("RaceFinishedSound")


Prompt:
-- Better don't change anything. This script is WIP v.0.2
-- This screen gui doesn't work if your game has day and night loop

Response:
game:GetService("RunService").RenderStepped:Connect(function()
if (Rake.Position - Character.HumanoidRootPart.Position).magnitude<70 and Debounce1 == false then
Debounce1 = true
NightTheme:Pause()
Found:Play()
FlashEffect.BackgroundTransparency = 0.6
wait(0.4)
ScreenShake.Disabled = false
FlashEffect.BackgroundTransparency = 1
RakeTheme:Play()
end
if (Rake.Position - Character.HumanoidRootPart.Position).magnitude>70 and Debounce1 == true then
Debounce1 = false
NightTheme:Play()
ScreenShake.Disabled = true
FlashEffect.BackgroundTransparency = 1
RakeTheme:Stop()
end
end)


Prompt: -- Misc --

Response:
local CharacterTable = {}

local function OnCharacterAdded(Character : Model)
	if table.find(CharacterTable, Character.Name) then return end

	CharacterTable[Character.Name] = {}
	CharacterTable[Character.Name].LegController = LegController.new(Character)

	Character.Destroying:Connect(function()
		CharacterTable[Character.Name].LegController:Destroy()
		CharacterTable[Character.Name] = nil
	end)
end


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

Response:
local FE = workspace.FilteringEnabled
local car = script.Parent.Car.Value
local handler = car:WaitForChild("AC6_FE_Sounds")
local _Tune = require(car["A-Chassis Tune"])
local BOVact = 0
local BOVact2 = 0

local BOV_Loudness = 5	--volume of the BOV (not exact volume so you kinda have to experiment with it)
local BOV_Pitch = 1 	--max pitch of the BOV (not exact so might have to mess with it)
local TurboLoudness = 2 --volume of the Turbo (not exact volume so you kinda have to experiment with it also)

script:WaitForChild("Whistle")
script:WaitForChild("BOV")

for i,v in pairs(car.DriveSeat:GetChildren()) do
	for _,a in pairs(script:GetChildren()) do
		if v.Name==a.Name then v:Stop() wait() v:Destroy() end
	end
end

car.DriveSeat.ChildRemoved:connect(function(child)
	if child.Name=="SeatWeld" then
		for i,v in pairs(car.DriveSeat:GetChildren()) do
			for _,a in pairs(script:GetChildren()) do
				if v.Name==a.Name then v:Stop() wait() v:Destroy() end
			end
		end
	end
end)

handler:FireServer("newSound","Whistle",car.DriveSeat,script.Whistle.SoundId,0,script.Whistle.Volume,true)
handler:FireServer("newSound","BOV",car.DriveSeat,script.BOV.SoundId,0,script.BOV.Volume,true)
handler:FireServer("playSound","Whistle")
car.DriveSeat:WaitForChild("Whistle")
car.DriveSeat:WaitForChild("BOV")
local ticc = tick()
local _TCount = 0
if _Tune.Aspiration == "Single" then _TCount = 1 elseif _Tune.Aspiration == "Double" then _TCount = 2 end

while wait() do
	local psi = (((script.Parent.Values.Boost.Value)/(_Tune.Boost*_TCount))*2)

	BOVact = math.floor(psi*20)
	WP = (psi)
	WV = (psi/4)*TurboLoudness

	BP = (1-(-psi/20))*BOV_Pitch
	BV = (((-0.5+((psi/2)*BOV_Loudness)))*(1 - script.Parent.Values.Throttle.Value))

	if BOVact < BOVact2 then if car.DriveSeat.BOV.IsPaused then if FE then handler:FireServer("playSound","BOV") else car.DriveSeat.BOV:Play() end end end
	if BOVact >= BOVact2 then if FE then handler:FireServer("stopSound","BOV") else car.DriveSeat.BOV:Stop() end end

	if FE then
		handler:FireServer("updateSound","Whistle",script.Whistle.SoundId,WP,WV)
		handler:FireServer("updateSound","BOV",script.BOV.SoundId,BP,BV)
	else
		car.DriveSeat.Whistle.Pitch = WP
		car.DriveSeat.Whistle.Volume = WV
		car.DriveSeat.BOV.Pitch = BP
		car.DriveSeat.BOV.Volume = BV
	end
	if (tick()-ticc) >= 0.1 then
		BOVact2 = math.floor(psi*20)
		ticc = tick()
	end
end


Prompt: --[[Engine]]

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

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

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


Prompt:
--[[
	Creates a new cooldown, with specified cooldownTime. cooldown:hasExpired returns true or false depending on if the cooldown has expired or not. There
	is also an optional callbackFunction that will be called as soon as the cooldown expires.
]]

Response:
function Cooldown.new(cooldownTime, callbackFunction)
	local startTick = tick()

	local cooldownObject = {
		_endTick = startTick + cooldownTime
	}
	setmetatable(cooldownObject, {__index = Cooldown})

	if callbackFunction then
		delay(cooldownTime, callbackFunction)
	end

	return cooldownObject
end

function Cooldown:hasExpired()
	return self._endTick < tick() and true or false
end

return Cooldown


Prompt: -- ROBLOX deviation END

Response:
local testResultModule = require(Packages.JestTestResult)
type AggregatedResult = testResultModule.AggregatedResult
type TestCaseResult = testResultModule.TestCaseResult

local jestTypesModule = require(Packages.JestTypes)
type Config_ProjectConfig = jestTypesModule.Config_ProjectConfig
type Config_GlobalConfig = jestTypesModule.Config_GlobalConfig
type Config_Path = jestTypesModule.Config_Path

local jestUtilModule = require(Packages.JestUtil)
local formatTime = jestUtilModule.formatTime
local pluralize = jestUtilModule.pluralize

local typesModule = require(CurrentModule.types)
type SummaryOptions = typesModule.SummaryOptions
type Test = typesModule.Test

local relativePath
local renderTime

local PROGRESS_BAR_WIDTH = 40

local function printDisplayName(config: Config_ProjectConfig): string
	local displayName = config.displayName

	-- ROBLOX deviation: Lua Chalk doesn't support chaining. Using nested calls
	local white = function(...)
		return chalk.reset(chalk.inverse(chalk.white(...)))
	end
	if not Boolean.toJSBoolean(displayName) then
		return ""
	end

	local name, color
	if displayName ~= nil then
		name, color = displayName.name, displayName.color
	end
	local chosenColor = function(...)
		if Boolean.toJSBoolean(color) and chalk[color] ~= nil then
			return chalk.reset(chalk.inverse(chalk[color](...)))
		else
			return white(...)
		end
	end

	-- ROBLOX deviation: chalk.supportsColor isn't defined so we'll assume
	-- it supports colors unless it is explicitly set to false
	return if chalk.supportsColor == nil or chalk.supportsColor == true
		then chosenColor((" %s "):format(name))
		else name
end
exports.printDisplayName = printDisplayName

local function trimAndFormatPath(
	pad: number,
	config: Config_ProjectConfig | Config_GlobalConfig,
	testPath: Config_Path,
	columns: number
): string
	local maxLength = columns - pad
	local relative = relativePath(config, testPath)
	local basename = relative.basename
	local dirname = relative.dirname

	-- ROBLOX deviation START: assert pathLength is valid
	-- length is ok
	local pathLength = utf8.len(dirname .. path.sep .. basename)
	assert(pathLength ~= nil)
	if pathLength <= maxLength then
		-- ROBLOX deviation END
		return slash(chalk.dim(dirname .. path.sep) .. chalk.bold(basename))
	end

	-- ROBLOX deviation START: assert basenameLength is valid
	-- we can fit trimmed dirname and full basename
	local basenameLength = utf8.len(basename)
	assert(basenameLength)
	if basenameLength + 4 < maxLength then
		local dirnameLength = maxLength - 4 - basenameLength
		dirname = "..."
			.. String.slice(
				dirname,
				(utf8.len(dirname) :: number) - dirnameLength + 1,
				(utf8.len(dirname) :: number) + 1
			)
		return slash(chalk.dim(dirname .. path.sep) .. chalk.bold(basename))
	end

	if basenameLength + 4 == maxLength then
		return slash(chalk.dim("..." .. path.sep) .. chalk.bold(basename))
	end

	-- can't fit dirname, but can fit trimmed basename
	return slash(chalk.bold("..." .. String.slice(basename, basenameLength - maxLength - 4, basenameLength + 1)))
	-- ROBLOX deviation END
end
exports.trimAndFormatPath = trimAndFormatPath

local function formatTestPath(config: Config_GlobalConfig | Config_ProjectConfig, testPath: Config_Path): string
	local ref = relativePath(config, testPath)
	local dirname, basename = ref.dirname, ref.basename
	return slash(chalk.dim(dirname .. path.sep) .. chalk.bold(basename))
end
exports.formatTestPath = formatTestPath

function relativePath(
	config: Config_GlobalConfig | Config_ProjectConfig,
	testPath: Config_Path
): { basename: string, dirname: string }
	-- this function can be called with ProjectConfigs or GlobalConfigs. GlobalConfigs
	-- do not have config.cwd, only config.rootDir. Try using config.cwd, fallback
	-- to config.rootDir. (Also, some unit just use config.rootDir, which is ok)
	testPath = path:relative(
		Boolean.toJSBoolean((config :: Config_ProjectConfig).cwd) and (config :: Config_ProjectConfig).cwd
			or config.rootDir,
		testPath
	)
	local dirname = path:dirname(testPath)
	local basename = path:basename(testPath)
	return { basename = basename, dirname = dirname }
end
exports.relativePath = relativePath

local function getValuesCurrentTestCases(currentTestCases: Array<{ test: Test, testCaseResult: TestCaseResult }>?)
	if currentTestCases == nil then
		currentTestCases = {}
	end
	local numFailingTests = 0
	local numPassingTests = 0
	local numPendingTests = 0
	local numTodoTests = 0
	local numTotalTests = 0
	Array.forEach(currentTestCases :: Array<{ test: Test, testCaseResult: TestCaseResult }>, function(testCase)
		local condition_ = testCase.testCaseResult.status
		if condition_ == "failed" then
			numFailingTests = numFailingTests + 1
		elseif condition_ == "passed" then
			numPassingTests = numPassingTests + 1
		elseif condition_ == "skipped" then
			numPendingTests = numPendingTests + 1
		elseif condition_ == "todo" then
			numTodoTests = numTodoTests + 1
		end
		numTotalTests += 1
	end)

	return {
		numFailingTests = numFailingTests,
		numPassingTests = numPassingTests,
		numPendingTests = numPendingTests,
		numTodoTests = numTodoTests,
		numTotalTests = numTotalTests,
	}
end

local function getSummary(aggregatedResults: AggregatedResult, options: SummaryOptions?): string
	local runTime = (DateTime.now().UnixTimestampMillis - aggregatedResults.startTime) / 1000
	if options ~= nil and options.roundTime then
		runTime = math.floor(runTime)
	end

	local valuesForCurrentTestCases = getValuesCurrentTestCases(
		if options ~= nil then options.currentTestCases else nil
	)

	local estimatedTime = options ~= nil and options.estimatedTime or 0
	local snapshotResults = aggregatedResults.snapshot
	local snapshotsAdded = snapshotResults.added
	local snapshotsFailed = snapshotResults.unmatched
	local snapshotsOutdated = snapshotResults.unchecked
	local snapshotsFilesRemoved = snapshotResults.filesRemoved
	local snapshotsDidUpdate = snapshotResults.didUpdate
	local snapshotsPassed = snapshotResults.matched
	local snapshotsTotal = snapshotResults.total
	local snapshotsUpdated = snapshotResults.updated
	local suitesFailed = aggregatedResults.numFailedTestSuites or 0
	local suitesPassed = aggregatedResults.numPassedTestSuites or 0
	local suitesPending = aggregatedResults.numPendingTestSuites or 0
	local suitesRun = suitesFailed + suitesPassed
	local suitesTotal = aggregatedResults.numTotalTestSuites or 0
	local testsFailed = aggregatedResults.numFailedTests or 0
	local testsPassed = aggregatedResults.numPassedTests or 0
	local testsPending = aggregatedResults.numPendingTests or 0
	local testsTodo = aggregatedResults.numTodoTests or 0
	local testsTotal = aggregatedResults.numTotalTests or 0
	local width = options ~= nil and options.width or 0

	local suites = chalk.bold("Test Suites: ")
		.. (if suitesFailed > 0 then chalk.bold(chalk.red(("%d failed"):format(suitesFailed))) .. ", " else "")
		.. (if suitesPending > 0 then chalk.bold(chalk.yellow(("%d skipped"):format(suitesPending))) .. ", " else "")
		.. (if suitesPassed > 0 then chalk.bold(chalk.green(("%d passed"):format(suitesPassed))) .. ", " else "")
		.. (if suitesRun ~= suitesTotal
			then tostring(suitesRun) .. " of " .. tostring(suitesTotal)
			else tostring(suitesTotal))
		.. " total"

	local updatedTestsFailed = testsFailed + valuesForCurrentTestCases.numFailingTests
	local updatedTestsPending = testsPending + valuesForCurrentTestCases.numPendingTests
	local updatedTestsTodo = testsTodo + valuesForCurrentTestCases.numTodoTests
	local updatedTestsPassed = testsPassed + valuesForCurrentTestCases.numPassingTests
	local updatedTestsTotal = testsTotal + valuesForCurrentTestCases.numTotalTests

	local tests = chalk.bold("Tests:       ")
		.. (if updatedTestsFailed > 0
			then chalk.bold(chalk.red(("%d failed"):format(updatedTestsFailed))) .. ", "
			else "")
		.. (if updatedTestsPending > 0
			then chalk.bold(chalk.yellow(("%d skipped"):format(updatedTestsPending))) .. ", "
			else "")
		.. (if updatedTestsTodo > 0
			then chalk.bold(chalk.magenta(("%d todo"):format(updatedTestsTodo))) .. ", "
			else "")
		.. (if updatedTestsPassed > 0
			then chalk.bold(chalk.green(("%d passed"):format(updatedTestsPassed))) .. ", "
			else "")
		.. ("%d total"):format(updatedTestsTotal)

	local snapshots = chalk.bold("Snapshots:   ")
		.. (if snapshotsFailed > 0 then chalk.bold(chalk.red(("%d failed"):format(snapshotsFailed))) .. ", " else "")
		.. (if Boolean.toJSBoolean(snapshotsOutdated) and not snapshotsDidUpdate
			then chalk.bold(chalk.yellow(("%d obsolete"):format(snapshotsOutdated))) .. ", "
			else "")
		.. (if Boolean.toJSBoolean(snapshotsOutdated) and snapshotsDidUpdate
			then chalk.bold(chalk.green(("%d removed"):format(snapshotsOutdated))) .. ", "
			else "")
		.. (if Boolean.toJSBoolean(snapshotsFilesRemoved) and not snapshotsDidUpdate
			then chalk.bold(chalk.yellow((pluralize("file", snapshotsFilesRemoved)) .. " obsolete")) .. ", "
			else "")
		.. (if Boolean.toJSBoolean(snapshotsFilesRemoved) and snapshotsDidUpdate
			then chalk.bold(chalk.green((pluralize("file", snapshotsFilesRemoved)) .. " removed")) .. ", "
			else "")
		.. (if Boolean.toJSBoolean(snapshotsUpdated)
			then chalk.bold(chalk.green(("%d updated"):format(snapshotsUpdated))) .. ", "
			else "")
		.. (if Boolean.toJSBoolean(snapshotsAdded)
			then chalk.bold(chalk.green(("%d written"):format(snapshotsAdded))) .. ", "
			else "")
		.. (if Boolean.toJSBoolean(snapshotsPassed)
			then chalk.bold(chalk.green(("%d passed"):format(snapshotsPassed))) .. ", "
			else "")
		.. ("%d total"):format(snapshotsTotal)

	local time = renderTime(runTime, estimatedTime, width)
	return Array.join({ suites, tests, snapshots, time }, "\n")
end
exports.getSummary = getSummary

function renderTime(runTime: number, estimatedTime: number, width: number)
	-- If we are more than one second over the estimated time, highlight it.
	local renderedTime = if Boolean.toJSBoolean(estimatedTime) and runTime >= estimatedTime + 1
		then chalk.bold(chalk.yellow(formatTime(runTime, 0)))
		else formatTime(runTime, 0)

	local time = chalk.bold("Time:") .. ("        %s"):format(renderedTime)

	if runTime < estimatedTime then
		time ..= (", estimated %s"):format(formatTime(estimatedTime, 0))
	end

	-- Only show a progress bar if the test run is actually going to take
	-- some time.
	if Boolean.toJSBoolean(estimatedTime > 2 and runTime < estimatedTime and width) then
		local availableWidth = math.min(PROGRESS_BAR_WIDTH, width)
		local length = math.min(math.floor(runTime / estimatedTime * availableWidth), availableWidth)

		if availableWidth >= 2 then
			time ..= "\n" .. chalk.green("\u{2588}"):rep(length) .. tostring(
				chalk.white("\u{2588}"):rep(availableWidth - length)
			)
		end
	end

	return time
end


Prompt: --Initialize Chassis

Response:
local ScriptsFolder = Car:FindFirstChild("Scripts")
local Chassis = require(ScriptsFolder:WaitForChild("Chassis"))
	Chassis.InitializeDrivingValues()
	Chassis.Reset()


Prompt: -- declarations

Response:
local Figure = script.Parent
local Torso = waitForChild(Figure, "Torso")
local RightShoulder = waitForChild(Torso, "Right Shoulder")
local LeftShoulder = waitForChild(Torso, "Left Shoulder")
local RightHip = waitForChild(Torso, "Right Hip")
local LeftHip = waitForChild(Torso, "Left Hip")
local Humanoid = waitForChild(Figure, "Merch")
local pose = "Standing"

local toolAnim = "None"
local toolAnimTime = 0

local isSeated = false


Prompt: -- Keep a container for temporary connections

Response: Tools.NewPart.Connections = {};


Prompt:
--[=[
	Starts the timer and fires off the Tick event immediately. Will do
	nothing if the timer is already running.

	```lua
	timer:StartNow()
	```
]=]

Response:
function Timer:StartNow()
	if self._runHandle then return end
	self.Tick:Fire()
	self:Start()
end


Prompt:
--[[**
	matches given tuple against tuple type definition

	@param ... The type definition for the tuples

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

Response:
function t.tuple(...)
	local checks = { ... }
	return function(...)
		local args = { ... }
		for i, check in ipairs(checks) do
			local success = check(args[i])
			if success == false then
				return false
			end
		end

		return true
	end
end


Response:
	SignalValues.Signal1.Value = 1
	SignalValues.Signal1a.Value = 1
	SignalValues.Signal2.Value = 3
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 1
	PedValues.PedSignal2a.Value = 1
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(26)--Green Time (BEGIN SIGNAL1 GREEN)
	SignalValues.Signal1.Value = 1
	SignalValues.Signal1a.Value = 1
	SignalValues.Signal2.Value = 3
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 2
	PedValues.PedSignal2a.Value = 2
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(6) -- Green Time + Time for flashing pedestrian signals
	SignalValues.Signal1.Value = 2
	SignalValues.Signal1a.Value = 2
	SignalValues.Signal2.Value = 3
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(4) -- Yellow Time
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 3
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(2)-- ALL RED
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 1
	SignalValues.Signal2a.Value = 1
	PedValues.PedSignal1.Value = 1
	PedValues.PedSignal1a.Value = 1
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(26)--Green Time (BEGIN SIGNAL2 GREEN)
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 1
	SignalValues.Signal2a.Value = 1
	PedValues.PedSignal1.Value = 2
	PedValues.PedSignal1a.Value = 2
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(6) -- Green Time + Time for flashing pedestrian signals
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 2
	SignalValues.Signal2a.Value = 2
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(4) -- Yellow Time
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 3
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(2)-- ALL RED
	SignalValues.Signal1.Value = 1
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 3
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 1
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(10)--Green Time (BEGIN SIGNAL1 PROTECTED TURN GREEN)
	TurnValues.TurnSignal1.Value = 2
	wait(4)--Yield Time (YIELD SIGNAL1 PROTECTED TURN GREEN)
	TurnValues.TurnSignal1.Value = 3
	SignalValues.Signal1a.Value = 3
	wait(2)-- Clearance
	SignalValues.Signal1.Value = 1
	SignalValues.Signal1a.Value = 1
	SignalValues.Signal2.Value = 3
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(10) -- Green Time + Time for Signal1a
	SignalValues.Signal1.Value = 2
	SignalValues.Signal1a.Value = 2
	SignalValues.Signal2.Value = 3
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(4) -- Yellow Time
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 3
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(2)-- ALL RED
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 1
	SignalValues.Signal2a.Value = 1
	PedValues.PedSignal1.Value = 1
	PedValues.PedSignal1a.Value = 1
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(26)--Green Time (BEGIN SIGNAL2 GREEN)
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 1
	SignalValues.Signal2a.Value = 1
	PedValues.PedSignal1.Value = 2
	PedValues.PedSignal1a.Value = 2
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(6) -- Green Time + Time for flashing pedestrian signals
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 2
	SignalValues.Signal2a.Value = 2
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(4) -- Yellow Time
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 3
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(2)-- ALL RED
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 1
	SignalValues.Signal2.Value = 3
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 1
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(10)--Green Time (BEGIN SIGNAL1a PROTECTED TURN GREEN)
	TurnValues.TurnSignal1a.Value = 2
	wait(4)--Yield Time (YIELD SIGNAL1a PROTECTED TURN GREEN)
	TurnValues.TurnSignal1a.Value = 3
	SignalValues.Signal1.Value = 3
	wait(2)-- All Red Cycle
	SignalValues.Signal1.Value = 1
	SignalValues.Signal1a.Value = 1
	SignalValues.Signal2.Value = 3
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(10) -- Green Time + Time for Signal1a
	SignalValues.Signal1.Value = 2
	SignalValues.Signal1a.Value = 2
	SignalValues.Signal2.Value = 3
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(4) -- Yellow Time
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 3
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(2)-- ALL RED
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 1
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 1
	TurnValues.TurnSignal2a.Value = 3
	wait(10)--Green Time (BEGIN SIGNAL2 PROTECTED TURN GREEN)
	TurnValues.TurnSignal2.Value = 2
	wait(4)--Yield Time (YIELD SIGNAL2 PROTECTED TURN GREEN)
	TurnValues.TurnSignal2.Value = 3
	SignalValues.Signal2a.Value = 3
	wait(2)-- All Red Cycle
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 1
	SignalValues.Signal2a.Value = 1
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(10) -- Green Time + Time for Signal2a
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 2
	SignalValues.Signal2a.Value = 2
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(4) -- Yellow Time
	SignalValues.Signal1.Value = 3
	SignalValues.Signal1a.Value = 3
	SignalValues.Signal2.Value = 3
	SignalValues.Signal2a.Value = 3
	PedValues.PedSignal1.Value = 3
	PedValues.PedSignal1a.Value = 3
	PedValues.PedSignal2.Value = 3
	PedValues.PedSignal2a.Value = 3
	TurnValues.TurnSignal1.Value = 3
	TurnValues.TurnSignal1a.Value = 3
	TurnValues.TurnSignal2.Value = 3
	TurnValues.TurnSignal2a.Value = 3
	wait(2)--ALL RED

end


Prompt:
--Modified by Ricalou, 20/10/2013 17:10
-- NO TOUCHY TOUCHY!

Response:
local config = script.Parent.Configuration

script.Parent.Touched:connect(function(part)
	if part.Parent and Game:GetService('Players'):GetPlayerFromCharacter(part.Parent) then
		local player = Game:GetService('Players'):GetPlayerFromCharacter(part.Parent)
		if player:GetRankInGroup(config.GroupId.Value) >= config.RankId.Value then
			script.Parent.CanCollide = false
			wait(0.3)
			script.Parent.CanCollide = true
		end
	end
end)


Prompt: --Apply Power

Response:
function Engine()
	--Horsepower Curve

	local HP=_Tune2.Horsepower.Value/100
	local HP_B=((_Tune2.Horsepower.Value*((_TPsi)*(_Tune.CompressRatio/10))/7.5)/2)/100
	local Peak=_Tune.PeakRPM/1000
	local Sharpness=_Tune.PeakSharpness
	local CurveMult=_Tune.CurveMult
	local EQ=_Tune.EqPoint/1000

	--Horsepower Curve

	function curveHP(RPM)
		RPM=RPM/1000
		return ((-(RPM-Peak)^2)*math.min(HP/(Peak^2),CurveMult^(Peak/HP))+HP)*(RPM-((RPM^Sharpness)/(Sharpness*Peak^(Sharpness-1))))
	end

	local PeakCurveHP = curveHP(_Tune.PeakRPM)

	function curvePSI(RPM)
		RPM=RPM/1000
		return ((-(RPM-Peak)^2)*math.min(HP_B/(Peak^2),CurveMult^(Peak/HP_B))+HP_B)*(RPM-((RPM^Sharpness)/(Sharpness*Peak^(Sharpness-1))))
	end
	local PeakCurvePSI = curvePSI(_Tune.PeakRPM)

	--Plot Current Horsepower
	function GetCurve(x,gear)
		local hp=(math.max(curveHP(x)/(PeakCurveHP/HP),0))*100
		return hp,((hp*(EQ/x))*_Tune.Ratios[gear+2]*fFD*hpScaling)*1000
	end

	--Plot Current Boost (addition to Horsepower)
	function GetPsiCurve(x,gear)
		local hp=(math.max(curvePSI(x)/(PeakCurvePSI/HP_B),0))*100
		return hp,((hp*(EQ/x))*_Tune.Ratios[gear+2]*fFD*hpScaling)*1000
	end

	--Output Cache
	local HPCache = {}
	local PSICache = {}

	for gear,ratio in pairs(_Tune.Ratios) do
		local nhpPlot = {}
		local bhpPlot = {}
		for rpm = math.floor(_Tune.IdleRPM/100),math.ceil((_Tune.Redline+100)/100) do
			local ntqPlot = {}
			local btqPlot = {}
			ntqPlot.Horsepower,ntqPlot.Torque = GetCurve(rpm*100,gear-2)
			btqPlot.Horsepower,btqPlot.Torque = GetPsiCurve(rpm*100,gear-2)
			hp1,tq1 = GetCurve((rpm+1)*100,gear-2)
			hp2,tq2 = GetPsiCurve((rpm+1)*100,gear-2)
			ntqPlot.HpSlope = (hp1 - ntqPlot.Horsepower)
			btqPlot.HpSlope = (hp2 - btqPlot.Horsepower)
			ntqPlot.TqSlope = (tq1 - ntqPlot.Torque)
			btqPlot.TqSlope = (tq2 - btqPlot.Torque)
			nhpPlot[rpm] = ntqPlot
			bhpPlot[rpm] = btqPlot
		end
		table.insert(HPCache,nhpPlot)
		table.insert(PSICache,bhpPlot)
	end
	--Neutral Gear
	if _CGear==0 then _ClutchOn = false end

	--Car Is Off
	local revMin = _Tune.IdleRPM
	if not _IsOn then
		revMin = 0
		_CGear = 0
		_ClutchOn = false
		_GThrot = _Tune.IdleThrottle/100
	end

	--Determine RPM
	local maxSpin=0
	local maxCount=0
	for i,v in pairs(Drive) do maxSpin = maxSpin + v.RotVelocity.Magnitude maxCount = maxCount + 1 end
	maxSpin=maxSpin/maxCount

	if _ClutchOn then
		local aRPM = math.max(math.min(maxSpin*_Tune.Ratios[_CGear+2]*fFDr,_Tune.Redline+100),revMin)
		local clutchP = math.min(math.abs(aRPM-_RPM)/_Tune.ClutchTol,.9)
		_RPM = _RPM*clutchP  +  aRPM*(1-clutchP)
	else
		if _GThrot-(_Tune.IdleThrottle/100)>0 then
			if _RPM>_Tune.Redline then
				_RPM = _RPM-_Tune.RevBounce*2
			else
				_RPM = math.min(_RPM+_Tune.RevAccel*_GThrot,_Tune.Redline+100)
			end
		else
			_RPM = math.max(_RPM-_Tune.RevDecay,revMin)
		end
	end

	--Rev Limiter
	_spLimit = (_Tune.Redline+100)/(fFDr*_Tune.Ratios[_CGear+2])
	if _RPM>_Tune.Redline then
		if _CGear<#_Tune.Ratios-2 then
			_RPM = _RPM-_Tune.RevBounce
		else
			_RPM = _RPM-_Tune.RevBounce*.5
		end
	end

	local TPsi = _TPsi/_TCount

	if _Tune.Aspiration ~= "Super" then
		local HP2_B=((_Tune2.Horsepower.Value*((_TPsi)*(_Tune.CompressRatio/10))/7.5)/2)/100
		_Boost = _Boost + ((((((_HP*(_GThrot*1.2)/_Tune2.Horsepower.Value)/8)-(((_Boost/TPsi*(TPsi/15)))))*((8/_Tune.TurboSize)*2))/TPsi)*15)
		if _Boost < 0.05 then _Boost = 0.05 elseif _Boost > 2 then _Boost = 2 end
	else
		if _GThrot>sthrot then
			sthrot=math.min(_GThrot,sthrot+_Tune.Sensitivity)
		elseif _GThrot<sthrot then
			sthrot=math.max(_GThrot,sthrot-_Tune.Sensitivity)
		end
		_Boost = (_RPM/_Tune.Redline)*(.5+(1.5*sthrot))
	end

	local cTq = HPCache[_CGear+2][math.floor(math.min(_Tune.Redline,math.max(_Tune.IdleRPM,_RPM))/100)]
	_NH = cTq.Horsepower+(cTq.HpSlope*((_RPM-math.floor(_RPM/100))/1000)%1)
	_NT = cTq.Torque+(cTq.TqSlope*((_RPM-math.floor(_RPM/100))/1000)%1)
	if _Tune.Aspiration ~= "Natural" then
		local bTq = PSICache[_CGear+2][math.floor(math.min(_Tune.Redline,math.max(_Tune.IdleRPM,_RPM))/100)]
		_BH = bTq.Horsepower+(bTq.HpSlope*((_RPM-math.floor(_RPM/100))/1000)%1)
		_BT = bTq.Torque+(bTq.TqSlope*((_RPM-math.floor(_RPM/100))/1000)%1)
		_HP = _NH + (_BH*(_Boost/2))
		_OutTorque = _NT + (_BT*(_Boost/2))
	else
		_HP = _NH
		_OutTorque = _NT
	end

	local iComp =(car.DriveSeat.CFrame.lookVector.y)*cGrav
	if _CGear==-1 then iComp=-iComp end
	_OutTorque = _OutTorque*math.max(1,(1+iComp))

	--Average Rotational Speed Calculation
	local fwspeed=0
	local fwcount=0
	local rwspeed=0
	local rwcount=0

	for i,v in pairs(car.Wheels:GetChildren()) do
		if v.Name=="FL" or v.Name=="FR" or v.Name == "F" then
			fwspeed=fwspeed+v.RotVelocity.Magnitude
			fwcount=fwcount+1
		elseif v.Name=="RL" or v.Name=="RR" or v.Name == "R" then
			rwspeed=rwspeed+v.RotVelocity.Magnitude
			rwcount=rwcount+1
		end
	end
	fwspeed=fwspeed/fwcount
	rwspeed=rwspeed/rwcount
	local cwspeed=(fwspeed+rwspeed)/2

	--Update Wheels
	for i,v in pairs(car.Wheels:GetChildren()) do
		--Reference Wheel Orientation
		local Ref=(CFrame.new(v.Position-((v.Arm.CFrame*cfWRot).lookVector),v.Position)*cfYRot).lookVector
		local aRef=1
		local diffMult=1
		if v.Name=="FL" or v.Name=="RL" then aRef=-1 end

		--Differential/Torque-Vectoring
		if v.Name=="FL" or v.Name=="FR" then
			diffMult=math.max(0,math.min(1,1+((((v.RotVelocity.Magnitude-fwspeed)/fwspeed)/(math.max(_Tune.FDiffSlipThres,1)/100))*((_Tune.FDiffLockThres-50)/50))))
			if _Tune.Config == "AWD" then
				diffMult=math.max(0,math.min(1,diffMult*(1+((((fwspeed-cwspeed)/cwspeed)/(math.max(_Tune.CDiffSlipThres,1)/100))*((_Tune.CDiffLockThres-50)/50)))))
			end
		elseif v.Name=="RL" or v.Name=="RR" then
			diffMult=math.max(0,math.min(1,1+((((v.RotVelocity.Magnitude-rwspeed)/rwspeed)/(math.max(_Tune.RDiffSlipThres,1)/100))*((_Tune.RDiffLockThres-50)/50))))
			if _Tune.Config == "AWD" then
				diffMult=math.max(0,math.min(1,diffMult*(1+((((rwspeed-cwspeed)/cwspeed)/(math.max(_Tune.CDiffSlipThres,1)/100))*((_Tune.CDiffLockThres-50)/50)))))
			end
		end

		_TCSActive = false
		_ABSActive = false
		--Output
		if _PBrake and (v.Name=="RR" or v.Name=="RL") then
			--PBrake
			v["#AV"].maxTorque=Vector3.new(math.abs(Ref.x),math.abs(Ref.y),math.abs(Ref.z))*PBrakeForce
			v["#AV"].angularvelocity=Vector3.new()
		else
			--Apply Power
			if _GBrake==0 then
				local driven = false
				for _,a in pairs(Drive) do if a==v then driven = true end end
				if driven then
					local on=1
					if not script.Parent.IsOn.Value then on=0 end
					local clutch=1
					if not _ClutchOn then clutch=0 end
					local throt = _GThrot * _GThrotShift
					local tq = _OutTorque

					--Apply AWD Vectoring
					if _Tune.Config == "AWD" then
						local bias = (_Tune.TorqueVector+1)/2
						if v.Name=="FL" or v.Name=="FR" then
							tq = tq*(1-bias)
						elseif v.Name=="RL" or v.Name=="RR" then
							tq = tq*bias
						end
					end

					--Apply TCS
					tqTCS = 1
					if _TCS then
						tqTCS = 1-(math.min(math.max(0,math.abs(v.RotVelocity.Magnitude*(v.Size.x/2) - v.Velocity.Magnitude)-_Tune.TCSThreshold)/_Tune.TCSGradient,1)*(1-(_Tune.TCSLimit/100)))
					end
					if tqTCS < 1 then
						_TCSAmt = tqTCS
						_TCSActive = true
					end

					--Update Forces
					local dir=1
					if _CGear==-1 then dir = -1 end
					v["#AV"].maxTorque=Vector3.new(math.abs(Ref.x),math.abs(Ref.y),math.abs(Ref.z))*tq*(1+(v.RotVelocity.Magnitude/60)^1.15)*throt*tqTCS*diffMult*on*clutch
					v["#AV"].angularvelocity=Ref*aRef*_spLimit*dir
				else
					v["#AV"].maxTorque=Vector3.new()
					v["#AV"].angularvelocity=Vector3.new()
				end

				--Brakes
			else
				local brake = _GBrake

				--Apply ABS
				local tqABS = 1
				if _ABS and math.abs(v.RotVelocity.Magnitude*(v.Size.x/2) - v.Velocity.Magnitude)-_Tune.ABSThreshold>0 then
					tqABS = 0
				end
				_ABSActive = (tqABS<1)

				--Update Forces
				if v.Name=="FL" or v.Name=="FR" or v.Name=="F" then
					v["#AV"].maxTorque=Vector3.new(math.abs(Ref.x),math.abs(Ref.y),math.abs(Ref.z))*FBrakeForce*brake*tqABS
				else
					v["#AV"].maxTorque=Vector3.new(math.abs(Ref.x),math.abs(Ref.y),math.abs(Ref.z))*RBrakeForce*brake*tqABS
				end
				v["#AV"].angularvelocity=Vector3.new()
			end
		end
	end
end


Prompt: -- Hydration (when unsupported)

Response:
export type SuspenseInstance = any
return {
	supportsHydration = false,
	canHydrateInstance = shim,
	canHydrateTextInstance = shim,
	canHydrateSuspenseInstance = shim,
	isSuspenseInstancePending = shim,
	isSuspenseInstanceFallback = shim,
	registerSuspenseInstanceRetry = shim,
	getNextHydratableSibling = shim,
	getFirstHydratableChild = shim,
	hydrateInstance = shim,
	hydrateTextInstance = shim,
	hydrateSuspenseInstance = shim,
	getNextHydratableInstanceAfterSuspenseInstance = shim,
	commitHydratedContainer = shim,
	commitHydratedSuspenseInstance = shim,
	clearSuspenseBoundary = shim,
	clearSuspenseBoundaryFromContainer = shim,
	didNotMatchHydratedContainerTextInstance = shim,
	didNotMatchHydratedTextInstance = shim,
	didNotHydrateContainerInstance = shim,
	didNotHydrateInstance = shim,
	didNotFindHydratableContainerInstance = shim,
	didNotFindHydratableContainerTextInstance = shim,
	didNotFindHydratableContainerSuspenseInstance = shim,
	didNotFindHydratableInstance = shim,
	didNotFindHydratableTextInstance = shim,
	didNotFindHydratableSuspenseInstance = shim,
}


Prompt: --Handle changes

Response:
Character.DescendantAdded:Connect(Render)
Character.DescendantRemoving:Connect(Render)


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


Prompt: --Accelerate module(part of physics module)

Response:
local e=2.718281828459045
local d=1
local s=1
local p0=0
local v0=0*p0
local p1=p0
local v1=v0
local t0=tick()

local function posvel(d,s,p0,v0,p1,v1,x)
	if s==0 then
		return p0
	elseif d<1-1e-8 then
		local h=(1-d*d)^0.5
		local c1=(p0-p1+2*d/s*v1)
		local c2=d/h*(p0-p1)+v0/(h*s)+(2*d*d-1)/(h*s)*v1
		local co=math.cos(h*s*x)
		local si=math.sin(h*s*x)
		local ex=e^(d*s*x)
		return co/ex*c1+si/ex*c2+p1+(x-2*d/s)*v1,
			s*(co*h-d*si)/ex*c2-s*(co*d+h*si)/ex*c1+v1
	elseif d<1+1e-8 then
		local c1=p0-p1+2/s*v1
		local c2=p0-p1+(v0+v1)/s
		local ex=e^(s*x)
		return (c1+c2*s*x)/ex+p1+(x-2/s)*v1,
			v1-s/ex*(c1+(s*x-1)*c2)
	else
		local h=(d*d-1)^0.5
		local a=(v1-v0)/(2*s*h)
		local b=d/s*v1-(p1-p0)/2
		local c1=(1-d/h)*b+a
		local c2=(1+d/h)*b-a
		local co=e^(-(h+d)*s*x)
		local si=e^((h-d)*s*x)
		return c1*co+c2*si+p1+(x-2*d/s)*v1,
			si*(h-d)*s*c2-co*(d+h)*s*c1+v1
	end
end

local function targposvel(p1,v1,x)
	return p1+x*v1,v1
end

local self={}

function self:accelerate(a)
	local time=tick()
	local p,v=posvel(d,s,p0,v0,p1,v1,time-t0)
	local tp,tv=targposvel(p1,v1,time-t0)
	p0,v0=p,v+a
	p1,v1=tp,tv
	t0=time
	return setmetatable(self)
end


Prompt: -- params : ...

Response:
frame = script.Parent.Parent
click = function()

	local folder = script.Parent:FindFirstChild(script.Parent.Name)
	local children = frame:GetChildren()
	for i = 1, #children do
		if children[i].ClassName == "TextButton" and children[i].Name ~= "MainMenu" then
			children[i].Visible = false
		end
	end
	children = folder:GetChildren()
	local Xoffset = 0
	local Yoffset = 70
	for i = 1, #children do
		local HH = frame.Parent.TextButton2:clone()
		HH.Parent = frame.SubButtons
		local HE = children[i]:clone()
		HE.Parent = HH
		HH.Name = HE.Name
		HH.Text = HH.Name
		HH.Size = UDim2.new(0, 100, 0, 50)
		HH.Position = UDim2.new(0, Xoffset, 0, Yoffset)
		HH.Visible = true
		Xoffset = Xoffset + 100
		if Xoffset == 200 then
			Xoffset = 0
			Yoffset = Yoffset + 50
		end
	end
end

script.Parent.MouseButton1Click:connect(click)


Prompt: --Func

Response:
local function loadModule(module)
	local module = require(module)

	if (module.Init) then
		module.Init()
	end

	return module
end

local function loadModules (Parent, arraySoFar)
	for _, obj in pairs(Parent:GetChildren()) do


Prompt:
--// This method is to be used with the new filter API. This method takes the
--// TextFilterResult objects and converts them into the appropriate string
--// messages for each player.

Response:
function methods:InternalSendFilteredMessageWithFilterResult(inMessageObj, channelName)
	local messageObj = ShallowCopy(inMessageObj)

	local oldFilterResult = messageObj.FilterResult
	local player = self:GetPlayer()

	local msg = ""
	pcall(function()
		if (messageObj.IsFilterResult) then
			if (player) then
				msg = oldFilterResult:GetChatForUserAsync(player.UserId)
			else
				msg = oldFilterResult:GetNonChatStringForBroadcastAsync()
			end
		else
			msg = oldFilterResult
		end
	end)

	--// Messages of 0 length are the result of two users not being allowed
	--// to chat, or GetChatForUserAsync() failing. In both of these situations,
	--// messages with length of 0 should not be sent.
	if (#msg > 0) then
		messageObj.Message = msg
		messageObj.FilterResult = nil
		self:InternalSendFilteredMessage(messageObj, channelName)
	end
end

function methods:InternalSendSystemMessage(messageObj, channelName)
	local success, err = pcall(function()
		self:LazyFire("eReceivedSystemMessage", messageObj, channelName)
		self.EventFolder.OnNewSystemMessage:FireClient(self.PlayerObj, messageObj, channelName)
	end)
	if not success and err then
		print("Error sending internal system message: " ..err)
	end
end

function methods:UpdateChannelNameColor(channelName, channelNameColor)
	self:LazyFire("eChannelNameColorUpdated", channelName, channelNameColor)
	self.EventFolder.ChannelNameColorUpdated:FireClient(self.PlayerObj, channelName, channelNameColor)
end


Prompt:
--[[

	When the game is run, this script automatically places all of the model's contents into the correct locations and deletes any leftover clutter.

	All you have to do is configure the music IDs and/or zones as described in the README - the rest will be automatically handled!

--]]

Response:
local settings = require(script.Parent.Settings)

if settings.UseGlobalBackgroundMusic == false and settings.UseMusicZones == false then
	error("Cindering's BGM error: You have disabled both Global Background Music and Music Zones. You must change at least one of these settings to 'true'.")
	return
end

local name1 = "[1] Global Background Music"
local name2 = "[2] Background Music Zones"

local container = Instance.new("Folder")
container.Name = "CinderingBGM"

script.Parent.Settings.Parent = container

script.LocalBackgroundMusic.Parent = game.StarterPlayer.StarterPlayerScripts

local music = Instance.new("Folder")
local zones = Instance.new("Folder",music)
zones.Name = "MusicZones"
local global = Instance.new("Folder",music)
global.Name = "GlobalMusic"

if settings.UseMusicZones == true then
	local folder = script.Parent:FindFirstChild(name2) or game.ReplicatedStorage:FindFirstChild(name2) or workspace:FindFirstChild(name2) or game:FindFirstChild(name2,true) -- never know where someone might accidentally drag that folder...

	if folder then
		for _,model in pairs(folder:GetChildren()) do
			if (model:IsA("Model") and model:FindFirstChild("Music")) then
				model.Parent = zones
			end
		end
	else
		error("Cindering's BGM error: Your background music zones folder could not be found! You may have deleted/renamed the original folder. It should be named: "..name2)
		return
	end
end

if settings.UseGlobalBackgroundMusic == true then
	local folder = script.Parent:FindFirstChild(name1) or game.ReplicatedStorage:FindFirstChild(name1) or workspace:FindFirstChild(name1) or game:FindFirstChild(name1,true)

	if folder then
		for _,v in pairs(folder:GetChildren()) do
			if v:IsA("Sound") then
				v.Parent = global
			end
		end
	else
		error("Cindering's BGM error: Your global background music folder could not be found! You may have deleted/renamed the original folder. It should be named: "..name1)
		return
	end
end

if settings.UseGlobalBackgroundMusic == true and #global:GetChildren() == 0 then
	warn("Cindering's BGM warning: Your global background music folder is completely empty; no music will be played from there.")
end
if settings.UseMusicZones == true and #zones:GetChildren() == 0 then
	warn("Cindering's BGM warning: Your background music zones folder is completely empty; no music will be played from there.")
end

music.Name = "MusicFolder"
music.Parent = container

local count = 0
function recurse(instance)
	for _,v in pairs(instance:GetChildren()) do
		count = count + 1
		recurse(v)
	end
end
recurse(music)
local val = Instance.new("IntValue",container)
val.Name = "ObjectCount"
val.Value = count

container.Parent = game.ReplicatedStorage

script.Parent:Destroy()


Prompt:
--[=[
	Detects if a table is an array, meaning purely number indexes and indexes starting at 1.

	```lua
	local Array = {"A", "B", "C", "D"}
	local Dictionary = { NotAnArray = true }

	print(TableKit.IsArray(Array), TableKit.IsArray(Dictionary)) -- prints true, false
	```

	@within TableKit
	@param mysteryTable table
	@return boolean
]=]

Response:
function TableKit.IsArray(mysteryTable: { [unknown]: unknown }): boolean
	local count = 0
	for _ in mysteryTable do
		count += 1
	end
	return count == #mysteryTable
end


Prompt:
--script.Parent.NN.Velocity = script.Parent.NN.CFrame.lookVector *script.Parent.Speed.Value
--script.Parent.NNN.Velocity = script.Parent.NNN.CFrame.lookVector *script.Parent.Speed.Value

Response:
script.Parent.NNNN.Velocity = script.Parent.NNNN.CFrame.lookVector *script.Parent.Speed.Value
script.Parent.O.Velocity = script.Parent.O.CFrame.lookVector *script.Parent.Speed.Value


Prompt: --// Services

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


Prompt:
--[[for n = 1,80 do
wait(0.005)
script.Parent.Parent.Parent.Grabber.Claw.Body.Rope.Length = script.Parent.Parent.Claw.Body.Rope.Length - 0.175
end]]

Response:
script.Parent.Retreat.Disabled = false
script.Parent.Parent.Parent.CardSwipe.Screen.ClickDetector.PrizeWin.Disabled = false
script.Disabled = true
end


Prompt: -- Core selection system

Response:
Selection = {}
Selection.Items = {}
Selection.ItemIndex = {}
Selection.Parts = {}
Selection.PartIndex = {}
Selection.Outlines = {}
Selection.Color = BrickColor.new 'Cyan'
Selection.Multiselecting = false
Selection.Maid = Maid.new()


Prompt: --[[ Touch Events ]]

Response:
--
UserInputService.Changed:connect(function(property)
	if property == 'ModalEnabled' then
		IsModalEnabled = UserInputService.ModalEnabled

		if lastInputType == Enum.UserInputType.Touch then
			if ControlState.Current == ControlModules.Touch and IsModalEnabled then
				ControlState:SwitchTo(nil)
			elseif ControlState.Current == nil and not IsModalEnabled then
				ControlState:SwitchTo(ControlModules.Touch)
			end
		end
	end
end)

if BindableEvent_OnFailStateChanged then
	BindableEvent_OnFailStateChanged.Event:connect(function(isOn)
		if lastInputType == Enum.UserInputType.Touch and ClickToMoveTouchControls then
			if isOn then
				ControlState:SwitchTo(ClickToMoveTouchControls)
			else
				ControlState:SwitchTo(nil)
			end
		end
	end)
end

local switchToInputType = function(newLastInputType)
	lastInputType = newLastInputType

	if lastInputType == Enum.UserInputType.Touch then
				ControlState:SwitchTo(ControlModules.Touch)
	elseif lastInputType == Enum.UserInputType.Keyboard or
			lastInputType == Enum.UserInputType.MouseButton1 or
			lastInputType == Enum.UserInputType.MouseButton2 or
			lastInputType == Enum.UserInputType.MouseButton3 or
			lastInputType == Enum.UserInputType.MouseWheel or
			lastInputType == Enum.UserInputType.MouseMovement  then
				ControlState:SwitchTo(ControlModules.Keyboard)
	elseif lastInputType == Enum.UserInputType.Gamepad1 or
			lastInputType == Enum.UserInputType.Gamepad2 or
			lastInputType == Enum.UserInputType.Gamepad3 or
			lastInputType == Enum.UserInputType.Gamepad4 then
				ControlState:SwitchTo(ControlModules.Gamepad)
	end
end

if IsTouchDevice then
	createTouchGuiContainer()
end

MasterControl:Init()

UserInputService.GamepadDisconnected:connect(function(gamepadEnum)
	local connectedGamepads = UserInputService:GetConnectedGamepads()
	if #connectedGamepads > 0 then return end

	if UserInputService.KeyboardEnabled then
		ControlState:SwitchTo(ControlModules.Keyboard)
	elseif IsTouchDevice then
		ControlState:SwitchTo(ControlModules.Touch)
	end
end)

UserInputService.GamepadConnected:connect(function(gamepadEnum)
	ControlState:SwitchTo(ControlModules.Gamepad)
end)

switchToInputType(UserInputService:GetLastInputType())
UserInputService.LastInputTypeChanged:connect(switchToInputType)


Prompt:
-- ROBLOX upstream: https://github.com/facebook/jest/blob/v27.4.7/packages/test-utils/src/alignedAnsiStyleSerializer.ts
-- /**
--  * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
--  *
--  * This source code is licensed under the MIT license found in the
--  * LICENSE file in the root directory of this source tree.
--  */

Response:
local CurrentModule = script.Parent
local Packages = CurrentModule.Parent

local ansiRegex = require(Packages.PrettyFormat).plugins.ConvertAnsi.ansiRegex


Prompt: -- Load the SoundDispatcher script into Studio

Response:
local soundDispatcherName = "SoundDispatcher"
local ServerScriptService = game:GetService("ServerScriptService")

local function LoadScript(name, parent)
	local originalModule = script.Parent:WaitForChild(name)
	local script = Instance.new("Script")
	script.Name = name
	script.Source = originalModule.Source
	script.Parent = parent
	return script
end

local function Install()
	local soundDispatcherArchivable = true
	local SoundDispatcher = ServerScriptService:FindFirstChild(soundDispatcherName)
	if not SoundDispatcher then
		soundDispatcherArchivable = false
		SoundDispatcher = LoadScript(soundDispatcherName, ServerScriptService)
	end

	if not ServerScriptService:FindFirstChild(soundDispatcherName) then
		local SoundDispatcherCopy = SoundDispatcher:Clone()
		SoundDispatcherCopy.Archivable = false
		SoundDispatcherCopy.Parent = ServerScriptService
	end

	SoundDispatcher.Archivable = soundDispatcherArchivable
end

return Install


Prompt: -- ROBLOX deviation predefine variables

Response:
local getMatchingKeyPaths, replaceKeyPathWithValue, getPath

export type Template = Record<string, any>
export type Templates = Array<Template>
export type Headings = Array<string>

local function interpolateVariables(title: string, template: Template, index: number): string
	return Array.reduce(
		Array.reduce(Object.keys(template), getMatchingKeyPaths(title), {}), -- aka flatMap
		replaceKeyPathWithValue(template),
		title
	):gsub(
		"%$#", -- ROBLOX deviation: escaped string
		tostring(index),
		1
	)
end
exports.interpolateVariables = interpolateVariables

function getMatchingKeyPaths(title: string)
	return function(matches: Headings, key: string)
		return Array.concat(
			matches,
			(function()
				local ref = {}
				for match in title:gmatch(("%%$%s[%%.%%w]*"):format(key)) do -- ROBLOX deviation: escape characters
					table.insert(ref, match)
				end
				return ref
			end)()
		)
	end
end

function replaceKeyPathWithValue(template: Template): (title: string, match: string) -> string
	return function(title: string, match: string)
		local newMatch = match:gsub("%$", "", 1) -- ROBLOX deviation: escape string
		local keyPath = String.split(newMatch, "%.") -- ROBLOX deviation: escape string
		local value = getPath(template, keyPath)
		if isPrimitive(value) then
			return title:gsub(match, tostring(value), 1)
		end
		return title:gsub(match, pretty(value, { maxDepth = 1, min = true }), 1)
	end
end


Prompt:
--[[ 1 ]]	{"Delete","Music ID","Radio","Game Info","Settings"},
--[[ 2 ]]	{"Yes","No"},
--[[ 3 ]]	{"Set","Play","Stop","Back"},
--[[ 4 ]]	{"Preset 1","Preset 2","Preset 3","Preset 4","Back"},
--[[ 5 ]]	{"Filtered","PGS","Players","Back"},
--[[ 6 ]]	{"Power","Dynamics","Background","Back"},
--[[ 7 ]]	{"Valet","Eco","Comfort","Sport","Back"},
--[[ 8 ]]	{"Eco","Comfort","Sport","Back"},
--[[ 9 ]]

Response:
 {"Model","Specs","Transmission","Info","Back"},
}

return module


Prompt: -- Variables

Response:
local hasExploded = false

local function Explode()

	-- Don't allow this to execute multiple times
	if hasExploded then return end
	hasExploded = true

	wait(0.2)

	local Explosion = Instance.new("Explosion")
	Explosion.BlastRadius = 14
	Explosion.BlastPressure = 2000
	Explosion.DestroyJointRadiusPercent = 0

	Explosion.Position = RootModel:GetPrimaryPartCFrame().Position

	local parts = workspace:GetPartBoundsInRadius(Explosion.Position,Explosion.BlastRadius)

	-- So we don't rehit the same target multiple times
	local flaggedForHit = {}

	-- If the part is connected to a player character then apply damage
	for _, part in pairs(parts) do
		local character = PartUtility.GetCharacterFromInstance_R(part)
		if not character then continue end
		-- Don't rehit the same character multiple times
		if flaggedForHit[character] then continue end
		flaggedForHit[character] = true

		APICombat.ApplyDamageToCharacter(owningPlayer,character,WeaponDefinition)
	end

	Explosion.Parent = workspace

	local effectPart = Instance.new("Part")
	effectPart.Position = Explosion.Position
	effectPart.Anchored = true
	effectPart.Transparency = 1
	effectPart.CanCollide = false
	effectPart.Parent = workspace

	-- Play sounds
	for _, effect in pairs(EffectsToPlay:GetChildren()) do
		effect.Parent = effectPart
		if effect:IsA("Sound") then
			effect:Play()
		end
	end

	DebrisService:AddItem(effectPart,4)

	RootModel:Destroy()
end

for _, part in pairs(RootModel:GetChildren()) do
	part.Touched:Connect(function(part)
		local character = PartUtility.GetCharacterFromInstance_R(part)
		if owningPlayer.Character and owningPlayer.Character ~= character then
			Explode()
		end
	end)
end


Prompt: --Char.Humanoid.BreakJointsOnDeath = false

Response:
if Config.EnableRagdoll == true then
	Char.Humanoid.Died:Connect(function()
		Ragdoll(Char)
	end)
end

human.HealthChanged:Connect(function (newhealth)

	if not dead.Value and Blood.Value >= 10 then
		if not Config.ZeroHealthEqualsDeath then
			human.Health = math.clamp(newhealth, 0.1, 100)
		else
			human.Health = math.clamp(newhealth, 0, 100)
		end

		if (rodeath.Value == true or life.Value == false) and newhealth <= -25 then
			local loss = newhealth * 40
			Blood.Value = Blood.Value + loss
			human.PlatformStand = true
			human.AutoRotate = false
			Caido.Value = true

		end

	else
		human.PlatformStand = false
		human.AutoRotate = true
		human.Health = 0

	end
end)


Prompt: --ControlSwitch

Response:
ControlSwch.Changed:Connect(function()
	if ControlSwch.Value == true then
		ControlSwch.Parent.P1.Transparency = 1
		ControlSwch.Parent.P2.Transparency = 0
		ControlVal.Value = true
		ClickSound:Play()
	else
		ControlSwch.Parent.P1.Transparency = 0
		ControlSwch.Parent.P2.Transparency = 1
		ClickSound:Play()
		ControlVal.Value = false
	end
end)


Prompt:
--[=[
	Performs a raycast operation out from the mouse position (or the
	`overridePos` if provided) into world space. The ray will go
	`distance` studs forward (or 1000 studs if not provided).

	Returns the `RaycastResult` if something was hit, else returns `nil`.

	Use `Raycast` if it is important to capture any objects that could be
	hit along the projected ray. If objects can be ignored and only the
	final position of the ray is needed, use `Project` instead.

	```lua
	local params = RaycastParams.new()
	local result = mouse:Raycast(params)
	if result then
		print(result.Instance)
	else
		print("Mouse raycast did not hit anything")
	end
	```
]=]

Response:
function Mouse:Raycast(raycastParams: RaycastParams, distance: number?, overridePos: Vector2?): RaycastResult?
	local viewportMouseRay = self:GetRay(overridePos)
	local result = workspace:Raycast(viewportMouseRay.Origin, viewportMouseRay.Direction * (distance or RAY_DISTANCE), raycastParams)
	return result
end


Prompt: -- Hook events

Response:
Entry.TextBox.FocusLost:Connect(
	function(submit)
		return Window:LoseFocus(submit)
	end
)

UserInputService.InputBegan:Connect(
	function(input, gameProcessed)
		return Window:BeginInput(input, gameProcessed)
	end
)

Entry.TextBox:GetPropertyChangedSignal("Text"):Connect(
	function()
		if Entry.TextBox.Text:match("\t") then -- Eat \t
			Entry.TextBox.Text = Entry.TextBox.Text:gsub("\t", "")
			return
		end
		if Window.OnTextChanged then
			return Window.OnTextChanged(Entry.TextBox.Text)
		end
	end
)

Gui.ChildAdded:Connect(Window.UpdateWindowHeight)

return Window


Prompt: --	pri:Push(obj[1], obj[2])

Response:
end
print(os.clock() - s)


Prompt:
--------------------------------------------------------------------------------
-- MAGIC NUMBERS CALCULATOR
--------------------------------------------------------------------------------
-- Q:
--    Is 53-bit "double" math enough to calculate square roots and cube roots of primes with 64 correct bits after decimal point?
-- A:
--    Yes, 53-bit "double" arithmetic is enough.
--    We could obtain first 40 bits by direct calculation of p^(1/3) and next 40 bits by one step of Newton's method.

Response:
do
	local function mul(src1, src2, factor, result_length)
		-- src1, src2 - long integers (arrays of digits in base TWO_POW_24)
		-- factor - small integer
		-- returns long integer result (src1 * src2 * factor) and its floating point approximation
		local result, carry, value, weight = table.create(result_length), 0, 0, 1
		for j = 1, result_length do
			for k = math.max(1, j + 1 - #src2), math.min(j, #src1) do
				carry = carry + factor * src1[k] * src2[j + 1 - k] -- "int32" is not enough for multiplication result, that's why "factor" must be of type "double"
			end

			local digit = carry % TWO_POW_24
			result[j] = math.floor(digit)
			carry = (carry - digit) / TWO_POW_24
			value = value + digit * weight
			weight = weight * TWO_POW_24
		end

		return result, value
	end

	local idx, step, p, one, sqrt_hi, sqrt_lo = 0, {4, 1, 2, -2, 2}, 4, {1}, sha2_H_hi, sha2_H_lo
	repeat
		p = p + step[p % 6]
		local d = 1
		repeat
			d = d + step[d % 6]
			if d * d > p then
				-- next prime number is found
				local root = p ^ (1 / 3)
				local R = root * TWO_POW_40
				R = mul(table.create(1, math.floor(R)), one, 1, 2)
				local _, delta = mul(R, mul(R, R, 1, 4), -1, 4)
				local hi = R[2] % 65536 * 65536 + math.floor(R[1] / 256)
				local lo = R[1] % 256 * 16777216 + math.floor(delta * (TWO_POW_NEG_56 / 3) * root / p)

				if idx < 16 then
					root = math.sqrt(p)
					R = root * TWO_POW_40
					R = mul(table.create(1, math.floor(R)), one, 1, 2)
					_, delta = mul(R, R, -1, 2)
					local hi = R[2] % 65536 * 65536 + math.floor(R[1] / 256)
					local lo = R[1] % 256 * 16777216 + math.floor(delta * TWO_POW_NEG_17 / root)
					local idx = idx % 8 + 1
					sha2_H_ext256[224][idx] = lo
					sqrt_hi[idx], sqrt_lo[idx] = hi, lo + hi * hi_factor
					if idx > 7 then
						sqrt_hi, sqrt_lo = sha2_H_ext512_hi[384], sha2_H_ext512_lo[384]
					end
				end

				idx = idx + 1
				sha2_K_hi[idx], sha2_K_lo[idx] = hi, lo % K_lo_modulo + hi * hi_factor
				break
			end
		until p % d == 0
	until idx > 79
end


Prompt:
--Institutional white
--Electric blue

Response:
function SetDigit(Value)
wait(0.55)
	if Value == "0" then
		SP.D1.BrickColor = BrickColor.new("Really red")
		SP.D2.BrickColor = BrickColor.new("Electric blue")
		SP.D3.BrickColor = BrickColor.new("Electric blue")
		SP.D4.BrickColor = BrickColor.new("Really red")
		SP.D5.BrickColor = BrickColor.new("Really red")
		SP.D6.BrickColor = BrickColor.new("Electric blue")
		SP.D7.BrickColor = BrickColor.new("Electric blue")
		SP.D8.BrickColor = BrickColor.new("Electric blue")
		SP.D9.BrickColor = BrickColor.new("Electric blue")
		SP.D10.BrickColor = BrickColor.new("Electric blue")
		SP.D11.BrickColor = BrickColor.new("Electric blue")
		SP.D12.BrickColor = BrickColor.new("Really red")
		SP.D13.BrickColor = BrickColor.new("Really red")
		SP.D14.BrickColor = BrickColor.new("Really red")
		return
	end
	if Value == "1" then
		SP.D1.BrickColor = BrickColor.new("Electric blue")
		SP.D2.BrickColor = BrickColor.new("Electric blue")
		SP.D3.BrickColor = BrickColor.new("Electric blue")
		SP.D4.BrickColor = BrickColor.new("Electric blue")
		SP.D5.BrickColor = BrickColor.new("Electric blue")
		SP.D6.BrickColor = BrickColor.new("Electric blue")
		SP.D7.BrickColor = BrickColor.new("Electric blue")
		SP.D8.BrickColor = BrickColor.new("Electric blue")
		SP.D9.BrickColor = BrickColor.new("Electric blue")
		SP.D10.BrickColor = BrickColor.new("Electric blue")
		SP.D11.BrickColor = BrickColor.new("Electric blue")
		SP.D12.BrickColor = BrickColor.new("Institutional white")
		SP.D13.BrickColor = BrickColor.new("Electric blue")
		SP.D14.BrickColor = BrickColor.new("Institutional white")
		return
	end
	if Value == "M" then
		SP.D1.BrickColor = BrickColor.new("Institutional white")
		SP.D2.BrickColor = BrickColor.new("Institutional white")
		SP.D3.BrickColor = BrickColor.new("Institutional white")
		SP.D4.BrickColor = BrickColor.new("Institutional white")
		SP.D5.BrickColor = BrickColor.new("Electric blue")
		SP.D6.BrickColor = BrickColor.new("Electric blue")
		SP.D7.BrickColor = BrickColor.new("Electric blue")
		SP.D8.BrickColor = BrickColor.new("Electric blue")
		SP.D9.BrickColor = BrickColor.new("Electric blue")
		SP.D10.BrickColor = BrickColor.new("Electric blue")
		SP.D11.BrickColor = BrickColor.new("Electric blue")
		SP.D12.BrickColor = BrickColor.new("Institutional white")
		SP.D13.BrickColor = BrickColor.new("Institutional white")
		SP.D14.BrickColor = BrickColor.new("Electric blue")
		return
	end
	if Value == "3" then
		SP.D1.BrickColor = BrickColor.new("Really red")
		SP.D2.BrickColor = BrickColor.new("Really red")
		SP.D3.BrickColor = BrickColor.new("Really red")
		SP.D4.BrickColor = BrickColor.new("Really red")
		SP.D5.BrickColor = BrickColor.new("Really black")
		SP.D6.BrickColor = BrickColor.new("Really black")
		SP.D7.BrickColor = BrickColor.new("Really black")
		SP.D8.BrickColor = BrickColor.new("Really black")
		SP.D9.BrickColor = BrickColor.new("Really black")
		SP.D10.BrickColor = BrickColor.new("Really black")
		SP.D11.BrickColor = BrickColor.new("Really black")
		SP.D12.BrickColor = BrickColor.new("Really red")
		SP.D13.BrickColor = BrickColor.new("Really black")
		SP.D14.BrickColor = BrickColor.new("Really red")
		return
	end
	if Value == "4" then
		SP.D1.BrickColor = BrickColor.new("Really black")
		SP.D2.BrickColor = BrickColor.new("Really red")
		SP.D3.BrickColor = BrickColor.new("Really red")
		SP.D4.BrickColor = BrickColor.new("Really black")
		SP.D5.BrickColor = BrickColor.new("Really red")
		SP.D6.BrickColor = BrickColor.new("Really black")
		SP.D7.BrickColor = BrickColor.new("Really black")
		SP.D8.BrickColor = BrickColor.new("Really black")
		SP.D9.BrickColor = BrickColor.new("Really black")
		SP.D10.BrickColor = BrickColor.new("Really black")
		SP.D11.BrickColor = BrickColor.new("Really black")
		SP.D12.BrickColor = BrickColor.new("Really red")
		SP.D13.BrickColor = BrickColor.new("Really black")
		SP.D14.BrickColor = BrickColor.new("Really red")
		return
	end
	if Value == "5" then
		SP.D1.BrickColor = BrickColor.new("Really red")
		SP.D2.BrickColor = BrickColor.new("Really red")
		SP.D3.BrickColor = BrickColor.new("Really red")
		SP.D4.BrickColor = BrickColor.new("Really red")
		SP.D5.BrickColor = BrickColor.new("Really red")
		SP.D6.BrickColor = BrickColor.new("Really black")
		SP.D7.BrickColor = BrickColor.new("Really black")
		SP.D8.BrickColor = BrickColor.new("Really black")
		SP.D9.BrickColor = BrickColor.new("Really black")
		SP.D10.BrickColor = BrickColor.new("Really black")
		SP.D11.BrickColor = BrickColor.new("Really black")
		SP.D12.BrickColor = BrickColor.new("Really black")
		SP.D13.BrickColor = BrickColor.new("Really black")
		SP.D14.BrickColor = BrickColor.new("Really red")
		return
	end
	if Value == "6" then
		SP.D1.BrickColor = BrickColor.new("Really red")
		SP.D2.BrickColor = BrickColor.new("Really red")
		SP.D3.BrickColor = BrickColor.new("Really red")
		SP.D4.BrickColor = BrickColor.new("Really red")
		SP.D5.BrickColor = BrickColor.new("Really red")
		SP.D6.BrickColor = BrickColor.new("Really black")
		SP.D7.BrickColor = BrickColor.new("Really black")
		SP.D8.BrickColor = BrickColor.new("Really black")
		SP.D9.BrickColor = BrickColor.new("Really black")
		SP.D10.BrickColor = BrickColor.new("Really black")
		SP.D11.BrickColor = BrickColor.new("Really black")
		SP.D12.BrickColor = BrickColor.new("Really black")
		SP.D13.BrickColor = BrickColor.new("Really red")
		SP.D14.BrickColor = BrickColor.new("Really red")
		return
	end
	if Value == "7" then
		SP.D1.BrickColor = BrickColor.new("Really red")
		SP.D2.BrickColor = BrickColor.new("Really black")
		SP.D3.BrickColor = BrickColor.new("Really black")
		SP.D4.BrickColor = BrickColor.new("Really black")
		SP.D5.BrickColor = BrickColor.new("Really black")
		SP.D6.BrickColor = BrickColor.new("Really black")
		SP.D7.BrickColor = BrickColor.new("Really black")
		SP.D8.BrickColor = BrickColor.new("Really black")
		SP.D9.BrickColor = BrickColor.new("Really black")
		SP.D10.BrickColor = BrickColor.new("Really black")
		SP.D11.BrickColor = BrickColor.new("Really black")
		SP.D12.BrickColor = BrickColor.new("Really red")
		SP.D13.BrickColor = BrickColor.new("Really black")
		SP.D14.BrickColor = BrickColor.new("Really red")
		return
	end
	if Value == "8" then
		SP.D1.BrickColor = BrickColor.new("Really red")
		SP.D2.BrickColor = BrickColor.new("Really red")
		SP.D3.BrickColor = BrickColor.new("Really red")
		SP.D4.BrickColor = BrickColor.new("Really red")
		SP.D5.BrickColor = BrickColor.new("Really red")
		SP.D6.BrickColor = BrickColor.new("Really black")
		SP.D7.BrickColor = BrickColor.new("Really black")
		SP.D8.BrickColor = BrickColor.new("Really black")
		SP.D9.BrickColor = BrickColor.new("Really black")
		SP.D10.BrickColor = BrickColor.new("Really black")
		SP.D11.BrickColor = BrickColor.new("Really black")
		SP.D12.BrickColor = BrickColor.new("Really red")
		SP.D13.BrickColor = BrickColor.new("Really red")
		SP.D14.BrickColor = BrickColor.new("Really red")
		return
	end
	if Value == "9" then
		SP.D1.BrickColor = BrickColor.new("Really red")
		SP.D2.BrickColor = BrickColor.new("Really red")
		SP.D3.BrickColor = BrickColor.new("Really red")
		SP.D4.BrickColor = BrickColor.new("Really red")
		SP.D5.BrickColor = BrickColor.new("Really red")
		SP.D6.BrickColor = BrickColor.new("Really black")
		SP.D7.BrickColor = BrickColor.new("Really black")
		SP.D8.BrickColor = BrickColor.new("Really black")
		SP.D9.BrickColor = BrickColor.new("Really black")
		SP.D10.BrickColor = BrickColor.new("Really black")
		SP.D11.BrickColor = BrickColor.new("Really black")
		SP.D12.BrickColor = BrickColor.new("Really red")
		SP.D13.BrickColor = BrickColor.new("Really black")
		SP.D14.BrickColor = BrickColor.new("Really red")
		return
	end
	if Value == "G" then
		SP.D1.BrickColor = BrickColor.new("Really red")
		SP.D2.BrickColor = BrickColor.new("Really red")
		SP.D3.BrickColor = BrickColor.new("Really black")
		SP.D4.BrickColor = BrickColor.new("Really red")
		SP.D5.BrickColor = BrickColor.new("Really red")
		SP.D6.BrickColor = BrickColor.new("Really black")
		SP.D7.BrickColor = BrickColor.new("Really black")
		SP.D8.BrickColor = BrickColor.new("Really black")
		SP.D9.BrickColor = BrickColor.new("Really black")
		SP.D10.BrickColor = BrickColor.new("Really black")
		SP.D11.BrickColor = BrickColor.new("Really black")
		SP.D12.BrickColor = BrickColor.new("Really black")
		SP.D13.BrickColor = BrickColor.new("Really red")
		SP.D14.BrickColor = BrickColor.new("Really red")
		return
	end
	if Value == "P" then
		SP.D1.BrickColor = BrickColor.new("Really red")
		SP.D2.BrickColor = BrickColor.new("Really red")
		SP.D3.BrickColor = BrickColor.new("Really red")
		SP.D4.BrickColor = BrickColor.new("Really black")
		SP.D5.BrickColor = BrickColor.new("Really red")
		SP.D6.BrickColor = BrickColor.new("Really black")
		SP.D7.BrickColor = BrickColor.new("Really black")
		SP.D8.BrickColor = BrickColor.new("Really black")
		SP.D9.BrickColor = BrickColor.new("Really black")
		SP.D10.BrickColor = BrickColor.new("Really black")
		SP.D11.BrickColor = BrickColor.new("Really black")
		SP.D12.BrickColor = BrickColor.new("Really red")
		SP.D13.BrickColor = BrickColor.new("Really red")
		SP.D14.BrickColor = BrickColor.new("Really black")
		return
	end
	if Value == "R" then
		SP.D1.BrickColor = BrickColor.new("Really red")
		SP.D2.BrickColor = BrickColor.new("Really red")
		SP.D3.BrickColor = BrickColor.new("Really red")
		SP.D4.BrickColor = BrickColor.new("Really black")
		SP.D5.BrickColor = BrickColor.new("Really red")
		SP.D6.BrickColor = BrickColor.new("Really black")
		SP.D7.BrickColor = BrickColor.new("Really black")
		SP.D8.BrickColor = BrickColor.new("Really black")
		SP.D9.BrickColor = BrickColor.new("Really black")
		SP.D10.BrickColor = BrickColor.new("Really red")
		SP.D11.BrickColor = BrickColor.new("Really black")
		SP.D12.BrickColor = BrickColor.new("Really red")
		SP.D13.BrickColor = BrickColor.new("Really red")
		SP.D14.BrickColor = BrickColor.new("Really black")
		return
	end
	if Value == "2" then
		SP.D1.BrickColor = BrickColor.new("Electric blue")
		SP.D2.BrickColor = BrickColor.new("Electric blue")
		SP.D3.BrickColor = BrickColor.new("Electric blue")
		SP.D4.BrickColor = BrickColor.new("Electric blue")
		SP.D5.BrickColor = BrickColor.new("Institutional white")
		SP.D6.BrickColor = BrickColor.new("Electric blue")
		SP.D7.BrickColor = BrickColor.new("Electric blue")
		SP.D8.BrickColor = BrickColor.new("Institutional white")
		SP.D9.BrickColor = BrickColor.new("Institutional white")
		SP.D10.BrickColor = BrickColor.new("Electric blue")
		SP.D11.BrickColor = BrickColor.new("Electric blue")
		SP.D12.BrickColor = BrickColor.new("Institutional white")
		SP.D13.BrickColor = BrickColor.new("Institutional white")
		SP.D14.BrickColor = BrickColor.new("Institutional white")
		return
	end
end

SP.Value.Changed:connect(function() SetDigit(SP.Value.Value) end)


Prompt: -- Public Methods

Response:
function RadioButtonGroupClass:GetActiveRadio()
	return self._ActiveRadio
end

function RadioButtonGroupClass:Destroy()
	self._Maid:Sweep()
	self.Frame:Destroy()
end


Prompt:
--[[
	Takes two tables A and B, returns if they have the same key-value pairs
	Except ignored keys
]]

Response:
return function(A, B, ignore)
	if not A or not B then
		return false
	elseif A == B then
		return true
	end
	if not ignore then
		ignore = {}
	end

	for key, value in pairs(A) do
		if B[key] ~= value and not ignore[key] then
			return false
		end
	end
	for key, value in pairs(B) do
		if A[key] ~= value and not ignore[key] then
			return false
		end
	end

	return true
end


Prompt: -- Function to update hunger

Response:
function updateHunger(delta)
	hunger = hunger + delta
	if hunger > maxHunger then
		hunger = maxHunger
	elseif hunger < 0 then
		hunger = 0
	end
end


Prompt:
--!strict
--[=[
	@function at
	@within Array

	@param array {T} -- The array to get the value from.
	@param index number -- The index to get the value from (can be negative).
	@return T -- The value at the given index.

	Gets a value from an array at the given index.

	```lua
	local array = { 1, 2, 3 }

	local value = At(array, 1) -- 1
	local value = At(array, 0) -- 3
	```
]=]

Response:
local function at<T>(array: { T }, index: number): T
	local length = #array

	if index < 1 then
		index += length
	end

	return array[index]
end

return at


Prompt: --[[ The Module ]]

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

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

	self.parentUIFrame = nil
	self.jumpButton = nil
	self.characterAddedConn = nil
	self.humanoidStateEnabledChangedConn = nil
	self.humanoidJumpPowerConn = nil
	self.humanoidParentConn = nil
	self.externallyEnabled = false
	self.jumpPower = 0
	self.jumpStateEnabled = true
	self.isJumping = false
	self.humanoid = nil -- saved reference because property change connections are made using it

	return self
end

function TouchJump:EnableButton(enable)
	if enable then
		if not self.jumpButton then
			self:Create()
		end
		local humanoid = Players.LocalPlayer.Character and Players.LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
		if humanoid and self.externallyEnabled then
			if self.externallyEnabled then
				if humanoid.JumpPower > 0 then
					self.jumpButton.Visible = true
				end
			end
		end
	else
		self.jumpButton.Visible = false
		self.isJumping = false
		self.jumpButton.ImageRectOffset = Vector2.new(1, 146)
	end
end

function TouchJump:UpdateEnabled()
	if self.jumpPower > 0 and self.jumpStateEnabled then
		self:EnableButton(true)
	else
		self:EnableButton(false)
	end
end

function TouchJump:HumanoidChanged(prop)
	local humanoid = Players.LocalPlayer.Character and Players.LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
	if humanoid then
		if prop == "JumpPower" then
			self.jumpPower =  humanoid.JumpPower
			self:UpdateEnabled()
		elseif prop == "Parent" then
			if not humanoid.Parent then
				self.humanoidChangeConn:Disconnect()
			end
		end
	end
end

function TouchJump:HumanoidStateEnabledChanged(state, isEnabled)
	if state == Enum.HumanoidStateType.Jumping then
		self.jumpStateEnabled = isEnabled
		self:UpdateEnabled()
	end
end

function TouchJump:CharacterAdded(char)
	if self.humanoidChangeConn then
		self.humanoidChangeConn:Disconnect()
		self.humanoidChangeConn = nil
	end

	self.humanoid = char:FindFirstChildOfClass("Humanoid")
	while not self.humanoid do
		char.ChildAdded:wait()
		self.humanoid = char:FindFirstChildOfClass("Humanoid")
	end

	self.humanoidJumpPowerConn = self.humanoid:GetPropertyChangedSignal("JumpPower"):Connect(function()
		self.jumpPower =  self.humanoid.JumpPower
		self:UpdateEnabled()
	end)

	self.humanoidParentConn = self.humanoid:GetPropertyChangedSignal("Parent"):Connect(function()
		if not self.humanoid.Parent then
			self.humanoidJumpPowerConn:Disconnect()
			self.humanoidJumpPowerConn = nil
			self.humanoidParentConn:Disconnect()
			self.humanoidParentConn = nil
		end
	end)

	self.humanoidStateEnabledChangedConn = self.humanoid.StateEnabledChanged:Connect(function(state, enabled)
		self:HumanoidStateEnabledChanged(state, enabled)
	end)

	self.jumpPower = self.humanoid.JumpPower
	self.jumpStateEnabled = self.humanoid:GetStateEnabled(Enum.HumanoidStateType.Jumping)
	self:UpdateEnabled()
end

function TouchJump:SetupCharacterAddedFunction()
	self.characterAddedConn = Players.LocalPlayer.CharacterAdded:Connect(function(char)
		self:CharacterAdded(char)
	end)
	if Players.LocalPlayer.Character then
		self:CharacterAdded(Players.LocalPlayer.Character)
	end
end

function TouchJump:Enable(enable, parentFrame)
	if parentFrame then
		self.parentUIFrame = parentFrame
	end
	self.externallyEnabled = enable
	self:EnableButton(enable)
end

function TouchJump:Create()
	if not self.parentUIFrame then
		return
	end

	if self.jumpButton then
		self.jumpButton:Destroy()
		self.jumpButton = nil
	end

	local minAxis = math.min(self.parentUIFrame.AbsoluteSize.x, self.parentUIFrame.AbsoluteSize.y)
	local isSmallScreen = minAxis <= 500
	local jumpButtonSize = isSmallScreen and 70 or 120

	self.jumpButton = Instance.new("ImageButton")
	self.jumpButton.Name = "JumpButton"
	self.jumpButton.Visible = false
	self.jumpButton.BackgroundTransparency = 1
	self.jumpButton.Image = TOUCH_CONTROL_SHEET
	self.jumpButton.ImageRectOffset = Vector2.new(1, 146)
	self.jumpButton.ImageRectSize = Vector2.new(144, 144)
	self.jumpButton.Size = UDim2.new(0, jumpButtonSize, 0, jumpButtonSize)

    self.jumpButton.Position = isSmallScreen and UDim2.new(1, -(jumpButtonSize*1.5-10), 1, -jumpButtonSize - 20) or
        UDim2.new(1, -(jumpButtonSize*1.5-10), 1, -jumpButtonSize * 1.75)

	local touchObject: InputObject? = nil
	self.jumpButton.InputBegan:connect(function(inputObject)
		--A touch that starts elsewhere on the screen will be sent to a frame's InputBegan event
		--if it moves over the frame. So we check that this is actually a new touch (inputObject.UserInputState ~= Enum.UserInputState.Begin)
		if touchObject or inputObject.UserInputType ~= Enum.UserInputType.Touch
			or inputObject.UserInputState ~= Enum.UserInputState.Begin then
			return
		end

		touchObject = inputObject
		self.jumpButton.ImageRectOffset = Vector2.new(146, 146)
		self.isJumping = true
	end)

	local OnInputEnded = function()
		touchObject = nil
		self.isJumping = false
		self.jumpButton.ImageRectOffset = Vector2.new(1, 146)
	end

	self.jumpButton.InputEnded:connect(function(inputObject: InputObject)
		if inputObject == touchObject then
			OnInputEnded()
		end
	end)

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

	if not self.characterAddedConn then
		self:SetupCharacterAddedFunction()
	end

	self.jumpButton.Parent = self.parentUIFrame
end

return TouchJump


Prompt:
--//Created by PlaasBoer
--If you find a bug comment on my video for Zed's tycoon save
--Link to my channel
--[[
	https://www.youtube.com/channel/UCHIypUw5-7noRfLJjczdsqw
]]


Prompt:
-- Allows the character to climb ladders and trusses like a rocket while
-- continuously jumping and walking into them. Overrides default jumping
-- velocity.
--
-- Thank you for your forum post Crazyblox! Saved me a lot of time figuring
-- the solution out.
--
-- https://devforum.roblox.com/t/humanoid-jump-state-not-triggering-from-truss-jump-with-shiftlock-first-person/242877
--
-- ForbiddenJ

Response:
Humanoid = script.Parent.Humanoid
RootPart = Humanoid.RootPart

Humanoid.Jumping:Connect(function(isJumping)
    if isJumping then
	    RootPart.Velocity = Vector3.new(RootPart.Velocity.X, Humanoid.JumpPower * 1.1, RootPart.Velocity.Z)
    end
end)


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

CustomText = CustomLabel["CUSTOMFLOORLABEL"]

Elevator:WaitForChild("Floor").Changed:connect(function(floor)
	ChangeFloor(tostring(floor))
end)

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

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

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


Prompt: -- Put me in ReplicatedStorage

Response:
local Settings = {
	['SprintSpeed']=500; -- Speed of the player while sprinting
['ChangeFOV']=true; -- Enables the change in FOV (zooming out) while sprinting
}
return Settings


Prompt:
--[[RightShoulder:Destroy()

LeftShoulder:Destroy()

RightHip:Destroy()

LeftHip:Destroy()

Neck:Destroy()]]


Prompt: -- Registers metadata for one merch item, given its asset id

Response:
local function setItemInfo(itemId: string, info: types.ItemInfo)
	return {
		itemId = itemId,
		info = info,
	}
end

return Rodux.makeActionCreator(script.Name, setItemInfo)


Prompt:
--[[
    Initialises a new StateHolder from defined config table, which should be formatted as below:
    allowedTransitions = {
        [StateName] = {} -- Within the table should be all the states this state can transition into
    }
    callbacks = {
		global = {onLeave = function(stateHolder, from, to), onEnter = function(stateHolder, from, to)}
        [StateName] = {onLeave = function(stateHolder, from, to), onEnter = function(stateHolder, from, to)}
    }
    initial -- Optional initial state to automatically transition into
]]

Response:
function StateHolder:_init(config)
	self._allowedTransitions = config.allowedTransitions
	self._callbacks = config.callbacks

	if config.initial then
		spawn(
			function()
				self:transition(config.initial, true)
			end
		)
	end
end


Prompt:
--[=[
	Repeatedly calls a Promise-returning function up to `times` number of times, until the returned Promise resolves.

	If the amount of retries is exceeded, the function will return the latest rejected Promise.

	```lua
	local function canFail(a, b, c)
		return Promise.new(function(resolve, reject)
			-- do something that can fail

			local failed, thing = doSomethingThatCanFail(a, b, c)

			if failed then
				reject("it failed")
			else
				resolve(thing)
			end
		end)
	end

	local MAX_RETRIES = 10
	local value = Promise.retry(canFail, MAX_RETRIES, "foo", "bar", "baz") -- args to send to canFail
	```

	@since 3.0.0
	@param callback (...: P) -> Promise<T>
	@param times number
	@param ...? P
]=]

Response:
function Promise.retry(callback, times, ...)
	assert(type(callback) == "function", "Parameter #1 to Promise.retry must be a function")
	assert(type(times) == "number", "Parameter #2 to Promise.retry must be a number")

	local args, length = {...}, select("#", ...)

	return Promise.resolve(callback(...)):catch(function(...)
		if times > 0 then
			return Promise.retry(callback, times - 1, unpack(args, 1, length))
		else
			return Promise.reject(...)
		end
	end)
end


Prompt:
--[=[
	Shares this observables state/computation with all down-stream observables. This can be useful
	when a very expensive computation was done and needs to be shared.

	Generally not needed.

	@param observable Observable<T>
	@return Observable<T>
]=]

Response:
function Blend.Shared(observable)
	return observable:Pipe({
		Rx.cache();
	})
end

function Blend.Dynamic(...)
	return Blend.Computed(...)
		:Pipe({
			-- This switch map is relatively expensive, so we don't do this for defaul computed
			-- and instead force the user to switch to another promise
			Rx.switchMap(function(promise, ...)
				if Promise.isPromise(promise) then
					return Rx.fromPromise(promise)
				elseif Observable.isObservable(promise) then
					return promise
				else
					return Rx.of(promise, ...)
				end
			end)
		})
end