Roblox/luau_corpus huggingface dataset:
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------

local toolAnimName = ""
local toolAnimTrack = nil
local toolAnimInstance = nil
local currentToolAnimKeyframeHandler = nil

function toolKeyFrameReachedFunc(frameName)
	if (frameName == "End") then
		playToolAnimation(toolAnimName, 0.0, Humanoid)
	end
end


function playToolAnimation(animName, transitionTime, humanoid, priority)	 		
		local idx = rollAnimation(animName)
		local anim = animTable[animName][idx].anim

		if (toolAnimInstance ~= anim) then
			
			if (toolAnimTrack ~= nil) then
				toolAnimTrack:Stop()
				toolAnimTrack:Destroy()
				transitionTime = 0
			end
					
			-- load it to the humanoid; get AnimationTrack
			toolAnimTrack = humanoid:LoadAnimation(anim)
			if priority then
				toolAnimTrack.Priority = priority
			end
			 
			-- play the animation
			toolAnimTrack:Play(transitionTime)
			toolAnimName = animName
			toolAnimInstance = anim

			currentToolAnimKeyframeHandler = toolAnimTrack.KeyframeReached:Connect(toolKeyFrameReachedFunc)
		end
end

function stopToolAnimations()
	local oldAnim = toolAnimName

	if (currentToolAnimKeyframeHandler ~= nil) then
		currentToolAnimKeyframeHandler:Disconnect()
	end

	toolAnimName = ""
	toolAnimInstance = nil
	if (toolAnimTrack ~= nil) then
		toolAnimTrack:Stop()
		toolAnimTrack:Destroy()
		toolAnimTrack = nil
	end

	return oldAnim
end
--!strict
local Sift = script.Parent.Parent

local copy = require(Sift.Dictionary.copy)
-- This will say "edited"
Notification.OnServerEvent:Connect(function(plr)
	Notification:FireClient(plr,false)
end)
-- helper functions
local function removePlayerNameFromStack(stack)
	-- in order to generalize the data so that errors are properly grouped,
	--  we must strip out any personal information from the callstack.
	if not type(stack) == "string" then
		warn(string.format("Expected stack to be a string, received : %s", type(stack)))
		return tostring(stack)
	end

	local sanitizedStack = string.gsub(stack, "Players%.[^.]+%.", "Players.<Player>.")
	return sanitizedStack
end



local ErrorReporter = {}
ErrorReporter.__index = ErrorReporter

function ErrorReporter.new(networkingImpl)
	if not networkingImpl then
		networkingImpl = Networking.new()
	end

	local er = {
		-- reporter implementations
		_googleAnalyticsReporter = ReporterGoogleAnalytics.new({
			networking = networkingImpl,
		}),
		_playFabReporter = ReporterPlayFab.new(),
	}
	setmetatable(er, ErrorReporter)

	return er
end
--Workspace.CurrentCamera.CameraSubject=game.Players.LocalPlayer.Character.Humanoid
--Workspace.CurrentCamera.CameraType="Custom"
bin.Name = "Vehicle"
end)

game.Players.LocalPlayer.Character.Humanoid.Changed:connect(function()
	if game.Players.LocalPlayer.Character.Humanoid.Jump then
		script.Parent:remove()
	end
end)
--[=[
	Constructs a new promise.

	::warning
	Do not yield within this func callback, as it will yield on the
	main thread. This is a performance optimization.
	::

	@param func (resolve: (...) -> (), reject: (...) -> ()) -> ()?
	@return Promise<T>
]=]
function Promise.new(func)
	local self = setmetatable({
		_pendingExecuteList = {};
		_unconsumedException = true;
		_source = ENABLE_TRACEBACK and debug.traceback() or "";
	}, Promise)

	if type(func) == "function" then
		func(self:_getResolveReject())
	end

	return self
end
--[=[
  @function copy
  @within Set

  @param set { [T]: boolean } -- The set to copy.
  @return { [T]: boolean } -- A copy of the set.

  Creates a copy of a set.

  ```lua
  local set = { hello = true }

  local newSet = Copy(set) -- { hello = true }
  ```
]=]
return copy
--[[
	Keeping track of the players leaving, in case more Ownerships (dinosaurs, essentially) are in play in the level.
	Generalized the functionality so each new instance of Ownership doesn't have it's own event-tracker.
--]]
game:GetService("Players").PlayerRemoving:Connect(function(Player)
	if Owners[Player] then
		Owners[Player]:SetOwner(nil)
		Owners[Player] = nil
	end 
end)

return Ownership
--[=[
	The same as [Promise.new](/api/Promise#new), except execution begins after the next `Heartbeat` event.

	This is a spiritual replacement for `spawn`, but it does not suffer from the same [issues](https://eryn.io/gist/3db84579866c099cdd5bb2ff37947cec) as `spawn`.

	```lua
	local function waitForChild(instance, childName, timeout)
	  return Promise.defer(function(resolve, reject)
		local child = instance:WaitForChild(childName, timeout)

		;(child and resolve or reject)(child)
	  end)
	end
	```

	@param executor (resolve: (...: any) -> (), reject: (...: any) -> (), onCancel: (abortHandler: () -> boolean)) -> ()
	@return Promise
]=]
function Promise.defer(callback)
	local traceback = debug.traceback(nil, 2)
	local promise
	promise = Promise._new(traceback, function(resolve, reject, onCancel)
		local connection
		connection = Promise._timeEvent:Connect(function()
			connection:Disconnect()
			local ok, _, result = runExecutor(traceback, callback, resolve, reject, onCancel)

			if not ok then
				reject(result[1])
			end
		end)
	end)

	return promise
end
--[[ CLIMAXIMUS's sprint script. Made by request. ]]--
local RunSpeed = 28 --[[ <-- The sprinting speed. ]]--
--// SS3 controls for AC6 by Itzt, originally for 2014 Infiniti QX80. i don't know how to tune ac lol
 
wait(0.1)
local player = game.Players.LocalPlayer
local carSeat = script.Parent.CarSeat.Value
local mouse = game.Players.LocalPlayer:GetMouse()
local windows = false
local winfob = script.Parent.Music
local handler = carSeat:WaitForChild('Filter')
local HUB2 = script.Parent.HUB2
--local Pitch = script.Parent.Handle.FireSound


local MyPlayer = nil
local MyCharacter = nil
local MyHumanoid = nil
local MyTorso = nil
local MyMouse = nil


local RecoilAnim
local RecoilTrack = nil

local ReloadAnim
local ReloadTrack = nil

local IconURL = Tool.TextureId  
local DebrisService = game:GetService('Debris')
local PlayersService = game:GetService('Players')
-- Vector3 and Position --

local part = game.Workspace.PositionPart

part.Size = Vector3.new(8, 8, 8)
part.Position = Vector3.new(10, 10, 10)

part.Position = part.Position + Vector3.new(5, 5, 5) -- (15, 15, 15)
part.Position += Vector3.new(5, 5, 5) --also works
-- You may turn both of these on at once. In that case, zone-specific music will play in the appropriate zones, and global background music will play whenever you're not within any zone.

	
settings.DisplayMuteButton = false  -- If set to true, there will be a button in the bottom-right corner of the screen allowing players to mute the background music.
	
settings.MusicFadeoutTime = 1  -- How long music takes to fade out, in seconds.

settings.MusicOnlyPlaysWithinZones = false  -- (This setting only applies when UseGlobalBackgroundMusic is set to false) If a player walks into an area that's not covered by any music zone, what should happen? If true, music will stop playing. If false, the music from the previous zone will continue to play.

return settings
--//Functions
function CarColor ()
for i,v in pairs(Car.Body.Color:GetChildren()) do
v.Color = Stats.Color.Value
end
Car.Misc.Arka_Kapak.Kapak.Color = Stats.Color.Value
end

function CheckFuel ()
if oldpos == nil then
oldpos = MainP.Position
else
newpos = MainP.Position
--[[Transmission]]
	Tune.TransModes		= {"Auto", "Semi"}								--[[
	[Modes]
		"Auto"		: Automatic shifting
		"Semi"		: Clutchless manual shifting, dual clutch transmission
		"Manual"	: Manual shifting with clutch
		
		>Include within brackets
			eg: {"Semi"} or {"Auto", "Manual"}								
		>First mode is default mode													]]
	
	--Automatic Settings
	Tune.AutoShiftMode	= "Speed"												--[[
	[Modes]
		"Speed"		: Shifts based on wheel speed
		"RPM"		: Shifts based on RPM											]]	
	Tune.AutoUpThresh	= -200		--Automatic upshift point 	(relative to peak RPM, positive = Over-rev)
	Tune.AutoDownThresh = 1400		--Automatic downshift point (relative to peak RPM, positive = Under-rev)
	
	--Gear Ratios
	Tune.FinalDrive		= 4.06			-- Gearing determines top speed and wheel torque
	Tune.Ratios			= {				-- Higher ratio = more torque, Lower ratio = higher top speed
		--[[Reverse]]	3.70		,	-- Copy and paste a ratio to add a gear
		--[[Neutral]]	0			,	-- Ratios can also be deleted
		--[[ 1 ]]		3.53		,	-- Reverse, Neutral, and 1st gear are required
		--[[ 2 ]]		2.04		,
		--[[ 3 ]]		1.38		,
		--[[ 4 ]]		1.03		,
		--[[ 5 ]]		0.81		,
		--[[ 6 ]]		0.64		,
		--[[ 7 ]]       0.52        ,
	}
	Tune.FDMult			= 1.5			-- Ratio multiplier (Change this value instead of FinalDrive if car is struggling with torque ; Default = 1)
-- Ragdoll
Humanoid.AutoRotate = false
local Descendants = Character:GetDescendants()
for i, obj in pairs(Descendants) do
	-- If the descendant is a k then replace it with a socket
	if obj:IsA('Motor6D') then
		-- totally didnt take most of this from a youtube video
		local Socket = Instance.new('BallSocketConstraint',obj.Parent)
		local a1 = Instance.new('Attachment',obj.Part0) or obj.Parent:FindFirstChild('Attachment')
		local a2 = Instance.new('Attachment',obj.Part1) or obj.Parent:FindFirstChild('Attachment')
		a1.CFrame = obj.C0
		a2.CFrame = obj.C1
		Socket.Attachment0 = a1
		Socket.Attachment1 = a2
		Socket.LimitsEnabled = true
		Socket.TwistLimitsEnabled = true
		obj:Destroy()
	end
	-- If the descendant is a weld, realign the position --
	if obj:IsA('Weld') then 
		local Weld = obj:Clone()
		Weld.Parent = obj.Parent
		obj:Destroy()
	end
	-- Make all parts collidable
	if obj.Parent == Character then
		if obj:IsA('Part') or obj:IsA('MeshPart') then
			obj.CanCollide = true
		end
	end
end
--Put in TextButton
local tool = game.ReplicatedStorage.PawPawFruit --Refers "tool" as game.ReplicatedStorage.YourTool. Put your tool name in the ClassicSword.
local player = game.Players.LocalPlayer --finds the script's parent, the player.

script.Parent.MouseButton1Click:Connect(function() --when clicked, function
	tool:Clone() --clones tool
	tool:Clone().Parent = player.Backpack --has the cloned tool's parent the player's Backpack
end)
-- Enum.ChatColor.White (White, Normal)
-- Enum.ChatColor.Red (Red, Enemy)
-- Enum.ChatColor.Green (Green, Friendly)
-- Enum.ChatColor.Blue (Blue, Neutral)

game.Chat.BubbleChatEnabled = false -- Disables the default ROBLOX bubble chat. Required for this script to work.

game.Players.PlayerAdded:Connect(function(fans)
	local function Chat(message: string, color)
		game:GetService("Chat"):Chat(fans.Character.Head, message, cc)
	end	
	fans.Chatted:Connect(function(msg)
		Chat(msg)
	end)
end)
--			car.Body.Dash.D.off.Enabled = false
--			car.Body.Dash.S.off.Enabled = false
			if e.Parent.Parent.Parent.Misc.FL.Window.SS.Motor.DesiredAngle == -.25 or e.Parent.Parent.Parent.Misc.FR.Window.SS.Motor.DesiredAngle == .25 or e.Parent.Parent.Parent.Misc.RL.Window.SS.Motor.DesiredAngle == -.25 or e.Parent.Parent.Parent.Misc.RR.Window.SS.Motor.DesiredAngle == .25 then
				e.Muffle.Enabled = false
				e.Muffle2.Enabled = false
			elseif e.Parent.Parent.Parent.Misc.FL.Door.SS.Motor.DesiredAngle == -1 or e.Parent.Parent.Parent.Misc.FR.Door.SS.Motor.DesiredAngle == 1 or e.Parent.Parent.Parent.Misc.RL.Door.SS.Motor.DesiredAngle == -1 or e.Parent.Parent.Parent.Misc.RR.Door.SS.Motor.DesiredAngle == 1 or e.Parent.Parent.Parent.Misc.TK.SS.Motor.DesiredAngle == 1 then
				e.Muffle.Enabled = false
				e.Muffle2.Enabled = false		
			elseif e.Parent.Parent.Parent.Misc.FL.Window.SS.Motor.DesiredAngle == 0 or e.Parent.Parent.Parent.Misc.FR.Window.SS.Motor.DesiredAngle == 0 or e.Parent.Parent.Parent.Misc.RL.Window.SS.Motor.DesiredAngle == 0 or e.Parent.Parent.Parent.Misc.RR.Window.SS.Motor.DesiredAngle == 0 then
				e.Muffle.Enabled = true
				e.Muffle2.Enabled = true			
			end		
		end
	end
end)

script.Parent.RightMouseClick:connect(function(p)
	if p.Name == owner.Value then
		alarm.Lights.Value = false
		alarm.Sound.Value = false
		local sc = script.Parent.SecuriCode:Clone()
		sc.Car.Value = carSeat.Parent
		sc.Parent = p.PlayerGui
	end
end)
--------RIGHT DOOR --------

game.Workspace.doorright.l41.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l53.BrickColor = BrickColor.new(1023)

game.Workspace.doorright.pillar.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)
-- Users in the following groups have global Freecam permissions:
local FREECAM_GROUP_IDS = {
	1200769, -- Roblox Admins
	3013794, -- Admin Illuminati
	4358041, -- Freecam
}

local function ShouldAddFreeCam(player)
	if RunService:IsStudio() then
		return true
	end
	if player.UserId <= 0 then
		return false
	end

	for _, groupId in ipairs(FREECAM_GROUP_IDS) do
		local success, inGroup = pcall(player.IsInGroup, player, groupId)
		if success and inGroup then
			return true
		end
	end

	return false
end
-- print("hit: ", hit," hit.Parent: " ,hit.Parent.Name)
	local target= hit.Parent.Name
	-- print("Bullet hit - ",target)
	
	local human	= Instance.new("Humanoid")
	human.Parent = bullet
	
	if hit.Name == "Shield" then -- попали в щит
		return -- не атакуем
	end
	if hit.Name == "Rocket" then -- попали в снаряд
		return -- не атакуем
	end
	
	if target == bullet.Owner.Value then -- свой игрок
--Weld stuff here
--Engine
local ENG_PCK = nil
for i,v in pairs(misc:GetDescendants()) do
	if v:IsA("ObjectValue") and v.Name == "ENGINE_PACK" then ENG_PCK = v.Value end
end
if ENG_PCK then

	if ENG_PCK:FindFirstChild("Cam_Gears") then
		local CG = ENG_PCK.Cam_Gears
		for i,Gear in pairs(CG:GetChildren()) do
			if string.sub(Gear.Name,1,4) == "Gear" then
				MakeWeld(Gear.W,car.DriveSeat,"Motor")
				ModelWeld(Gear.Parts,Gear.W)
			end
		end
	end

	if ENG_PCK:FindFirstChild("Engine_Shake") then
		local ES = ENG_PCK.Engine_Shake
		MakeWeld(ES.W,car.DriveSeat,"Motor")
		ModelWeld(ES.Parts,ES.W)
	end

	if ENG_PCK:FindFirstChild("Manifold_Heat") then
		local MH = ENG_PCK.Manifold_Heat
		ModelWeld(MH.Parts,car.DriveSeat)
	end

	if ENG_PCK:FindFirstChild("Throttle_Body") then
		local TB = ENG_PCK.Throttle_Body
		for i,Body in pairs(TB:GetChildren()) do
			if string.sub(Body.Name,1,4) == "Body" then
				MakeWeld(Body.W,car.DriveSeat,"Motor",0.25)
				ModelWeld(Body.Parts,Body.W)
			end
		end
	end

	if ENG_PCK:FindFirstChild("Timing_Belt") then
		local TI = ENG_PCK.Timing_Belt
		ModelWeld(TI.Parts,car.DriveSeat)
		for i=1,#TI.Parts:GetChildren() do
			for x=1,#TI.Parts:GetChildren() do
				local Attachment = Instance.new("Attachment",TI.Parts["A"..x])
				Attachment.Orientation = Vector3.new(90,0,0)
			end
			local Beam = Instance.new("Beam",TI.Beams)
			Beam.Transparency = NumberSequence.new{
				NumberSequenceKeypoint.new(0,0),
				NumberSequenceKeypoint.new(1,0)}

			Beam.Name = "A"..i
			if TI.TextureID.Value ~= nil then
				Beam.Texture = "rbxassetid://"..TI.TextureID.Value
			end
			Beam.TextureSpeed = 0
			if TI.BeltWidth.Value ~= nil then
				Beam.Width0 = TI.BeltWidth.Value
				Beam.Width1 = TI.BeltWidth.Value
			end
			if i == #TI.Parts:GetChildren() then
				Beam.Attachment0 = TI.Parts["A"..i].Attachment
				Beam.Attachment1 = TI.Parts["A1"].Attachment
			else
				print("A"..i+1)
				Beam.Attachment0 = TI.Parts["A"..i].Attachment
				Beam.Attachment1 = TI.Parts["A"..i+1].Attachment
			end
		end
	end

	if ENG_PCK:FindFirstChild("Turbochargers") then
		local TC = ENG_PCK.Turbochargers
		for i,Turbo in pairs(TC:GetChildren()) do
			if string.sub(Turbo.Name,1,5) == "Turbo" then
				MakeWeld(Turbo.W,car.DriveSeat,"Motor")
				ModelWeld(Turbo.Parts,Turbo.W)
			end
		end
	end

end
-----------------
--| Variables |--
-----------------

local PlayersService = game:GetService('Players')

local Camera = nil
local CameraChangeConn = nil

local PlayerCharacters = {} -- For ignoring in raycasts
local VehicleParts = {} -- Also just for ignoring

local LastPopAmount = 0
local LastZoomLevel = 0
local PopperEnabled = false
-- The name of the folder containing the 3D GUI elements for visualizing casts.
local FC_VIS_OBJ_NAME = "FastCastVisualizationObjects"
-- Decompiled with the Synapse X Luau decompiler.

return function(p1, p2)
	for v1 = #p1, 1, -1 do
		if p1[v1] == p2 then
			table.remove(p1, v1);
		end;
	end;
	return p1;
end;
--print("near player and building")
if nearestPlayer and closestPlayerDist < 10 then
target = nearestPlayer
targetType = nearestPlayer.ClassName
lastLock = tick()
-- If using VR
if UserInputService.VREnabled and VRUseHeadsetControls.Value == true then
	VRService.UserCFrameChanged:connect(function(CFrametype,VRSpot)
		local x,y = VRSpot:toEulerAnglesXYZ()
		local Sensitivity = 1.2
		
		if CFrametype == Enum.UserCFrame.Head then
			-- Direction
			if -x*Sensitivity > -1 and -x*Sensitivity < 1 then -- Makes sure the headset isn't tilted too much
				Direction = -x*Sensitivity
			elseif -x*Sensitivity > 0 then -- Otherwise we'll go to the max speed
				Direction = 1
			elseif -x*Sensitivity < 0 then -- Otherwise we'll go to the max speed
				Direction = -1
			end
				
			-- Steering
			if -y > -1 and -y < 1 then -- Makes sure the headset isn't tilted too much
				Steer = -y
			elseif -y > 0 then -- Otherwise we'll go to the max speed
				Steer = 1
			elseif -y < 0 then -- Otherwise we'll go to the max speed
				Steer = -1
			end
		end
	end)
end

UserInputService.InputBegan:connect(function(Key,ProcessedEvent)
	if WeldObject.Value ~= nil then
		
		-- Hop off segway if press Spacebar, Backspace or controller A button
		if Key.KeyCode == Enum.KeyCode.Space or Key.KeyCode == Enum.KeyCode.Backspace or Key.KeyCode == Enum.KeyCode.ButtonA then	
			Hopoff()
		end
		
		--Forward
		if Key.KeyCode == Enum.KeyCode.W or Key.KeyCode == Enum.KeyCode.Up or Key.KeyCode == Enum.KeyCode.ButtonR2 then
			if Direction ~= 1 then
			Direction = 1
			end
		end
		
		--Backward
		if Key.KeyCode == Enum.KeyCode.S or Key.KeyCode == Enum.KeyCode.Down or Key.KeyCode == Enum.KeyCode.ButtonL2 then
			if Direction ~= -1 then
			Direction = -1
			end
		end
		
		--Left
		if Key.KeyCode == Enum.KeyCode.D or Key.KeyCode == Enum.KeyCode.Right then
			if Steer ~= 1 then
			Steer = 1
			end
		end
		
		--Right
		if Key.KeyCode == Enum.KeyCode.A or Key.KeyCode == Enum.KeyCode.Left then
			if Steer ~= -1 then
			Steer = -1
			end
		end
	end
end)
-- Decompiled with the Synapse X Luau decompiler.

return {
	CameraRecoilingEnabled = true, 
	Recoil = 0, 
	AngleX_Min = 10, 
	AngleX_Max = 10, 
	AngleY_Min = 1.5, 
	AngleY_Max = 1.5, 
	AngleZ_Min = 5, 
	AngleZ_Max = 5, 
	Accuracy = 0.1, 
	RecoilSpeed = 3, 
	RecoilDamper = 0.65, 
	RecoilRedution = 0.1
};
--	print("Success")
else
	print("No Humanoid")
end
local humanim = hum:LoadAnimation(script:FindFirstChildOfClass("Animation"))
--- Disconnects all connected events to the signal. Voids the signal as unusable.
-- @treturn nil
function Signal:Destroy()
	if self._bindableEvent then
		self._bindableEvent:Destroy()
		self._bindableEvent = nil
	end

	self._argData = nil
	self._argCount = nil
end

return Signal
--[[Engine]]
	--Torque Curve
	Tune.Horsepower		= 280		--	[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	= 4.7			-- Torque compensation multiplier for inclines (applies gradient from 0-90 degrees)
	
	--Misc
	Tune.RevAccel		= 150		-- 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)
-- ROBLOX TODO: ElementConfig: something like export type React_ElementConfig<React_Component<P>> = P
export type React_ElementConfig<C> = Object
--Made by Luckymaxer

Part = script.Parent

Players = game:GetService("Players")
Debris = game:GetService("Debris")

RbxUtility = LoadLibrary("RbxUtility")
Create = RbxUtility.Create

Creator = Part:WaitForChild("Creator")
Damage = Part:WaitForChild("Damage")

function IsTeamMate(Player1, Player2)
	return (Player1 and Player2 and not Player1.Neutral and not Player2.Neutral and Player1.TeamColor == Player2.TeamColor)
end

function TagHumanoid(humanoid, player)
	local Creator_Tag = Create("ObjectValue"){
		Name = "creator",
		Value = player,
	}
	Debris:AddItem(Creator_Tag, 2)
	Creator_Tag.Parent = humanoid
end

function UntagHumanoid(humanoid)
	for i, v in pairs(humanoid:GetChildren()) do
		if v:IsA("ObjectValue") and v.Name == "creator" then
			v:Destroy()
		end
	end
end
-- @Return SpreadSimulator
function WeaponRuntimeData:GetSpreadSimulator()
	return self.spreadSimulator
end
--Plot Current Naturally Aspirated Engine Horsepower
function GetNCurve(x,gear)
	local hp=(math.max(CurveN(x)/(PeakCurveN/HP),0))*100
	return hp,((hp*(EQ/x))*_Tune.Ratios[gear+2]*fFD*hpScaling)*1000
end
-- should probably search after a delay
local function search()
	local text = searchTextBox.Text
	for _, button in next, activeButtons._tasks do
		if text == "" then
			button.guiButton.Visible = true
		else
			local match = stringMatch(text, button.guiButton.Name)
			button.guiButton.Visible = match
		end
	end
	scrollingFrame.CanvasPosition = Vector2.new(0, 0)
	updateScrollingFrameCanvasSize()
end

local function isWearing(id)
	for i, asset in ipairs(wearingAssets.assets) do
		if asset.id == id then
			return true
		end
	end
	return false
end
--print("Building is closer than player")
end
end

elseif nearestPlayer and not nearestBuilding then
--- Returns true if `PotentialCharacter` is a valid character.
---@param PotentialCharacter Model
---@return boolean
local function IsCharacter(PotentialCharacter: Model)
	return (PotentialCharacter:FindFirstChildOfClass("Humanoid") ~= nil) --// I would hope you don't mess up functions like this somehow
end
--------SETTINGS--------
local ITEM_NAME = "AR"
local ITEM_PRICE = 10
local CURRENCY_NAME = "Cash"
--////////////////////////////// Include
--//////////////////////////////////////
local Chat = game:GetService("Chat")
local clientChatModules = Chat:WaitForChild("ClientChatModules")
local modulesFolder = script.Parent
local moduleMessageLabelCreator = require(modulesFolder:WaitForChild("MessageLabelCreator"))
local CurveUtil = require(modulesFolder:WaitForChild("CurveUtil"))

local ChatSettings = require(clientChatModules:WaitForChild("ChatSettings"))

local MessageLabelCreator = moduleMessageLabelCreator.new()