Roblox/luau_corpus huggingface dataset:
--returns the wielding player of this tool
function getPlayer()
	local char = Tool.Parent
	return game:GetService("Players"):GetPlayerFromCharacter(Character)
end

function Toss(direction)
	local handlePos = Vector3.new(Tool.Handle.Position.X, 0, Tool.Handle.Position.Z)
	local spawnPos = Character.Head.Position
	spawnPos  = spawnPos + (direction * 5)
	Tool.Handle.Transparency = 1

	local Object = Tool.Handle:Clone()
	Object.Parent = workspace
	Object.Transparency = 0
	Object.CanCollide = true
	Object.Organizar.Server.Disabled = false
	Object.Interface.Enabled = true

	Object.CFrame = Tool.Handle.CFrame
	Object.Velocity = (direction*AttackVelocity) + Vector3.new(0,AttackVelocity/7.5,0)
	local rand = 11.25
	Object.RotVelocity = Vector3.new(math.random(-rand,rand),math.random(-rand,rand),math.random(-rand,rand))
	Object:SetNetworkOwner(getPlayer())

	local tag = Instance.new("ObjectValue")
	tag.Value = getPlayer()
	tag.Name = "creator"
	tag.Parent = Object
	Tool:Destroy()
end


script.Parent.Power.OnServerEvent:Connect(function(player, Power)
	AttackVelocity = Power
end)

Remote.OnServerEvent:Connect(function(player, mousePosition)
	if not AttackAble then return end
	AttackAble = false
	if Humanoid and Humanoid.RigType == Enum.HumanoidRigType.R15 then
		Remote:FireClient(getPlayer(), "PlayAnimation", "Animation")
	end
	local targetPos = mousePosition.p
	local lookAt = (targetPos - Character.Head.Position).unit
	Toss(lookAt)
	LeftDown = true
end)

function onLeftUp()
	LeftDown = false
end

Tool.Equipped:Connect(function()
	Character = Tool.Parent
	Humanoid = Character:FindFirstChildOfClass("Humanoid")
end)

Tool.Unequipped:Connect(function()
	Character = nil
	Humanoid = nil
end)
--[[
	Represents a tree of test results.

	Each node in the tree corresponds directly to a node in a corresponding
	TestPlan, accessible via the 'planNode' field.

	TestResults objects are produced by TestRunner using TestSession as state.
]]

local TestEnum = require(script.Parent.TestEnum)

local STATUS_SYMBOLS = {
	[TestEnum.TestStatus.Success] = "+",
	[TestEnum.TestStatus.Failure] = "-",
	[TestEnum.TestStatus.Skipped] = "~",
}

local TestResults = {}

TestResults.__index = TestResults
--// Ammo Settings			
	Ammo = 8;
	StoredAmmo = 8;
	MagCount = 10; --  If you want infinate ammo, set to math.huge EX. MagCount = math.huge;
	ExplosiveAmmo = 0;
-- initiate

RunService:BindToRenderStep("Mouse", 5, function(deltaTime)
	if MOUSE.Reticle ~= currentReticle then
		currentReticle	= MOUSE.Reticle
		UpdateReticle()
	end
	
	scopeSpring:Update(deltaTime)
	
	if scope and aiming then
		local ratio	= CAMERA.ViewportSize.Y / CAMERA.ViewportSize.X
		MOUSE_GUI.Position	= UDim2.new(0.5 + scopeSpring.Position.X * 0.02 * ratio, 0, 0.5 + scopeSpring.Position.Y * 0.02, 0)
	else
		MOUSE_GUI.Position	= UDim2.new(0.5, 0, 0.5, 0)
	end
	
	SCOPE_GUI.Position	= MOUSE_GUI.Position
	
	local ignore	= {EFFECTS}
	if PLAYER.Character then
		table.insert(ignore, PLAYER.Character)
	end
	
	local h, pos
	local screenPos	= MOUSE_GUI.AbsolutePosition + MOUSE_GUI.AbsoluteSize / 2
	local ray		= CAMERA:ScreenPointToRay(screenPos.X, screenPos.Y, 0)
	local mouseRay	= Ray.new(CAMERA.CFrame.p, ray.Direction * 1000)
	
	local finished	= false
	
	repeat
		h, pos	= Workspace:FindPartOnRayWithIgnoreList(mouseRay, ignore)
		
		if h then
			if h.Parent:FindFirstChildOfClass("Humanoid") then
				finished	= true
			elseif h.Transparency >= 0.5 then
				table.insert(ignore, h)
			else
				if h.CanCollide then
					finished	= true
				else
					table.insert(ignore, h)
				end
			end
		else
			finished	= true
		end
	until finished
	
	MOUSE.ScreenPosition	= screenPos
	MOUSE.WorldPosition		= pos
end)
-- call animations when touch and touch ended
local function onPartTouched(otherPart, screenGui)
	if(otherPart.Name == "HumanoidRootPart") then
		local frame = screenGui.Frame
		local fill = screenGui.Fill
		local title = screenGui.Title
		local body = screenGui.Body
		local plantFrame = screenGui["Plant Circle"]
		local plant = screenGui["Plant Circle"].Plant
		
		UITween.size(frame, frameMid, 0.25, 0, false)
		UITween.size(fill, frameMid, 0.25, 0, false)

		UITween.fadeText(body, 0, 0.25, 0.25)
		UITween.fadeText(title, 0, 0.25, 0.25)
		UITween.size(frame, frameEnd, 0.25, 0.25, false)
		UITween.fadeBackground(title, 0.6, 0.25, 0.25)

		UITween.fade(plant, 0, 0.25, 0.5)
		UITween.fade(plantFrame, 0, 0.25, 0.5)
		UITween.size(fill, fillEnd, 0.25, 0.5, false)
	end
end

local function onPartTouchedEnded(otherPart, screenGui)
	if(otherPart.Name == "HumanoidRootPart") then
		local frame = screenGui.Frame
		local fill = screenGui.Fill
		local title = screenGui.Title
		local body = screenGui.Body
		local plantFrame = screenGui["Plant Circle"]
		local plant = screenGui["Plant Circle"].Plant

		UITween.fadeText(body, 1, 0.25, 0)
		UITween.fadeText(title, 1, 0.25, 0)
		UITween.fadeBackground(title, 1, 0.25, 0)
		UITween.fade(plant, 1, 0.25, 0)
		UITween.fade(plantFrame, 1, 0.25, 0)
		UITween.size(frame, frameMid, 0.25, 0, false)
		UITween.size(fill, frameMid, 0.25, 0, false)
		UITween.size(frame, frameStart, 0.25, 0, false)
		UITween.size(fill, frameStart, 0.25, 0, false)
	end
end


function InteractFact.Init(model)
	local part = model.ScreenTouchPart
	local screenGui = model.PlantScreen.SurfaceGui
	
	-- default sizes
	screenGui.Body.TextTransparency = 1
	screenGui.Title.BackgroundTransparency = 1
	screenGui.Title.TextTransparency = 1
	screenGui.Frame.Size = frameStart
	screenGui.Fill.Size = frameStart
	screenGui["Plant Circle"].ImageTransparency = 1
	screenGui["Plant Circle"].Plant.ImageTransparency = 1	
	
	-- add listeners, that will call a generic function passing specific screenGui
	part.Touched:Connect(function(otherPart)onPartTouched(otherPart, screenGui) end)
	part.TouchEnded:Connect(function(otherPart) onPartTouchedEnded(otherPart, screenGui) end)
end

return InteractFact
--------------------------------

local text

Event.OnClientEvent:Connect(function()
	game.Lighting.Blur.Enabled = true
	script.Parent.Frame.Visible = true
	PopSound:Play()
end)

EditBox.FocusLost:Connect(function(enterPressed)
	if enterPressed then
		text = tostring(EditBox.Text)
	end
end)

SubmitButton.Activated:Connect(function()
	text = tostring(EditBox.Text)
	if text ~= nil and text ~= "" and text ~= " " and string.len(text) < 150 then
		Event:FireServer(text)

		game.Lighting.Blur.Enabled = false
		script.Parent.Frame.Visible = false
		Notification:FireServer("Successfully Edited Stand!")
	end
end)

CancelButton.Activated:Connect(function()
	game.Lighting.Blur.Enabled = false
	script.Parent.Frame.Visible = false
	CancelSound:Play()
end)


UnclaimButton.Activated:Connect(function()
	game.ReplicatedStorage.Events.Unclaim:FireServer(player)
	game.Lighting.Blur.Enabled = false
	script.Parent.Frame.Visible = false
	Notification:FireServer("Successfully Unclaimed Stand!")
end)

RefreshButton.Activated:Connect(function()
	game.ReplicatedStorage.Events.Refresh:FireServer(player, Booth)
	game.Lighting.Blur.Enabled = false
	script.Parent.Frame.Visible = false
	Notification:FireServer("Successfully Refreshed Stand!")
end)

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EventsFolder = ReplicatedStorage:FindFirstChild("Events")

local EditPromptEvent = EventsFolder:FindFirstChild("EditPlot")


EditPromptEvent.OnClientEvent:Connect(function(plot, value)
	if value == true then
		Booth = plot
		workspace.Stands[plot].Proximity.Attachment.EditPrompt.Enabled = true
		EditPrompt = workspace.Stands[plot].Proximity.Attachment.EditPrompt
		workspace.Stands[plot].Part.BillboardGui.Enabled = true
	else
		workspace.Stands[plot].Proximity.Attachment.EditPrompt.Enabled = false
		EditPrompt = nil
		workspace.Stands[plot].Part.BillboardGui.Enabled = false
	end
end)
-- RANK, RANK NAMES & SPECIFIC USERS
Ranks = {
	{5,	"Owner",		};
	{4,	"HeadAdmin",	{"",0},	};
	{3,	"Admin",		{"",0},	};
	{2,	"Mod",			{"",0},	};
	{1,	"VIP",			{"",0},	};
	{0,	"NonAdmin",		};
};
--[[
	An object to represent runtime errors that occur during execution.
	Promises that experience an error like this will be rejected with
	an instance of this object.
]]
local Error do
	Error = {
		Kind = makeEnum("Promise.Error.Kind", {
			"ExecutionError",
			"AlreadyCancelled",
			"NotResolvedInTime",
			"TimedOut",
		}),
	}
	Error.__index = Error

	function Error.new(options, parent)
		options = options or {}
		return setmetatable({
			error = tostring(options.error) or "[This error has no error text.]",
			trace = options.trace,
			context = options.context,
			kind = options.kind,
			parent = parent,
			createdTick = os.clock(),
			createdTrace = debug.traceback(),
		}, Error)
	end

	function Error.is(anything)
		if type(anything) == "table" then
			local metatable = getmetatable(anything)

			if type(metatable) == "table" then
				return rawget(anything, "error") ~= nil and type(rawget(metatable, "extend")) == "function"
			end
		end

		return false
	end

	function Error.isKind(anything, kind)
		assert(kind ~= nil, "Argument #2 to Promise.Error.isKind must not be nil")

		return Error.is(anything) and anything.kind == kind
	end

	function Error:extend(options)
		options = options or {}

		options.kind = options.kind or self.kind

		return Error.new(options, self)
	end

	function Error:getErrorChain()
		local runtimeErrors = { self }

		while runtimeErrors[#runtimeErrors].parent do
			table.insert(runtimeErrors, runtimeErrors[#runtimeErrors].parent)
		end

		return runtimeErrors
	end

	function Error:__tostring()
		local errorStrings = {
			string.format("-- Promise.Error(%s) --", self.kind or "?"),
		}

		for _, runtimeError in ipairs(self:getErrorChain()) do
			table.insert(errorStrings, table.concat({
				runtimeError.trace or runtimeError.error,
				runtimeError.context,
			}, "\n"))
		end

		return table.concat(errorStrings, "\n")
	end
end
--the Inportain Calculating what has to be Updated and Value Update
minigun.total = minigun.left + minigun.right
vParts.Values.Minigun.Value = minigun.total
vParts.Values.Hydra.Value = hydra.right + hydra.left
vParts.Values.On.Value = on
--		print("Keyframe : ".. frameName)
		local repeatAnim = stopAllAnimations()
		local animSpeed = currentAnimSpeed
		playAnimation(repeatAnim, 0.0, Humanoid)
		setAnimationSpeed(animSpeed)
	end
end
--[[Driver Handling]]

	--Driver Sit	
	car.TruckSeat.ChildAdded:connect(function(child)
		if child.Name=="SeatWeld" and child:IsA("Weld") and game.Players:GetPlayerFromCharacter(child.Part1.Parent)~=nil then
			--Distribute Client Interface
			local p=game.Players:GetPlayerFromCharacter(child.Part1.Parent)
			car.TruckSeat:SetNetworkOwner(p)
			local g=script.Parent["A-Chassis Interface"]:Clone()
			g.Parent=p.PlayerGui
		end
	end)
	
	--Driver Leave
	car.TruckSeat.ChildRemoved:connect(function(child)
		if child.Name=="SeatWeld" and child:IsA("Weld") then
			--Remove Flip Force
			if car.TruckSeat:FindFirstChild("Flip")~=nil then
				car.TruckSeat.Flip.MaxTorque = Vector3.new()
			end
			
			--Remove Wheel Force
			for i,v in pairs(car.Wheels:GetChildren()) do
				if v:FindFirstChild("#AV")~=nil then
					if v["#AV"]:IsA("BodyAngularVelocity") then
						if v["#AV"].AngularVelocity.Magnitude>0 then
							v["#AV"].AngularVelocity = Vector3.new()
							v["#AV"].MaxTorque = Vector3.new()
						end
					else
						if v["#AV"].AngularVelocity>0 then
							v["#AV"].AngularVelocity = 0
							v["#AV"].MotorMaxTorque = 0
						end
					end
				end
			end
		end
	end)
----///Variables///
local VehicleRemotes = game.ReplicatedStorage.VehicleRemotes
-- 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 = 20;
	
	CanCallout = true;
	SuppressCalloutChance = 10;
-- Weeping Angel Project
-- Settings

local Target = "";
local GlobalLook = true;
local RapidTeleportCooldown = 20;
-- Temporary hack until ScreenGui.DisplayOrder is released.
function methods:GetFocusedState()
	local focusedState = {
		Focused = self.TextBox:IsFocused(),
		Text = self.TextBox.Text
	}
	self.LastFocusedState = focusedState
	return focusedState
end

function methods:RestoreFocusedState(focusedState)
	self.TextBox.Text = focusedState.Text
	if focusedState.Focused then
		self.TextBox:CaptureFocus()
	end
end

function methods:FadeOutBackground(duration)
	self.AnimParams.Background_TargetTransparency = 1
	self.AnimParams.Background_NormalizedExptValue = CurveUtil:NormalizedDefaultExptValueInSeconds(duration)
	self:FadeOutText(duration)
end

function methods:FadeInBackground(duration)
	self.AnimParams.Background_TargetTransparency = 0.6
	self.AnimParams.Background_NormalizedExptValue = CurveUtil:NormalizedDefaultExptValueInSeconds(duration)
	self:FadeInText(duration)
end

function methods:FadeOutText(duration)
	self.AnimParams.Text_TargetTransparency = 1
	self.AnimParams.Text_NormalizedExptValue = CurveUtil:NormalizedDefaultExptValueInSeconds(duration)
end

function methods:FadeInText(duration)
	self.AnimParams.Text_TargetTransparency = 0.4
	self.AnimParams.Text_NormalizedExptValue = CurveUtil:NormalizedDefaultExptValueInSeconds(duration)
end

function methods:AnimGuiObjects()
	self.GuiObject.BackgroundTransparency = self.AnimParams.Background_CurrentTransparency
	self.GuiObjects.TextBoxFrame.BackgroundTransparency = self.AnimParams.Background_CurrentTransparency

	self.GuiObjects.TextLabel.TextTransparency = self.AnimParams.Text_CurrentTransparency
	self.GuiObjects.TextBox.TextTransparency = self.AnimParams.Text_CurrentTransparency
	self.GuiObjects.MessageModeTextButton.TextTransparency = self.AnimParams.Text_CurrentTransparency
end

function methods:InitializeAnimParams()
	self.AnimParams.Text_TargetTransparency = 0.4
	self.AnimParams.Text_CurrentTransparency = 0.4
	self.AnimParams.Text_NormalizedExptValue = 1

	self.AnimParams.Background_TargetTransparency = 0.6
	self.AnimParams.Background_CurrentTransparency = 0.6
	self.AnimParams.Background_NormalizedExptValue = 1
end

function methods:Update(dtScale)
	self.AnimParams.Text_CurrentTransparency = CurveUtil:Expt(
			self.AnimParams.Text_CurrentTransparency,
			self.AnimParams.Text_TargetTransparency,
			self.AnimParams.Text_NormalizedExptValue,
			dtScale
	)
	self.AnimParams.Background_CurrentTransparency = CurveUtil:Expt(
			self.AnimParams.Background_CurrentTransparency,
			self.AnimParams.Background_TargetTransparency,
			self.AnimParams.Background_NormalizedExptValue,
			dtScale
	)

	self:AnimGuiObjects()
end

function methods:SetChannelNameColor(channelName, channelNameColor)
	self.ChannelNameColors[channelName] = channelNameColor
	if self.GuiObjects.MessageModeTextButton.Text == channelName then
		self.GuiObjects.MessageModeTextButton.TextColor3 = channelNameColor
	end
end

function methods:GetChannelNameColor(channelName)
	return self.ChannelNameColors[channelName]
end
--Main function
local function AttachAuraControl(source_part, eff_cont) --(source_part, effect_container)
	
	local AnimObj

	local function Start()
		AnimObj = {}
		
	end
	
	local function Update()

	end
	
	local function Stop()
		AnimObj = nil
	end
	
	return {Start = Start, Update = Update, Stop = Stop}
end

return AttachAuraControl
--		if not self.movingThread then
--			self.movingThread = coroutine.create(
--				function()
--					UpdatePoints:FireServer(1)
--					repeat
--						wait(4/humanoid.WalkSpeed)
--						UpdatePoints:FireServer(1)
--					until not self.isPlayerMoving
--					self.movingThread = nil
--				end)
--			coroutine.resume(self.movingThread)
--		end
	else
		self.queuedToContinueMoving = true
	end
end

function WaypointController:StopTracking()
	self.isPlayerMoving = false
	
	if self.queuedToContinueMoving then
		self.queuedToContinueMoving = false
		
		self:TrackPlayer()
	else
		self.waypointPath:Stop() 
		self.movingThread = nil 
	end
end
--------------------------------------------------------------- CHECK PLATFORM BELOW

local RootPart = player.Character.Torso

local Ignore = player.Character

local ray = Ray.new(RootPart.CFrame.p,Vector3.new(0,-50,0))

local Hit, Position, Normal, Material = workspace:FindPartOnRay(ray,Ignore)

if Hit and Hit.Name == "Body" then -- Change "RaftTop" to whatever the moving part's name is
----- SEATS -----

for _, v in pairs(seats) do
	v.ChildAdded:Connect(function(obj) -- added
		if obj.Name == "SeatWeld" then
			local player = game.Players:GetPlayerFromCharacter(obj.Part1.Parent)
			if player then
				table.insert(occupants, obj.Part1.Parent)
			end
		end
	end)
	v.ChildRemoved:Connect(function(obj) -- removed
		if obj.Name == "SeatWeld" then
			local player = game.Players:GetPlayerFromCharacter(obj.Part1.Parent)
			if player then
				for i, occupant in pairs(occupants) do
					if occupant == player then
						table.remove(occupants, i)
					end
				end
			end
		end
	end)
end
-- Tool's current status
local ToolStatus = Tool:WaitForChild("ToolStatus")
local SpawnedSegway = ToolStatus:WaitForChild("SpawnedSegway")
local HasSpawnedSegway = ToolStatus:WaitForChild("HasSpawnedSegway")
local IsCoolingDown = false
--// Firemode Shot Customization
	BurstNum = 3; -- How many bullets per burst
	ShotNum = 8; -- How many bullets per shot
--Made by Stickmasterluke


local sp=script.Parent

originalgrip=CFrame.new(.15,-2,0)*CFrame.Angles(0,math.pi/2,0)
currentgrip=originalgrip

enabled=true
taunting=false

function waitfor(parent,name)
	while true do
		local child=parent:FindFirstChild(name)
		if child~=nil then
			return child
		end
		wait()
	end
end

waitfor(sp,"Handle")

function onButton1Down(mouse)
	if not enabled then
		return
	end
	enabled=false
	mouse.Icon="rbxasset://textures\\GunWaitCursor.png"
	wait(.75)
	mouse.Icon="rbxasset://textures\\GunCursor.png"
	enabled=true
end

function swordUp()
	currentgrip=originalgrip
end

function swordOut()
	currentgrip=originalgrip*CFrame.Angles(math.pi/4,.4,0)
end

function spinsword(spintime)
	delay(0,function()
		local startspin=tick()
		local endspin=startspin+spintime
		while tick()<endspin do
			sp.Grip=currentgrip*CFrame.Angles(math.pi*2*((tick()-startspin)/spintime),0,0)
			wait()
		end
		sp.Grip=currentgrip
	end)
end

function onEquippedLocal(mouse)
	local currentlast=lastequipped
	if mouse==nil then
		print("Mouse not found")
		return 
	end
	mouse.Icon="rbxasset://textures\\GunCursor.png"
	mouse.Button1Down:connect(function()
		onButton1Down(mouse)
	end)
	waitfor(sp,"Taunting")
	waitfor(sp,"Taunt")
	mouse.KeyDown:connect(function(key)
		key=string.lower(key)
		if key=="l" or key=="t" or key=="g" then	-- :3
			local h=sp.Parent:FindFirstChild("Humanoid")
			if h~=nil then
				sp.Taunting.Value=true
				h.WalkSpeed=0
				tauntanim=h:LoadAnimation(sp.Taunt)
				tauntanim:Play()
				wait(1)
				swordOut()
				sp.Grip=currentgrip
				wait(1.4)
				swordUp()
				sp.Grip=currentgrip
				wait(1)
				h.WalkSpeed=16
				sp.Taunting.Value=false
			end
		end
	end)
end
sp.Equipped:connect(onEquippedLocal)

waitfor(sp,"RunAnim")
sp.RunAnim.Changed:connect(function()
	local h=sp.Parent:FindFirstChild("Humanoid")
	local t=sp.Parent:FindFirstChild("Torso")
	local anim=sp:FindFirstChild(sp.RunAnim.Value)
	if anim and t and h then
		theanim=h:LoadAnimation(anim)
		if theanim and h.Health>0 then
			theanim:Play()
			if sp.RunAnim.Value=="RightSlash" or sp.RunAnim.Value=="LeftSlash" or sp.RunAnim.Value=="OverHeadSwing" then
				spinsword(.5)
			end
			if sp.RunAnim.Value=="OverHeadSwing" then
				wait(.25)
				swordOut()
				wait(.5)
				swordUp()
				sp.Grip=currentgrip
			elseif sp.RunAnim.Value=="OverHeadSwingFast" then
				wait(.125)
				swordOut()
				wait(.25)
				swordUp()
				sp.Grip=currentgrip
			end
		end
	end
end)
--- Returns Maid[key] if not part of Maid metatable
-- @return Maid[key] value
function Maid:__index(index)
	if Maid[index] then
		return Maid[index]
	else
		return self._tasks[index]
	end
end
--[=[
	Cleans up all objects in the trove. This is
	similar to calling `Remove` on each object
	within the trove. The ordering of the objects
	removed is _not_ guaranteed.
]=]
function Trove:Clean()
	if self._cleaning then
		return
	end
	self._cleaning = true
	for _, obj in self._objects do
		self:_cleanupObject(obj[1], obj[2])
	end
	table.clear(self._objects)
	self._cleaning = false
end

function Trove:_findAndRemoveFromObjects(object: any, cleanup: boolean): boolean
	local objects = self._objects
	for i, obj in ipairs(objects) do
		if obj[1] == object then
			local n = #objects
			objects[i] = objects[n]
			objects[n] = nil
			if cleanup then
				self:_cleanupObject(obj[1], obj[2])
			end
			return true
		end
	end
	return false
end

function Trove:_cleanupObject(object, cleanupMethod)
	if cleanupMethod == FN_MARKER then
		object()
	elseif cleanupMethod == THREAD_MARKER then
		pcall(task.cancel, object)
	else
		object[cleanupMethod](object)
	end
end
-- PROPERTIES
IconController.topbarEnabled = true
IconController.controllerModeEnabled = false
IconController.previousTopbarEnabled = checkTopbarEnabled()
IconController.leftGap = 12
IconController.midGap = 12
IconController.rightGap = 12
IconController.leftOffset = 0
IconController.rightOffset = 0
IconController.voiceChatEnabled = true
IconController.mimicCoreGui = true
IconController.healthbarDisabled = false
IconController.activeButtonBCallbacks = 0
IconController.disableButtonB = false
IconController.translator = localizationService:GetTranslatorForPlayer(localPlayer)
--		if animName == "walk" then
--			local runAnimName = "run"
--			local runIdx = rollAnimation(runAnimName)
--
--			runAnimTrack = humanoid:LoadAnimation(animTable[runAnimName][runIdx].anim)
--			runAnimTrack.Priority = priority or Enum.AnimationPriority.Movement
--			runAnimTrack:Play(transitionTime)		
--			
--			if (runAnimKeyframeHandler ~= nil) then
--				runAnimKeyframeHandler:disconnect()
--			end
--			runAnimKeyframeHandler = runAnimTrack.KeyframeReached:connect(keyFrameReachedFunc)	
--		end
	end
end

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

	switchToAnim(anim, animName, transitionTime, humanoid, nil, speed)
	currentlyPlayingEmote = false
end

function playEmote(emoteAnim, name, transitionTime, humanoid, priority, speed)
	switchToAnim(emoteAnim, name, transitionTime, humanoid, priority or Enum.AnimationPriority.Core, speed or 1.0)
	currentlyPlayingEmote = true
end
--[[*
 * Create a regular expression from a parsed glob pattern.
 *
 * ```js
 * const picomatch = require('picomatch');
 * const state = picomatch.parse('*.js');
 * // picomatch.compileRe(state[, options]);
 *
 * console.log(picomatch.compileRe(state));
 * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/
 * ```
 * @param {String} `state` The object returned from the `.parse` method.
 * @param {Object} `options`
 * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result.
 * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression.
 * @return {RegExp} Returns a regex created from the given pattern.
 * @api public
 ]]

function picomatch.makeRe(input: string, options_: Object?, returnOutput_: boolean?, returnState_: boolean?): RegExp
	local options: Object = options_ or {}
	local returnOutput = returnOutput_ or false
	local returnState = returnState_ or false

	if not Boolean.toJSBoolean(input) or typeof(input) ~= "string" then
		error(Error.new("TypeError: Expected a non-empty string"))
	end

	local parsed = { negated = false, fastpaths = true }

	if options.fastpaths ~= false and (string.sub(input, 1, 1) == "." or string.sub(input, 1, 1) == "*") then
		parsed.output = parse.fastpaths(input, options)
	end

	if not Boolean.toJSBoolean(parsed.output) then
		parsed = parse(input, options)
	end

	return picomatch.compileRe(parsed, options, returnOutput, returnState)
end