Pinkstack/roblox-luau-corpus-text huggingface dataset:
--remove any of the following parts that say "(parts[i].className == [className])" if you want to exclude that particular className type from the Weld


	if ((parts[i].className == "Part") or (parts[i].className == "Seat") or (parts[i].className == "TrussPart") or (parts[i].className == "VehicleSeat") or (parts[i].className == "SkateboardPlatform")) then
		if (prev ~= nil) then
			local weld = Instance.new("Weld")
			weld.Part0 = prev
			weld.Part1 = parts[i]
			weld.C0 = prev.CFrame:inverse()
			weld.C1 = parts[i].CFrame:inverse()
			weld.Parent = prev
			parts[i].Anchored = false
		end
		prev = parts[i]
	end
end
wait(3)
-- Simulate camera shake (not great, but works well enough for this):


local function GetCameraShake()
	local dragAngle = Angle(seat.CFrame.lookVector, seat.Velocity)
	local speed = seat.Velocity.Magnitude
	
	local shakeMagnitude = (speed * 0.02) * dragAngle * 0.1
	
	local theta = RAND() * TAU
	local x = COS(theta) * shakeMagnitude
	local y = SIN(theta) * shakeMagnitude
	--                   ^
	-- THE STARS ALIGN   ^   DUN DUN DUN
	--                   ^
	
	return V3(x, y, 0)
end


local function GetCameraRotation()
	
	-- Relative rotational velocity:
	dampCam.Goal = -seat.CFrame:vectorToObjectSpace(seat.RotVelocity) * 0.1
	local relRotVel = dampCam:Update()
	
	-- Camera shake offset:
	dampShake.Goal = GetCameraShake()
	local shake = CF(dampShake:Update())
	
	-- User view rotation:
	local viewRotation = dampRot:Update()
	viewRotation = ANG(0, viewRotation.X, 0) * ANG(viewRotation.Y, 0, 0)
	
	return ANG(0, 0, mobileDeviceBank) * viewRotation * ANG(relRotVel.X, relRotVel.Y, relRotVel.Z) * shake
	
end
-- Hook events


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()
	Gui.CanvasPosition = Vector2.new(0, Gui.AbsoluteCanvasSize.Y)
	
	if string.match(Entry.TextBox.Text, '\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(function()
	task.defer(Window.UpdateWindowHeight)
end)

return Window
--[=[
	Prepends the value onto the emitted brio
	@since 3.6.0
	@param ... T
	@return (source: Observable<Brio<U>>) -> Observable<Brio<U | T>>
]=]


function RxBrioUtils.prepend(...)
	local args = table.pack(...)

	return Rx.map(function(brio)
		assert(Brio.isBrio(brio), "Bad brio")

		return BrioUtils.prepend(brio, table.unpack(args, 1, args.n))
	end)
end
--"False" = Not Acceptable Keycard To Open. "True" = Acceptable Keycard To Open.--



local bool = true
local bool2 = true
local clearance = {
	["[SCP] Card-Omni"] = true, 
	["[SCP] Card-L5"] = false, 
	["[SCP] Card-L4"] = false,
	["[SCP] Card-L3"] = false,
	["[SCP] Card-L2"] = false,
	["[SCP] Card-L1"] = false
}

						--DO NOT EDIT BEYOND THIS LINE--
local LeftDoor = script.Parent
local RightDoor = script.Parent.Parent.RightDoor
local Open = false

local OpenSound = script.Parent.DoorOpen
local CloseSound = script.Parent.DoorClose

local Debounce = false
function openDoor()
	if not Debounce then
		Debounce = true
		if Open then
			Open = false
			CloseSound:Play()
			Spawn(function()
				for i = 1, 60 do
					LeftDoor.CFrame = LeftDoor.CFrame + (LeftDoor.CFrame.lookVector * 0.1)
					wait(0.05)
				end
			end)
			Spawn(function()
				for i = 1, 60 do
					RightDoor.CFrame = RightDoor.CFrame + (RightDoor.CFrame.lookVector * 0.1)
					wait(0.05)
				end
			end)
		else
			Open = true
			OpenSound:Play()
			Spawn(function()
				for i = 1, 60 do
					LeftDoor.CFrame = LeftDoor.CFrame - (LeftDoor.CFrame.lookVector * 0.1)
					wait(0.05)
				end
			end)
			Spawn(function()
				for i = 1, 60 do
					RightDoor.CFrame = RightDoor.CFrame - (RightDoor.CFrame.lookVector * 0.1)
					wait(0.05)
				end
			end)
		end
		wait(2.5)
		Debounce = false
	end
end

script.Parent.Parent.KeycardReader1.touched:connect(function(touch)
	if touch.Name == "Handle" and clearance[touch.Parent.Name] and bool then
		bool = false
		script.Parent.AccessGranted:play()
		wait(0.75)
		openDoor()
		wait(3)
		bool = true
	elseif touch.Name == "Handle" and not clearance[touch.Parent.Name] and bool2 then
		bool2 = false
		script.Parent.AccessDenied:play()
		wait(1)
		bool2 = true
	end
end)

script.Parent.Parent.KeycardReader2.touched:connect(function(touch)
	if touch.Name == "Handle" and clearance[touch.Parent.Name] and bool then
		bool = false
		script.Parent.AccessGranted:play()
		wait(0.75)
		openDoor()
		wait(3)
		bool = true
	elseif touch.Name == "Handle" and not clearance[touch.Parent.Name] and bool2 then
		bool2 = false
		script.Parent.AccessDenied:play()
		wait(1)
		bool2 = true
	end
end)
-- Given diffs from expected and received strings,
-- return new array of diffs split or joined into lines.
--
-- To correctly align a change line at the end, the algorithm:
-- * assumes that a newline was appended to the strings
-- * omits the last newline from the output array
--
-- Assume the function is not called:
-- * if either expected or received is empty string
-- * if neither expected nor received is multiline string


return function(diffs: Array<Diff>, changeColor: DiffOptionsColor): Array<Diff>
	local deleteBuffer = ChangeBuffer.new(DIFF_DELETE, changeColor)
	local insertBuffer = ChangeBuffer.new(DIFF_INSERT, changeColor)
	-- ROBLOX FIXME Luau: another issue with normalization: Property 'deleteBuffer' is not compatible
	local commonBuffer = CommonBuffer.new(deleteBuffer, insertBuffer) :: any

	for _, diff in ipairs(diffs) do
		local case = diff[1]
		if case == DIFF_DELETE then
			deleteBuffer:align(diff)
		elseif case == DIFF_INSERT then
			insertBuffer:align(diff)
		else
			commonBuffer:align(diff)
		end
	end

	return commonBuffer:getLines()
end
--[[Susupension]]


	Tune.SusEnabled		= true		-- works only in with PGSPhysicsSolverEnabled, defaults to false when PGS is disabled
	
	--Front Suspension
	Tune.FSusDamping	= 300		-- Spring Dampening
	Tune.FSusStiffness	= 4000		-- Spring Force
	Tune.FAntiRoll 		= 50		-- Anti-Roll (Gyro Dampening)
	
	Tune.FSusLength		= 2			-- Suspension length (in studs)
	Tune.FPreCompress	= .7		-- Pre-compression adds resting length force
	Tune.FExtensionLim	= .3		-- Max Extension Travel (in studs)
	Tune.FCompressLim	= .1		-- Max Compression Travel (in studs)
	Tune.FSusAngle		= 80		-- Suspension Angle (degrees from horizontal)
		
	Tune.FWsBoneLen		= 5			-- Wishbone Length
	Tune.FWsBoneAngle	= 0			-- Wishbone angle (degrees from horizontal)
	Tune.FAnchorOffset	= {			-- Suspension anchor point offset (relative to center of wheel)
	 --[[Lateral]]		-.4		,	-- positive = outward
	 --[[Vertical]]		-.5		,	-- positive = upward
	 --[[Forward]]		0		}	-- positive = forward
	
	--Rear Suspension
	Tune.RSusDamping	= 300		-- Spring Dampening
	Tune.RSusStiffness	= 4000		-- Spring Force
	Tune.FAntiRoll 		= 50		-- Anti-Roll (Gyro Dampening)

	Tune.RSusLength		= 2			-- Suspension length (in studs)
	Tune.RPreCompress	= .7		-- Pre-compression adds resting length force
	Tune.RExtensionLim	= .3		-- Max Extension Travel (in studs)
	Tune.RCompressLim	= .1		-- Max Compression Travel (in studs)
	Tune.RSusAngle		= 80		-- Suspension Angle (degrees from horizontal)
		
	Tune.RWsBoneLen		= 5			-- Wishbone Length
	Tune.RWsBoneAngle	= 0			-- Wishbone angle (degrees from horizontal)
	Tune.RAnchorOffset	= {			-- Suspension anchor point offset (relative to center of wheel)
	 --[[Lateral]]		-.4		,	-- positive = outward
	 --[[Vertical]]		-.5		,	-- positive = upward
	 --[[Forward]]		0		}	-- positive = forward

	--Aesthetics	
	Tune.SusVisible		= true			-- Spring Visible
	Tune.WsBVisible		= false			-- Wishbone Visible
	Tune.SusRadius		= .2			-- Suspension Coil Radius
	Tune.SusThickness	= .1			-- Suspension Coil Thickness
	Tune.SusColor		= "Bright red"	-- Suspension Color [BrickColor]
	Tune.SusCoilCount	= 6				-- Suspension Coil Count
	Tune.WsColor		= "Black"		-- Wishbone Color [BrickColor]
	Tune.WsThickness	= .1			-- Wishbone Rod Thickness
--[=[
	Wraps :UpdateAsync() in a promise
	@param robloxDataStore DataStore
	@param key string
	@param updateFunc (T) -> T?
	@return Promise<boolean>
]=]



function DataStorePromises.updateAsync(robloxDataStore, key, updateFunc)
	assert(typeof(robloxDataStore) == "Instance", "Bad robloxDataStore")
	assert(type(key) == "string", "Bad key")
	assert(type(updateFunc) == "function", "Bad updateFunc")

	return Promise.spawn(function(resolve, reject)
		local result = nil
		local ok, err = pcall(function()
			result = { robloxDataStore:UpdateAsync(key, updateFunc) }
		end)
		if not ok then
			return reject(err)
		end
		if not result then
			return reject("No result loaded")
		end
		return resolve(unpack(result))
	end)
end
-- [ SETTINGS ] --



local StatsName = "Gems" -- Your stats name
local MaxItems = 25 -- Max number of items to be displayed on the leaderboard
local MinValueDisplay = 1 -- Any numbers lower than this will be excluded
local MaxValueDisplay = 10e15 -- (10 ^ 15) Any numbers higher than this will be excluded
local UpdateEvery = 65 -- (in seconds) How often the leaderboard has to update
-- Mouse


Mouse.Move:connect(function()
	gui.FakeC.Position = UDim2.new(0,Mouse.x-gui.FakeC.Size.X.Offset/2,0,Mouse.y-gui.FakeC.Size.Y.Offset/2)	

	if Mouse.Target then
		if game.Players:FindFirstChild(Mouse.Target.Parent.Name) and Mouse.Target.Parent.Name ~= plr.Name then
			if game.Players[Mouse.Target.Parent.Name].TeamColor == plr.TeamColor then
				gui.FakeC.BackgroundColor3 = Color3.fromRGB(0,255,0)
			else
				gui.FakeC.BackgroundColor3 = Color3.fromRGB(255,0,0)				
			end
		elseif game.Players:FindFirstChild(Mouse.Target.Parent.Parent.Name) and Mouse.Target.Parent.Parent.Name ~= plr.Name then
			if game.Players[Mouse.Target.Parent.Parent.Name].TeamColor == plr.TeamColor then
				gui.FakeC.BackgroundColor3 = Color3.fromRGB(0,255,0)
			else
				gui.FakeC.BackgroundColor3 = Color3.fromRGB(255,0,0)				
			end
		elseif Mouse.Target.Parent:FindFirstChild("HumanoidLink") and Mouse.Target.Parent.HumanoidLink.Value.Parent.Name ~= plr.Name then
			if game.Players[Mouse.Target.Parent.HumanoidLink.Value.Parent.Name].TeamColor == plr.TeamColor then
				gui.FakeC.BackgroundColor3 = Color3.fromRGB(0,255,0)
			else
				gui.FakeC.BackgroundColor3 = Color3.fromRGB(255,0,0)				
			end
		else
			gui.FakeC.BackgroundColor3 = Color3.fromRGB(255,255,255)
		end
	end
end)

local UserInputService = game:GetService("UserInputService")
UserInputService.InputBegan:connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton3 then
		if script.Parent.MainGui.FakeC.Size == UDim2.new(0,4,0,4) then
		   script.Parent.MainGui.FakeC.Size = UDim2.new(0,2,0,2)
		else
		   script.Parent.MainGui.FakeC.Size = UDim2.new(0,4,0,4)		
		end
		gui.FakeC.Position = UDim2.new(0,Mouse.x-gui.FakeC.Size.X.Offset/2,0,Mouse.y-gui.FakeC.Size.Y.Offset/2)	
	end	
end)
--- An expensive way to spawn a function. However, unlike spawn(), it executes on the same frame, and
-- unlike coroutines, does not obscure errors
-- @module fastSpawn



return function(func, ...)
	assert(type(func) == "function")

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

	local bindable = Instance.new("BindableEvent")
	bindable.Event:Connect(function()
		func(unpack(args, 1, count))
	end)

	bindable:Fire()
	bindable:Destroy()
end
-- check if the player is moving and not climbing


humanoid.Running:Connect(function(speed)
	if humanoid.MoveDirection.Magnitude > 0 and speed > 0 and humanoid:GetState() ~= Enum.HumanoidStateType.Climbing then
		if oldWalkSpeed ~= humanoid.WalkSpeed then
			getSoundProperties()
			update()
		end
		currentSound.Playing = true
		currentSound.Looped = true
	else
		currentSound:Stop()
	end
end)
--s.Pitch = 0.7
--[[for x = 1, 50 do
s.Pitch = s.Pitch + 0.20 1.900
s:play()
wait(0.001)
end]]
--[[Chopper level 5=1.2, Chopper level 4=1.04]]



	s.Volume=1
while s.Pitch<1 do
s.Pitch=s.Pitch+0.010
s:Play()
if s.Pitch>1 then
	s.Pitch=1
end
wait(-9)
end

while true do
for x = 1, 500 do
s:play()
wait(-9)
end
end
--[[Weld functions]]



	local JS = game:GetService("JointsService")
	local PGS_ON = workspace:PGSIsEnabled()
	
	function MakeWeld(x,y,type,s) 
		if type==nil then type="Weld" end
		local W=Instance.new(type,JS) 
		W.Part0=x W.Part1=y 
		W.C0=x.CFrame:inverse()*x.CFrame 
		W.C1=y.CFrame:inverse()*x.CFrame 
		if type=="Motor" and s~=nil then 
			W.MaxVelocity=s 
		end 
		return W	
	end
	
	function ModelWeld(a,b) 
		if a:IsA("BasePart") and 
			a.Parent.Name ~= ("Hood") then 
			MakeWeld(b,a,"Weld")
			for i,v in pairs(a:GetChildren()) do 
				if v ~= nil and v:IsA("BasePart") then
					ModelWeld(v,b) 
				end
			end
		elseif a:IsA("Model") then 
			for i,v in pairs(a:GetChildren()) do 
				ModelWeld(v,b) 
			end 
		end 
	end
	
	function UnAnchor(a) 
		if a:IsA("BasePart") then a.Anchored=false  end for i,v in pairs(a:GetChildren()) do UnAnchor(v) end 
	end
--- Get (or create) BindableEvent


function GetEvent(eventName)
	--- Variables
	eventName = string.lower(eventName)
	local event = events[eventName]

	--- Check if event already exists
	if not event then
		--- Create event
		event = Instance.new("BindableEvent")
		event.Name = eventName
		events[eventName] = event
	end

	--
	return event
end
--// Modules


local Zone = require(script['Zone'])

local module = {}

module.SpawnHB = function(data)
	local part = data.part
	local cf = data.cf or part.CFrame 
	local Shape = data.Shape or 'Square'
	local size = data.size or Vector3.new(5,5,5)
	local tim = data.tim
	
	local HB = script.Storage[Shape]:Clone()
	HB.Parent = workspace.World.Hitbox
	HB.CFrame = cf 
	HB.Size = size
	
	if tim then
		game.Debris:AddItem(HB, tim)
	end
	
	return HB
end
--Change sound id to the id you want to play




debounce = false

script.Parent.Touched:connect(function(hit)
if not debounce then
debounce = true
if(hit.Parent:FindFirstChild("Humanoid")~=nil)then
local player = game.Players:GetPlayerFromCharacter(hit.Parent)
local sound = script.Parent.Sound:Clone()
sound.Parent = player.PlayerGui
sound:Play()
wait(10)--change to how long before the sound plays again after retouching it
end
debounce = false
end
end)
-- SETUP ICON TEMPLATE


local topbarPlusGui = Instance.new("ScreenGui")
topbarPlusGui.Enabled = true
topbarPlusGui.DisplayOrder = 0
topbarPlusGui.IgnoreGuiInset = true
topbarPlusGui.ResetOnSpawn = false
topbarPlusGui.Name = "TopbarPlus"

local activeItems = Instance.new("Folder")
activeItems.Name = "ActiveItems"
activeItems.Parent = topbarPlusGui

local topbarContainer = Instance.new("Frame")
topbarContainer.BackgroundTransparency = 1
topbarContainer.Name = "TopbarContainer"
topbarContainer.Position = UDim2.new(0, 0, 0, 0)
topbarContainer.Size = UDim2.new(1, 0, 0, 36)
topbarContainer.Visible = true
topbarContainer.ZIndex = 1
topbarContainer.Parent = topbarPlusGui
topbarContainer.Active = false

local iconContainer = Instance.new("Frame")
iconContainer.BackgroundTransparency = 1
iconContainer.Name = "IconContainer"
iconContainer.Position = UDim2.new(0, 104, 0, 4)
iconContainer.Visible = false
iconContainer.ZIndex = 1
iconContainer.Parent = topbarContainer
iconContainer.Active = false

local iconButton = Instance.new("TextButton")
iconButton.Name = "IconButton"
iconButton.Visible = true
iconButton.Text = ""
iconButton.ZIndex = 10--2
iconButton.BorderSizePixel = 0
iconButton.AutoButtonColor = false
iconButton.Parent = iconContainer
iconButton.Active = true
iconButton.TextTransparency = 1
iconButton.RichText = true

local iconImage = Instance.new("ImageLabel")
iconImage.BackgroundTransparency = 1
iconImage.Name = "IconImage"
iconImage.AnchorPoint = Vector2.new(0, 0.5)
iconImage.Visible = true
iconImage.ZIndex = 11--3
iconImage.ScaleType = Enum.ScaleType.Fit
iconImage.Parent = iconButton
iconImage.Active = false

local iconLabel = Instance.new("TextLabel")
iconLabel.BackgroundTransparency = 1
iconLabel.Name = "IconLabel"
iconLabel.AnchorPoint = Vector2.new(0, 0.5)
iconLabel.Position = UDim2.new(0.5, 0, 0.5, 0)
iconLabel.Text = ""
iconLabel.RichText = true
iconLabel.TextScaled = false
iconLabel.ClipsDescendants = true
iconLabel.ZIndex = 11--3
iconLabel.Active = false
iconLabel.AutoLocalize = true
iconLabel.Parent = iconButton

local fakeIconLabel = iconLabel:Clone()
fakeIconLabel.Name = "FakeIconLabel"
fakeIconLabel.AnchorPoint = Vector2.new(0, 0)
fakeIconLabel.Position = UDim2.new(0, 0, 0, 0)
fakeIconLabel.Size = UDim2.new(1, 0, 1, 0)
fakeIconLabel.TextTransparency = 1
fakeIconLabel.AutoLocalize = false
fakeIconLabel.Parent = iconLabel.Parent

local iconGradient = Instance.new("UIGradient")
iconGradient.Name = "IconGradient"
iconGradient.Enabled = true
iconGradient.Parent = iconButton

local iconCorner = Instance.new("UICorner")
iconCorner.Name = "IconCorner"
iconCorner.Parent = iconButton

local iconOverlay = Instance.new("Frame")
iconOverlay.Name = "IconOverlay"
iconOverlay.BackgroundTransparency = 1
iconOverlay.Position = iconButton.Position
iconOverlay.Size = UDim2.new(1, 0, 1, 0)
iconOverlay.Visible = true
iconOverlay.ZIndex = iconButton.ZIndex + 1
iconOverlay.BorderSizePixel = 0
iconOverlay.Parent = iconContainer
iconOverlay.Active = false

local iconOverlayCorner = iconCorner:Clone()
iconOverlayCorner.Name = "IconOverlayCorner"
iconOverlayCorner.Parent = iconOverlay
--[=[
	DataStore manager for player that automatically saves on player leave and game close.

	@server
	@class PlayerDataStoreManager
]=]



local require = require(script.Parent.loader).load(script)

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

local BaseObject = require("BaseObject")
local DataStore = require("DataStore")
local PromiseUtils = require("PromiseUtils")
local PendingPromiseTracker = require("PendingPromiseTracker")
local Maid = require("Maid")
local Promise = require("Promise")

local PlayerDataStoreManager = setmetatable({}, BaseObject)
PlayerDataStoreManager.ClassName = "PlayerDataStoreManager"
PlayerDataStoreManager.__index = PlayerDataStoreManager
--Aesthetics	


Tune.SusVisible		= false			-- Spring Visible
Tune.WsBVisible		= true			-- Wishbone Visible
Tune.SusRadius		= .2			-- Suspension Coil Radius
Tune.SusThickness	= .1			-- Suspension Coil Thickness
Tune.SusColor		= "Bright red"	-- Suspension Color [BrickColor]
Tune.SusCoilCount	= 6				-- Suspension Coil Count
Tune.WsColor		= "Black"		-- Wishbone Color [BrickColor]
Tune.WsThickness	= .1			-- Wishbone Rod Thickness
--	adap = a


	body.FSL.B.Light.Enabled = a
	body.FSR.B.Light.Enabled = a
	for i,v in pairs(body.FSL:GetChildren()) do
		if v.Name ~= "B" then
			v.Transparency = a and 0 or 1
		end
	end
	for i,v in pairs(body.FSR:GetChildren()) do
		if v.Name ~= "B" then
			v.Transparency = a and 0 or 1
		end
	end
-- Define the function to open or close the window with gene-alike effect


local function toggleWindow()
	if window.Visible then
		
		window.Visible = false
		dockbtn.Visible = false
		-- Close the window by tweening back to the button position and size
		window:TweenSizeAndPosition(
			UDim2.new(0, 0, 0, 0),
			UDim2.new(0, aFinderButton.AbsolutePosition.X, 0, aFinderButton.AbsolutePosition.Y),
			'Out',
			'Quad',
			0.5,
			false,
			function()
				window.Visible = false
			end
		)
	end
end
----- sink plug handler -----



plug.Interactive.ClickDetector.MouseClick:Connect(function()
	if plugged.Value == false then
		plugged.Value = true
		plug.Plug.CFrame = plug.Plug.CFrame * CFrame.new(-0.054, 0, 0)
		plug.Interactive.CFrame = plug.Interactive.CFrame * CFrame.new(0, 0.14, 0)
		plug.Shaft.CFrame = plug.Shaft.CFrame * CFrame.new(0, 0.14, 0)
	else
		plugged.Value = false
		plug.Plug.CFrame = plug.Plug.CFrame * CFrame.new(0.054, 0, 0)
		plug.Interactive.CFrame = plug.Interactive.CFrame * CFrame.new(0, -0.14, 0)
		plug.Shaft.CFrame = plug.Shaft.CFrame * CFrame.new(0, -0.14, 0)
	end
end)
--[[ icon_controller:header
## Functions

#### setGameTheme
```lua
IconController.setGameTheme(theme)
```
Sets the default theme which is applied to all existing and future icons.

----
#### setDisplayOrder
```lua
IconController.setDisplayOrder(number)
```
Changes the DisplayOrder of the TopbarPlus ScreenGui to the given value.

----
#### setTopbarEnabled
```lua
IconController.setTopbarEnabled(bool)
```
When set to ``false``, hides all icons created with TopbarPlus. This can also be achieved by calling ``starterGui:SetCore("TopbarEnabled", false)``.

----
#### setGap
```lua
IconController.setGap(integer, alignment)
```
Defines the offset width (i.e. gap) between each icon for the given alignment, ``left``, ``mid``, ``right``, or all alignments if not specified. 

----
#### getIcons
```lua
local arrayOfIcons = IconController.getIcons()
```
Returns all icons as an array.

----
#### getIcon
```lua
local icon = IconController.getIcon(name)
```
Returns the icon with the given name (or ``false`` if not found). If multiple icons have the same name, then one will be returned randomly.

----



## Properties
#### topbarEnabled
{read-only}
```lua
local bool = IconController.topbarEnabled
```

----
#### controllerModeEnabled
{read-only}
```lua
local bool = IconController.controllerModeEnabled
```

----
#### leftGap
{read-only}
```lua
local gapNumber = IconController.leftGap --[default: '12']
```

----
#### midGap
{read-only}
```lua
local gapNumber = IconController.midGap --[default: '12']
```

----
#### rightGap
{read-only}
```lua
local gapNumber = IconController.rightGap --[default: '12']
```
--]]
-- x3 EGGSOPEN



x3EggsOpenButton.MouseEnter:Connect(function()
	x3EggsOpenButton.Text = "349 R$"
	x3EggsOpenButton.TextColor3 = Color3.fromRGB(0, 255, 0)
end)

x3EggsOpenButton.MouseLeave:Connect(function()
	x3EggsOpenButton.Text = "BUY"
	x3EggsOpenButton.TextColor3 = Color3.fromRGB(255, 255, 255)
end)
-- Applying text filter


local function getTextObject(message, fromPlayerId)
	local textObject
	local success, errorMessage = pcall(function()
		textObject = TextService:FilterStringAsync(message, fromPlayerId, Enum.TextFilterContext.PublicChat)
	end)
	if success then
		return textObject
	elseif errorMessage then
		print("Error filtering message:", errorMessage)
	end
	return false
end

local function getFilteredMessage(textObject, toPlayerId)
	local filteredMessage
	local success, errorMessage = pcall(function()
		filteredMessage = textObject:GetNonChatStringForUserAsync(toPlayerId)
	end)
	if success then
		return filteredMessage
	elseif errorMessage then
		print("Error filtering message:", errorMessage)
	end
	return false
end

local function filterText(text, fromPlayerId, toPlayerId)
	local textObject = getTextObject(text, fromPlayerId)
	if textObject then
		local filteredObject = getFilteredMessage(textObject, toPlayerId)
		return filteredObject
	end
	return false
end
--[[Weld functions]]



	local JS = game:GetService("JointsService")
	local PGS_ON = workspace:PGSIsEnabled()
	
	function MakeWeld(x,y,type,s) 
		if type==nil then type="Weld" end
		local W=Instance.new(type,JS) 
		W.Part0=x W.Part1=y 
		W.C0=x.CFrame:inverse()*x.CFrame 
		W.C1=y.CFrame:inverse()*x.CFrame 
		if type=="Motor" and s~=nil then 
			W.MaxVelocity=s 
		end 
		return W	
	end
	
	function ModelWeld(a,b) 
		if a:IsA("BasePart") and 
			a.Parent.Name ~= ("Lights") then 
			MakeWeld(b,a,"Weld")
			for i,v in pairs(a:GetChildren()) do 
				if v ~= nil and v:IsA("BasePart") then
					ModelWeld(v,b) 
				end
			end
		elseif a:IsA("Model") then 
			for i,v in pairs(a:GetChildren()) do 
				ModelWeld(v,b) 
			end 
		end 
	end
	
	function UnAnchor(a) 
		if a:IsA("BasePart") then a.Anchored=false  end for i,v in pairs(a:GetChildren()) do UnAnchor(v) end 
	end