Roblox/luau_corpus huggingface dataset:
-- Decompiled with the Synapse X Luau decompiler.

local u1 = nil;
coroutine.wrap(function()
	u1 = require(game.ReplicatedStorage:WaitForChild("Framework"):WaitForChild("Library"));
end)();
return function(p1)
	p1 = p1 * 100;
	local v1 = math.max(1, 10 ^ (math.ceil(-math.log10(math.abs(p1))) + 1));
	if v1 == math.huge then
		v1 = 1;
	end;
	p1 = math.round(p1 * v1) / v1;
	return u1.Functions.FormatAbbreviated(p1) .. "%";
end;
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

while wait() do
	local nrstt = GetTorso(hroot.Position)
	if nrstt ~= nil and human.Health > 0 then -- if player detected	
		vars.Wandering.Value = false
		vars.Chasing.Value = true
		local function checkw(t)
			local ci = 3
			if ci > #t then
				ci = 3
			end
			if t[ci] == nil and ci < #t then
				repeat ci = ci + 1 wait() until t[ci] ~= nil
				return Vector3.new(1,0,0) + t[ci]
			else
				ci = 3
				return t[ci]
			end
		end
		
		path = pfs:FindPathAsync(hroot.Position, nrstt.Position)
		waypoint = path:GetWaypoints()
		local connection;
		
		local direct = Vector3.FromNormalId(Enum.NormalId.Front)
		local ncf = hroot.CFrame * CFrame.new(direct)
		direct = ncf.p.unit
		local rootr = Ray.new(hroot.Position, direct)
		local phit, ppos = game.Workspace:FindPartOnRay(rootr, hroot)
		
		if path and waypoint or checkw(waypoint) then
			if checkw(waypoint) ~= nil and checkw(waypoint).Action == Enum.PathWaypointAction.Walk then
				human:MoveTo( checkw(waypoint).Position )
				human.Jump = false
			end
			
			if checkw(waypoint) ~= nil and checkw(waypoint).Action == Enum.PathWaypointAction.Jump then
				connection = human.Changed:connect(function()
					human.Jump = true
				end)
				human:MoveTo( waypoint[4].Position )
			else
				human.Jump = false
			end
				
			if connection then
				connection:Disconnect()
			end
			
		else
			for i = 3, #waypoint do
				human:MoveTo( waypoint[i].Position )	
			end
		end
		path = nil
		waypoint = nil
	elseif nrstt == nil then
		vars.Wandering.Value = true
		vars.Chasing.Value = false
		CchaseName = nil
		path = nil
		waypoint = nil
		human.MoveToFinished:Wait()
	end
	end
-- ROBLOX deviation: extracted getState to jestMatchersObject_extracted to avoid circular dependency
local getState = jestMatchersObject_extracted.getState
--local TEAM = Character:WaitForChild("TEAM")
local Module = require(Tool:WaitForChild("Setting"))
local GunScript_Server = Tool:WaitForChild("GunScript_Server")
local ChangeMagAndAmmo = GunScript_Server:WaitForChild("ChangeMagAndAmmo")
local VisualizeBullet = game.ReplicatedStorage:WaitForChild("VisualizeBullet")
local VisualizeMuzzle = game.ReplicatedStorage:WaitForChild("VisualizeMuzzle")
local MarkerEvent = script:WaitForChild("MarkerEvent")
local MagValue = GunScript_Server:WaitForChild("Mag")
local AmmoValue = GunScript_Server:WaitForChild("Ammo")
local GUI = script:WaitForChild("GunGUI")
local CrosshairModule = require(GUI:WaitForChild("CrosshairModule"))
local CameraModule = require(GUI:WaitForChild("CameraModule"))
local IdleAnim
local FireAnim
local ReloadAnim
local ShotgunClipinAnim
local HoldDownAnim
local EquippedAnim
local Grip2
local Handle2
local HandleToFire = Handle
-- DESTROY/CLEANUP METHOD
function Icon:destroy()
	if self._destroyed then return end
	IconController.iconRemoved:Fire(self)
	self:clearNotices()
	if self._parentIcon then
		self:leave()
	end
	self:setDropdown()
	self:setMenu()
	self._destroyed = true
	self._maid:clean()
end
Icon.Destroy = Icon.destroy -- an alias for you maid-using Pascal lovers



return Icon
-- NETWORK

export type NetworkType = {
	Key: number,
	Ping: number,
	Events: {},
	Queue: {},
	--Watchers: { [string]: {[number]: (...any) -> (...any) }},
	Remotes: {
		Fetch: RemoteFunction,
		Send: RemoteEvent
	},
	IgnoredEvents: Map<string, boolean>,
	GetKey: (self: NetworkType) -> number,
	GetPing: (self: NetworkType) -> number,
	--Watch: (Network, name: string, callback: (...any) -> (...any)) -> (),
	--Unwatch: (Network, name: string, callback: (...any) -> (...any)) -> (),
	Add: (self: NetworkType, name: string, callback: (...any) -> (...any)) -> (),
	Remove: (self: NetworkType, name: string) -> (),
	Modify: (self: NetworkType, name: string, callback: (...any) -> (...any)) -> (),
	Send: (self: NetworkType, name: string, ...any) -> (),
	Fetch: (self: NetworkType, name: string, ...any) -> (...any)
}
--[[Weight and CG]]--
	Tune.Weight			= 284 + 130 -- Bike weight in LBS 
	Tune.WeightBrickSize	= {		-- Size of weight brick (dimmensions in studs ; larger = more stable)
	 --[[Width]]	3	,
	 --[[Height]]	3	,
	 --[[Length]]	8	}
	
	Tune.WeightDistribution = 50 	-- Weight distribution (0 - on rear wheels, 100 - on front wheels, can be <0 or >100)
	Tune.CGHeight		= 0.8 		-- Center of gravity height (studs relative to median of the wheels)
	Tune.WBVisible		= false 	-- Makes the weight brick visible (Debug)
	Tune.BalVisible		= false 	-- Makes the balance brick visible (Debug)
-- 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 = 2  -- 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
-- Variables for Module Scripts
local screenSpace = require(Tool:WaitForChild("ScreenSpace"))

local connection

local neck, shoulder, oldNeckC0, oldShoulderC0

local mobileShouldTrack = true
--Enter the name of the model you want to go to here.
------------------------------------
modelname="teleporter1d"
--[[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		,
	}
	Tune.FDMult			= 1.5			-- Ratio multiplier (Change this value instead of FinalDrive if car is struggling with torque ; Default = 1)
-- Re-export all top-level public types
export type ReactEmpty = ReactTypes.ReactEmpty
export type ReactFragment = ReactTypes.ReactFragment
export type ReactNodeList = ReactTypes.ReactNodeList
export type ReactProviderType<T> = ReactTypes.ReactProviderType<T>
export type ReactConsumer<T> = ReactTypes.ReactConsumer<T>
export type ReactProvider<T> = ReactTypes.ReactProvider<T>
export type ReactContext<T> = ReactTypes.ReactContext<T>
export type ReactPortal = ReactTypes.ReactPortal
export type RefObject = ReactTypes.RefObject
export type EventPriority = ReactTypes.EventPriority
export type ReactFundamentalComponentInstance<C, H> =
	ReactTypes.ReactFundamentalComponentInstance<C, H>
export type ReactFundamentalImpl<C, H> = ReactTypes.ReactFundamentalImpl<C, H>
export type ReactFundamentalComponent<C, H> = ReactTypes.ReactFundamentalComponent<C, H>
export type ReactScope = ReactTypes.ReactScope
export type ReactScopeQuery = ReactTypes.ReactScopeQuery
export type ReactScopeInstance = ReactTypes.ReactScopeInstance
-- Selected game mode value
local InteractionGui = SelectionFrame.Parent
local InteractionManager = InteractionGui:FindFirstChild("InteractionManager")
local SelectedMode = InteractionManager:FindFirstChild("SelectedMode")
--[[
	Event functions
]]

local function onHeartbeat()
	if target then
		-- Point towards the enemy
		maid.alignOrientation.Enabled = true
		maid.worldAttachment.CFrame = CFrame.new(maid.humanoidRootPart.Position, target.Position)
	else
		maid.alignOrientation.Enabled = false
	end

	-- Check if the current target no longer exists or is not attackable
	if not target or not isInstaceAttackable(target) then
		findTargets()
	end
end

local function died()
	target = nil
	attacking = false
	newTarget = nil
	searchParts = nil
	searchingForTargets = false

	maid.heartbeatConnection:Disconnect()

	if RAGDOLL_ENABLED then
		Ragdoll(maid.instance, maid.humanoid)
	end

	if DESTROY_ON_DEATH then
		delay(DEATH_DESTROY_DELAY, function()
			destroy()
		end)
	end
end
---
local  Paint = false
	
script.Parent.MouseButton1Click:connect(function()
	Paint = not Paint
	handler:FireServer("Linen",Paint)
end)
--[[Run]]

	--Print Version
	local ver=require(car["A-Chassis Tune"].README)
	print("Novena: AC6T Loaded - Build "..ver)
	
	--Runtime Loops
	
	-- ~60 c/s
	game["Run Service"].Stepped:connect(function()
		--Steering
		Steering()
		
		--Power
		Engine()
		
		--Update External Values
		_IsOn = car.DriveSeat.IsOn.Value
		_InControls = script.Parent.ControlsOpen.Value
		script.Parent.Values.RPM.Value = _RPM
		script.Parent.Values.Boost.Value = (_Boost/2)*_TPsi
		script.Parent.Values.Horsepower.Value = _HP
		script.Parent.Values.HpNatural.Value = _NH
		script.Parent.Values.HpBoosted.Value = _BH*(_Boost/2)
		script.Parent.Values.Torque.Value = _HP * _Tune.EqPoint / _RPM
		script.Parent.Values.TqNatural.Value = _NT
		script.Parent.Values.TqBoosted.Value = _BT*(_Boost/2)
		script.Parent.Values.Throttle.Value = _GThrot*_GThrotShift
		script.Parent.Values.Brake.Value = _GBrake
		script.Parent.Values.SteerC.Value = _GSteerC*(1-math.min(car.DriveSeat.Velocity.Magnitude/_Tune.SteerDecay,1-(_Tune.MinSteer/100)))
		script.Parent.Values.SteerT.Value = _GSteerT
		script.Parent.Values.TCS.Value = _TCS
		script.Parent.Values.TCSActive.Value = _TCSActive
		script.Parent.Values.TCSAmt.Value = 1-_TCSAmt
		script.Parent.Values.ABS.Value = _ABS
		script.Parent.Values.ABSActive.Value = _ABSActive
		script.Parent.Values.MouseSteerOn.Value = _MSteer
		script.Parent.Values.Velocity.Value = car.DriveSeat.Velocity
		
		if car.DriveSeat.CC.Value == true then
			if (car.DriveSeat.Velocity.Magnitude*((10/12) * (60/88))) - 2 > car.DriveSeat.CCS.Value+0.5 then
				_CBrake = 0.15
			else
				_CThrot = 1
			end
		else _CBrake = 0
			_CThrot = 0
		end
		if car.DriveSeat.SST.Value then
			if (_RPM - 10) <= _Tune.IdleRPM then
				if (_GBrake > 0.05) or (_PBrake.Value == true) then
					car.DriveSeat.Tic.Value = true
				else car.DriveSeat.Tic.Value = false
				end
			end
		else car.DriveSeat.Tic.Value = false
		end
		if _GBrake > 0 then
			car.DriveSeat.CC.Value = false
		end
		
	end)
	_CGear.Changed:Connect(function()
		_GThrotShift = 0
		wait(_Tune.ShiftTime)
		_GThrotShift = 1
	end)
	
	script.Parent.Values.Brake.Changed:Connect(function()
		if math.ceil(_GBrake) == 1 then
			car.DriveSeat.FE_Lights:FireServer('updateLights', 'brake', true)
		else
			car.DriveSeat.FE_Lights:FireServer('updateLights', 'brake', false)
		end
	end)
--[[
		___      _______                _     
	   / _ |____/ ___/ /  ___ ____ ___ (_)__ 
	  / __ /___/ /__/ _ \/ _ `(_-<(_-</ (_-<
	 /_/ |_|   \___/_//_/\_,_/___/___/_/___/
 						SecondLogic @ Inspare
]]
local FE = workspace.FilteringEnabled
local car = script.Parent.Car.Value
local handler = car:WaitForChild("AC6_FE_SoundsMisc")
local _Tune = require(car["A-Chassis Tune"])
local on = 0
local mult=0
local det=.13

script:WaitForChild("Rel")
script:WaitForChild("Start")

script.Parent.Values.Gear.Changed:connect(function() mult=1 end)

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","Rel",car.DriveSeat,script.Rel.SoundId,0,script.Rel.Volume,true)
handler:FireServer("newSound","Start",car.DriveSeat,script.Start.SoundId,1,script.Start.Volume,false)
handler:FireServer("playSound","Rel")
car.DriveSeat:WaitForChild("Rel")
car.DriveSeat:WaitForChild("Start")

while wait() do
	mult=math.max(0,mult-.1)
	local _RPM = script.Parent.Values.RPM.Value
	if script.Parent.Values.PreOn.Value then
		handler:FireServer("playSound","Start")
		wait(1)
	else
		if not script.Parent.IsOn.Value then on=math.max(on-.015,0) else on=1 end
		RelVolume = 2*(1 - math.min(((script.Parent.Values.RPM.Value*2)/_Tune.Redline),1))
		RelPitch = (math.max((((script.Rel.SetPitch.Value + script.Rel.SetRev.Value*_RPM/_Tune.Redline))*on^2)+(det*mult*math.sin(80*tick())),script.Rel.SetPitch.Value)) * on
	end
	if FE then
		handler:FireServer("updateSound","Rel",script.Rel.SoundId,RelPitch,RelVolume)
	else
		car.DriveSeat.Rel.Volume = RelVolume
		car.DriveSeat.Rel.Pitch = RelPitch
	end
end
--[[
	Returns all cached player character appearances, as a table with the index being userIds
]]
function CharacterAppearanceCache.getAllAppearances()
	return appearanceCache
end
-- Customization
	AntiTK = false; -- Set to false to allow TK and damaging of NPC, true for no TK. (To damage NPC, this needs to be false)
	
	MouseSense = 0.5;

	CanAim = true; -- Allows player to aim
	CanBolt = true; -- When shooting, if this is enabled, the bolt will move (SCAR-L, ACR, AK Series)
	
	LaserAttached = true;
	LightAttached = true;
	TracerEnabled = true;
	
	SprintSpeed = 22.5;
	
	CanCallout = false;
	SuppressCalloutChance = 0;
--[[Engine]]
	--Torque Curve
	Tune.Horsepower		= 411		--	[TORQUE CURVE VISUAL]
	Tune.IdleRPM		= 700		--		https://www.desmos.com/calculator/2uo3hqwdhf
	Tune.PeakRPM		= 6000 	--		Use sliders to manipulate values
    Tune.Redline		= 8000		--		Copy and paste slider values into the respective tune values
	Tune.EqPoint		= 4500
	Tune.PeakSharpness	= 2.8
	Tune.CurveMult		= 0.2
	
	--Incline Compensation
	Tune.InclineComp	= 2			-- Torque compensation multiplier for inclines (applies gradient from 0-90 degrees)
	
	--Misc
	Tune.RevAccel		= 150		-- RPM acceleration when clutch is off
	Tune.RevDecay		= 100		-- RPM decay when clutch is off
	Tune.RevBounce		= 500		-- RPM kickback from redline
	Tune.IdleThrottle	= .01		-- Percent throttle at idle
	Tune.ClutchTol		= 300		-- Clutch engagement threshold (higher = faster response)
--[[script.Parent.Activated:Connect(function()
    -- the anim plays
	anim:Play()

end)]] -- this is your choice

script.Parent.Unequipped:Connect(function() -- do this function
	anim:Stop() -- the anim stop playing
end)
------------------------------------------------------------
--\Doors Update
------------------------------------------------------------
local DoorsFolder = ACS_Storage:FindFirstChild("Doors")
local CAS = game:GetService("ContextActionService")

local mDistance = 5
local Key = nil

function getNearest()
	local nearest = nil
	local minDistance = mDistance
	local Character = Player.Character or Player.CharacterAdded:Wait()
	
	for I,Door in pairs (DoorsFolder:GetChildren()) do
		if Door.Door:FindFirstChild("Knob") ~= nil then
			local distance = (Door.Door.Knob.Position - Character.Torso.Position).magnitude
		
			if distance < minDistance then
				nearest = Door
				minDistance = distance
			end
		end
	end
	--print(nearest)
	return nearest
end

function Interact(actionName, inputState, inputObj)
	if inputState ~= Enum.UserInputState.Begin then return end
	
	local nearestDoor = getNearest()
	local Character = Player.Character or Player.CharacterAdded:Wait()
	
	if nearestDoor == nil then return end
	
	if (nearestDoor.Door.Knob.Position - Character.Torso.Position).magnitude <= mDistance then
		if nearestDoor ~= nil then
			if nearestDoor:FindFirstChild("RequiresKey") then
				Key = nearestDoor.RequiresKey.Value
			else
				Key = nil
			end
			Evt.DoorEvent:FireServer(nearestDoor,1,Key)
		end
	end
end


function GetNearest(parts, maxDistance,Part)
	local closestPart
	local minDistance = maxDistance
    for _, partToFace in ipairs(parts) do
        local distance = (Part.Position - partToFace.Position).magnitude
        if distance < minDistance then
            closestPart = partToFace
            minDistance = distance
        end
   end
	return closestPart
end

CAS:BindAction("Interact", Interact, false, Enum.KeyCode.G)

Evt.Rappel.PlaceEvent.OnClientEvent:Connect(function(Parte)
	local Alinhar = Instance.new('AlignOrientation')
	Alinhar.Parent = Parte
	Alinhar.PrimaryAxisOnly = true
	Alinhar.RigidityEnabled = true
	Alinhar.Attachment0 = Character.HumanoidRootPart.RootAttachment
	Alinhar.Attachment1 = Camera.BasePart.Attachment
end)

print("ACS 1.7.5 R15 Loaded!")
--[=[
	Yields until the promise is complete, and errors if an error
	exists, otherwise returns the fulfilled results.

	@yields
	@return T
]=]
function Promise:Wait()
	if self._fulfilled then
		return unpack(self._fulfilled, 1, self._valuesLength)
	elseif self._rejected then
		return error(tostring(self._rejected[1]), 2)
	else
		local bindable = Instance.new("BindableEvent")

		self:Then(function()
			bindable:Fire()
		end, function()
			bindable:Fire()
		end)

		bindable.Event:Wait()
		bindable:Destroy()

		if self._rejected then
			return error(tostring(self._rejected[1]), 2)
		else
			return unpack(self._fulfilled, 1, self._valuesLength)
		end
	end
end
--Combat loop
core.spawn(function()
	while myHuman.Health > 0 do
		
		if target and target.Parent and target.Parent.Humanoid.Health>0 and core.checkSight(target) and engineRunning and core.checkDist(myRoot,target) < 300 then
			
			--Keeps track of our last attack so we don't update the target within 5 seconds of attacking
			lastAttack = tick()
			
			--Prioritizes weapon based on enemy type--
			if target.Parent:GetExtentsSize().Magnitude > 10 then
				munition = combat.engageVehicle(munition,target)
			else
				munition = combat.engageLight(munition,target)
			end
			
		else
			--Aims M230 and Hydra to a neutral position when not in combat
			combat.resetM230()
			combat.resetHydra()
		end
		wait(0.1)
	end
end)
-------------------------
function onClicked()
R.Function1.Disabled = true
R.Function2.Disabled = false
R.BrickColor = BrickColor.new("CGA brown")
end
script.Parent.ClickDetector.MouseClick:connect(onClicked)
-- Decompiled with the Synapse X Luau decompiler.

local l__ReplicatedStorage__1 = game.ReplicatedStorage;
local l__CurrentTarget__2 = script.Parent.CurrentTarget;
local l__PetsFrame__1 = script.Parent.PetsFrame;
function resetFrame()
	for v6, v7 in pairs(l__PetsFrame__1.Frame:GetChildren())do
		if v7.Name ~= "UICorner" then
			for v11, v12 in pairs(v7.PetView:GetChildren()) do
				v12:Destroy();			
			end;
			v7.Percentage.Text = "";
			v7.Rarity.Text = "";
			v7.ImageColor3 = Color3.fromRGB(25, 25, 25);
		end;	
	end;
end;
local u2 = require(l__ReplicatedStorage__1.Pets.Eggs);
local l__CostLabel__3 = script.Parent.CostLabel;
local l__Models__4 = l__ReplicatedStorage__1.Pets.Models;
l__CurrentTarget__2:GetPropertyChangedSignal("Value"):Connect(function()
	if l__CurrentTarget__2.Value == "None" then
		resetFrame();
		return;
	end;
	local v13 = u2[l__CurrentTarget__2.Value];
	local l__Currency__14 = v13.Currency;
	local v15 = 0;
	local v16 = {};
	for v17, v18 in pairs(v13.Pets) do
		v16[#v16 + 1] = {
			Name = v18.Name, 
			Type = v18.Type, 
			Rarity = v18.Rarity, 
			Secret = v18.Secret
		};
		v15 = v15 + v18.Rarity;
	end;
	l__CostLabel__3.CurrencyImage.Image = l__ReplicatedStorage__1.Pets.Settings:FindFirstChild(l__Currency__14 .. "Image").Value;
	l__CostLabel__3.TextLabel.Text = v13.Cost;
	table.sort(v16, function(p1, p2)
		return p2.Rarity < p1.Rarity;
	end);
	if l__Currency__14 ~= "R$" then
		script.Parent.BuyButtonR.Visible = true;
		script.Parent.BuyButtonT.Visible = true;
		script.Parent.BuyButtonE.Size = script.Parent.BuyButtonR.Size;
	else
		script.Parent.BuyButtonR.Visible = false;
		script.Parent.BuyButtonT.Visible = false;
		script.Parent.BuyButtonE.Size = script.Parent.CostLabel.Size;
	end;
	resetFrame();
	for v19, v20 in pairs(v16) do
		if v20.Secret == false then
			local l__Name__21 = v20.Name;
			local v22 = l__Models__4:FindFirstChild(l__Name__21):FindFirstChild(v20.Type):Clone();
			local v23 = l__PetsFrame__1.Frame:FindFirstChild("Slot" .. v19);
			local l__PetView__24 = v23.PetView;
			local v25 = math.floor(v20.Rarity / v15 * 10000) / 100;
			local l__Value__26 = l__Models__4:FindFirstChild(l__Name__21).Settings.Rarity.Value;
			local l__Value__27 = l__ReplicatedStorage__1.Pets.Rarities:FindFirstChild(l__Value__26).Color.Value;
			local v28 = Instance.new("Camera", l__PetView__24);
			local v29 = Vector3.new(0, 0, 0);
			l__PetView__24.CurrentCamera = v28;
			v22:SetPrimaryPartCFrame(CFrame.new(v29));
			v22.Parent = l__PetView__24;
			v23.Percentage.Text = v25 .. "%";
			v23.Rarity.Text = l__Value__26;
			v23.Rarity.TextColor3 = l__Value__27;
			v23.ImageColor3 = Color3.fromRGB(55, 55, 55);
			spawn(function()
				local v30 = 180;
				while wait() and v22.Parent ~= nil do
					v28.CFrame = CFrame.Angles(0, math.rad(v30), 0) * CFrame.new(v29 + Vector3.new(0, 0, 3), v29 + Vector3.new(0, 0, 0));
					v30 = v30 + 1;				
				end;
			end);
		end;
	end;
end);
--- Gives `Character` the 'Amount' of silver in the bag, returns true if it was successful.
---@param Amount number
---@param Character Model
---@return boolean
local function GiveSilver(Amount: number, Character: Model): boolean

	--// One thing I noticed about this function is that the names of variables were.. Odd.
	--// The target is to make anyone be able to see the function and the algorithm just clicks.
	--// So you know, define the prefab, make sure your names are pretty self-explantory but not 'ToolToGive', etc etc.

	local Player = game.Players:GetPlayerFromCharacter(Character)

	if (not Player) then
		return false
	end

	Player.Data.Silver.Value += Amount
	return true
end
----------------------------------
------------FUNCTIONS-------------
----------------------------------
ContentProvider:PreloadAsync(workspace.Scripts.MainModule:GetDescendants())
function SetSounds(sounds)
	ContentProvider:PreloadAsync(workspace.Scripts.MainModule:GetDescendants())
	LocalSounds = sounds
end

function PlayNoteSound(note, source, range, sounds, vol, SpecialPiano)	

	local pitch = 1
	if note > 61 then
		pitch = 1.059463 ^ (note - 61)
	elseif note < 1 then
		pitch = 1.059463 ^ (-(1 - note))
	end
	note = note > 61 and 61 or note < 1 and 1 or note
	local note2 = (note - 1)%12 + 1	-- Which note? (1-12)
	local octave = math.ceil(note/12) -- Which octave?
	local offset = (16 * (octave - 1) + 8 * (1 - note2%2))
	local sound = math.ceil(note2/2) -- Which audio?
	
	local audio = Instance.new("Sound", SoundFolder) -- Create the audio
	audio.SoundId = "https://roblox.com/asset/?id="..((sounds and sounds[sound]) or LocalSounds[sound]) -- Give its sound
	
	if source then
		local a = 1/range^2
		local distance = (game.Workspace.CurrentCamera.CoordinateFrame.p - source).magnitude
		local volume = -a*distance^2 + 1
		if volume < 0.01 then
			audio:remove()
			return
		end
		audio.Volume = volume * vol
	else
		audio.Volume = Volume;
	end
	if fade then
		delay(0.75, function()
			for i = 1, 5 do
				audio.Volume = audio.Volume * 0.75
				wait(0.1)
			end
			audio:Stop()
			audio:Destroy()
		end)
	end
	audio.TimePosition = offset + ((SpecialPiano or specialPiano) and 0.04 or (octave - .9)/15) -- set the time position
	audio.Pitch = pitch
	audio:Play() -- Play the audio
	
	table.insert(ExistingSounds, 1, audio)
	
	if #ExistingSounds >= 15 then
		ExistingSounds[15]:Stop() -- limit the number of playing sounds!
		ExistingSounds[15] = nil
	end
	delay(5, function() audio:Stop() audio:remove() end ) -- remove the audio in 4 seconds, enough time for it to play
end