> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wasabihosting.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Garry's Mod Server Configuration Guide

> Detailed explanation of Garry's Mod server configuration files and settings

# Introduction to Garry's Mod Server Configuration

Properly configuring your Garry's Mod server is essential for creating the best experience for your players. This guide walks you through the various configuration files and options available on the Wasabi Hosting Gamepanel.

## Core Configuration Files

Garry's Mod uses several key configuration files:

<Accordion title="Configuration File Overview">
  | File             | Location                           | Purpose                                  |
  | ---------------- | ---------------------------------- | ---------------------------------------- |
  | **server.cfg**   | `/garrysmod/cfg/server.cfg`        | Main server settings                     |
  | **autoexec.cfg** | `/garrysmod/cfg/autoexec.cfg`      | Commands executed on server start        |
  | **mount.cfg**    | `/garrysmod/cfg/mount.cfg`         | Content mounting from other Source games |
  | **game.cfg**     | `/garrysmod/cfg/game.cfg`          | Game mode specific settings              |
  | **workshop.vdf** | `/garrysmod/settings/workshop.vdf` | Workshop collection ID                   |
</Accordion>

## Basic Server.cfg Setup

The `server.cfg` file is the primary configuration file for your Garry's Mod server. Here's a basic template:

```cfg theme={null}
// Server Identification
hostname "Your Server Name"
sv_password ""                   // Password to join the server (leave empty for public)
sv_region 0                      // 0=US East, 1=US West, 2=South America, 3=Europe, 4=Asia, 5=Australia, 6=Middle East, 7=Africa
sv_lan 0                         // Set to 1 for LAN servers
rcon_password "YourRconPassword" // Remote console password (CHANGE THIS!)
sv_logfile 1                     // Enable logging
sv_logbans 1                     // Log bans
sv_logecho 1                     // Echo log to console
sv_log_onefile 0                 // Use multiple log files
sv_noclipspeed 5                 // Noclip speed
sv_noclipaccelerate 5            // Noclip acceleration

// Network Settings
sv_minrate 20000                 // Min bandwidth rate
sv_maxrate 100000                // Max bandwidth rate
sv_mincmdrate 33                 // Min cmd rate
sv_maxcmdrate 66                 // Max cmd rate
sv_minupdaterate 33              // Min update rate
sv_maxupdaterate 66              // Max update rate
net_maxfilesize 64               // Max file size for downloads

// Content Settings
sv_allowdownload 1               // Allow clients to download content
sv_allowupload 0                 // Disable uploading (prevents exploits)
sv_downloadurl ""                // FastDL URL (if you have one)

// Gameplay Settings
sbox_noclip 1                    // Allow noclip
sbox_godmode 0                   // Disable godmode
sbox_plpldamage 1                // Allow player vs player damage
sbox_maxprops 200                // Maximum props per player
sbox_maxragdolls 10              // Maximum ragdolls per player
sbox_maxnpcs 10                  // Maximum NPCs per player
sbox_maxballoons 20              // Maximum balloons per player
sbox_maxeffects 20               // Maximum effects per player
sbox_maxdynamite 10              // Maximum dynamite per player
sbox_maxlamps 10                 // Maximum lamps per player
sbox_maxthrusters 20             // Maximum thrusters per player
sbox_maxwheels 20                // Maximum wheels per player
sbox_maxhoverballs 20            // Maximum hoverballs per player
sbox_maxvehicles 6               // Maximum vehicles per player
sbox_maxbuttons 20               // Maximum buttons per player
sbox_maxsents 20                 // Maximum scripted entities per player
sbox_maxemitters 5               // Maximum emitters per player
sbox_maxspawners 3               // Maximum spawners per player
sbox_maxturrets 2                // Maximum turrets per player

// Performance Settings
decalfrequency 60                // Decal refresh rate
sv_friction 8                    // World friction
sv_defaultgravity 600            // World gravity
sv_sticktoground 0               // Stick to ground (physics)
sv_maxvelocity 3500              // Maximum velocity
sv_accelerate 10                 // Accelerate
sv_airaccelerate 10              // Air accelerate

// Admin Settings
sv_alltalk 0                     // 0=Team chat, 1=All chat
mp_friendlyfire 0                // Disable friendly fire

// Execute Additional Config Files
exec banned_user.cfg             // Execute banned users list
exec banned_ip.cfg               // Execute banned IPs list

// Message of the Day (MOTD)
sv_loadingurl "https://yourwebsite.com/motd.html"  // Web-based MOTD

// Add any additional configurations below this line
```

<Warning>
  Always change the default rcon\_password! Using a default or easy-to-guess password exposes your server to potential hijacking.
</Warning>

## Workshop Configuration

To use Workshop content on your Wasabi Hosting server:

1. Create a workshop collection on Steam
2. Add the collection ID to your Gamepanel startup parameters:
   ```
   +host_workshop_collection COLLECTION_ID
   ```
3. Additionally, you can create a `workshop.vdf` file in the `/garrysmod/settings/` directory:

```vdf theme={null}
"workshopitems"
{
	"123456789"	"1"    // Replace 123456789 with your actual collection ID
}
```

<Note>
  Wasabi Hosting provides optimized networks for workshop downloads, but FastDL is still recommended for frequently used content.
</Note>

## FastDL Setup

FastDL allows players to download custom content much faster:

<Steps>
  <Step title="Create a web server">
    Set up a web server with sufficient storage space
  </Step>

  <Step title="Compress content">
    Use bzip2 to compress resource files:

    ```
    // Add this to your server startup script
    find /path/to/garrysmod/content -type f -name "*.vtf" -o -name "*.vmt" -o -name "*.png" -o -name "*.mdl" -o -name "*.wav" -o -name "*.mp3" | xargs -I{} bzip2 -zk "{}"
    ```
  </Step>

  <Step title="Upload compressed files">
    Upload the compressed files to your web server, maintaining the folder structure
  </Step>

  <Step title="Configure FastDL">
    Add to your server.cfg:

    ```cfg theme={null}
    sv_downloadurl "http://your-fastdl-url.com"
    sv_allowdownload 0  // Disable in-game downloads
    sv_allowupload 0    // Disable uploads
    ```
  </Step>
</Steps>

## Gamemode Configuration

Each gamemode has its own configuration files and options:

<Tabs>
  <Tab title="DarkRP">
    DarkRP settings are managed in these files:

    * `/garrysmod/addons/darkrpmodification/lua/darkrp_config/settings.lua` - General settings
    * `/garrysmod/addons/darkrpmodification/lua/darkrp_config/disabled_defaults.lua` - Features to disable
    * `/garrysmod/addons/darkrpmodification/lua/darkrp_customthings/jobs.lua` - Custom jobs
    * `/garrysmod/addons/darkrpmodification/lua/darkrp_customthings/shipments.lua` - Custom shipments
    * `/garrysmod/addons/darkrpmodification/lua/darkrp_customthings/entities.lua` - Custom entities

    <Accordion title="Essential DarkRP Settings">
      ```lua theme={null}
      -- Economy settings
      GM.Config.currency = "$"                    -- Currency symbol
      GM.Config.lockdowndelay = 120               -- Time in seconds before lockdown ends automatically
      GM.Config.maxdoors = 20                     -- Maximum doors a player can own
      GM.Config.wallettax = 0                     -- Percentage of money a player loses when they die
      GM.Config.startingmoney = 1000              -- Starting money for new players
      GM.Config.pricemin = 50                     -- Minimum price for items in F4 menu

      -- Arrest and wanted settings
      GM.Config.arrestspeed = 120                 -- Walking speed when arrested
      GM.Config.arresttime = 120                  -- Time in jail
      GM.Config.wantedtime = 120                  -- Time player is wanted for
      GM.Config.jailtimer = true                  -- Show jail timer
      GM.Config.telefromjail = false              -- Allow teleporting from jail
      GM.Config.teletojail = true                 -- Teleport to jail when arrested
      GM.Config.needwantedforarrest = true        -- Players need to be wanted to be arrested

      -- Job settings
      GM.Config.maxcopsalary = 100                -- Maximum salary for police
      GM.Config.maxmayorsalary = 150              -- Maximum salary for mayor
      GM.Config.maxjailpos = 10                   -- Maximum jail positions
      GM.Config.norespawn = true                  -- Don't respawn players who change jobs
      GM.Config.respawntime = 1                   -- Minimum time before respawning
      GM.Config.changejobtime = 10                -- Time between job changes (in seconds)

      -- Gameplay settings
      GM.Config.npckillpay = 10                   -- Money reward for killing an NPC
      GM.Config.paydelay = 160                    -- Time between salary payments (in seconds)
      GM.Config.pocketitems = 10                  -- Maximum items in pocket
      GM.Config.strictsuicide = true              -- Prevent /kill command abuse
      GM.Config.telefromjail = false              -- Can teleport from jail
      GM.Config.enablebuypocket = true            -- Allow buying pocket upgrade
      GM.Config.weaponshipment = true             -- Enable weapon shipments
      GM.Config.pocket = true                     -- Enable pocket
      GM.Config.chatsounds = true                 -- Enable sounds when players chat
      GM.Config.deathfee = 30                     -- Money lost on death
      GM.Config.allowropseweld = true             -- Allow rope constraint welding
      ```
    </Accordion>

    <Accordion title="Custom Jobs Configuration Example">
      ```lua theme={null}
      -- Example custom jobs in jobs.lua

      TEAM_POLICE = DarkRP.createJob("Police Officer", {
          color = Color(25, 25, 170, 255),
          model = {"models/player/police.mdl", "models/player/police_fem.mdl"},
          description = [[Protect and serve the city. 
      Arrest lawbreakers and keep the city safe.]],
          weapons = {"arrest_stick", "unarrest_stick", "weapon_glock2", "stunstick", "door_ram", "weaponchecker"},
          command = "police",
          max = 4,
          salary = 100,
          admin = 0,
          vote = false,
          hasLicense = true,
          category = "Civil Protection",
      })

      TEAM_MAYOR = DarkRP.createJob("Mayor", {
          color = Color(150, 20, 20, 255),
          model = {"models/player/breen.mdl"},
          description = [[The Mayor of the city.
      You make the laws and manage the Police Force.
      Type /joblaws to set laws.]],
          weapons = {},
          command = "mayor",
          max = 1,
          salary = 150,
          admin = 0,
          vote = true,
          hasLicense = false,
          category = "Civil Protection",
      })

      TEAM_GUN = DarkRP.createJob("Gun Dealer", {
          color = Color(255, 140, 0, 255),
          model = {"models/player/monk.mdl"},
          description = [[A Gun Dealer is the only person who can sell guns to other people.
      Make sure you aren't caught selling illegal firearms to terrorists or cops!]],
          weapons = {},
          command = "gundealer",
          max = 2,
          salary = 85,
          admin = 0,
          vote = false,
          hasLicense = false,
          category = "Citizens",
      })
      ```
    </Accordion>

    <Accordion title="Custom Shipments & Entities">
      ```lua theme={null}
      -- Example shipments in shipments.lua

      DarkRP.createShipment("Desert Eagle", {
          model = "models/weapons/w_pist_deagle.mdl",
          entity = "weapon_deagle2",
          price = 215,
          amount = 10,
          separate = true,
          pricesep = 215,
          noship = false,
          allowed = {TEAM_GUN},
          category = "Pistols",
      })

      DarkRP.createShipment("AK47", {
          model = "models/weapons/w_rif_ak47.mdl",
          entity = "weapon_ak472",
          price = 2450,
          amount = 10,
          separate = false,
          pricesep = 0,
          noship = false,
          allowed = {TEAM_GUN},
          category = "Rifles",
      })

      -- Example entities in entities.lua

      DarkRP.createEntity("Money Printer", {
          ent = "money_printer",
          model = "models/props_c17/consolebox01a.mdl",
          price = 1000,
          max = 2,
          cmd = "buymoneyprinter",
          allowed = {TEAM_GANGSTER, TEAM_MOB},
          category = "Illegal",
      })

      DarkRP.createEntity("Drug Lab", {
          ent = "drug_lab",
          model = "models/props_lab/crematorcase.mdl",
          price = 400,
          max = 3,
          cmd = "buydruglab",
          allowed = {TEAM_GANGSTER, TEAM_MOB},
          category = "Illegal",
      })
      ```
    </Accordion>

    <Accordion title="MySQL Configuration">
      If your server uses a MySQL database for DarkRP data, configure it in `/garrysmod/addons/darkrpmodification/lua/darkrp_config/mysql.lua`:

      ```lua theme={null}
      RP.Config.MySQLConfig = {
          EnableMySQL = true,
          Host = "localhost",
          Database = "darkrp",
          Username = "username",
          Password = "password",
          Port = 3306
      }
      ```

      <Warning>
        Never share your MySQL credentials publicly and use a strong password.
      </Warning>
    </Accordion>

    <Accordion title="DarkRP Performance Optimization">
      ```lua theme={null}
      -- Add these to settings.lua for better performance

      -- Reduce entity calculations
      GM.Config.npckillpay = 0                   -- Disable NPC kill rewards to reduce calculations
      GM.Config.rewardvault = false              -- Disable reward vault to reduce database operations
      GM.Config.chatsounds = false               -- Disable chat sounds to reduce network traffic

      -- Reduce database operations
      GM.Config.logging = false                  -- Disable logging for better performance
      GM.Config.backuptime = 600                 -- Increase time between data backups (in seconds)

      -- Limit entity spam
      GM.Config.pocketitems = 5                  -- Reduce maximum pocket items
      GM.Config.maxdoors = 10                    -- Reduce maximum doors per player
      GM.Config.maxlawboards = 2                 -- Reduce maximum law boards
      GM.Config.maxletters = 10                  -- Reduce maximum letters
      GM.Config.maxvehicles = 4                  -- Reduce maximum vehicles

      -- Reduce player movement calculations
      GM.Config.ironshoot = false                -- Disable iron sight shooting mechanics
      GM.Config.dynamicvoice = false             -- Disable dynamic voice to reduce calculations
      ```
    </Accordion>

    <Tip>
      For large DarkRP servers, consider using a properly configured MySQL database instead of SQLite for better performance with many players.
    </Tip>
  </Tab>

  <Tab title="TTT (Trouble in Terrorist Town)">
    TTT settings are managed in:

    * `/garrysmod/cfg/server.cfg` - Server settings
    * `/garrysmod/gamemodes/terrortown/gamemode/config.lua` - Full TTT configuration

    Important TTT settings:

    ```lua theme={null}
    -- Round settings
    ttt_minimum_players 2
    ttt_preptime_seconds 30
    ttt_firstpreptime 60
    ttt_roundtime_minutes 10
    ttt_posttime_seconds 30

    -- Role settings
    ttt_traitor_pct 0.25
    ttt_traitor_max 32
    ttt_detective_pct 0.13
    ttt_detective_max 32
    ttt_detective_min_players 8
    ttt_detective_karma_min 600

    -- Karma settings
    ttt_karma 1
    ttt_karma_strict 1
    ttt_karma_starting 1000
    ttt_karma_max 1000
    ttt_karma_ratio 0.001
    ttt_karma_kill_penalty 15
    ttt_karma_round_increment 5
    ttt_karma_clean_bonus 30
    ttt_karma_traitordmg_ratio 0.0003
    ttt_karma_low_autokick 1
    ttt_karma_low_amount 300
    ttt_karma_low_ban 0
    ttt_karma_low_ban_minutes 60
    ttt_karma_persist 1
    ttt_karma_clean_half 0.25
    ```
  </Tab>

  <Tab title="Sandbox">
    Sandbox settings are managed primarily in:

    * `/garrysmod/cfg/server.cfg` - Server settings

    Important Sandbox settings:

    ```cfg theme={null}
    // Sandbox limits
    sbox_maxprops 150
    sbox_maxragdolls 10
    sbox_maxnpcs 10
    sbox_maxballoons 25
    sbox_maxeffects 25
    sbox_maxdynamite 10
    sbox_maxlamps 10
    sbox_maxthrusters 25
    sbox_maxwheels 25
    sbox_maxhoverballs 25
    sbox_maxvehicles 5
    sbox_maxbuttons 25

    // Sandbox gameplay
    sbox_godmode 0
    sbox_noclip 1
    sbox_plpldamage 1
    sbox_playergod 0
    ```
  </Tab>
</Tabs>

## Admin Mod Configuration

<Accordion title="ULX/ULib Configuration">
  ULX (Ulysses Admin Mod) settings are stored in multiple files:

  * `/garrysmod/data/ulx/config.txt` - Main ULX configuration
  * `/garrysmod/data/ulib/groups.txt` - User groups and permissions
  * `/garrysmod/addons/ulx/lua/ulx/modules/sh/` - Module configurations

  Important files to customize:

  1. **groups.txt example**:

  ```
  "STEAM_0:1:12345678"	"superadmin"
  "STEAM_0:0:87654321"	"admin"
  ```

  2. **Creating custom groups**:

  ```
  "Owner"
  {
  	"allow"
  	{
  		"ulx ban"
  		"ulx kick"
  		"ulx slay"
  		"ulx teleport"
  	}
  	"inherit_from"	"superadmin"
  }
  ```
</Accordion>

## MySQL Configuration

Many addons (especially DarkRP) support MySQL databases:

<Accordion title="MySQL Setup">
  1. Create a MySQL database on your hosting provider
  2. Configure your database details in the appropriate files:

  For DarkRP:

  ```lua theme={null}
  -- In garrysmod/addons/darkrpmodification/lua/darkrp_config/mysql.lua
  RP.Config.MySQLConfig = {
      EnableMySQL = true,
      Host = "localhost",
      Database = "darkrp",
      Username = "username",
      Password = "password",
      Port = 3306
  }
  ```

  For FAdmin:

  ```lua theme={null}
  -- In garrysmod/lua/fadin/mysqlconfig.lua
  FAdmin.MySQLConfig = {
      Enable = true,
      Host = "localhost",
      Username = "username",
      Password = "password",
      Database_name = "fadmin",
      Database_port = 3306,
      Preferred_module = "mysqloo"
  }
  ```
</Accordion>

<Warning>
  Store database passwords securely and never share your database credentials with anyone you don't trust completely.
</Warning>

## Content Mounting

To use content from other Source games (CS:S, HL2, etc.), configure the `mount.cfg` file:

```cfg theme={null}
"mountcfg"
{
	"cstrike"	"C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Source\cstrike"
	"tf"		"C:\Program Files (x86)\Steam\steamapps\common\Team Fortress 2\tf"
}
```

On a Gamepanel, you'll need to use the SteamCMD to download this content to your server first.

## Startup Parameters

Configure these in the Gamepanel's Startup tab:

```
-game garrysmod +sv_lan 0 +map gm_construct -maxplayers 16 +host_workshop_collection 123456789 -authkey YOURAUTHKEY
```

<Accordion title="Parameter Explanation">
  | Parameter                             | Description                 |
  | ------------------------------------- | --------------------------- |
  | `-game garrysmod`                     | Specifies the game          |
  | `+sv_lan 0`                           | Sets LAN server             |
  | `+map gm_construct`                   | Sets starting map           |
  | `-maxplayers 16`                      | Sets maximum players        |
  | `+host_workshop_collection 123456789` | Sets workshop collection    |
  | `-authkey YOURAUTHKEY`                | Workshop authentication key |
</Accordion>

## RCON Configuration

Remote Console (RCON) allows you to administer your server remotely:

1. Set a strong RCON password in server.cfg:
   ```cfg theme={null}
   rcon_password "YourStrongPasswordHere"
   ```

2. Connect to your server's RCON using:
   * An RCON tool like HLSW or SourceAdmin
   * The in-game console with `rcon_password` followed by `rcon` commands
   * Gamepanel's built-in console

<Warning>
  RCON passwords are transmitted in plain text unless you're using a secure connection. Always use strong, unique passwords.
</Warning>

## Map Rotation

Configure map rotation in your server.cfg:

```cfg theme={null}
mapcyclefile "mapcycle.txt"
mp_timelimit 60     // Minutes per map
```

Then create a `mapcycle.txt` file in the `/garrysmod/cfg/` directory:

```
gm_construct
gm_flatgrass
rp_downtown_v4c
ttt_minecraft_b5
```

## Server Logging

Configure logging to track server activity:

```cfg theme={null}
sv_logfile 1                  // Enable logging
sv_logbans 1                  // Log bans
sv_logecho 1                  // Echo log information to console
sv_log_onefile 0              // Don't save all logs to a single file
log on                        // Turn logging on
```

Logs are stored in `/garrysmod/logs/`

## Optimization Configurations

Use these settings for better server performance:

```cfg theme={null}
// Threading optimization
sv_parallel_packentities 1     // Use parallel processing for packing entities
sv_parallel_sendsnapshot 1     // Use parallel processing for snapshots

// Physics optimization
gmod_physiterations 4          // Number of physics iterations
sv_turbophysics 1              // Enable turbo physics

// Entity optimization
sv_timeout 120                 // Connection timeout threshold
sv_maxunlag 1                  // Maximum lag compensation in seconds
net_maxfilesize 64             // Maximum file size for transfers
sv_loadingurl ""               // Loading screen URL
```

## DDoS Protection

Configure basic DDoS protection:

```cfg theme={null}
sv_minrate 20000               // Minimum client rate
sv_maxrate 100000              // Maximum client rate
sv_maxupdaterate 66            // Maximum updates per second
sv_maxcmdrate 66               // Maximum commands per second
sv_client_min_interp_ratio -1  // Client interpolation ratio minimum
sv_client_max_interp_ratio 2   // Client interpolation ratio maximum
fps_max 600                    // Maximum server FPS
sv_maxusrcmdprocessticks 24    // Maximum user command process ticks
sv_stats 0                     // Disable server stats
```

For more comprehensive DDoS protection, consider using our [Firewall Manager](/firewall-manager).

## Gamemode-Specific Configuration Examples

<Accordion title="TTT Example Configuration (server.cfg)">
  ```cfg theme={null}
  // TTT Configuration
  // Basic server settings
  hostname "My TTT Server"
  sv_password ""
  rcon_password "MySecureRconPassword"

  // Round settings
  ttt_minimum_players 2
  ttt_preptime_seconds 30
  ttt_firstpreptime 60
  ttt_roundtime_minutes 10
  ttt_posttime_seconds 30

  // Role settings
  ttt_traitor_pct 0.25
  ttt_traitor_max 32
  ttt_detective_pct 0.13
  ttt_detective_max 32
  ttt_detective_min_players 8
  ttt_detective_karma_min 600

  // Equipment settings
  ttt_credits_starting 2
  ttt_credits_award_pct 0.35
  ttt_credits_award_size 1
  ttt_credits_award_repeat 1
  ttt_credits_detectivekill 1

  // Karma settings
  ttt_karma 1
  ttt_karma_strict 1
  ttt_karma_starting 1000
  ttt_karma_max 1000
  ttt_karma_ratio 0.001
  ttt_karma_kill_penalty 15
  ttt_karma_round_increment 5
  ttt_karma_clean_bonus 30
  ttt_karma_traitordmg_ratio 0.0003
  ttt_karma_low_autokick 1
  ttt_karma_low_amount 300
  ttt_karma_low_ban 0
  ttt_karma_low_ban_minutes 60
  ttt_karma_persist 1
  ttt_karma_clean_half 0.25

  // Map settings
  ttt_use_weapon_spawn_scripts 1
  ttt_spawn_wave_interval 2

  // Gameplay settings
  ttt_haste 1
  ttt_haste_starting_minutes 5
  ttt_haste_minutes_per_death 0.5
  ttt_postround_dm 1
  ttt_no_nade_throw_during_prep 1
  ttt_weapon_carrying 1
  ttt_weapon_carrying_range 50
  ttt_teleport_telefrags 1
  ttt_ragdoll_pinning 1
  ttt_ragdoll_pinning_innocents 1
  ttt_use_ammo_resupply 1
  ttt_resupply_delay 20
  ```
</Accordion>

<Accordion title="DarkRP Example Configuration (darkrp_config/settings.lua)">
  ```lua theme={null}
  -- DarkRP Settings

  -- Money Settings
  GM.Config.currency = "$"
  GM.Config.pocket = true
  GM.Config.pocketitems = 10
  GM.Config.wallettax = 0
  GM.Config.wantedsuicide = true
  GM.Config.rewardvault = true
  GM.Config.enablebuypocket = true
  GM.Config.clearbackpackondeath = true
  GM.Config.restrictdrop = true
  GM.Config.restrictallteams = false

  -- Door Settings
  GM.Config.doorcost = 30
  GM.Config.allowropseweld = true
  GM.Config.allowvehicleowning = true
  GM.Config.allowvnocollide = true
  GM.Config.doorspawnopen = true
  GM.Config.babygod = true
  GM.Config.chatsounds = true
  GM.Config.deathfee = 30
  GM.Config.moneyremovedelay = 600
  GM.Config.demotetime = 120
  GM.Config.maxdoors = 20
  GM.Config.nutshelldelay = 60

  -- Lockdown Settings
  GM.Config.lockdown = true
  GM.Config.lockpicktime = 30
  GM.Config.maxlockpicktime = 60
  GM.Config.arrestspeed = 120
  GM.Config.respawntime = 1
  GM.Config.changejobtime = 10
  GM.Config.maxcopsalary = 100
  GM.Config.maxadminsalary = 120
  GM.Config.maxmayorsalary = 120

  -- Mayor Settings
  GM.Config.mayorvotenocost = true
  GM.Config.mayorvotedelay = 60*30
  GM.Config.shouldResetLaws = true
  GM.Config.strictsuicide = true
  GM.Config.telefromjail = false
  GM.Config.teletojail = true
  GM.Config.unlockdoorsonstart = true
  GM.Config.voiceradius = true

  -- AFK Settings
  GM.Config.afkdemotetime = 600
  GM.Config.afkdemotedelay = 30

  -- HUD Settings
  GM.Config.adminicon = "icon16/shield.png"
  GM.Config.alltalk = false
  GM.Config.customjobs = true
  GM.Config.customspawns = true
  GM.Config.deathnotice = true
  GM.Config.deathblack = true
  GM.Config.needwantedforarrest = true
  GM.Config.nowep = false
  GM.Config.ooc = true
  GM.Config.propertytax = true
  GM.Config.proppaying = true
  GM.Config.propspawning = true
  GM.Config.removeclassitems = true
  GM.Config.respawninjail = true
  GM.Config.restrictallteams = true
  GM.Config.searchothers = true
  ```
</Accordion>

## Source Engine Mounting (Optional)

Mount content from other Source games for additional assets:

1. Ensure the content is installed on your server

   On a Gamepanel, you'll need to use the SteamCMD to download this content to your server first.

2. Configure mount points in `mount.cfg`

3. Add these to your startup parameters

Configure these in the Gamepanel's Startup tab:

```
-game garrysmod +sv_lan 0 +map gm_construct -maxplayers 16 +host_workshop_collection 123456789 -authkey YOURAUTHKEY
```

## Server Monitoring

Monitor your server's health using:

* Console log analysis
* Third-party monitoring tools
* Resource utilization graphs
* Gamepanel's built-in console

By following this configuration guide, you can create a well-optimized and properly configured Garry's Mod server on Wasabi Hosting. If you need further assistance, contact our support team.

<Card title="Get your own Garry's Mod server" icon="rocket" href="https://wasabihosting.com/game-servers/garrysmod">
  Deploy a DDoS-protected Garry's Mod server on AMD Ryzen hardware in about two minutes. Plans start at €12.50/month.
</Card>
