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
Playing with friends? Godlike.Host runs hosted Garry's Mod servers from 10 data-center locations, with free DDoS protection.
Garry’s Mod dedicated servers are updated with SteamCMD App ID 4020. Choose a branch by adding a beta name to the app_update command: dev for development, prerelease for the next-release build, or x86-64 for the 64-bit server branch. To return to the normal stable build, run -beta public validate; removing -beta by itself may leave SteamCMD on the previously selected beta.
Stop the server before changing files, back up configuration and add-ons, update the installation with SteamCMD, then restart the correct server executable. Players must select a compatible branch in Steam under Garry’s Mod Properties > Betas. A development server can require matching client updates and may be unstable, so test every branch change before using it for a public community.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Branch commands at a glance
The branch is selected during the SteamCMD update. The installation directory must be set before app_update; otherwise, SteamCMD can update a different folder than the one your launch script uses.
| Branch | SteamCMD beta value | Best suited to | Main caution |
|---|---|---|---|
| Stable | public (explicitly selected when reverting) |
Public servers and normal player installs | Receives the normal release stream, not bleeding-edge changes |
| Development | dev |
Testing changes planned for a future update | Updated regularly and may be unstable |
| Pre-release | prerelease |
Testing the next update before it becomes normal | Clients and add-ons can change before release |
| 64-bit | x86-64 |
Running the documented 64-bit dedicated-server build | Every connected client and add-on must work with the selected build |
The branch names are Steam depots selected by the beta parameter, not separate Garry’s Mod products. Branch availability and contents can change, so check the current Facepunch documentation before putting an automated update into production.
#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.
What changing a server branch actually changes
A Garry’s Mod server is a Source dedicated-server installation maintained through SteamCMD. app_update 4020 tells SteamCMD to update that installation. Adding -beta dev, -beta prerelease, or -beta x86-64 selects a corresponding branch before files are downloaded. The validate argument checks the installed files and replaces missing or damaged files.
The branch affects more than the server executable. Engine files, game binaries, networking behavior, and Lua or add-on compatibility can all move with an update. A player on the ordinary client build may be unable to join a server that has moved to a development branch, while a player who has opted into a branch can be prompted for a different update than the server has installed. Treat the client and server as a matched pair whenever you test a non-stable branch.
Prepare before changing the installation
- Announce downtime. Stop accepting new players and tell administrators when the server will be unavailable.
- Stop the running process. Close the server cleanly so configuration, map state, and logs are not being written while SteamCMD replaces files.
- Back up configuration. Copy
garrysmod/cfg, launch scripts, server configuration files, and any custom files your deployment uses. - Back up add-ons and content. Preserve
garrysmod/addonsand any downloaded content that is not reproducible from your normal deployment process. - Record the current state. Note the current branch, launch arguments, installed add-ons, and the last known working update. This gives you a rollback reference if a branch introduces a problem.
- Confirm disk space and permissions. SteamCMD needs to write into the installation directory and may download a large replacement set of files. Run it as the account that owns the server files whenever possible.
Do not edit the branch by copying individual DLLs or executables from another installation. SteamCMD must download a consistent set of files for App ID 4020.
Change a dedicated server branch with SteamCMD on Windows
The following procedure assumes SteamCMD is installed and that the server is in c:my_garrysmod_server. Replace that path with your real directory. Open a Command Prompt or PowerShell window in the folder that contains steamcmd.exe.
- Start SteamCMD. Run
steamcmd.exe. At the SteamCMD prompt, log in anonymously withlogin anonymous. Garry’s Mod dedicated-server files are available through the anonymous account. - Point SteamCMD at the server directory. Enter
force_install_dir c:my_garrysmod_server. Set this before the update command so App ID 4020 is written to the directory your launch script uses. - Install or refresh the stable build. For the normal release, run
app_update 4020 validate. This is also the baseline command to use when creating a new installation. - Select a development branch. Run
app_update 4020 -beta dev validate. SteamCMD downloads the development branch and validates the result. - Select the pre-release branch. Run
app_update 4020 -beta prerelease validatewhen you need the next-release build rather than the normal release. - Select the 64-bit branch. Run
app_update 4020 -beta x86-64 validatefor the documented x86-64 dedicated-server branch. - Exit SteamCMD. Enter
quitand wait for the prompt to close before starting the game server. - Restart the server. Use the server executable and launch arguments that match your installation, such as
srcds.exeon Windows. Keep your existing-game garrysmod, map, port, and configuration arguments unless you intentionally want to change them.
Only run one of the branch-specific update commands for a given maintenance window. If you run a second one afterward, the later command becomes the installed branch.
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.
Change a dedicated server branch with SteamCMD on Linux
On Linux, install SteamCMD using your distribution’s documented method, then run it from the account that owns the server directory. The update sequence is the same, but the installation path and server launcher differ.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
- Stop the running process and back up the same configuration and add-on directories described above.
- Launch SteamCMD and enter
login anonymous. - Set the destination, for example
force_install_dir ../gmodds. Use an absolute path if your service unit or maintenance script could start from a different working directory. - Run one update command:
app_update 4020 validatefor stable,app_update 4020 -beta dev validatefor development,app_update 4020 -beta prerelease validatefor pre-release, orapp_update 4020 -beta x86-64 validatefor x86-64. - Enter
quit, then restart with the Linux launcher, commonly./srcds_run -game garrysmodplus your normal map and server arguments.
Linux operators may need 32-bit compatibility libraries for SteamCMD and for server binaries, depending on the distribution and installed architecture. Install the libraries required by your operating system before diagnosing a branch as broken. macOS dedicated-server binaries are no longer shipped, so this procedure does not provide a supported macOS server path.
Automate a Windows update
For a scheduled or repeatable Windows update, Facepunch documents a one-line SteamCMD form. The stable example is:
steamcmd.exe +login anonymous +force_install_dir c:my_garrysmod_server +app_update 4020 validate +quit
To automate a branch, add the beta argument to app_update before validate. For example, the development form is:
steamcmd.exe +login anonymous +force_install_dir c:my_garrysmod_server +app_update 4020 -beta dev validate +quit
Keep the branch choice in source-controlled maintenance scripts or environment-specific configuration rather than typing it differently on each update. Schedule the script only after stopping the server, and make the launch service wait for SteamCMD to exit successfully. A scheduled update that starts the server before validation finishes can produce a partially updated installation.
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 →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.
Return the server to the stable branch
Use an explicit public-branch update:
login anonymous app_update 4020 -beta public validate quit
In an interactive SteamCMD session, the same sequence can be entered as separate commands: login anonymous, app_update 4020 -beta public validate, and quit. The important part is -beta public. Facepunch warns that simply deleting the -beta parameter is not sufficient because SteamCMD can continue updating the last activated beta. After the command completes, restart the server and test a normal client connection before declaring the rollback complete.
Change a player’s Garry’s Mod branch in Steam
A dedicated server branch and a player’s game branch are separate settings. A client that needs to test the same development or pre-release build must opt in through Steam:
- Exit Garry’s Mod completely.
- Open Steam and select Library.
- Right-click Garry’s Mod and choose Properties.
- Open the Betas tab.
- Under Beta Participation, select the branch that matches the server, such as Dev or Pre-Release. Select the normal option when returning to the standard client.
- Close the properties window and wait for Steam to download the selected build.
- Start Garry’s Mod again and connect only after the update has finished.
The Private Betas field is not used for Garry’s Mod’s documented branch selection. If the required branch is not shown in the Beta Participation list, do not enter a guessed code; the branch may no longer be offered to that client at that time.
How the available branches differ
| Comparison point | Stable / public | Pre-release | Development | x86-64 |
|---|---|---|---|---|
| Purpose | Normal released version | Next update before general release | Bleeding-edge testing of upcoming changes | Documented 64-bit server build |
| Update timing | Normal release cadence | Before the next update reaches the normal branch | Updated regularly as changes are developed | Branch contents and timing can change |
| Stability | Best default for public play | Less predictable than stable | May be unstable; Valve’s announcement describes it as bleeding edge and says to expect more bugs than usual | Depends on the current branch build and add-on support |
| Architecture | Standard release architecture | Uses the architecture of that release | Uses the architecture of that release | x86-64 server branch |
| Add-on compatibility | Highest likelihood of existing add-ons working | Test add-ons before production use | Lua, binary modules, and other add-ons may need updates | Check every binary module and native dependency |
| Client requirement | Clients on the normal build | Clients on the matching pre-release build may be required | Clients generally need the matching development build | Use a client build that can connect to the selected server version |
Facepunch describes Dev as the next version containing changes planned for a future update. Its official guidance states that development branches are updated regularly and may not be stable. The Steam announcement labels None as the normal version, Pre-Release as the next update, and Dev as bleeding edge. These labels describe intent, not a guarantee that every branch will remain available or that an add-on will work unchanged.
Choose a branch for your use case
Public community server
Use the stable branch unless you have a specific compatibility or testing reason to do otherwise. Public players usually install the normal client, and stable minimizes unexpected engine changes and connection mismatches.
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
Testing an upcoming update
Use prerelease when your goal is to test the next update before it becomes the normal release. Create a separate test installation if the production server cannot tolerate add-on or configuration changes.
Testing bleeding-edge changes
Use dev only when administrators accept regular updates, possible instability, and the need to update client machines. Keep an out-of-band stable installation so you can restore service without reconstructing the server.
Using a 64-bit server build
Use x86-64 when your operating environment and add-ons support the documented 64-bit branch. Audit native modules and other compiled extensions separately; a branch change that starts successfully can still fail when an incompatible module loads.
Verify the update before reopening the server
- Read the SteamCMD result. Confirm that App ID 4020 completed without a download or validation error and that the command targeted the intended directory.
- Check the launch path. Make sure the service, batch file, or systemd unit starts the executable from the same directory you passed to
force_install_dir. - Start without players first. Watch the console for missing files, module-load failures, or immediate crashes before announcing the server online.
- Test a controlled connection. Use a client on the matching branch and verify that the server appears, accepts a connection, loads the expected map, and reaches the normal gameplay state.
- Exercise critical add-ons. Test authentication, permissions, maps, weapons, scripted entities, and any native extensions that your community depends on.
- Record the result. Note the branch, update date, add-on test result, and any warnings so the next rollback or upgrade has a known-good reference.
Do not treat a successful download as proof of compatibility. SteamCMD validates files; it does not test Lua scripts, workshop content, custom gamemodes, or third-party binary modules.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Troubleshoot common branch-change problems
SteamCMD keeps installing the old beta
Run the explicit stable command with -beta public validate, or run the exact beta name you intend to use. Removing -beta alone can preserve the last activated branch. Also check that the update command and the launch script point to the same directory.
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.
Players receive a version or connection error
Confirm the server branch first, then have the affected player select the matching option in Properties > Betas and wait for Steam to finish updating. A client that remains on the normal build may not connect to a development or pre-release server. If the server was just updated, restart both the server and the client after downloads complete.
The server starts but an add-on fails
Disable the suspected add-on in a test copy, reproduce the startup, and compare the result. Development and x86-64 branches can expose assumptions in Lua code or native modules. Restore the backed-up add-on set only after each critical component has been tested against the selected branch.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsThe x86-64 branch will not start on Linux
Check that the operating system has the required compatibility libraries and that the service account can execute the downloaded files. Confirm that the launch unit calls ./srcds_run -game garrysmod from the correct installation directory. A missing 32-bit dependency can affect SteamCMD or server components even when the host itself is 64-bit.
SteamCMD reports validation or permission errors
Stop the server, verify ownership and write permissions on the installation directory, and rerun the update as the account that owns the files. Check disk space and avoid running two SteamCMD processes against the same directory. If the installation remains inconsistent, preserve your backups and repair the server in a separate directory rather than deleting configuration and add-ons first.
The update completed, but the server launches an unexpected build
Inspect the path used by the startup script and compare it with the path supplied to force_install_dir. Multiple Garry’s Mod installations are easy to confuse, especially when a scheduled task uses a different working directory. Update the directory that the service actually launches, then repeat validation.
Operational practices for branch maintenance
- Separate production and test installs. A development branch should not overwrite the only stable copy needed for a public server.
- Pin the intended branch in automation. Make the beta value visible in the script so a future administrator does not accidentally inherit a previously selected branch.
- Schedule controlled restarts. Download updates during a maintenance window and start the server only after SteamCMD exits.
- Keep client instructions ready. Tell testers which branch to choose and where to find Properties > Betas.
- Test native extensions separately. Compiled modules are more sensitive to architecture and binary changes than ordinary configuration files.
- Retain a rollback copy. The stable files, configuration backup, and last-known-good add-on set should be restorable without downloading a different branch from memory.
- Review current branch names. Branch contents and labels can change, so verify the current Facepunch documentation before changing an unattended production script.
Recommended change procedure
For most operators, the safest sequence is: copy the server and add-ons, stop the process, log in anonymously to SteamCMD, set the exact install directory, run App ID 4020 with the intended beta value and validate, quit SteamCMD, restart the matching executable, and test with a client on the same branch. When returning to normal play, select -beta public validate explicitly and have players return their Steam client to the normal beta option.
Recommended Free Tools
Use stable for a public server, pre-release for planned compatibility testing, Dev for bleeding-edge testing, and x86-64 only when your host and add-ons are ready for that architecture. That separation keeps a branch experiment from becoming an avoidable outage.
Quick 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.

