iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Antihost offers Linux VPS plans with full root access, unlimited traffic on a 1 Gbps port and a 14-day free trial.
Install the Garry’s Mod dedicated server with SteamCMD, using AppID 4020, then launch it with the Linux srcds_run script, a map, a gamemode, a player limit and a Steam Game Server Login Token (GSLT). A 64-bit Linux host may still need 32-bit libraries because the available Garry’s Mod server binary is 32-bit.
For a one-off or tightly controlled installation, SteamCMD plus srcds_run gives the clearest control. For a public server that must survive reboots and receive routine updates, LinuxGSM adds service commands, validation, backups, logs and monitoring. The complete setup is below, including Workshop collections and the common recovery paths.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
What the Linux server consists of
A Garry’s Mod server is a headless Source dedicated-server process. SteamCMD downloads and updates its files; srcds_run starts the process; command-line parameters select the game mode, map and player limit; and a GSLT identifies a public server to Steam. Workshop content is fetched when the server starts if you provide a collection ID.
Keep the server files in a directory owned by a dedicated account rather than by root. A typical layout is a service account named steam or gmodserver with the files under $HOME/gmodds. LinuxGSM uses a service account and, in its documented example, stores the game configuration at /home/gmodserver/serverfiles/garrysmod/cfg/gmod-server.cfg.
#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
Requirements and decisions before installing
Host and operating system
- Use a data-center VPS or dedicated host when consistent public uptime matters. LinuxGSM lists providers such as OVHcloud, Linode and Vultr as examples of this type of hosting.
- LinuxGSM lists Ubuntu 24.04 LTS, Debian 11 and Enterprise Linux 8 among its minimum recommended distributions. Other distributions can work, but package names and service behavior differ.
- Have command-line access, enough disk space for the base game, downloaded maps, Workshop content and logs, and a non-root service account.
- On a 64-bit system, be prepared to install 32-bit compatibility libraries. The Garry’s Mod dedicated-server binary available for Linux is 32-bit.
Choose a management style
| Approach | Installation and control | Lifecycle operations | Best fit |
|---|---|---|---|
SteamCMD plus srcds_run |
Run the install command yourself and keep startup parameters in a script or service definition. | You handle updates, backups, logs and restart behavior. A cron @reboot entry can start the process after a host reboot. |
A small server, a test instance or an administrator who wants transparent command-line control. |
| LinuxGSM | LinuxGSM creates a service account and a game-server wrapper around the same SteamCMD installation process. | Commands include start, stop, restart, update, force-update, validate, backup, details, debug and monitor. Monitoring can restart an offline server and send alerts. |
A public server that needs repeatable maintenance, monitoring and backups. |
Both approaches ultimately use SteamCMD and the same Garry’s Mod server files. LinuxGSM is an operations layer, not a different game server.
1. Prepare Linux
Create and use a service account
Log in with an administrator account only long enough to create the service account and install system packages. Perform the SteamCMD and server commands as that account. This limits the damage from a compromised addon, configuration file or server process and keeps ownership consistent.
Choose one home directory and keep it stable. The examples below use $HOME/gmodds for a manually managed account. If you use LinuxGSM, its generated paths may instead resemble /home/gmodserver/serverfiles; use the paths reported by the LinuxGSM script rather than mixing the two layouts.
Check the host architecture
Run:
uname -m
A result such as x86_64 confirms a 64-bit host. That is normal, but it explains why SteamCMD can fail while trying to invoke its 32-bit component. Install the distribution’s 32-bit compatibility libraries when required, then run SteamCMD again. Do not replace the Garry’s Mod files with a random binary from another release.
Confirm disk and access conditions
- Make sure the service account can write to its home and server directories.
- Reserve additional space for Workshop collections, custom maps, crash or console logs and backups.
- Confirm that the host firewall and provider security group will allow the game and query traffic for the ports you configure. The exact port choices depend on your server configuration and provider.
2. Install or update Garry’s Mod with SteamCMD
SteamCMD identifies Garry’s Mod with AppID 4020. Run the following as the service account:
steamcmd +login anonymous +force_install_dir "$HOME/gmodds" +app_update 4020 validate +quit
If your distribution package installs SteamCMD at /usr/games/steamcmd, use that executable path instead:
Free tools Windows power users keep installed
One-click scans. No signup required.
/usr/games/steamcmd +login anonymous +force_install_dir "$HOME/gmodds" +app_update 4020 validate +quit
app_update 4020 validate both installs missing files and checks the files already present. Keep the game server stopped while this runs. Updating a live instance can fail because files are in use; stop the process first, update, and then start it again.
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
What the command does
+login anonymoususes SteamCMD’s anonymous login for this dedicated-server download.+force_install_dirselects the directory in which the server files are stored.+app_update 4020installs or updates the Garry’s Mod dedicated server.validateasks SteamCMD to verify the downloaded files.+quitexits SteamCMD after the operation completes.
When the command finishes successfully, the installation directory contains srcds_run and the garrysmod game directory. If SteamCMD reports a missing linux32/steamcmd executable, return to the 32-bit-library step before troubleshooting the game files.
3. Create a Steam Game Server Login Token
A normal public Garry’s Mod dedicated server should be started with a Steam Game Server Login Token. Facepunch’s Linux setup guidance treats sv_setsteamaccount as mandatory for this setup.
- Sign in to the Steam account that will own or administer the server.
- Use Steam’s game-server-login-token page to create a token for Garry’s Mod (AppID
4020). - Copy the token into a protected startup script or service configuration. Do not publish it in screenshots, paste sites or a publicly readable file.
- Pass it with
+sv_setsteamaccountwhen launching the server.
If you rotate or revoke the token, replace the old value in the startup configuration before restarting. A token in the wrong position, a typo or a server started without the parameter can prevent the instance from appearing as expected in the public server browser.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →4. Start the server for the first time
Change to the installation directory and launch a simple Sandbox instance:
cd "$HOME/gmodds"
./srcds_run -game garrysmod +maxplayers 16 +gamemode sandbox +map gm_construct +sv_setsteamaccount YOUR_TOKEN
Replace YOUR_TOKEN with the GSLT value. The example allows 16 players, uses the built-in sandbox gamemode and loads gm_construct. Select a player limit that matches the host’s CPU, memory, network capacity and the workload of your chosen addons; the number in the example is not a universal recommendation.
The map argument is the map name without the .bsp extension. For example, use +map gm_construct, not +map gm_construct.bsp. If the map or gamemode is not installed, the process can fail to load it or fall back to another configuration.
Read the first console output
Leave the console attached for the first start. It reveals missing libraries, an invalid map, a malformed parameter or Workshop-download problems before you put the server in the background. Stop the process cleanly after confirming that it reaches its listening state, then move the same command into a script or LinuxGSM-managed service.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
5. Configure maps, gamemodes, player limits and location
Startup parameters are the fastest way to make the important choices explicit. You can also put persistent settings in the server configuration file.
| Parameter | Example | Purpose |
|---|---|---|
-game |
-game garrysmod |
Selects the Garry’s Mod game directory. |
+maxplayers |
+maxplayers 16 |
Sets the advertised player limit. Choose a value the host can sustain. |
+gamemode |
+gamemode sandbox |
Selects an installed gamemode. |
+map |
+map gm_construct |
Loads a map by name, without the .bsp suffix. |
+sv_setsteamaccount |
+sv_setsteamaccount YOUR_TOKEN |
Supplies the Steam Game Server Login Token used for a public dedicated server. |
+host_workshop_collection |
+host_workshop_collection COLLECTION_ID |
Downloads and mounts a Steam Workshop collection at startup. |
sv_location |
sv_location us |
Sets the browser location with an ISO 3166-1 alpha-2 country code such as us or gb. |
LinuxGSM documents the main configuration file as /home/gmodserver/serverfiles/garrysmod/cfg/gmod-server.cfg for its example installation. If you are unsure which file is active, run ./gmodserver details; it shows the installation and configuration paths used by that instance.
Keep one authoritative copy of each setting. A value supplied on the startup command line can take precedence over a value in a configuration file, while a setting changed interactively in the console may not survive a restart. Put stable server policy in the config file and keep identity, map, gamemode and Workshop choices visible in the startup command or script.
6. Add maps and addons with a Workshop collection
Create the collection
- Create a Steam Workshop collection for the server’s maps and addons.
- Set the collection to Public or Unlisted. A private collection cannot be fetched by joining clients.
- Copy the collection’s numeric ID.
- Add the ID to the launch command:
+host_workshop_collection COLLECTION_ID
A complete launch line might therefore look like this:
./srcds_run -game garrysmod +maxplayers 16 +gamemode sandbox +map gm_construct +host_workshop_collection COLLECTION_ID +sv_setsteamaccount YOUR_TOKEN
The server downloads and mounts the collection during startup. The first launch with a large collection can take noticeably longer than later starts, so watch the console rather than assuming the process has hung.
Decide how to handle automatic updates
Workshop items can change after you publish the collection. Facepunch warns that disabling host_workshop_autoupdate can leave maps or addons out of sync with clients. Leaving automatic updates enabled keeps the server closer to the current collection, but it can also introduce an unwanted change between restarts. Treat collection edits as deployments: review changes, restart deliberately and keep a backup of the previous known-good configuration when a busy server depends on specific addon versions.
7. Keep a manually installed server running after reboot
Use a startup script
Put the launch command in a script owned by the service account so you have one place to edit the map, token, Workshop collection and player limit. For example, create start-gmod.sh in the account’s home directory:
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
#!/bin/sh
cd "$HOME/gmodds"
exec ./srcds_run -game garrysmod +maxplayers 16 +gamemode sandbox +map gm_construct +sv_setsteamaccount YOUR_TOKEN
Make it executable with chmod +x start-gmod.sh. Keep the file readable only by the service account because it contains the GSLT. Test it interactively before adding reboot automation.
Recommended Free Tools
Add an @reboot cron entry
- Open the service account’s crontab with
crontab -e. - Add an
@rebootentry that runs the startup script and writes output to a log, for example:
@reboot /bin/sh -lc '"$HOME/start-gmod.sh" >> "$HOME/gmodds/server.log" 2>&1'
Use the service account’s crontab, not root’s, and verify the absolute paths if cron does not provide the same environment as an interactive shell. After a reboot, inspect the log and confirm that the process started with the intended map, gamemode, Workshop collection and token.
Cron starts the process after boot but does not provide the operational features of a game-server manager. It will not, by itself, validate files, make backups or restart a process that later exits.
8. Use LinuxGSM for updates, backups and monitoring
LinuxGSM is the better fit when the server is a long-running public service. Its Garry’s Mod module uses SteamCMD to install and update the game server, creates a service account and exposes consistent commands instead of requiring you to remember a different shell sequence for each task.
Core LinuxGSM commands
| Command | Use |
|---|---|
./gmodserver start |
Start the server. |
./gmodserver stop |
Stop it cleanly before maintenance. |
./gmodserver restart |
Apply a configuration or Workshop change by stopping and starting. |
./gmodserver update |
Run the regular update path. |
./gmodserver force-update |
Force an update when the normal update path does not detect the expected change. |
./gmodserver validate |
Ask SteamCMD to verify the installed files. |
./gmodserver backup |
Create a backup using LinuxGSM’s backup workflow. |
./gmodserver details |
Display paths, configuration and runtime details, including which files the instance uses. |
./gmodserver debug |
Run diagnostic output in the foreground when a normal start fails. |
./gmodserver monitor |
Check availability, restart an offline server and send configured alerts. |
LinuxGSM’s monitor is materially different from an @reboot cron line: it addresses a process that dies hours or days after boot, not only a host restart. Schedule updates and backups during a maintenance window, stop the server first, and use details whenever you are unsure whether a setting belongs in a startup parameter or in gmod-server.cfg.
9. Networking and public discovery
The server must be reachable through the host firewall and any cloud-provider security group. Allow the game and query traffic for the ports selected by your configuration, then test from a second machine or a remote player account rather than relying only on a local connection.
Set sv_location to the two-letter country code that best represents the server’s physical location, such as us or gb. This controls the location shown in the browser; it does not move the server or improve latency.
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
If the process is running locally but nobody can discover or join it, check the launch console for GSLT errors, confirm the provider’s inbound rules, verify that the advertised map and gamemode exist, and ensure the server is not bound only to a private interface.
10. Updating safely
- Announce a maintenance window if players are using the server.
- Stop the server with the method that started it: terminate the manual process or run
./gmodserver stop. - Run SteamCMD’s
app_update 4020 validate, or LinuxGSM’s./gmodserver updatefollowed by./gmodserver validatewhen you need an explicit integrity check. - Review Workshop collection changes and configuration edits.
- Start the server and watch the console until the map and collection finish loading.
- Connect with a test client before announcing that the server is back.
Facepunch notes that updates can fail while the server is running and that force_install_dir can cause update problems in some situations. If an update repeatedly fails, stop the process, confirm that SteamCMD is writing to the directory you actually launch, and use the path shown by LinuxGSM’s details command if applicable.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errors11. Troubleshooting checklist
SteamCMD says linux32/steamcmd: No such file or directory
On a 64-bit host, this usually means the required 32-bit compatibility libraries are missing. Confirm the architecture with uname -m, install the appropriate 32-bit packages for your distribution, and rerun SteamCMD. The error is about the runtime dependency, not the Garry’s Mod AppID.
app_update fails or leaves files unchanged
- Stop the running server before updating.
- Check that the service account owns the install directory and can write to it.
- Confirm that you are using AppID
4020. - Try the distribution’s SteamCMD path, such as
/usr/games/steamcmd, if the command in your shell points to a broken wrapper. - Review the install directory carefully; an incorrect
force_install_dircan make you update one directory while launching another.
Players report missing maps or addons
- Verify the numeric collection ID in
+host_workshop_collection. - Make sure the collection is Public or Unlisted rather than Private.
- Check the startup console for download failures.
- Confirm that
host_workshop_autoupdatehas not been disabled unintentionally, and remember that changing it can trade synchronization for tighter control over updates. - Restart after correcting the collection so the server downloads and mounts it again.
The server starts but settings do not change
Run ./gmodserver details to identify the active LinuxGSM configuration and server directories. Check whether the setting is supplied as a startup parameter, stored in garrysmod/cfg/gmod-server.cfg, or being overridden by another configuration loaded later. Restart after editing a file; many startup choices are read only during process initialization.
The server disappears after a reboot or crash
For a manual installation, inspect the cron entry, the startup script’s permissions and the redirected log. For LinuxGSM, run ./gmodserver monitor and inspect its diagnostic output with ./gmodserver debug. Monitoring can restart an offline process; cron’s @reboot entry cannot.
12. A practical operating routine
- Before opening the server: test the map, gamemode, GSLT and Workshop collection with a small player limit.
- Before every update: stop the process and create a backup of configuration and important server data.
- After every update: validate files, watch the console, connect once and check that clients receive the expected addons.
- When changing Workshop content: record the collection change and restart deliberately rather than allowing an unreviewed update during a busy session.
- For public uptime: prefer a data-center VPS or dedicated host, run the server under its own account and use LinuxGSM monitoring if automatic recovery and alerts matter.
Final setup checklist
- Create a non-root service account and choose a persistent server directory.
- Install 32-bit compatibility libraries if the 64-bit host cannot run SteamCMD’s 32-bit component.
- Install or validate Garry’s Mod with AppID
4020. - Create a GSLT and protect it in the startup configuration.
- Launch
srcds_runwith-game garrysmod, a player limit, gamemode, map and+sv_setsteamaccount. - Add
+host_workshop_collectionfor a Public or Unlisted collection when addons or custom maps are required. - Set
sv_locationwith the appropriate ISO alpha-2 country code. - Choose cron for simple reboot startup or LinuxGSM for updates, backups, logs and monitoring.
- Stop the server before updates, validate the files and test a client connection afterward.
This arrangement gives you a reproducible Linux server: SteamCMD manages AppID 4020, srcds_run provides transparent startup control, Workshop handles declared content, and either cron or LinuxGSM supplies the level of persistence your server needs.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

