AIDS - Administrative Integrated Discipline System

The title of this addon is a bit misleading because it is capable of much more than just player administration. I released this a while ago but a gmod update broke it, so now it’s back.

What does it do?

In a nutshell, AIDS is my approach to an administration tool. It is a swiss army knife where you choose the features, and make your own if you feel the need. It has zero dependencies and in theory should not interfere with any gamemode. It uses its own menu (ie. it isn’t part of any sandbox menus, etc) and there are 2 main functions it serves.

Commands: This is the meat and potatoes of a server administration mod. This is why i originally started writing AIDS. Commands cover a wide range of things, such as banning players, kicking players, slaying players, teleporting to them, and so on. AIDS puts all of the commands in the menu, but also has a very useful chat command system.

Modules: Let’s say you want to create an addon that logs what happens in your server (ie. events like, when a player chats, when a player dies, when a player joins or leaves). A very easy task, but if you want to make it easy to use then it is going to need a user interface so you can mess around with settings on the fly. This is what AIDS helps with. You can turn any simple script into an AIDS module and it becomes much more accessible to your server’s admins, etc.

You can choose the modules and commands that this addon uses since each AIDS command/module has its own file. Just delete the ones you won’t have a need for.


Pictures make everything easier.[/t]


In order to be able to use this, first you have to be an admin. Currently this uses the users.txt shit that garry coded into gmod, i think it’s located in the settings folder in your gmod directory.

This is an example of what your users.txt should look like:

		"your name here" "STEAM_0:1:0000000"
		"somebody" "STEAM_0:1:1111000"


You have to edit this file and add your steam ID. Once you’re an admin, use “aids_menu” to open the menu. You can bind this to a key if needed.

Chat commands are pretty self explanatory. Their format is “!commandname target args”. Some examples of usage:

!slay carl // kill everyone with "carl" in their name
!slay a // kill anyone that has the letter "a" in their name
!slay * // kill everyone in the server
!ban carl // ban anyone with "carl" in their name
!ban carl you are a jerk // ban anyone with "carl" in their name with the reason "you are a jerk"

Write your own

I’m not gonna lie, i didn’t make this the most user friendly for creating your own modules. I wasn’t planning on releasing this but i figure people could use an alternative to the super bloaty admin mods that exist right now.

local cmdname = “aids_kick”

if CLIENT then

local args = { { Name = "Aimbotting", Value = "Aimbotting" }, // Value can also be a table
{ Name = "Speedhacker", Value = "Speed Hacking" },
{ Name = "Cheater", Value = "Cheating" },
{ Name = "Exploiter", Value = "Exploit Abuse" },
{ Name = "Griefer", Value = "Griefing" },
{ Name = "Asshole", Value = "Asshole" },
{ Name = "Idiot", Value = "Idiot" },
{ Name = "GTFO", Value = "GTFO" }	}

AIDS.RegisterCommand( "Kick", cmdname, "kick", args, true ) // The last argument controls whether players can specify their own args using the chat commands


local function KickPlayer( ply, cmd, args ) // This is literally the same as a serverside concommand

	local target = AIDS.GetPlayer( args[1] ) // This does a validity check for us
	if target and ( !target:HasAdminRank() or ply:Outranks( target ) ) then // You can't ban other admins unless you outrank them
		local reason = ""
		for i=2, #args do // Args can be any size
			reason = reason .. tostring( args* )
		if reason == "" then
			AIDS.ChatPrint( { target, " was kicked." } )
			target:Kick( "Kicked by admin" )
			AIDS.ChatPrint( { target, " was kicked: " .. reason } )
			target:Kick( "Kicked by admin: " .. reason )


AIDS.AddCommand( KickPlayer, cmdname ) // Register the command so it can be used from the menu and also as a chat command


Works in progress

Currently there is a user group and user rank system i have written into it. They both technically work but they don’t save player rankings/groups (yet). So for the time being they are pretty useless. The only way to make someone an admin permanently is to edit the users file.


I only have this in legacy addon format for the time being, it’ll be up on the workshop when i get it working completely. Any lua file in aids_modules will be loaded (regardless of what addon it is in) so just delete the ones you don’t want loading.

Looks good :slight_smile:

Needs a ban reason (and ban times!)

Ban reasons exist, there are premade ones you can use from the menu or you can make your own with the chat command.

I personally didn’t see a use in timed bans so i didn’t bother. If you have to repeatedly ban people for timed intervals then all that shows is that you should be permabanning them.

why did you call it aids

[editline]15th November 2012[/editline]

i mean come on isnt that joke old now

Not sure AIDS is the best title for what’s otherwise trying to be a concise and useful administrative tool

I couldn’t think of any other name so i just left it as is. I named this thing a long time ago when i first made it. It describes the addon pretty accurately so why bother changing it

it doesn’t really

You’ve presented it first and foremost as the abbreviation ‘AIDS’ which doesn’t describe it accurately at all and instead gives viewers a pretty immature, insensitive and possibly very offensive impression of the product.

I’m not really that fussed; I don’t play Gmod these days. But if you want to be taken seriously in the professional community and/or use this project in a resume or CV it’s not going to look good

i’m not putting this on a resume wtf

the name describes exactly what it does. Administrative Integrated Discipline System. Technically the name undersells this mod, if anything.

it’s an admin mod i made so that i wouldn’t have to use the other ridiculously overcomplicated admin mods. some people nagged me to release it so i did. if people are going to judge the usefulness of this addon based on the name then they can go back to using ULX or whatever the popular choice is.

you can just edit the file yourself if it upsets you. The only place you ever see AIDS ingame is when it prints chat messages, and that’s a simple one line edit.

maybe i should put a [trigger warning] in the OP so i don’t cause any grief

It doesn’t upset me, as I stated above; I don’t play Gmod.

I’m just trying to show you that using a name like that is going to reflect poorly on you and your product, given that most gamers are well within internet culture and will likely generalise and group you with the ‘lol aids’ crowd

i appreciate your concern

Can we get a mirror or an workshop upload?

I came here expecting AIDS the disease as an addon.

Is CATS functioning in GMod 13? If not, will you port it?

CATS was a pretty shitty chat bot, i suppose i could make an AIDS module for it.

Much <3.

an actual admin addon and not a modular plugin core system with custom chatbox - how nice

the way you did args for commands is pretty silly. why didn’t you just store each argument as [lua]{ “Name”, “Value” }[/lua] instead of [lua] { Name = “fghfghg”, Value = “dfgdfgdf”} [/lua]

Eh, it was for readability more than anything.

I tried to make this as barebones as possible, it’s literally just a glorified concommand system with a GUI and chat commands. The modules part was kind of unnecessary but i figured i’d add it for shits and giggles.

How to make yourself admin? and how to open the menu