
You want kick, ban and teleport commands on your Garry's Mod server, and every ULX tutorial you find looks years old. Two things have changed since most of them were written: ULib 2.72 moved player ranks out of users.txt into a database, and Garry's Mod now ships 64-bit dedicated server builds. Below is where both projects stand on 4 November 2026, checked in their own repositories and Workshop pages, followed by the install.
Quick answer: To install ULX on a Garry's Mod server, add ULib (Workshop ID 557962238) and ULX (557962280) to the Workshop collection your server loads, or extract both zips into their own folders in garrysmod/addons, and do a full restart. Then join the server and type ulx adduser "YourName" superadmin in the server console. Both addons are plain Lua, so the 64-bit server builds need no special version. Since ULib 2.72, ranks live in sv.db, so editing users.txt after the first start no longer works.
Where ULX and ULib Stand in November 2026
ULX is the admin mod with the commands and the menu. ULib is the library underneath it that handles groups, permissions and bans. ULX does nothing without ULib: its README says it "requires the latest version of ULib to be installed on the server."
| ULib | ULX | |
|---|---|---|
| Workshop ID | 557962238 | 557962280 |
| Latest Workshop release | v2.72, 23 August 2025 | v3.81, 24 March 2024 |
| Zip on ulyssesmod.net | 2.71 | 3.81 |
| Last change on GitHub | 29 August 2025 | 26 April 2026 |
| Workshop subscribers | about 1.41 million | about 1.45 million |
All checked on 4 November 2026. Three things in that table matter.
The Workshop has a newer ULib than the zip. The downloads page still offers ULib 2.71 as a zip, while the Workshop item carries 2.72. The difference is where ranks are stored, which the section on users.txt below covers.
GitHub runs ahead of both. ULX's master branch has fixes from April 2026 for XGUI menu panels that could block some input to other menus, and ULib's has user backup commands added on 29 August 2025. Neither is in a Workshop release yet. The downloads page warns that the Git code "changes constantly" and can "impact your server configurations", so a live server is better off on the Workshop or zip releases.
Support moved to Discord. The Ulysses forums have been read-only since 10 July 2024, and both Workshop pages say the team does not monitor Workshop comments. Bugs go to the GitHub issue trackers, questions to their Discord.
The projects are slow but not abandoned: ULib shipped a release in August 2025, ULX got commits in April 2026, and both trackers have pull requests from 2026 that are still open.
Do ULX and ULib Work on the x86-64 Branch?
Yes. Nothing in their code is tied to 32-bit. What breaks when a server moves to 64-bit are binary modules: compiled .dll files in garrysmod/lua/bin that need a separate 64-bit build. Our 64-bit server update guide covers that in detail. ULX and ULib have no binary modules. Their repositories and the official zips contain Lua and text files only, and no Lua file in the zips calls require, which is how Garry's Mod loads a compiled module. Lua scripts do not come in 32-bit and 64-bit versions, so there is no 64-bit version of ULX to look for.
We also searched both issue trackers on 4 November 2026 and found no report of either addon failing to load on the x86-64 branch. The one open ULib issue that mentions the branch, #100 from December 2024, shows both addons loading in single-player on the x86-64 branch of the 64-bit Windows game, with "Trying to send an overflowed net message" errors. ULib 2.72 since changed how replicated convars are sent to joining players, in an attempt to stop that kind of overflow on servers with many convars.
To see what your server actually runs, type these in the server console:
lua_run print(jit.os, jit.arch)
ulx version
The first prints the platform and architecture, such as Linux x86 or Windows x64. The second prints the ULib and ULX versions. A w after the number, as in v2.72w, means the Workshop copy is the one that loaded. A zip release shows a plain v2.71, and a GitHub copy shows a d.
How to Install ULX Admin From the Workshop
This is the simplest route and gets you ULib 2.72.
- Open the ULib and ULX Workshop pages and add both to your server's Workshop collection.
- Make sure the server loads that collection. On a self-managed server, that is the
+host_workshop_collection <collection ID>startup parameter from the Garry's Mod wiki. - Do a full server restart. Both READMEs say a map change "will not cut it".
Players do not need to subscribe. The ULX Workshop page says "Only servers need to use this, not your individual joining players."
On our Garry's Mod server hosting you paste the collection ID into the panel and every addon in it downloads and mounts on startup, ULX included. If your collection does not download at all, our Workshop and FastDL guide lists the usual causes.
Installing From the addons Folder
Use this route if you do not want ULX updating through the Workshop, or if you run the GitHub code.
- Download ULib 2.71 and ULX 3.81 from the downloads page, or the
masterbranch from GitHub. - On your computer, extract the ULib zip into a new folder named
uliband the ULX zip into one namedulx. This step catches people out: the official zips have no top-level folder, so extracting them straight intoaddonsscatters their files there. - Upload both folders into
garrysmod/addonsover SFTP or FTP. - Do a full server restart.
Every addon needs its own folder in garrysmod/addons/ (Lua folder structure). Check that these two files exist, with the lowercase names the zips use:
garrysmod/addons/ulib/lua/autorun/ulib_init.lua
garrysmod/addons/ulx/lua/ulib/modules/ulx_init.lua
Pick one route and remove the other. With a Workshop copy and a folder copy installed side by side, ulx version is the quickest way to see which one loaded.
Add Yourself as Superadmin From the Server Console
The server console has full access in ULib, so it can hand out the first rank. The ULX FAQ gives the command. Join your server, then type this in the server console, not in your game console:
ulx adduser "YourName" superadmin
Part of your name is enough, and the quotes keep names with spaces together. Check the result with:
ulx who
It lists every connected player with their group. Your rank takes effect straight away, without a reconnect, because ULib re-checks a connected player's access as soon as the rank is saved.
To add someone who is offline, use their SteamID in the STEAM_0:X:Y form:
ulx adduserid STEAM_0:1:12345678 superadmin
Do not use the 17-digit SteamID64 here. ULX reads an all-digit ID as a UniqueID, so the command succeeds but the rank never matches that player. To list the SteamIDs of connected players, run this in the server console:
lua_run for _, p in ipairs(player.GetAll()) do print(p:Nick(), p:SteamID()) end
On a listen server, the host already has full access and does not need a rank.
Once you are superadmin, open the menu with ulx menu in your game console or !menu in chat. To put it on a key, the ULX FAQ uses bind "<character>" "xgui" in your game console, for example bind "F6" "xgui".
Why Editing users.txt No Longer Works
Older guides say to add yourself by editing data/ulib/users.txt. On ULib 2.72, that only works before the first start. The 2.72 changelog says "Moved Users to SQLite", and the code shows how: on its first start, ULib 2.72 prints Migrating users file to users database., copies users.txt into a ulib_users table, and from then on reads only that table. Later edits to users.txt are ignored.
The table lives in sv.db, the server-side SQLite database in the garrysmod folder (sql library). Bans have been there since ULib 2.70. Groups are still a text file, data/ulib/groups.txt, and ULX's own settings, adverts and MOTD sit in data/ulx/. On the 2.71 zip, users are still in users.txt.
Two practical rules follow:
- Change ranks with
ulx adduser,ulx adduseridor the XGUI Groups tab, not with a text editor. - When you move a ULX server to another host, copy
garrysmod/sv.dbalong withgarrysmod/data/ulibandgarrysmod/data/ulx. Withoutsv.db, every rank and ban stays behind.
The GitHub master branch adds ucl_backup_users, ucl_restore_users and ucl_drop_users_db for the server console. They are not in the Workshop release yet.
Your First Groups
ULib creates four groups by default:
| Group | Inherits from | Can target |
|---|---|---|
| user | nothing, it is the base group | anyone, but it has no admin commands |
| operator | user | everyone except admins (!%admin) |
| admin | operator | everyone except superadmins (!%superadmin) |
| superadmin | admin | everyone |
Out of the box, ULX gives operator nothing beyond what every player has, such as ulx who and ulx motd. admin gets the day-to-day tools, including ulx kick, ulx ban, ulx slay, ulx noclip, ulx goto, ulx bring, ulx mute, ulx gag and ulx map. superadmin adds ulx rcon, ulx luarun, ulx banid and all user and group management. Give superadmin only to people you would trust with the whole server, because ulx luarun runs any Lua code on it.
A moderator group with a few safe commands looks like this:
ulx addgroup moderator operator
ulx groupallow moderator "ulx kick"
ulx groupallow moderator "ulx mute"
ulx groupallow moderator "ulx gag"
ulx groupallow moderator "ulx goto"
ulx setgroupcantarget moderator !%admin
ulx adduser "ModName" moderator
The %admin in the last but one line matches admins and every group that inherits from admin, so moderators cannot kick admins or superadmins. The Groups tab in XGUI does the same with clicks. ULib also sets each player's Garry's Mod user group and reports rank changes through CAMI, the shared admin interface, so a player you add to superadmin passes the game's own IsSuperAdmin check, which other addons can test for.
ULX has more than 60 commands. Rather than copying them here, run ulx help in the console for the full list with arguments, or read the definitions in lua/ulx/modules/sh, where each command states its default group.
If It Does Not Work
- The console does not know
ulx. ULib is missing, or ULX sits one folder too deep. Check the two file paths above and do a full restart, not a map change. - Your rank is gone, or file edits do nothing. You are on ULib 2.72 and the rank lives in
sv.db. Add it again withulx adduser. - "Trying to send an overflowed net message" on join. Update ULib to 2.72, which changed how convars are sent to joining players. If it keeps happening, the first reply in issue #100 names a very large user list as a possible cause.
FAQ
Is ULX still updated in 2026?
Slowly. The latest ULX release is 3.81 from 24 March 2024, and ULib 2.72 came out on 23 August 2025. ULX's GitHub master branch got fixes in April 2026 that are not on the Workshop yet.
Does ULX work on a 64-bit Garry's Mod server? Yes. ULX and ULib are pure Lua with no binary modules, so there is nothing architecture-specific to replace, and neither issue tracker has a report of them failing to load on the x86-64 branch (checked 4 November 2026).
How do I make myself superadmin with ULX?
Join the server and type ulx adduser "YourName" superadmin in the server console. For a player who is offline, use ulx adduserid with their STEAM_0:X:Y SteamID.
Where does ULX store ranks and bans?
With ULib 2.72, users and bans are in SQLite tables in garrysmod/sv.db. Groups are in data/ulib/groups.txt and ULX settings in data/ulx/. With the 2.71 zip, users are still in data/ulib/users.txt.
Should I use the Workshop or the GitHub version? The Workshop for a live server. GitHub has newer fixes, but the Ulysses team warns that code there changes constantly and can affect your configuration.
Related guides: Garry's Mod 64-bit server update, GMod Workshop collections and FastDL, DarkRP server hosting
Sources
All opened on 4 November 2026:
- ULX: GitHub repository, README, CHANGELOG, wiki FAQ, user commands (user.lua), command modules, issues
- ULib: GitHub repository, README, CHANGELOG, ucl.lua, defines.lua, issue #100, issue #103, pull request #107
- Steam Workshop: ULib and change notes, ULX and change notes
- Team Ulysses: news, downloads
- Garry's Mod wiki: Workshop for Dedicated Servers, Lua Folder Structure, sql library, Player:SteamID, Player:IsSuperAdmin, jit.arch
- Facepunch: September 2026 update changelog