Counter-Strike: Source Updated April 27, 2026

How to Set Up a Surf Server in Counter-Strike: Source

Configure sv_airaccelerate, gravity, and SourceMod timer plugins to run a CSS surf server with proper settings.

Counter-Strike: SourceCSSsurfsv_airaccelerateSurfTimergame mode

Surf in Counter-Strike: Source

Surf is one of the defining CSS game modes — players glide along angled ramp surfaces using strafing and air control to build speed and reach the end of a course. CSS has a massive surf map library, an active timer community, and the game engine physics that make surf feel right. CS2's surf scene is still catching up; CSS is where the heritage lives.

Required Cvars

Create a cstrike/cfg/surf.cfg file and exec surf.cfg from server.cfg, or paste these directly into server.cfg:

sv_airaccelerate 150
sv_gravity 800
sv_maxvelocity 3500
sv_enablebunnyhopping 1

mp_friendlyfire 0
mp_autoteambalance 0
mp_limitteams 0
mp_roundtime 60
mp_timelimit 0
mp_fraglimit 0
mp_restartgame 0

sv_airaccelerate 150 is the most important setting. The default is 10 — at 10, you can barely steer in the air and surf is impossible. 150 gives you the responsive air control surf requires.

sv_gravity 800 is standard gravity. Some servers lower this to 600 for a floatier feel on harder maps; experiment once you're running.

mp_roundtime 60 gives players 60 minutes per round — effectively no time limit. Combined with mp_timelimit 0, rounds only end if you manually change maps.

SourceMod Plugins

SurfTimer (by the SurfTimer community on GitHub) is the standard for competitive surf servers. It tracks personal best times, zone completion, replays, and ranks. It requires a MySQL database — set up a database and configure the connection in:

cstrike/addons/sourcemod/configs/databases.cfg

Add an entry like:

"surftimer"
{
    "driver"    "mysql"
    "host"      "127.0.0.1"
    "database"  "surftimer"
    "user"      "surfuser"
    "pass"      "password"
}

If you don't want the database overhead, maptimer is a simpler alternative — it tracks times per session without persistence.

Other useful plugins for surf:

  • sm_hud.smx — displays current speed, time, and zone info on-screen
  • mapchooser.smx + rockthevote.smx — for map voting (comes with SourceMod)
  • A respawn plugin — so players respawn at the start of the map after dying, rather than waiting for round end

Disabling Combat

Surf servers typically remove weapons and kills from the equation. Options:

  • Use a deathmatch plugin set to respawn players on death with no weapons
  • Set mp_startmoney 0 and strip weapons in the plugin
  • Some surf plugins handle this themselves — check your plugin's documentation

Surf Maps

Download surf maps from GameBanana (gamebanana.com) — filter by game: Counter-Strike: Source. Map filenames start with surf_. Popular starting maps:

surf_beginner
surf_ski_2
surf_kitsune
surf_forbidden_ways
surf_utopia_njv
surf_mesa

Place .bsp files (and any associated .nav, sound, model, material files) in cstrike/maps/. Distribute to clients via FastDL — see the Custom Maps guide.

mapcycle.txt for Surf

Keep your surf map pool in a dedicated cstrike/mapcycle.txt:

surf_beginner
surf_ski_2
surf_kitsune
surf_forbidden_ways

Use SourceMod's MapChooser + RTV so players can vote for the next map.