Sven Co-op is a GoldSrc co-op game, but the modern dedicated server is standalone and free. You do not need to own Half-Life and you do not need a Steam login on the server. It installs as one app, launches with one command, and ships about a hundred maps built in. Here is the setup.
Install the server
The Sven Co-op Dedicated Server is app 276060 and installs anonymously. It is standalone, so there is no Half-Life mod step, just the one app_update (about 0.8 GB):
./steamcmd.sh +login anonymous \
+app_update 276060 validate \
+quitThe game folder is svencoop, and the config it reads on boot is:
<install>/svencoop/server.cfgA vanilla server.cfg
Name and passwords go here. Change the lines marked CHANGE ME:
hostname "My Sven Co-op Server" // CHANGE ME
rcon_password "pick-a-long-secret" // CHANGE ME
sv_password "" // a word here = private, blank = open
sv_lan 0
mp_timelimit 60 // minutes before the map rotatesThe launch line
Sven Co-op has its own launch wrapper, svends_run, at the install root. The starting map and player cap are arguments:
./svends_run -game svencoop -console \
-port 27015 \
+map svencoop \
+maxplayers 16- maxplayers goes up to 32. Sven Co-op scales enemy strength to the number of connected players, so a bigger server is a harder server.
- +map svencoop starts the original campaign. The server rotates through the built-in maps on its own after that.
- Port 27015 is the game and query port. Open UDP in your firewall.
Make yourself admin
Admin in Sven Co-op is not a password, it is a list of SteamIDs. Put your SteamID64 in svencoop/admins.txt, one per line, and you get admin_kick, admin_ban, admin_slay and the rest in the console:
<install>/svencoop/admins.txt
76561198000000000
76561198000000001admins.txt is separate from server.cfg. Edit it, then restart the server (or reload the admin list) for the change to take.
Maps and custom content
About a hundred official co-op maps ship with the server, so nobody has to download anything to play them. Community maps are a bigger job: players only receive them if you run a FastDL host (an HTTP mirror of your maps folder, set with sv_downloadurl). Without it, a custom map loads on the server but joiners get stuck missing the files. For a night with friends the built-in maps are more than enough.