Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter | 4Pack Type C Female to A Male Cable Converter for Apple Duo 17 16 15 14 Plus,iWatch Watch 12 11 10,iPad 9 8 Air,Airpods 5 4
  • 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Prepare before changing the installation

  1. Announce downtime. Stop accepting new players and tell administrators when the server will be unavailable.
  2. Stop the running process. Close the server cleanly so configuration, map state, and logs are not being written while SteamCMD replaces files.
  3. Back up configuration. Copy garrysmod/cfg, launch scripts, server configuration files, and any custom files your deployment uses.
  4. Back up add-ons and content. Preserve garrysmod/addons and any downloaded content that is not reproducible from your normal deployment process.
  5. 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.
  6. 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.

  1. Start SteamCMD. Run steamcmd.exe. At the SteamCMD prompt, log in anonymously with login anonymous. Garry’s Mod dedicated-server files are available through the anonymous account.
  2. 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.
  3. 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.
  4. Select a development branch. Run app_update 4020 -beta dev validate. SteamCMD downloads the development branch and validates the result.
  5. Select the pre-release branch. Run app_update 4020 -beta prerelease validate when you need the next-release build rather than the normal release.
  6. Select the 64-bit branch. Run app_update 4020 -beta x86-64 validate for the documented x86-64 dedicated-server branch.
  7. Exit SteamCMD. Enter quit and wait for the prompt to close before starting the game server.
  8. Restart the server. Use the server executable and launch arguments that match your installation, such as srcds.exe on 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
Sale
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter | USB C Dongle with 90W Max Power Delivery, 3×5Gbps USB A Data Ports, for MacBook, Dell, and More (Charger Not Included)
  • 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Stop the running process and back up the same configuration and add-on directories described above.
  2. Launch SteamCMD and enter login anonymous.
  3. 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.
  4. Run one update command: app_update 4020 validate for stable, app_update 4020 -beta dev validate for development, app_update 4020 -beta prerelease validate for pre-release, or app_update 4020 -beta x86-64 validate for x86-64.
  5. Enter quit, then restart with the Linux launcher, commonly ./srcds_run -game garrysmod plus 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter | 85W Max PD, 2 USB 3.0 & 1 USBC Data Ports, SD/TF Card Reader, for Laptops/Mac and Other Type C Devices (Charger Not Included)
  • 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:

  1. Exit Garry’s Mod completely.
  2. Open Steam and select Library.
  3. Right-click Garry’s Mod and choose Properties.
  4. Open the Betas tab.
  5. 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.
  6. Close the properties window and wait for Steam to download the selected build.
  7. 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray | Data transfer & Fast charging for MacBook, iPhone 17/16/15, iPad, Samsung Galaxy, Apple Watch
  • 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Verify the update before reopening the server

  1. Read the SteamCMD result. Confirm that App ID 4020 completed without a download or validation error and that the command targeted the intended directory.
  2. 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.
  3. Start without players first. Watch the console for missing files, module-load failures, or immediate crashes before announcing the server online.
  4. 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.
  5. Exercise critical add-ons. Test authentication, permissions, maps, weapons, scripted entities, and any native extensions that your community depends on.
  6. 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.Support on Ko-Fi

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
Sale
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display | 85W Max PD, 1 Powered USB-C 5Gbps & 2 Powered USB-A 3.0 5Gbps Data Ports, for MacBook Pro, MacBook Air, Dell and More (Black)
  • 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

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.