From GMod Wiki

Jump to: navigation, search

This article is about creating and administrating a server. If you are looking for the wiki administrators, go to GMod Wiki:Administrators.

BlackServerIcon.png Go to:
Server Hosting


Server Setup

Installing SCRDS, Garry's Mod, and default server configuration settings:

Instaling SRCDS

Server Settings


Server.cfg is the name of the configuration (.cfg) file that runs every time your server is started and every time you change maps. This file is used for storing you server's identity, default settings, and information for user management and logging purposes. Most server.cfg files are set up to handle Sandbox gamemode and its derivatives. If you plan to primarily host a custom gamemode, you should check the gamemode's website or readme about specific settings to place in your server.cfg.

Forced Downloads

You can "force" players download non standard files from your server (usually assets from addons on your server) by using the commands resource.AddFile() and resource.AddSingleFile(). This is useful for server owners that allow custom content for subscribers and admins. You can find example usages in the above linked page- note that resource.AddSingleFile() and adding each necessary file manually is generally accepted as the best practice to force downloads to clients, for resource.AddFile() may attempt to force downloading of companion files (like phys for models) that may not be present in all files by default- causing the client to become spammed with lua console errors. Usage:

Remote file downloads:sv_downloadurl

sv_downloadurl specifies a URL that leads to your game server's content files on an HTTP web space, allowing for faster download speeds than Garry's Mod's default of 20Kb/s. Server operators place an "sv_downloadurl" in their server's "server.cfg" to point to copies of their server's content online.

Setting Administrator Rights

Garry's Mod handles administrator access differently, depending on the server type.

In Listen Servers

If you are running a listen (client) server, you automatically become the server's "admin". You will be able to use admin-only scripted items, the admin portion of the in-game "options" menu, etc.

In Dedicated Servers

In order to administrate a default dedicated server, your Steam ID must be in the "users.txt" file found in the game server's "garrysmod\settings\" directory.

Note: Your Steam ID will display upon typing "status" during any multi-player game in the developer console and finding the line with your name. The format of a Steam ID is "STEAM_X:X:XXXXXXX".

In Game Administration

The Console-Cvars and Configuration files

Console variables (cvars) are settings that you can change from the game's console. These variables can be used to change anything from the server's name (hostname), to the amount of gravity simulated on the server (sv_gravity). To search for a specific variable, use the


command in the console, followed by the first few letters of a command. For example, typing

find sv_

will list every cvar that begins with "sv_". For hints on what a variable controls and how to use it, type

help <varname>

This will list the name of the variable, whether the variable is cheat protected (requires sv_cheats 1), and a small description of what the variable is used for.

You can take groups of variables (cvars) and execute them all at once by placing them in a config (.cfg) file. This can be useful for starting specific modes on your server in which several variables must be changed. To create a config file, just create a blank .txt file in a plain text editor, such as Window's "NotePad" or the open source program "NotePad++", place each cvar you wish to use and its setting on its own line with the format:

<cvar> "<value>"

For examples on how configs are used, open your game server's "server.cfg", located at "garrysmod/cfg/server.cfg". This file should list settings that are global to your server, just as the "hostname", "sv_region", and "sv_defaultgamemode". Server.cfg is run every time the server is started, and every time the map is changed.

Notepad-48.png Note: Some Game Server Providers use a server_config.txt instead of a server.cfg. If you have trouble finding your server.cfg or server_config.txt, seek support from your GSP.

To run a config file from in-game, use the command

exec <configfilename>.cfg

This will evaluate the cvars inside the exec. For other common cvars and .cfg files, see Server Settings.

User Management

Monitoring Players

The scoreboard (default key:Tab) is a good way, in most gamemodes, to get a general sense of your players' activities. In Sandbox, the scoreboard can display how many props, vehicles, NPCs, etc. that each player has spawned at a time. In custom gamemodes, the scoreboard wll often show the players kills, deaths, kill/death ratio, etc.

User Information

The console command "status" is usually used as a user information and management tool- typing "status" in console provides this output:

Screenshot of "status" command in console
The "status" command (taken in Team Fortress 2)
For each user connected to the server, "status" provides (in order, from left to right:)
  • User ID (explained below)
  • Name
  • Unique ID (Steam ID)
  • Connected (total connection time for the current session) (Format: Days:Hours:Minutes:Seconds)
  • Ping (in miliseconds)
  • Loss ("0" indicates the user is experiencing no packet loss. Any other number indicates the user is experiencing loss)
  • State
Note the column "User ID"- This number is an identifier given by the server to the client for the duration of his server session.

User Management Commands

For kick and ban, type the following into your console:

<command> <Name or Unique ID> (for bans, add <ban length> here) <reason>

The reason will be displayed to the user in a message after they have been kicked or banned.

For kickid and banid, type:

<command> <User ID> (for bans, add <ban length> here) <reason>

kickid and banid are useful for quickly booting players in smaller servers who are causing disruptions, since most User IDs will be much shorter than the user's name or Steam ID.

RCON- Remote Administration

The explanations above have so far been tailored towards administrators that are connected to the server they wish to administrate. But it is possible to adminisrate a server without actually connecting to the game in progress. This is called "Remote Console" (rcon). The most popular rcons are:

These programs function much like your in-game console- you can type commands (like cvars) into them to change settings and manage users. To enable this functionality, you'll have to input the server IP (if using a tool like HLSW) and the command

rcon_password <password>

inputting the password set for you server (usually, rcon passwords are set in your game server's "server.cfg").

Notepad-48.png You can also use your client's console as a remote connection without being connected. Be sure to use the console command "rcon_password <password>", then use the console command "rcon_address <address>", where <address> is the IP and port of your server in format "IP:PORT".

Admin Modifications

Many Dedicated servers (including those provided by GSPs) come with several options for Admin addons to allow for a more functionally complete and graphical user interface based admin mod. Some examples of these administration mods:

An admin mod with a nice GUI and a lot of features. It's still in the beta phase, but it's fairly stable, so certainly worth it to try it out. (
An advanced modular administration system. A simple way to state that is that Exsto emphisizes modularity in plugins, GUI, and everything else. It allows for complete custom ranks with different immunities, with import support from ULX. It also is data efficient, using SQL databases for its storage. (
A well known and trusted administration control set, it was the first admin mod, and is still being updated today. It allows multiple admins with different access levels on the same server. It contains features from basic kick, ban, and slay to fancier commands such as blind, freeze, voting, and more. ULX is available for download at
Personal tools
Lua Scripting