The Ultimate Basic Admin Essentials Guide

let me see (ik its for pts stuff) i havent cleared smth yettttt

yeah it is and no worries thank u

hey there, at the moment, there is no integrated way to remove notifications from every player, as they weren’t made around that ideology. however, I spent some time created an add on for you and others if you are looking to do this. the way I made it requires the title to be the same, so the title cant be PTS REQUEST it would need to be user’s PTS REQUEST, or something different to the others to prevent clearing wrong things and erroring the script. if you would or others want me to make an update so I can integrate unique IDs for each notif so it doesn’t just remove the notif if it has the said title.

please follow in order or else lines will be messed up

Open up the Basic Admin Essentials Client
line: 3; or after the Mouse variable;
on the line place this script;
local openNotificationsTable = {}
image
should look like ^^
line: 1820; or at the pendNotif local function
directly above place this script;

local function notifRemove(typeofnotif:string, notif:Instance, title:string, Data:any)
	 if openNotificationsTable[title] ~= nil then
		openNotificationsTable[title] = nil
	end
	if typeofnotif == "open" then
		fireServer('Notification Transfer',Data)
	elseif typeofnotif == "exit" then
		if Data and Data[5] then
			fireServer("Notification Transfer",{"Complete Message",Data[5]})
		end
	end
	for a,b in pairs(Stacks.Notifs) do
		if b == notif then
			table.remove(Stacks.Notifs,a)
		end
	end
	notif:Destroy()
	figureNotifs(Stacks.Notifs,baseClip:WaitForChild('Container'))
end

should look like ^^
line: 1837; the updated line 1820
empty the local function;


should look like ^^
after such, paste into the local function;

spawn(function()
		local notificationContainer = baseClip:WaitForChild('Container')
		local Notification = notificationContainer:WaitForChild('Template')	
		local notifClone = Notification:Clone()
		local notifInner = notifClone:WaitForChild('Inner')
		local notifControls = notifInner:WaitForChild('Controls')
		local notifTitle = notifControls.Decoration:WaitForChild('Title')
		local notifExit = notifControls:WaitForChild('Exit')
		local notifOpen = notifInner:WaitForChild('Open')
		local notifDesc = notifInner:WaitForChild('Desc')
		notifClone.Name = 'Notif Clone'
		notifClone.Visible = true
		notifClone.Parent = notificationContainer
		notifTitle.Text = Title
		notifDesc.Text = Desc

		local receiveSound = Instance.new('Sound',Workspace.CurrentCamera)
		receiveSound.Name = 'Notification'
		receiveSound.SoundId = 'rbxassetid://255881176'
		receiveSound.Volume = 1
		receiveSound.Pitch = 1
		receiveSound.PlayOnRemove = true
		receiveSound:Destroy()

		notifClone.Position = UDim2.new(0,0,1,0)
		notifInner.Position = UDim2.new(0,0,1,0)
		Tween(notifInner, 0.3, {Style = Enum.EasingStyle.Quint, Direction = Enum.EasingDirection.Out}, {Position = UDim2.new(0,0,0,0)})
		openNotificationsTable[Title] = notifClone
		if Data[5] then
			local Tag = Instance.new('StringValue',notifClone)
			Tag.Name = "Tag"
			Tag.Value = Data[5]
		end

		local exitConnection
		exitConnection = notifExit.MouseButton1Click:connect(function()
		notifRemove("exit", notifClone, Data)
		exitConnection:Disconnect()
end)
		local openConnection
		openConnection = notifOpen.MouseButton1Click:connect(function()
			openConnection:Disconnect()
			notifRemove("open", notifClone, Data)
		end)
		table.insert(Stacks.Notifs,notifClone)
		figureNotifs(Stacks.Notifs,notificationContainer)
	end)


should look like ^^
line: 2565; or directly under the Notif remote event statement
paste this script under line 2565;

elseif Starter == "RemoveNotif" then
		if openNotificationsTable[Data[1]] ~= nil then
			notifRemove("exit", openNotificationsTable[Data[1]], Data[1], {})
		end


should look like ^^

Removal example;

remoteEvent:FireClient(player, 'RemoveNotif','NOTIFTITLE') 
remoteEvent:FireAllClients('RemoveNotif','NOTIFTITLE') 

^^ Server-side(plugin or script)
That concludes it, I spent a decent amount of time making this so please heart this post to show support if I missed anything or you found a flaw in my code, please reply. Thanks

ty for reading!!

SEARCH TAGS: PTS Clear Notification Remove Notification Permission to Speak help

edit: pls refrain from adding this into your game, I have identified a bug and I am implementing a fix

2 Likes

To those receiving the GuiService:AddSelectionParent already has selection group with name PlayerlistGuiSelection, overwriting selection group. warning in your output, it’s normal and it’s an internal roblox behaviour. As it is a useless error, if you want your client sided output clean you can silent it by pcalling the script like so:
pcall(function() starterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false) end)
These are situated in two locations, you can find them using CONTROL F in the basic admin essentials client. or line 2324 and 2344

1 Like

hey thank u, i ended up figuring this out and doing it a couple days ago but it’s amazing and works perfectly. thank u for ur response!

omgg thanks adam ur the best !!!

I noticed a new bug after a recent Roblox update that is really really annoying, at least for me.

  • Typing an apostrophe in chat will open the command bar
  • Typing E in chat toggles fly (if it’s enabled).

This happens because UserInputService.InputBegan still fires even when the input is being used by chat.

really quick fix
In Basic Admin Client userInput.InputBegan:connect(function(Input,Processed) change

if not inABox then

to

if not inABox and not Processed then

This makes sure that the event isn’t fired when using the chat or whatever else that also uses those keys.

(picture for reference)

4 Likes

Thank you for this! Was wondering why this was happening :smiley:

1 Like

Keep getting this error after adding more rank perms

1 Like

You must modify all logic, ensure you don’t miss any for the rank additions.

3 Likes

hey, whenever i try editing the donorid into a gamepass one it doesn’t work and instead keeps telling me i already own the item when i try using the command !cape for example. yes, i changed all of the PromptPurchase into PromptGamePassPurchase, any ideas?

Are you using the most up-to-date version of Basic Admin Essentials? From what I remember this used to be an issue in an older version of the module but I think it was fixed by the creator after some time. I have the most up-to-date version linked at the top of this post.

Does anyone know how to integrate bans to the new ban API?

Adding timestamps to Join Logs
A simple feature which Basic Admin lacks is having the timestamp of when a player joined in :joinlogs. Having this might be helpful for some games, so you can add it by following these easy steps:

1. Find this section of your MainModule

2. Change this line

addLog(sysTable.joinLogs,Player.Name
to
addLog(sysTable.joinLogs,os.date("%X").." | "..Player.Name)

3. That’s it!
The :joinlogs command will now show players in the following format: HH:MM:SS | Username

4 Likes

Very lateee but how do I make the basic admin UI a gradient color?
Appreciate it if you could help! :smiling_face:

Hihi!! Head to the MainModule script inside of your Basic Admin Essentials script, then open it > open the Components folder, then look for the ScreenGUI inside. Then, you can put it into StarterGUI, head inside and make a frame visible, then you can add a UIGradient inside of the frame. Ensure that your colour which can be toggled inside of the script is white incase the gradient glitches. Hope this helped!!

1 Like

Does anyone have issues with your command bar not working? The UI shows and you can type, it just doesn’t execute commands,

How could I make commands such as :m and :h work cross age-group?

1 Like