
Garry's Mod's September 2026 update, released on 16 September, ships 64-bit builds of the Windows dedicated server on every branch, so a Windows server no longer needs the x86-64 beta to run as a 64-bit process. The part that breaks servers is binary modules: a 64-bit server needs the 64-bit build of every module in garrysmod/lua/bin, such as gmsv_mysqloo_win64.dll instead of gmsv_mysqloo_win32.dll, so check that folder before you switch.
Everything below comes from Facepunch's update announcement, the full changelog and the Garry's Mod wiki, read on 25 October 2026. Linux servers are a different story, and they get their own section.
What the September 2026 Update Changed
Facepunch's headline: the update "brings 64-bit binaries for the Windows game client, dedicated servers and most developer tools, such as Hammer, to every version of the game." The reason they give is memory: there is "less risk of running out of the 32-bit memory address space and subsequently crashing when playing on heavy servers or with a lot of addons installed."
For server owners, these points from the announcement and changelog matter most:
- The update was backwards compatible. Before release, Facepunch wrote that servers "will not need immediate updating and players can still join old servers" (pre-release notice).
- Windows servers also get
srcds_console.exe, a version ofsrcds.exethat reuses the existing console window instead of opening a new one. - The 17 September hotfix fixed addons with unusual file names that refused to mount on Linux dedicated servers.
- A set of convar, log and cache changes, listed further down, applies to every server that updated.
Check Which Build Your Server Runs
Type this in the server console:
lua_run print(jit.os, jit.arch)
It prints the operating system and the architecture, for example Linux x86 for a 32-bit Linux server or Windows x64 for a 64-bit Windows one. The wiki documents jit.arch as x86 or x64 in Garry's Mod (jit.arch). Do not rely on the BRANCH variable for this: on the server side it is only defined on local servers, not on dedicated ones (BRANCH).
Linux Servers and the x86-64 Branch
Facepunch's notes only cover Windows: the changelog says the 64-bit builds of the client, Hammer and dedicated server "are now available on Windows". Nothing in the update says a Linux dedicated server on the default branch is 64-bit now, so do not assume it switched. The wiki's module table still marks the x86-64 beta branch as required for 64-bit modules (checked 25 October 2026), but it says the same for Windows, which the update changed, so it is a hint rather than proof. The jit.arch check above tells you for certain.
If you manage the install yourself with SteamCMD, the branch is part of the update command (Downloading a Dedicated Server):
app_update 4020 -beta x86-64 validate
To go back to the normal branch, run the update with -beta public. Leaving out the -beta parameter is not enough, because SteamCMD keeps updating to the last beta you activated:
app_update 4020 -beta public validate
On a hosted server the host usually runs that update for you, so ask support which branch your install uses before changing anything yourself. On ours, that is a question for live chat.
Binary Modules: The Part That Breaks
Binary modules are compiled libraries that Lua loads with require, for things like MySQL connections or HTTP requests. They have to sit directly in garrysmod/lua/bin/. They cannot be shipped inside an addon, which Facepunch describes as a safety measure, because modules can harm the system (require).
Each platform and architecture has its own file name (Creating Binary Modules):
| Server platform | Module file name |
|---|---|
| Windows, 32-bit | gmsv_example_win32.dll |
| Windows, 64-bit | gmsv_example_win64.dll |
| Linux, 32-bit | gmsv_example_linux.dll |
| Linux, 64-bit | gmsv_example_linux64.dll |
The Linux files are .so libraries renamed to .dll, and require("example") picks the right one by itself. Because the names differ, the 32-bit and 64-bit files can sit next to each other in lua/bin, which means you can install both and move between builds without touching the folder again.
If the build your server runs is missing, require fails, and every addon that depends on the module breaks with it: database saves, logging to an external database, HTTP calls to a Discord bot or a web panel. These are the release pages of common server modules, checked on 25 October 2026:
| Module | Latest release | 64-bit server builds |
|---|---|---|
| MySQLOO | 9.7.6, 1 September 2022 (9.8.0 in beta) | Yes, win64 and linux64 |
| reqwest | 4.0.1, 3 October 2026 | Yes, win64 and linux64 |
| CHTTP | 1.11.2, 24 June 2026 | Yes, win64 and linux64 |
| serversecure | 1.5.43-rc2, 2 May 2026 | No, only win32 and linux |
| tmysql4 | R1.02, 1 January 2017 | No, only win32 and linux |
The steps before a switch:
- Connect over SFTP or open the file manager and list
garrysmod/lua/bin/. - For every file ending in
_win32.dllor_linux.dll, download the matching_win64.dllor_linux64.dllfrom that module's own release page, never from a re-upload. - Put the new files next to the old ones and restart the server.
- Watch the console during startup for module load errors, then test the features that use each module.
A module without a 64-bit build keeps your server on 32-bit until its author ships one, or until you replace it. tmysql4 has had no release since 2017, so a server that still uses it is better off moving to MySQLOO, which the addon has to support.
Convars, Logs and Files That Changed
These changes came with the September update (changelog):
- sv_pure: the changelog says it "Prevented sv_pure defaulting to mode 0, and dedicated servers trying to read files we don't ship every server startup". If players with custom client files start getting warnings or kicks, check your
sv_puresetting first.sv_pure_kick_clientsdefaults to 1, which kicks clients with mismatching files; at 0 they only get a warning (ConVars). - Log file names changed from
LMMDDIIItoL-YYYY-MM-DD-III. Scripts that parse or rotate your logs by file name need updating. - sv_log_storetime is new and defaults to 0. It sets how many hours log files in
/logs/are kept. - sv_logdownloadlist now defaults to 0, so the server stops writing files into
garrysmod/DownloadLists/. - Lua error logs are deleted once they grow past 100 MB.
- Workshop cache: dedicated servers now clean
cache/workshop/of addons that are no longer installed. - Removed convars:
con_logfile,sv_no_ain_files(.nav and .ain files are no longer sent to clients automatically) andsv_unlockedchapters. Take them out of yourserver.cfg. - sv_loadingurl and sv_skyname are no longer saved between sessions, so set your loading screen URL in
server.cfg. - For addon developers: Lua can no longer change various convars that save between sessions, and
resource.AddWorkshopnow stops on empty or too short input. An addon that relied on either needs a fix from its author.
Why 64-bit Matters on Big Servers
A 32-bit process can address at most 4 GB of memory, however much RAM the machine has. That ceiling is what Facepunch refers to: on a heavy server with a large Workshop collection, a 32-bit srcds can run out of address space and crash while the machine still has memory free. A 64-bit server removes that limit.
The practical rule follows from it: one 32-bit srcds process cannot use more than 4 GB, so memory above that mostly pays off on a server that runs the 64-bit build. Check with the lua_run line above before you pay for more memory.
Test Before You Switch the Live Server
Facepunch asked owners to test the update on a beta branch before release, and the same approach works for the 64-bit switch:
- Set up a second install on the branch you want, such as
x86-64. - Copy over
garrysmod/addons,garrysmod/data,garrysmod/settings,garrysmod/cfgandgarrysmod/lua/bin, with the 64-bit modules added. - Start it, join, and go through the features players use most: saving, jobs, shops, admin tools.
- Report engine bugs on Facepunch's garrysmod-issues tracker, as their announcement asks.
Workshop addons do not need copying if the test server uses the same collection, and our Workshop and FastDL guide covers why a collection silently fails when it is not set to Public.
What Is Coming in the Next Update
The next update is already on the dev branch, and its preview changelog lists these server-relevant items. As of 25 October 2026 there is no release date:
- 64-bit becomes the default for the Windows game client, with
-force32bitto go back. - Dedicated servers can load Workshop IDs from a file instead of a Steam Workshop collection.
- The Workshop cache cleanup moves to the right folder,
cache/srcds/instead ofcache/workshop/. - A new
p2p_force_reliableconvar can force all network messages through the reliable channel. - A crash with SourceTV/HLTV is fixed.
The update before September, in April 2026, made Black Mesa and Military Conflict: Vietnam mountable; our April 2026 update post covers that.
Running GMod With Us
Our Garry's Mod server hosting runs from €2.20 a month for 2 GB to €10.20 for 10 GB in Europe, with Workshop collections set from the panel, DDoS protection and NVMe storage in 9 regions. You get SFTP and a file manager for lua/bin, and a live console in the panel for the checks above.
FAQ
Is the Garry's Mod dedicated server 64-bit now?
On Windows, 64-bit builds of the dedicated server have been available on every branch since the update of 16 September 2026. For Linux, Facepunch's notes say nothing about 64-bit servers on the default branch, and the wiki still lists the x86-64 beta branch as required for 64-bit modules (checked 25 October 2026). Run lua_run print(jit.os, jit.arch) in the console to see what your server runs.
Where do Garry's Mod binary modules go?
Directly in garrysmod/lua/bin/. They cannot be loaded from inside an addon, which Facepunch treats as a safety measure.
How do I tell a 64-bit module from a 32-bit one?
By the end of the file name: _win64.dll and _linux64.dll are 64-bit, _win32.dll and _linux.dll are 32-bit.
Does MySQLOO work on a 64-bit server?
Yes. Its latest stable release, 9.7.6, includes gmsv_mysqloo_win64.dll and gmsv_mysqloo_linux64.dll, next to the 32-bit builds.
Why do my server's log files have different names?
The September 2026 update changed the default log file name from LMMDDIII to L-YYYY-MM-DD-III. Tools that read your logs by name need the new pattern.
Related guides: GMod Workshop collections and FastDL, GMod's April 2026 update