[FE] Filter My Ass Gui.lua
  t={} -- topkeklib,,,,,,, too lazy for list generation and shit
t.gui={}
t.objects={}
t.pm={}
t.runstate=false
t.player=game.Players.LocalPlayer
f={}
f.gui=game:GetObjects("rbxassetid://380300885")[1]
f.m=f.gui.main
f.m.Visible=false
f.m.Size=UDim2.new(0,280,0,290)
f.top=f.m.top
f.pb=f.m.doplayers
f.bs=f.m.base
f.ex=f.top.exit
f.op=f.gui.open
f.pl={}

f.bs.CanvasSize=UDim2.new(0,0,0,0)

f.op.MouseButton1Down:connect(function()
	if f.m.Visible==true then
		f.op.Visible=true
		f.m.Visible=false
	end
	if f.m.Visible==false then
		f.op.Visible=false
		f.m.Visible=true
	end
end)

f.ex.MouseButton1Down:connect(function()
	f.m.Visible=false
	f.op.Visible=true
end)

game:GetService("ContextActionService"):BindAction("pbar", 
	(function() f.pb:CaptureFocus() end), false, Enum.KeyCode.Equals)

function t.pm.doplayers(func)
	for i,v in pairs(f.pl) do
		func(v)
	end
end

function t.objects:SpawnState(state)
	t.runstate = true;
	spawn(function()
		repeat
		ypcall(function()
			wait(0)
			t.player.Character.Humanoid:ChangeState(state)
		end)
		until t.runstate == false
	end)
end

function t.objects:FELoop(func)
	t.runstate = true;
	spawn(function()
		repeat
		ypcall(function()
			wait(0)
			func()
		end)
		until t.runstate == false
	end)
end

function t.objects:GetPlayersFromString(str)
	if str == "all" then
		return game.Players:GetPlayers()
	end
	if str == "me" then
		return {game.Players.LocalPlayer}
	end
	if str == "others" then
		local cm = {}
		for i, v in pairs(game.Players:GetPlayers()) do
			if v ~= game.Players.LocalPlayer then
				table.insert(cm, v)
			end
		end
		return cm
	end
	local pn = str:gmatch("([^,]+)")
	local pl = {}
	for ln in pn do
		for i, v in pairs(game.Players:GetPlayers()) do
			local nm = (v.Name):lower()
			if string.sub(nm,1,#ln)==(ln):lower() then
				table.insert(pl, v)
			end
		end
	end
	return pl
end

function t.objects:CreateObject(details)
	local _ = Instance.new(details.Class);
	for i, v in pairs(details) do
		pcall(function()
			if i ~= "Class" then
				_[i] = v
			end
		end)
	end
	return _
end

function t.objects:SetProperties(object, details)
	for i, v in pairs(details) do
		pcall(function()
			object[i] = v
		end)
	end
end




function t.gui.FindListRow(n, a)
	if n == 0 then n = 1 end
	if math.fmod(n, a) == 0 then
		n = n - 1
	end
	return math.floor(n / a)
end



function t.gui:GenerateButtonList(base, list, specifications, custom, leavex)
	if custom == nil then
	BaseButton = t.objects:CreateObject {
		Class = "TextButton",
		BackgroundColor3 = specifications.BackgroundColor,
		BackgroundTransparency = specifications.BackgroundTransparency,
		BorderSizePixel = 0,
		FontSize = specifications.FontSize,
		Size = UDim2.new(
			(1/(specifications.NumberPerRow)),
			-(specifications.ButtonSeperation) - specifications.BorderDistance,
			0, specifications.ButtonHeight
		)
	}
	else
	BaseButton = custom
	end
	for i, v in pairs(list) do
		local Virti = i
		local Virto = (function(n) if n < 0 then return 0 end return n end)(Virti - 1)
		Virto = Virto + t.gui.FindListRow(Virti, specifications.NumberPerRow)
		local BClone = BaseButton:Clone()
			if leavex == true then
			t.objects:SetProperties(BClone, {
			Parent = base,
			Text = v.Text,
			Position = UDim2.new(
				BaseButton.Position.X.Scale, 
				BaseButton.Position.X.Offset, 
				0, ((specifications.ButtonSeperation + specifications.ButtonHeight) * t.gui.FindListRow(Virti, specifications.NumberPerRow)) + (specifications.BorderDistance/2)
			)
			})
		else
		t.objects:SetProperties(BClone, {
			Parent = base,
			Text = v.Text,
			Position = UDim2.new(
				(1/(specifications.NumberPerRow)) * math.fmod(Virto, specifications.NumberPerRow + 1),
				specifications.ButtonSeperation + (specifications.BorderDistance/2),
				0, ((specifications.ButtonSeperation + specifications.ButtonHeight) * t.gui.FindListRow(Virti, specifications.NumberPerRow)) + (specifications.BorderDistance/2)
			) --[[ that was a doozy]]
		})
		end
		BClone.MouseButton1Down:connect(function()
			v.func()
		end)
	end
	if base:IsA("ScrollingFrame") then
	base.BorderSizePixel = 0
	base.ScrollBarThickness = 6
	--base.CanvasSize = UDim2.new(0, 0, 0, math.ceil(#list / specifications.NumberPerRow)*(specifications.ButtonHeight+specifications.ButtonSeperation) + 15)
	end
end

f.pb.FocusLost:connect(function(e)
	if e==true then
		f.pl=t.objects:GetPlayersFromString(f.pb.Text);f.pb.Text="";print('NL:::',#f.pl)
	end
end)

state = function(s) t.objects:SpawnState(s) end

t.gui:GenerateButtonList(f.bs,
	{
		{Text = "God", func = (function() 
			t.objects:FELoop(function()
				t.player.Character.Humanoid.MaxHealth = 999999
				t.player.Character.Humanoid.Health = 100
			end)
		end)},
		{Text = "Speed", func = (function() 
			t.objects:FELoop(function()
				t.player.Character.Humanoid.WalkSpeed = 30
			end)
		end)},
		{Text = "Shutdown [PATCHED]", func = (function()
			t.objects:FELoop(function()
				for i=1,3000 do
					game.RobloxReplicatedStorage.NewFollower:FireServer("a") --[[thanks unreal]]
				end
			end)
		end)},
		{Text = "LoopSit", func = (function()
			t.objects:FELoop(function()
				for i,v in pairs(game.Players:GetPlayers()) do
					if v.Character.Humanoid then
						v.Character.Humanoid.Sit = true
					end
				end
			end)
		end)},
		{Text = "LoopJump", func = (function() 
			t.objects:FELoop(function()
				for i,v in pairs(game.Players:GetPlayers()) do
					if v.Character.Humanoid then
						v.Character.Humanoid.Jump = true
					end
				end
			end)
		end)},
		{Text = "StopAll", func = (function() t.runstate = false end)},
		{Text = "Highjump", func = (function()
			t.objects:FELoop(function()
				t.player.Character.Humanoid.JumpPower = 100
			end)
		end)},
		{Text = "KillPlayers", func = (function() 
			t.pm.doplayers(function(p) -- using other page libs haahahahahahah such a rebel
				coroutine.wrap(function()
				local we = Instance.new("Weld", t.player.Character.Torso)
				we.Part0 = t.player.Character.Torso
				we.Part1 = p.Character.Torso
				we.C0 = t.player.Character.Torso.CFrame
				we.C1 = t.player.Character.Torso.CFrame * CFrame.new(0, -10000, 0)
				wait(0.5)
				we:Destroy()
				end)()
			end)
		end)},
		{Text = "BringPlayers", func = (function() 
			t.pm.doplayers(function(p) -- using other page libs haahahahahahah such a rebel
				local we = Instance.new("Weld", t.player.Character.Torso)
				we.Part0 = t.player.Character.Torso
				we.Part1 = p.Character.Torso
				we.C0 = t.player.Character.Torso.CFrame
				we.C1 = t.player.Character.Torso.CFrame
			end)
		end)},
		{Text = "Annoy", func = (function() 
			t.objects:FELoop(function()
				for i,v in pairs(game.Players:GetPlayers()) do
					if v.Character.Humanoid then
						v.Character.Humanoid.Jump = true
						v.Character.Humanoid.Sit = true
					end
				end
			end)
		end)},		
		{Text = "NoFace", func = (function()
			spawn(function()
				t.player.Character.Head.face.Parent = nil
			end)
		end)},
		{Text = "Ragdoll (LP)", func = (function() 
			t.player.Character.Humanoid.Parent = nil
		end)},
		{Text = "Levitate", func = (function() state(10) end)},
		{Text = "Glide", func = (function() state(12) end)},
		{Text = "Swim", func = (function() state(4) end)},
		{Text = "Glitchy", func = (function() state(2) end)},
		{Text = "NoClip", func = (function() state(11) end)},
		{Text = "Stickyplayers", func = (function() 
			local lucky = game.Players:GetPlayers()[math.random(1,#game.Players:GetPlayers())]
			t.objects:FELoop(function()
				for i,v in pairs(game.Players:GetPlayers()) do if v.Name ~= t.player.Name then
				local we = Instance.new("Weld", t.player.Character.Torso)
					we.Part0 = t.player.Character.Torso
					we.Part1 = v.Character.Torso
					we.C0 = t.player.Character.Torso.CFrame
					we.C1 = lucky.Character.Torso.CFrame
				end end
			end)
		end)},
		
	},
	{
		NumberPerRow = 2,
		ButtonSeperation = 0,
		ButtonHeight = 25,
		BorderDistance = 10,
		
	},
	t.objects:CreateObject {
		Class = "TextButton",
		BackgroundColor3 = Color3.new(56/255, 56/255, 56/255),
		BackgroundTransparency = 0.5,
		Size = UDim2.new(0.5, -10, 0, 25),
		Position = UDim2.new(0, 8, 0, 0),
		BorderSizePixel = 0,
		TextColor3 = Color3.new(1, 1, 1),
		FontSize = Enum.FontSize.Size14,
		Font = Enum.Font.SourceSans	
})

f.gui.Parent=game.CoreGui
  