Roblox/luau_corpus huggingface dataset:
--// DON'T EDIT BELOW

local target = plr.Character.HumanoidRootPart

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

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

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

function Rotate()
	local vec = target.CFrame.lookVector
	local desiredAngle = math.atan2(vec.z, vec.x)
	if desiredAngle < -1.57 and previousDesiredAngle > 1.57 then
		slurAngle = slurAngle - math.pi*2
	elseif desiredAngle > 1.57 and previousDesiredAngle < -1.57 then
		slurAngle = slurAngle + math.pi*2
	end
	slurAngle = slurAngle*(1-spinSpeed) + desiredAngle*spinSpeed
	local a = slurAngle + rotationOffset
	previousDesiredAngle = desiredAngle
	script.Parent.F.Rotation = -math.deg(a)
end
while true do
	vel.Value = target.Velocity
	wait() --REQUIRED while loop
	pvel.Value = vel.Value
	vel.Value = target.Velocity
	
	local diff = script.Parent.Diff
	diff.Value = ((pvel.Value-vel.Value) * sensitivity)
	
	local xz = ((diff.Value.X)/4)
	xz = math.min(xz,.5) xz = math.max(xz,-.5)
	
	local yz = ((diff.Value.Z)/4)
	yz = math.min(yz,.5) yz = math.max(yz,-.5)
	Rotate()
	script.Parent.F.Dot.Position = UDim2.new(-xz+.5,-8,(-yz)+.5,-8)
	
	local mag = Vector2.new(diff.Value.X/2,diff.Value.Z/2).Magnitude
	if mag < min then mag = 0 end
	script.Parent.TL.Text = math.floor(math.min(mag,max)*100)/100 .. " G"
end
--[[Front]]--
	Tune.FTireProfile	= 1.5			-- Tire profile, aggressive or smooth
	Tune.FProfileHeight	= 2		-- Profile height, conforming to tire
	
	Tune.FTireCompound	= 1			-- The more compounds you have, the harder your tire will get towards the middle, sacrificing grip for wear
	Tune.FTireFriction	= 1.1		-- Your tire's friction in the best conditions.
--// Holstering
	HolsteringEnabled = true;
	HolsterPos = CFrame.new(0.140751064, 0, -0.616261482, -4.10752676e-08, -0.342020065, 0.939692616, -1.49501727e-08, 0.939692557, 0.342020094, -0.99999994, 0, -4.37113847e-08);
--[[
		___      _______                _     
	   / _ |____/ ___/ /  ___ ____ ___ (_)__ 
	  / __ /___/ /__/ _ \/ _ `(_-<(_-</ (_-<
	 /_/ |_|   \___/_//_/\_,_/___/___/_/___/
 						SecondLogic @ Inspare
]]
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 on = 0
local throt=0
local PeakRPM=0

script:WaitForChild("Rev")


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

handler:FireServer("newSound","Rev",car.DriveSeat,script.Rev.SoundId,0,script.Rev.Volume,true)
handler:FireServer("playSound","Rev")
car.DriveSeat:WaitForChild("Rev")

while wait() do
	local _RPM = script.Parent.Values.RPM.Value
	
	if script.Parent.Values.Throttle.Value <= _Tune.IdleThrottle/100 then
		throt = math.max(.3,throt-.2)	
	else
		throt = math.min(1,throt+.1)	
	end	
	if script.Parent.Values.RPM.Value > _Tune.PeakRPM-_Tune.RevBounce/4 and script.Parent.Values.Throttle.Value > _Tune.IdleThrottle/100 then
		PeakRPM=.5
	else
		PeakRPM=1
	end
	if not script.Parent.IsOn.Value then on=math.max(on-.015,0) else on=1 end
	local Pitch = math.max((((script.Rev.SetPitch.Value + script.Rev.SetRev.Value*_RPM/_Tune.PeakRPM))*on^2),script.Rev.SetPitch.Value)
	if FE then
		handler:FireServer("updateSound","Rev",script.Rev.SoundId,Pitch,script.Rev.Volume)
	else
		car.DriveSeat.Rev.Pitch = Pitch
	end
end
-- This file implements a wrapper function for TextService:GetTextSize()
-- Extra padding is added to the returned size because of a rounding issue with GetTextSize
-- TODO: Remove this temporary additional padding when CLIPLAYEREX-1633 is fixed

local TextService = game:GetService("TextService")

local TEMPORARY_TEXT_SIZE_PADDING = Vector2.new(2, 2)

local function getTextSize(...)
	local textSize = TextService:GetTextSize(...)
	return textSize + TEMPORARY_TEXT_SIZE_PADDING
end

return getTextSize
-----------------
--| Constants |--
-----------------

local GRAVITY_ACCELERATION = workspace.Gravity

local RELOAD_TIME = 0 -- Seconds until tool can be used again
local ROCKET_SPEED = 100 -- Speed of the projectile

local MISSILE_MESH_ID = 'http://www.roblox.com/asset/?id=2251534'
local MISSILE_MESH_SCALE = Vector3.new(0.35, 0.35, 0.25)
local ROCKET_PART_SIZE = Vector3.new(1.2, 1.2, 3.27)
-- Connections
RedeemCode.OnServerEvent:Connect(handleCodeRedemption)
--edit the function below to return true when you want this response/prompt to be valid
--player is the player speaking to the dialogue, and dialogueFolder is the object containing the dialogue data
return function(player, dialogueFolder)
	local ClassInformationTable = require(game.ReplicatedStorage.Source.Modules.CharacterScripts.Classes.ClassInformation)
	return ClassInformationTable:GetClassFolder(player,"Paladin").XP.Value >= 1000
end
--	else
--		if script.Parent.Parent.Self_Destruction_Panel.Opened.Value then
--			script.Parent.Parent.Self_Destruction_Panel.Open:Fire()
--		end
	end
end
script.Parent.Lever1.Pulled.Changed:Connect(Changed)
script.Parent.Lever2.Pulled.Changed:Connect(Changed)
script.Parent.Lever3.Pulled.Changed:Connect(Changed)
script.Parent.Lever4.Pulled.Changed:Connect(Changed)
--		print(index, this, surfaces[this], -(#surfaces-index)+this, surfaces[-(#surfaces-index)+this])
		
		table.insert(labels,
			root:FindFirstChild(surfaces[this] or surfaces[this%#surfaces], true).Frame.TextLabel
		)
	end
	
	return labels
end

while wait() do
	for index,name in pairs(surfaces) do
		local labelAs = GetPreceedingLabels(index)
		local labelM = root:FindFirstChild(name, true).Frame.TextLabel
		local labelBs = GetSucceedingLabels(index)
-- CONSTANTS

local GuiLib = script.Parent.Parent
local Lazy = require(GuiLib:WaitForChild("LazyLoader"))
local Defaults = GuiLib:WaitForChild("Defaults")

local CHECKBOX_LABEL = Defaults:WaitForChild("CheckboxLabel")
-- Hitpoints for each enemy; one blaster shot takes 35 hitpoints
GameSettings.EnemyHealthDifficulty = {
	Easy = 60,
	Normal = 105,
	Hard = 140
}
-- Find the local player if they're already in the game
local localPlayer = Players.LocalPlayer
if localPlayer then
	handlePlayerAdded(localPlayer)
end
--		child.C0 = CFrame.new(0,-0.6,0)*CFrame.fromEulerAnglesXYZ(-(math.pi/2),0,0) --// Reposition player
		if child.Part1.Name == "HumanoidRootPart" then
			player = game.Players:GetPlayerFromCharacter(child.Part1.Parent)
			if player and (not player.PlayerGui:FindFirstChild("Screen")) then --// The part after the "and" prevents multiple GUI's to be copied over.
				GUI.CarSeat.Value = script.Parent --// Puts a reference of the seat in this ObjectValue, now you can use this ObjectValue's value to find the car directly.
				GUI:Clone().Parent = player.PlayerGui --// Compact version
				if script.Parent.L.Value == true then --because you can't get in a locked car
					wait()
					script.Parent.Disabled = true
					wait()
					script.Parent.Disabled = false
				end
				if workspace.FilteringEnabled == true then
					script.Parent.Parent.Body.Dash.Screen2.G.FE.TextColor3 = Color3.new(0,1,0)
				else
					script.Parent.Parent.Body.Dash.Screen2.G.FE.TextColor3 = Color3.new(1,0,0)
				end
				if workspace:PGSIsEnabled() then
					script.Parent.Parent.Body.Dash.Screen2.G.PGS.TextColor3 = Color3.new(0,1,0)
				else
					script.Parent.Parent.Body.Dash.Screen2.G.PGS.TextColor3 = Color3.new(1,0,0)
				end
				script.Parent.Occupied.Value = true
				script.Parent.Parent.Body.Lights.Runner.Material = "Neon"
				script.Parent.Parent.Body.Dash.Screen.G.Enabled = true
				script.Parent.Parent.Body.Dash.Screen2.G.Enabled = true
				script.Parent.Parent.DriveSeat.SS3.DashInfoSpeed.Info.Value = true
				script.Parent.Parent.DriveSeat.SS3.DashInfoSpeed.Speed.Value = false
				script.Parent.Parent.DriveSeat.SS3.DashInfoSpeed.Version.Value = false
				script.Parent.Parent.DriveSeat.SS3.DashInfoSpeed.MPG.Value = false
				script.Parent.Parent.DriveSeat.SS3.Radios.FMOne.Value = true
				script.Parent.Parent.DriveSeat.SS3.Radios.FMTwo.Value = false
				script.Parent.Parent.DriveSeat.SS3.Radios.FMThree.Value = false
				script.Parent.Parent.DriveSeat.SS3.Radios.FMFour.Value = false
				end
			end
	end
end)

script.Parent.ChildRemoved:connect(function(child)
	if child:IsA("Weld") then
		if child.Part1.Name == "HumanoidRootPart" then
			game.Workspace.CurrentCamera.FieldOfView = 70
			player = game.Players:GetPlayerFromCharacter(child.Part1.Parent)
			if player and player.PlayerGui:FindFirstChild("SS3") then
				player.PlayerGui:FindFirstChild("SS3"):Destroy()
				script.Parent.Parent.Body.Dash.Screen.G.Enabled = false
				script.Parent.Parent.Body.Dash.Screen2.G.Enabled = false
				script.Parent.Parent.Body.Lights.Runner.Material = "SmoothPlastic"
				script.Parent.Occupied.Value = false
			end
		end
	end	
end)
-- Functions
local JsonDecode = function(s) return HttpService:JSONDecode(s) end

local function GetApiRemoteFunction(index)
	if (apiChunks[index]) then 
		return apiChunks[index], #apiChunks
	else
		print("Bad index for GetApiJson")
		return nil
	end
end

local function getApiJson()
	local apiTable = {}
	local firstPage, pageCount = GetApiRemoteFunction(1)
	table.insert(apiTable, firstPage)
	for i = 2, pageCount do
		--print("Fetching API page # " .. tostring(i))
		local result = GetApiRemoteFunction(i)
		table.insert(apiTable, result)
	end
	return table.concat(apiTable)
end

local json = getApiJson()
local apiDump =  JsonDecode(json)

local Classes = {}
local Enums = {}

local function sortAlphabetic(t, property)
	table.sort(t, 
		function(x,y) return x[property] < y[property]
	end)
end

local function isEnum(name)
	return Enums[name] ~= nil
end

local function getProperties(className)
	local class = Classes[className]
	local properties = {}
	
	if not class then return properties end
	
	while class do
		for _,property in pairs(class.Properties) do
			table.insert(properties, property)
		end
		class = Classes[class.Superclass]
	end
	
	sortAlphabetic(properties, "Name")

	return properties
end

for _,item in pairs(apiDump) do
	local itemType = item.type
--[[**
	Gets whatever object is stored with the given index, if it exists. This was added since Maid allows getting the task using `__index`.
	@param [t:any] Index The index that the object is stored under.
	@returns [t:any?] This will return the object if it is found, but it won't return anything if it doesn't exist.
**--]]
function Janitor.__index:Get(Index)
	local This = self[IndicesReference]
	if This then
		return This[Index]
	else
		return nil
	end
end
--[[
	Updates all Spring objects.
]]
local function updateAllSprings(timeStep: number)
	for damping, dampingBucket in pairs(springBuckets) do
		for speed, speedBucket in pairs(dampingBucket) do
			local posPosCoef, posVelCoef, velPosCoef, velVelCoef = springCoefficients(timeStep, damping, speed)

			for spring in pairs(speedBucket) do
				local goals = spring._springGoals
				local positions = spring._springPositions
				local velocities = spring._springVelocities

				local isMoving = false

				for index, goal in ipairs(goals) do
					local oldPosition = positions[index]
					local oldVelocity = velocities[index]

					local oldDisplacement = oldPosition - goal

					local newDisplacement = oldDisplacement * posPosCoef + oldVelocity * posVelCoef
					local newVelocity = oldDisplacement * velPosCoef + oldVelocity * velVelCoef

					if
						math.abs(newDisplacement) > MOVEMENT_EPSILON or
						math.abs(newVelocity) > MOVEMENT_EPSILON
					then
						isMoving = true
					end

					positions[index] = newDisplacement + goal
					velocities[index] = newVelocity
				end

				-- if the spring moved a significant distance, update its
				-- current value, otherwise stop animating
				if isMoving then
					spring._currentValue = packType(positions, spring._currentType)
					updateAll(spring)
				else
					SpringScheduler.remove(spring)
				end
			end
		end
	end
end

RunService:BindToRenderStep(
	"__FusionSpringScheduler",
	Enum.RenderPriority.First.Value,
	updateAllSprings
)

return SpringScheduler
-- order is important because SSF could auto orchestrate which would require conductor to already be called
require(EventSequencer.Conductor)()
require(EventSequencer.ServerSceneFramework)()
--Incline Compensation
Tune.InclineComp	= 90			-- Torque compensation multiplier for inclines (applies gradient from 0-90 degrees)
-- Cleans up all the handles in the state
function BaseState:Destroy()
	for _, handle in pairs(self.handles) do
		handle:Disconnect()
	end
end
-- types
export type BezierPoint = {
	Type: string;
	Point: Vector3 | BasePart;
}
--[=[
	Removes all attributes from an instance.

	@param instance Instance
]=]
function AttributeUtils.removeAllAttributes(instance: Instance)
	assert(typeof(instance) == "Instance", "Bad instance")

	for key, _ in pairs(instance:GetAttributes()) do
		instance:SetAttribute(key, nil)
	end
end

return AttributeUtils
--[[Brakes]]
	Tune.ABSEnabled		= true		-- Implements ABS
	Tune.ABSThreshold	= 20		-- Slip speed allowed before ABS starts working (in SPS) 

	Tune.FBrakeForce	= 2000		-- Front brake force
	Tune.RBrakeForce	= 1500		-- Rear brake force
	Tune.PBrakeForce	= 5500		-- Handbrake force
	
	Tune.FLgcyBForce	= 20000		-- Front brake force [PGS OFF]
	Tune.RLgcyBForce	= 15000		-- Rear brake force [PGS OFF]
	Tune.LgcyPBForce	= 25000		-- Handbrake force [PGS OFF]
-- Record durations for commit and passive effects phases.
exports.enableProfilerCommitHooks = false
--[[Weight and CG]]
	Tune.Weight			= 2000		-- Total weight (in pounds)
	Tune.WeightBSize	= {			-- Size of weight brick (dimmensions in studs ; larger = more stable)
	 --[[Width]]		6		,
	 --[[Height]]		4		,
	 --[[Length]]		15		}
	Tune.WeightDist		= 54		-- Weight distribution (0 - on rear wheels, 100 - on front wheels, can be <0 or >100)
	Tune.CGHeight		= .8		-- Center of gravity height (studs relative to median of all wheels)
	Tune.WBVisible		= false		-- Makes the weight brick visible
	
	--Unsprung Weight
	Tune.FWheelDensity	= .1		-- Front Wheel Density
	Tune.RWheelDensity	= .1		-- Rear Wheel Density
	
	Tune.AxleSize		= 2			-- Size of structural members (larger = MORE STABLE / carry more weight)
	Tune.AxleDensity	= .1		-- Density of structural members
-- This script handles crash detection

while (not script.Parent.Cloned.Value) do wait() end
wait(5)

if (not script.Parent.EDIT_THESE.CanCrash.Value) then script:remove() return end
local maxImpact = script.Parent.EDIT_THESE.CanCrash.Force.Value

local crashT,explode = 0,false

function goBoom()	-- lol
	explode = true
	script.Parent.Dead.Stop.Value = true
	local x = Instance.new("Explosion")
	x.BlastPressure = 5e5
	x.BlastRadius = script.Parent:GetModelSize().magnitude
	x.Position = script.Parent.MainParts.Main.Position
	script.Parent.MainParts.Main.Gyro:remove()
	x.Parent = game.Workspace
end

function getParts(parent)
	for _,v in pairs(parent:GetChildren()) do
		if ((v:IsA("BasePart")) and (not v:IsDescendantOf(script.Parent.MainParts.LandingGear))) then
			v.Touched:connect(function(obj)
				if (not obj.Parent) then return end
				if ((not obj.CanCollide) or (not v.CanCollide)) then return end
				if (obj:IsDescendantOf(script.Parent)) then return end
				if (game.Players:GetPlayerFromCharacter(obj.Parent)) then return end
				if (
					v.Velocity.x >= maxImpact
				or
					v.Velocity.x <= -(maxImpact)
				or
					v.Velocity.y >= maxImpact
				or
					v.Velocity.y <= -(maxImpact)
				or
					v.Velocity.z >= maxImpact
				or
					v.Velocity.z <= -(maxImpact)
				)
				then
					if (not script.Parent.Dead.Value) then
						crashT = time()
						script.Parent.Dead.Value = true
						game:GetService("Debris"):AddItem(script.Parent,8)
						delay(6,function()
							pcall(function() script.Parent.MainParts.MainSeat.SeatWeld:remove() end)
							if (not explode) then
								goBoom()
							end
						end)
					end
				end
				if ((script.Parent.Dead.Value) and ((time()-crashT) > 0.5) and (not explode)) then
					goBoom()
				end
			end)
		end
		getParts(v)
	end
end

getParts(script.Parent)

script.Parent.AutoCrash.Changed:connect(function()
	if (not script.Parent.AutoCrash.Value) then return end
	if ((not explode) and (not script.Parent.Dead.Value)) then
		crashT = time()
		script.Parent.Dead.Value = true
		game:GetService("Debris"):AddItem(script.Parent,8)
		goBoom()
	end
end)
-- ROBLOX deviation: IndexedResult annotated as any for now since we don't have tuple support in luau
type IndexedResult = any

function printResult(result: any, expected: any)
	if result.type == "throw" then
		return "function call threw an error"
	end

	if result.type == "incomplete" then
		return "function call has not returned yet"
	end

	if isEqualValue(expected, result.value) then
		return printCommon(result.value)
	end

	return printReceived(result.value)
end
-- Encuentra el sonido llamado "hyperx" en el servicio de sonido
local sound = soundService:FindFirstChild("zone")
-- Get references to the DockShelf and its children
local fldr = script.Parent.Parent.Parent.LyricsFrame
local Pop = script.Parent.Parent.Parent.Popular
local Trcks = script.Parent.Parent.Parent.Tracks
local Serch = script.Parent.Parent.Parent.SearchTracks
local btn = script.Parent

local function toggleWindow()
		-- Set the initial position of the window to be relative to the button
		local startPos = UDim2.new(0.0,0,0.978,0)
		fldr.Position = startPos

		-- Set the initial size of the window to be zero
		fldr.Size = UDim2.new(1, 0, 0.022, 0)

		-- Show the window and tween its position and size from the button position and size to its original position and size
		fldr.Visible = true
		Pop.Visible = false
		Trcks.Visible = false
		Serch.Visible = false
		fldr:TweenSizeAndPosition(
			UDim2.new(1, 0, 0.808, 0),
			UDim2.new(0,0, 0.195, 0),
			'Out',
			'Quad',
			0.4
		)
end
--LockController

Closed = true

function LockItems()
	script.Parent.Parent.Parent.RCMMain.FunctionalParts.Switches.Locked.Value = script.Locked.Value
end

script.Parent.Touched:connect(function(P)
	if P ~= nil and P.Parent ~= nil and P.Parent:FindFirstChild("CardNumber") ~= nil  and P.Parent.CardNumber.Value == 0 then
		if Closed == true then
			Closed = 1
			script.Locked.Value = false
			LockItems()
			script.Parent.Open.Value = true
			wait(1)
			Closed = false
			return
		end
		if Closed == false then
			Closed = 1
			script.Locked.Value = true
			LockItems()
			script.Parent.Open.Value = false
			wait(1)
			Closed = true
			return
		end

	end
end)
-- goro7

local plr = game.Players.LocalPlayer

function update()
	
	-- Calculate scale
	local scale = (plr.PlayerGui.MainGui.AbsoluteSize.Y - 10) / script.Parent.Parent.Size.Y.Offset
	if scale > 1.5 then
		scale = 1.5
	end
	if scale > 0 then
		script.Parent.Scale = scale
	end
	
end

plr.PlayerGui:WaitForChild("MainGui"):GetPropertyChangedSignal("AbsoluteSize"):connect(update)
update()
--[=[
	Converts a promise to an observable.
	@param observable Observable<T>
	@param cancelToken CancelToken?
	@return Promise<T>
]=]
function Rx.toPromise(observable, cancelToken)
	local maid = Maid.new()

	local newCancelToken = CancelToken.new(function(cancel)
		maid:GiveTask(cancel)
		if cancelToken then
			if cancelToken:IsCancelled() then
				cancel()
			else
				maid:GiveTask(cancelToken.Cancelled:Connect(cancel))
			end
		end
	end)

	local promise = Promise.new(function(resolve, reject)
		if newCancelToken:IsCancelled() then
			reject()
			return
		end

		maid:GiveTask(newCancelToken.Cancelled:Connect(function()
			reject()
		end))

		maid:GiveTask(observable:Subscribe(resolve, reject, reject))
	end)

	promise:Finally(function()
		maid:DoCleaning()
	end)

	return promise
end
--[[ SCRIPT VARIABLES ]]
local CHAT_BUBBLE_FONT = Enum.Font.RobotoMono
local CHAT_BUBBLE_FONT_SIZE = Enum.FontSize.Size24 -- if you change CHAT_BUBBLE_FONT_SIZE_INT please change this to match
local CHAT_BUBBLE_FONT_SIZE_INT = 24 -- if you change CHAT_BUBBLE_FONT_SIZE please change this to match
local CHAT_BUBBLE_LINE_HEIGHT = CHAT_BUBBLE_FONT_SIZE_INT + 10
local CHAT_BUBBLE_TAIL_HEIGHT = 14
local CHAT_BUBBLE_WIDTH_PADDING = 30
local CHAT_BUBBLE_FADE_SPEED = 1.5

local BILLBOARD_MAX_WIDTH = 400
local BILLBOARD_MAX_HEIGHT = 250	--This limits the number of bubble chats that you see above characters

local ELIPSES = "..."
local MaxChatMessageLength = 128 -- max chat message length, including null terminator and elipses.
local MaxChatMessageLengthExclusive = MaxChatMessageLength - string.len(ELIPSES) - 1

local NEAR_BUBBLE_DISTANCE = 65	--previously 45
local MAX_BUBBLE_DISTANCE = 80	--previously 80
--DO NOT CHANGE ANYTHING INSIDE OF THIS SCRIPT BESIDES WHAT YOU ARE TOLD TO UNLESS YOU KNOW WHAT YOU'RE DOING OR THE SCRIPT WILL NOT WORK!!
local hitPart = script.Parent
local debounce = true
local tool = game.ServerStorage.BigSpoon -- Change "Sword" to the name of your tool, make sure your tool is in ServerStorage

hitPart.Touched:Connect(function(hit)
	if debounce == true then
		if hit.Parent:FindFirstChild("Humanoid") then
			local plr = game.Players:FindFirstChild(hit.Parent.Name)
			if plr then
				debounce = false
				hitPart.BrickColor = BrickColor.new("Bright red")
				tool:Clone().Parent = plr.Backpack
				wait(3) -- Change "3" to however long you want the player to have to wait before they can get the tool again
				debounce = true
				hitPart.BrickColor = BrickColor.new("Bright green")
			end
		end
	end
end)
--[=[
	Creates a shallow copy of an array, passed through a filter callback- if the callback returns false, the element is removed.
	
	```lua
	local str = {"a", "b", "c", "d", "e", "f", "g"}
	
	print(TableKit.Filter(str, function(value)
		return value > "c"
	end))
	-- prints {
 		[1] = "d",
 		[2] = "e",
 		[3] = "f",
 		[4] = "g"
 	}
	```

	@within TableKit
	@param arr { [number]: unknown }
	@param callback (value: value) -> boolean
	@return { [number]: unknown }
]=]
function TableKit.Filter<T>(arr: { [number]: T }, callback: (value: T) -> boolean)
	local tbl = {}

	for _, value in arr do
		if callback(value) then
			table.insert(tbl, value)
		end
	end

	return tbl
end
--[[**
	matches any type except nil

	@param value The value to check against

	@returns True iff the condition is satisfied, false otherwise
**--]]
function t.any(value)
	if value ~= nil then
		return true
	else
		return false
	end
end
---
	script.Parent.Values.Gear.Changed:connect(function()
		if script.Parent.Values.Gear.Value == -1 then
			for index, child in pairs(car.Body.Lights.Rev:GetChildren()) do
			child.Material = Enum.Material.Neon
			child.BrickColor=BrickColor.new("Institutional white")
			car.DriveSeat.Reverse:Play()
			car.DriveSeat.Chime:Play()
			end
		else
			for index, child in pairs(car.Body.Lights.Rev:GetChildren()) do
			child.Material = Enum.Material.SmoothPlastic
			child.BrickColor=BrickColor.new("Dark stone grey")
			car.DriveSeat.Reverse:Stop()
			car.DriveSeat.Chime:Stop()
			end
		end
	end)
	
	while wait() do
		if (car.DriveSeat.Velocity.magnitude/40)+0.300 < 1.3 then
		car.DriveSeat.Reverse.Pitch = (car.DriveSeat.Velocity.magnitude/40)+0.300
		car.DriveSeat.Reverse.Volume = (car.DriveSeat.Velocity.magnitude/500)	
		else
		car.DriveSeat.Reverse.Pitch = 1.3
		car.DriveSeat.Reverse.Volume = .05
		end
	end