Well i have tested banning myself for 5 min. 2 min after the ban i stopped and restarted the server, i was still banned for 3 min. So it seem ok but maybe a shutdown/restart doesn't do the same effect as a real crash.
But it seems that the ban menu have a bug:
Before banning myself, the ban list contained all the bans that are in banned_users.cfg. When i was unbanned, i rejoined and checked the list: there was only me in the ban list this time.
I'm maybe wrong, but i think this list contain only the users banned from ulx commands (but before banning someone from ulx commands, the list contain the content of banned_users.cfg).
EDIT: It seems that the list show all bans again. Weird.
Also, about this ban list, you should add a button "Clear unbanned users" or something. Because even me being unbanned, there was a button at the right side to unban me. Or maybe add an option in the config file "auto_clear_unbanned_users" or whatever.
What you mean user administration commands ?
These ?
Category: User Management
o addgroup <group> [<inherit>] - Create a new group with optional inheritance.
o adduser <user> <group> [<immunity>] - Use with no args for more help.
o groupallow <group> <acess> [<revoke>] - Allow group access to string access. If optional revoke is true, then revoke access
o groupdeny <group> <acess> [<remove>] - Deny a group access to string access. If remove is true then remove access from the d
o userallow <user> <command> - Specifically allows the user access to command. (IE: "ulx slap")
o userdeny <user> <command> - Specifically denies the user access to command.
Actually i can't test, as no one is in the server
About menus suggestions:
- Well i had already suggested that, i don''t know if you remember: in the Client menu, i would like to have only options that the player isn't..sorry i don't know how to explain clearly..For example if i'm muted, only create a button Unmute but no button Mute as i'm already muted

and same for all others toggleable buttons
- In the map menu, it seems that you do lines of 5, then go to next line, etc, but they are sorted in rows, hmm..I think it will be better to make rows of 16 maps, also because maybe it depend of the user's screen resolution (i run on windowed 1024*768) , there is a big unused space, and also, enlarge buttons a bit but that's not really needed

:

So maybe make the window size depending of the maps count
Only suggestions

PS: I've just looked my console, there is some usermessages warnings:
[UCL] Access set.
Hey 'kyzer' - You're in the 'superadmin' group on this server.
This server is running Ghost Script v1.8!
Welcome to \\SILENTS// PHX | Wire | LS! We're playing gm_construct.
This server is running ULib version 2.10.
ReadUsermessageString: String Not Pooled!
ReadUsermessageString: String Not Pooled!
ULX version 3.20 loaded.
[UCL] Access set.
Hey 'kyzer' - You're in the 'superadmin' group on this server.
This server is running Ghost Script v1.8!
Welcome to \\SILENTS// PHX | Wire | LS! We're playing gm_flatgrass.
This server is running ULib version 2.10.
ReadUsermessageString: String Not Pooled!
ReadUsermessageString: String Not Pooled!
ReadUsermessageString: String Not Pooled!
ReadUsermessageString: String Not Pooled!
ReadUsermessageString: String Not Pooled!
ReadUsermessageString: String Not Pooled!
ReadUsermessageString: String Not Pooled!
ReadUsermessageString: String Not Pooled!
ReadUsermessageString: String Not Pooled!
ReadUsermessageString: String Not Pooled!
ReadUsermessageString: String Not Pooled!
ReadUsermessageString: String Not Pooled!
ReadUsermessageString: String Not Pooled!
ReadUsermessageString: String Not Pooled!
ReadUsermessageString: String Not Pooled!
ReadUsermessageString: String Not Pooled!
ReadUsermessageString: String Not Pooled!
ULX version 3.20 loaded.
You're playing on \\SILENTS// PHX | Wire | LS, enjoy your stay!
PPS: Here is my groups.txt frshly created in the data folder:
"superadmin"
{
"deny"
{
}
"allow"
{
"ulx hiddenecho"
"ulx rcon"
"ulx luarun"
"ulx cexec"
"ulx ent"
"ulx adduser"
"ulx userallow"
"ulx userdeny"
"ulx addgroup"
"ulx groupallow"
"ulx groupdeny"
"overcomeimmunity"
}
"inherit_from"
{
"admin"
}
}
"admin"
{
"deny"
{
}
"allow"
{
"ulib_passtime"
"ulib_passtimeout"
"ulx spawnecho"
"ulx tsay"
"ulx csay"
"ulx gimp"
"ulx mute"
"ulx ungimp"
"ulx unmute"
"ulx gag"
"ulx ungag"
"ulx chattime"
"ulx welcomemessage"
"ulx slap"
"ulx whip"
"ulx slay"
"ulx sslay"
"ulx ignite"
"ulx playsound"
"ulx freeze"
"ulx unfreeze"
"ulx god"
"ulx ungod"
"ulx noclip"
"ulx hp"
"ulx cloak"
"ulx uncloak"
"ulx blind"
"ulx unblind"
"ulx jail"
"ulx unjail"
"ulx ghost"
"ulx unghost"
"ulx ragdoll"
"ulx unragdoll"
"ulx maul"
"ulx adminmenu"
"ulx clientmenu"
"ulx mapsmenu"
"ulx showmotd"
"ulx banmenu"
"ulx exec"
"ulx rslotsmode"
"ulx rslots"
"ulx rslotsvisible"
"ulx reservedslots"
"ulx bring"
"ulx goto"
"ulx send"
"ulx teleport"
"ulx tooldeny"
"ulx toolallow"
"ulx tooldenyuser"
"ulx toolallowuser"
"ulx tooldenyoverride"
"ulx map"
"ulx kick"
"ulx ban"
"ulx banid"
"ulx unban"
"ulx spectate"
"ulx mingekick"
"ulx physgunplayer"
"ulx vote"
"ulx votemap2"
"ulx votekick"
"ulx voteban"
"ulx veto"
}
"inherit_from"
{
"operator"
}
}
"user"
{
"deny"
{
}
"allow"
{
"ulx"
"ulx help"
"ulx psay"
"ulx asay"
"ulx thetime"
"ulx menu"
"ulx_valueupdate"
"ulx_cvar"
"ulx_getgamemodes"
"ulx motd"
"ulx_getbans"
"ulx who"
"ulx votemap"
}
"inherit_from"
{
}
}
"respected"
{
}
"operator"
{
"deny"
{
}
"allow"
{
"ulx seeasay"
}
"inherit_from"
{
}
}
"none"
{
"deny"
{
}
"allow"
{
"ulx logecho"
"ulx logfile"
"ulx logevents"
"ulx logchat"
"ulx logspawns"
"ulx logspawnsecho"
"ulx logdir"
"ulx addgimpsay"
"ulx addadvert"
"ulx addcsayadvert"
"ulx addforceddownload"
"ulx debuginfo"
"ulx voteecho"
"ulx votemap2successratio"
"ulx votemap2minvotes"
"ulx votekicksuccessratio"
"ulx votekickminvotes"
"ulx votebansuccessratio"
"ulx votebanminvotes"
"ulx votemapenabled"
"ulx votemapmintime"
"ulx votemapwaittime"
"ulx votemapsuccessratio"
"ulx votemapminvotes"
"ulx votemapvetotime"
"ulx votemapmapmode"
"ulx votemapaddmap"
}
"inherit_from"
{
}
}
It seem that i can't execute any of the commands of the "none" group. And i'm superadmin. Bug ?
Another small bug and the last one for this post: The log line "Server is shutting down/changing levels." is only logged when changing level, not when server is shutting down.