Navigation

Knowledgebase

ULX/ULIB Admin System for Garry's Mod

Last updated: 03/03/20
written by  Nodecraft Staff

What is ULX?

ULX is an admin mod for Garry's Mod that allows you to have greater control over who is playing on your Garry's Mod server. ULX offers server admins an AMXX-style support, allowing multiple admins with different access levels on the same server.

It features commands from basic kick, ban, and slay to fancier commands such as blind, freeze, voting, and more. ULX is developed by Ulysses, and you can find more information about ULX and their company at http://ulyssesmod.net. They also have forums at http://forums.ulyssesmod.net.

Installing ULX/ULib

ULX requires that you also install ULib, which is a set of common library files that ULX will need to work correctly.

You can install ULX and ULib two ways:

  • Using the Steam Workshop system to automatically install it on your client or server (by the way of a Workshop Collection ID) or by
  • Manually downloading the ULX and ULib files, and uploading them to your server.

The only real major difference between the two methods is that the Steam workshop will download ULX and Ulib as single monolithic files, stored in a format used by Steam to make updating them easier. You will not be able to easily access things like the configuration files of ULX, or other any other files and directories used by them.

Almost all, but the most advanced, configuration setups can be done directly in an admin GUI that will pop up when running ULX, so direct access to the files isn't necessary most of the time.

If you do want to access the files, then we would suggest manually installing ULX and ULib.

Steam Workshop Method

Just subscribe to the mods in the Steam Workshop and/or include the IDs in your Steam Workshop Collection ID used by your Garry's Mod server.

ULX's workshop ID is 557962280. ULib's Workshop ID is 557962238.

After the Steam workshop collection ID is entered into the control panel for your Garry's Mod server, the addons will be automatically downloaded and installed the next time your Garry's Mod server is started.

Manual Install Method

  • Download ULib and ULX from the official Ulysses Mod website. ULX Ulib Garry's Mod Downloads
  • Upload both of these directories to your servers garrysmod/addons folder.
  • Create two directories inside your addons folders: ulx and ulib. Please make sure the folder names are in all lowercase letters.
  • Extract the ulx-x.zip file to the ulx directory
  • Extract the ulib-x.zip file to the ulib directory.
  • ulx and ulib should now both contain some files, each with their own addon.txt, lua, etc.

Testing to Make Sure the Install is Working Correctly

  • Restart your server
  • Run ulx adduser <yourname> superadmin to make yourself admin.
  • From within the game, try the ulx menu command to test the ULX menu, or xgui.

The "MOTD" Screen

When you connect to a Garry's Mod server running ULX, you will see a screen similar to the one shown below, which displays the Message of the Day(MOTD) screen. The information displayed on this welcome screen can all be custom configured and changed.

A view of the default greeting screen when joining a GMod server with ULX.

ULX Commands

ULX offers a wider variety of commands for player management, and controlling disruptive players on your server. The following sections show you how to enter the commands, what they need to be told to work correctly, and then lists all the actual commands.

Entering Commands

ULX commands can be entered two ways; by entering them in the Nodecraft game server control panel console window, or directly into the in-game chat in Garry's Mod (as long as you are an admin).

There are slightly different formats depending on which way the command is entered.

ULX commands are usually followed by "targets" and "arguments," separated by spaces. The "targets" control who the command affects, and "arguments" control how the command works.

If the commands aren't given the correct targets and arguments, many of them cannot work correctly. Some commands do have default values it will use for arguments if you don't specifically state them, but some of those defaults can have side effects.

For example, the jail command which sends a disruptive player to "timeout," has the default time length of "forever." Yep, if you don't state how many seconds you want them to stay in jail, it just leaves them there permanently.

Commands

  • If you are entering commands in the console, they must all be proceeded by ulx followed by a space and then the specific ulx command to be used.

    For example:

    ulx kick (playername/ID) (optional: reason)
    ulx slay (playername/ID)
    
  • In the in-game chat, you just type an exclamation mark and the ulx command, with no spaces between them.

    For example:

    !kick (playername/ID) (optional:reason)
    !slay (playername/ID)
    

Targets

For many ULX commands to work correctly, they need to be told who the command is affecting. Who are you sending to jail?

This is done by following the command with a "Target," which can be a player name on the Garry's Mod server, Steam64ID, or in some commands, the user's IP address.

There is a list of shortcut characters you can use in the targeting, that can also save time, allowing you to have a single command affect a whole group, multiple people, etc.

Target Shortuts

Shortcut Character Targets
* target all
^ target yourself
@ target your picker
$\ target by ID (steamid, uniqueid, userid, ip)
#\ target users in a specific group
%\ target users with access to the group (inheritance counts)
! can proceed another keyword, and reverse it's targeting. Like ^ normally targets yourself, but !^ targets everyone BUT you

Example:

ulx slap #user slaps all players who are in the default guest access group. ulx jail ^ would send yourself to jail. Hilarious.

You can also separate multiple targets by commas. IE, ulx slap bob,jeff,henry

Arguments

In the tables below that cover the specific commands, there are columns for the "arguments." Some commands cannot work correctly without some information being passed to them.

Some commands have default arguments, like the ulx jail command has the default length of zero, and zero means the user sent to jail stays there forever. If you really intended to give a player a five minute timeout (which would have been "300" seconds), and forgot to set that argument to 300, well, woops, they're never getting out of jail.

ULX Commands List

This complete list of commands can be printed out in the console at any time by using the command ulx help.

Typing the command without the target or the arguments will show the current settings in the console.

Category: Fun

Console Command Chat Command Target Arguments Description Deactivate Example
ulx armor !armor (playerID) (0-255) Sets the armor for target(s) ulx armor Bob 100 ; Sets Bob's armor to be 100
ulx blind !blind (playerID) (0-255) Blinds target(s), default 255 ulx unblind ulx blind Bob 255 ; Blinds Bob so that his screen is white
ulx cloak !cloak (playerID) (0-255) Cloaks target(s), defaults to self and 255 ulx uncloak ulx cloak Bob 255 ; Makes Bob invisible
ulx freeze !freeze (playerID) Freezes target(s) ulx unfreeze ulx freeze Bob ; Bob can no longer move
ulx god !god (playerID) Grants god mode to target(s), defaults to self ulx ungod ulx god Bob ; Bob is impervious to damage
ulx hp !hp (playerID) (1-2147483647) Sets the hp for target(s) ulx hp Bob 200 ; Bob's hp is now 200
ulx ignite !ignite (playerID) (1-300) Ignites target(s), default 300 seconds ulx unignite ulx ignite Bob 5 ; Bob is now on fire for 5 seconds
ulx jail !jail (playerID) (number) Jails target(s), default 0 seconds, 0 is forever ulx unjail ulx jail Bob 10 ; Bob is in a jail for 10 seconds.
ulx jailtp !jailtp (playerID) (number) Teleports, then jails target(s), default 0 seconds, 0 is forever !jailtp Bob 5 ; Bob is teleported to where you're looking and jailed for 5 seconds
ulx maul !maul (playersID) Mauls target(s) ulx maul Bob ; Bob is mauled until he's dead.
ulx playsound (sound) Plays a sound (relative to sound dir) ulx playsound music ; A sound file called "music" located in the sound directory is played in the server
ulx ragdoll !ragdoll (playerID) ragdolls target(s) ulx unragdoll ulx ragdoll Bob ; Bob falls on the ground
ulx slap !slap (playerID) (number) Slaps target(s) with given damage(default 0) ulx slap Bob 5 ; Bob takes 5 damage
ulx slay !slay (playerID) Slays target(s) ulx slay Bob ; Bob dies
ulx sslay !sslay (playerID) Silently slays target(s) ulx sslay Bob ; Bob dies, and his body vanishes
ulx strip !strip (playerID) Strip weapons from target(s) ulx strip Bob ; Bob loses his weapons
ulx unigniteall !unigniteall Extinguishes all players and all entities
ulx whip !whip (playerID) (2-100) (number) Slaps target(s) a given number of times(default 10) with given damage(default 0) each time ulx whip Bob 3 2 ; Bob is slapped 3 times for 2 damage each for a total of 6 damage

Category: Rcon

Console Command Chat Command Argument Description Example
ulx cexec !cexec (playerID) {command} Run a command on console of target(s) ulx cexec Bob say hi ; You make Bob say hi in chat.
ulx ent (classname) {(flag) : (value) |} Spawn an ent, separate flag and value with ':', flag:value pairs with '|' ulx ent weapon_rpg ; Creates an rpg where you were looking
ulx exec (file) Execute a file from the cfg directory on the server ulx exec server.cfg ; You executed the file "server.cfg"
ulx luarun {command} Executes lua in server console. (Use '=' for output)
ulx rcon !rcon {command} Execute command on server console. !rcon ulx god Bob ; You tell the console to make Bob impervious

Category: User Management

Console Command Target Arguments Description Example
ulx addgroup (group) (inherits from) Create a new group with optional inheritance. ulx addgroup Moderator operator ; Added group Moderator that inherits from the group operator.
ulx adduser (playerID) (group) Add a user to specified group. ulx adduser Bob Moderator ; You made Bob a Moderator
ulx adduserid (SteamID, IP, or UniqueID) (group) Add a user by ID to specified group. ulx adduserid STEAM_0:0:11101 Moderator ; You made this steam account a Moderator
ulx groupallow (group) (command) (access tag) Add to a group's access. ulx groupallow Moderator playsound ; You add the playsound command to Moderator's ALLOW list
ulx groupdeny (group) (command) Remove from a group's access. ulx groupdeny Moderator playsound ; You add the playsound command to Moderator's DENY list
ulx removegroup (group) Removes a group. USE WITH CAUTION. ulx removegroup Moderator ; You remove the Moderator group
ulx removeuser (playerID) Permanently removes a user's access. ulx removeuser Bob ; Bob no longer has access to any group powers
ulx removeuserid (SteamID, IP, or UniqueID) Permanently removes a user's access by ID. ulx removeuserid STEAM_0:0:11101 ; This steam account no longer has acces to any group powers
ulx renamegroup (current group) (new group) Renames a group. ulx renamegroup Moderator Mod ; You rename group Moderator to Mod
ulx setgroupcantarget (group) (target string) Sets what a group is allowed to target ulx setgroupcantarget admin Moderator ; The group admin can now target the group Moderator with any commands they have
ulx userallow (playerID) (command) (access tag) Add to a user's access. ulx userallow Bob playsound ; You add the playsound command to Bob's ALLOW list
ulx userallowid (SteamID, IP, or UniqueID) (command) (access tag) Add to a user's access. ulx userallowid STEAM_0:0:11101 playsound ; You add the playsound command to this ID's ALLOW list
ulx userdeny (playerID) (command) (remove explicit allow or deny instead of outright denying: 0/1) Remove from a user's access. ulx userdeny Bob playsound ; You add the playsound command to Bob's DENY list
ulx userdenyid (SteamID, IP, or UniqueID) (command) (remove explicit allow or deny instead of outright denying: 0/1) Remove from a user's access. ulx userdeny STEAM_0:0:11101 playsound 1 ; You remove the playsound command from this ID's DENY list
ulx usermanagementhelp See the user management help.

Category: Utility

Console Command Chat Command Target Arguments Description Example
ulx ban !ban (playerID) (number) {reason} Bans target for a given amount of minutes. 0 is default and permanent. ulx ban Bob 1 He is annoying ; You banned Bob for one minute because "He is annoying"
ulx banid (steamid) (number) {reason} Bans steamid for a given amount of minutes. 0 is default and permanent. ulx ban STEAM_0:0:11101 0 Trolling too much ; You banned this steam ID permanently because they were "Trolling too much"
ulx debuginfo Dump some debug information.
ulx help Shows this help.
ulx kick !kick (playerID) {reason} Kicks target. ulx kick Bob Need more room
ulx map !map (map) (gamemode) Changes map and gamemode. ulx map
ulx noclip !noclip (playerIDs) Toggles noclip on target(s).(defaults to self) ulx noclip Bob ; Bob can now move through anything
ulx resettodefaults (string) ("FORCE") Resets ALL ULX and ULib configuration!
ulx spectate !spectate (playerID) Spectate target. ulx spectate Bob ; You are now seeing what Bob sees
ulx unban (SteamID) Unbans steamid. ulx unban STEAM_0:0:11101 ; You unban this steam ID
ulx version !version See version information.
ulx who (SteamID) See information about currently online users. ulx who Bob; The console prints all relevant info about Bob

Category: Chat

Console Command Chat Command Target Arguments Description Deactivate Example
ulx asay @ {message} Send a message to currently connected admins. @ Hello Bob needs help ; You ask an admin to help Bob
ulx csay @@@ {message} Send a message to everyone in the middle of their screen. @@@ Hi everyone
ulx gag !gag (playerIDs) Gag target(s), disables microphone. ulx ungag ulx gag Bob ; Bob can no longer talk in the voice channel
ulx gimp !gimp (playerIDs) Gimps target(s) so they are unable to chat normally. ulx ungimp ulx gimp Bob ; Bob can only say things in the gimp.txt file now
ulx mute !mute (playerIDs) Mutes target(s) so they are unable to chat. ulx unmute ulx mute Bob ; Bob can no longer chat
ulx psay !p (playerID) {message} Send a private message to target. ulx psay Bob hi bob ; You whisper "hi bob" to Bob
ulx thetime !thetime Shows you the server time.
ulx tsay @@ {message} Send a message to everyone in the chat box. @@ Hi everyone

Category: Voting

Console Command Chat Command Target Arguments Description Example
ulx stopvote !stopvote Stops a vote in progress.
ulx veto !veto Veto a successful votemap.
ulx vote !vote (title) {options} Starts a public vote. ulx vote Pizza? Yes No "Other Option" ; You start a custom vote titled "Pizza?" with options "Yes", "No", or "Othe Option"
ulx voteban !voteban (playerID) (number) {reason} Starts a public ban vote against target, default 1440 minutes. ulx voteban Bob 5 Bob needs a break ; You start a vote to ban Bob because he "needs a break"
ulx votekick !votekick (playerID) {reason} Starts a public kick vote against target. ulx votekick Bob Bob is afk ; You start a vote to kick Bob because "Bob is afk"
ulx votemap !votemap {map} Vote for a map, no arguments lists available maps. !votemap gm_construct ; You vote for the construct map
ulx votemap2 !votemap2 {map} Starts a public map vote. !votemap gmconstruct gmflatgrass ; Starts a vote in the server with options "gmconstruct" or "gmflatgrass"

Category: Teleport

Console Command Chat Command Target Arguments Description Example
ulx bring !bring (playerIDs) Brings target(s) to you. !bring Bob ; Teleports Bob to you
ulx goto !goto (playerID) Goto target. !goto Bob ; Teleports you to Bob
ulx return !return (playerID) Returns target to last position before a teleport, defaults to self ulx return Bob ; Returns Bob to his previous position
ulx send !send (playerID) (playerID) Goto target. ulx send Bob Steve ; Telports Bob to Steve
ulx teleport !tp (playerID) Teleports target, defaults to self !teleport ; Teleports you to where your looking

Category: Menus

Console Command Chat Command Target Description
ulx motd !motd Show the message of the day.
xgui (show, hide, toggle) or ulx menu !xgui, !menu Opens and/or closes XGUI.
xgui fban !fban (playerID) Opens the add ban window, freezes the specified player, and fills out the Name/SteamID automatically.
xgui xban !xban (playerID) Opens the add ban window and fills out Name/SteamID automatically if a player was specified.

Category: Config

These settings can also be edited in /garrysmod/data/ulx/config.txt

Console Command Argument Description
ulx showMotd (0, 1, 2, 3) Sets the MOTD Mode. (SEE BELOW)
ulx motdfile (filename.txt) The MOTD to show, if using a file. Put this file in the root of the garry's mod directory.
ulx motdurl (URL) The MOTD to show, if using a URL.
-------- -------- --------
ulx chattime (x) Players can only chat every x seconds (anti-spam). 0 to disable
ulx meChatEnabled (0, 1, 2) Allow players to use '/me' in chat. 0 = Disabled, 1 = Sandbox only (Default), 2 = Enabled
-------- -------- --------
ulx logFile (0, 1) Log to file (Can still echo if off). This is a global setting, nothing will be logged to file with this off.
ulx logEvents (0, 1) Log events (player connect, disconnect, death)
ulx logChat (0, 1) Log player chat
ulx logSpawns (0, 1) Log when players spawn objects (props, effects, etc)
ulx logSpawnsEcho (-1, 0, 1, 2) Echo spawns to players in server. -1 = Off, 0 = Dedicated console only, 1 = Admins only, 2 = All players. (Echoes to console)
ulx logJoinLeaveEcho (0, 1) Echo players leaves and joins to admins in the server (useful for banning minges)
ulx logDir (name) The log directory under garrysmod/data
ulx logEcho (0, 1, 2) Sets the Echo mode (SEE BELOW)
-------- -------- --------
ulx logEchoColors (0, 1) Whether or not echoed commands in chat are colored
ulx logEchoColorDefault (0-255) (0-255) (0-255) The default text color (RGB)
ulx logEchoColorConsole (0-255) (0-255) (0-255) The color that Console gets when using actions
ulx logEchoColorSelf (0-255) (0-255) (0-255) The color for yourself in echoes
ulx logEchoColorEveryone (0-255) (0-255) (0-255) The color to use when everyone is targeted in echoes
ulx logEchoColorPlayerAsGroup (0, 1) Whether or not to use group colors for players. If false, it uses the color below.
ulx logEchoColorPlayer (0-255) (0-255) (0-255) The color to use for players when ulx logEchoColorPlayerAsGroup is set to 0.
ulx logEchoColorMisc (0-255) (0-255) (0-255) The color for anything else in echoes
-------- -------- --------
ulx rslotsMode (0, 1, 2, 3) Sets the slots mode. (SEE BELOW)
ulx rslots (number) Sets the number of reserved slots, only applicable for modes 1 and 2.
ulx rslotsVisible (number) When this is 0, svvisiblemaxplayers will be set to maxplayers - slotscurrently_reserved
-------- -------- --------
ulx votemapEnabled (0, 1) Enable/Disable the entire votemap command
ulx votemapMintime (number) Time in seconds after map change before votes count.
ulx votemapWaittime (number) Time in seconds before a user must wait before they can change their vote.
ulx votemapSuccessratio (0.4, 0.5, 0.6, 0.7, etc.) Ratio of (votes for map)/(total players) needed to change map. (Rounds up)
ulx votemapMinvotes (number) Number of minimum votes needed to change map (Prevents llamas). This supercedes the above convar on small servers.
ulx votemapVetotime (number) Time in seconds an admin has after a successful votemap to veto the vote. Set to 0 to disable.
ulx votemapMapmode (1, 2) 1 = Use all maps but what's specified in votemaps.txt, 2 = Use only the maps specified in votemaps.txt.
ulx voteEcho (0, 1) 1 = Echo what every player votes (this does not apply to votemap). 0 = Don't echo
ulx votemap2Successratio (0.4, 0.5, 0.6, 0.7, etc.) Ratio of (votes for map)/(total players) needed to change map. (Rounds up)
ulx votemap2Minvotes (number) Number of minimum votes needed to change map (Pevents llamas). This supercedes the above convar on small servers.
ulx votekickSuccessratio (0.4, 0.5, 0.6, 0.7, etc.) Ratio of (votes for kick)/(total players) needed to kick player. (Rounds up)
ulx votekickMinvotes (number) Number of minimum votes needed to kick player (Prevents llamas). This supercedes the above convar on small servers.
ulx votebanSuccessratio (0.4, 0.5, 0.6, 0.7, etc.) Ratio of (votes for ban)/(total players) needed to ban player. (Rounds up)
ulx votebanMinvotes (number) Number of minimum votes needed to ban player (Prevents llamas). This supercedes the above convar on small servers.

MOTD Modes

  • 0 - OFF No MOTD shown
  • 1 - FILE Show the players the contents of the file from the 'motdfile' cvar
  • 2 - GENERATOR Uses the MOTD generator to create a MOTD for the player (use XGUI for this)
  • 3 - URL Show the player the URL specified by the 'motdurl' cvar

Echo Modes

  • 0 - OFF No output to any players when an admin command is used
  • 1 - ANONYMOUS Output to players without access to see who used the command (admins by default) similar to "(Someone) slapped Bob with 0 damage"
  • 2 - FULL Output to players similar to "Foo slapped Bob with 0 damage"

Slots Modes

  • 0 - Off
  • 1 - Keep # of slots reserved for admins, admins fill slots.
  • 2 - Keep # of slots reserved for admins, admins don't fill slots, they'll be freed when a player leaves.
  • 3 - Always keep 1 slot open for admins, kick the user with the shortest connection time if an admin joins.

Viewing and Editing your ULX settings

To find your ULX settings go to /garrysmod/data in your server file manager.

The file manager view of the ULX setting folders.

The ulib folder contains:

  • bans.txt - the list of banned users on your server.
  • groups.txt - the list of groups on your server, and commands they're allowed to use.
  • misc_registered.txt - a list of descriptions for each command.
  • users.txt - the list of every user that belongs to some group on your server.

The ulx folder contains:

  • adverts.txt - the file that sends out advertisements to your server.
  • banmessage.txt - the file that is used to store the message that is sent to banned players.
  • banreasons.txt - the file that is used to store default reasons for kicking and banning users.
  • config.txt - the file that holds all the config command settings as described above.
  • downloads.txt - the file that designates what folder or file will be forced downloaded by users.
  • gimps.txt - the file that is used to store lines used by users who are "gimped".
  • motd.txt - the file that is used to store the settings of your MOTD screen.
  • sbox_limits.txt - the file that is used to store the maximum value of certain sliders in the XGUI.
  • votemaps.txt - the file that is used to store the names of maps that can be voted upon.

All of the .txt file can be edited to change their settings. Each file also includes more specific descriptions of how to edit them.

The ulx_logs folder contains any stored logs. The log commands in the Config Category given above will store them here.

Can't find answers to your questions?

Feel free to contact our support team for personal and professional help.

Write Articles, Get FREE Servers!

More information coming soon.

Chat blocked!

Nodecraft is an ad-free website! Disable adblock if you have any questions.