Garry's Mod Wiki

Dev Branch

What is the Dev branch?

Dev branch is the next version of Garry's Mod. It contains all the changes that will be included into the game in next update.

What are the changes?

You can find a full list of changes between the Dev branch and normal version of the game here and a live change list here.

Why is this needed?

This is needed for two reasons:

  • So that addon developers can adjust to upcoming changes
  • So you can test the changes and make sure next update will be less buggy by reporting bugs

Can I play on normal servers with this version of the game?

Most of the time, yes. The only possible exception is when an update is about to be released, that would require servers to update before they can be joined again.

It is invaluable for the game developers to have people test the game before the next update is out to make sure nothing breaks, or at the very least not as much.

Switching branches via Steam

You can switch Garry's Mod's branch with the following steps:

  1. Open your Library in the Steam client

  2. Open the context menu of Garry's Mod with  rmb 

  3. Click on Properties to open the settings menu

  4. Goto the Betas sidebar menu point

  5. Select your branch under Beta Participation

  6. Simply close the menu & wait for the game to update

You can ignore the Private Betas setting, it isn't used by Garry's Mod.


Switching branches via SteamCMD

If you want to use or have previously used SteamCMD
to switch branches - most likely if you have dedicated
server - you will need to use the following command.

app_update <App Id> -beta <Branch Id> validate
┃ Type │ App Id ┃ ┠────────┼────────┨ ┃ Client │ `4000` ┃ ┃ Server │ `4020`
┃ Branch Id │ Branch ┃ ┠─────────────┼───────────────────────┨ ┃ `NONE` │ Default / main branch ┃ ┃ `dev` │ Development branch ┃


How can I check the branch of my player?

To check which branch the player is using, you can check the Global Variables BRANCH clientside. This can be useful if you are developing something with features that the current branch does not have, such as Chromium features in the x86-64 branch.

if BRANCH ~= "x86-64" then return end