How to Add Custom Maps to a Sven Co-op Server (svencoop_addon)
Install Sven Co-op map packs on a server: the svencoop_addon folder, mapcycle.txt, mapvote.cfg, sv_downloadurl fast downloads and broken map fixes.
Updated Oct 7, 2026 · 6 min read
On this page
- Why svencoop_addon and not svencoop
- Step 1: Check the pack before you upload
- Step 2: Upload into svencoop_addon
- Step 3: Add it to the map cycle
- Step 4: Let players vote for it
- Step 5: Make downloads fast with sv_downloadurl
- Survival mode and other per map settings
- When a custom map will not load
- Doing this on a GamezServers server
- FAQ
To add a custom map to a Sven Co-op server, extract the map pack into the server's svencoop_addon folder (not svencoop), so the .bsp lands in svencoop_addon/maps, then add the map name to mapcycle.txt and switch to it with changelevel mapname in the server console. Players download the files automatically when they join, and setting sv_downloadurl makes that download much faster.
Most of what keeps a Sven Co-op community going is custom content: two decades of maps on the community run Sven Co-op map database (scmapdb), plus campaign packs that run for hours. Getting them onto a server is simple once you know the folder rules. If the server itself is not running yet, start with how to host a Sven Co-op server.
Why svencoop_addon and not svencoop
The game folder svencoop belongs to the official install. Updates replace files in it, and stray files from a map pack can overwrite stock models or scripts. The official manual says to extract unofficial content into svencoop_addon instead. The engine reads that folder alongside the main one, so maps placed there work exactly the same, and a broken pack can be removed without touching the base game.
The layout mirrors the game folder:
svencoop_addon/
maps/ .bsp maps, .res resource lists, map .cfg files
models/ custom monsters, weapons, player models
sound/ custom sounds and music
sprites/ effects and HUD sprites
gfx/env/ skybox textures
scripts/maps/ AngelScript files some maps need
Step 1: Check the pack before you upload
Open the zip on your own PC first. A good map pack already has the folder layout above at its top level. Three things to look for:
- An extra wrapper folder. If the zip contains
mymappack/maps/..., upload what is insidemymappack, not the folder itself. - A
scriptsfolder. The manual warns to inspect these: in a map pack,scriptsshould normally contain only amapssubfolder. Anything inscripts/pluginswould change how your whole server behaves, not just the one map. - Files named like stock content. A pack that ships its own
server.cfg,mapcycle.txtordefault_plugins.txtwill replace yours. Delete those from the pack before uploading.
Step 2: Upload into svencoop_addon
Stop the server, then copy the contents of the pack into svencoop_addon, merging with the folders already there. On a home server that is a normal file copy. On a hosted server, use SFTP for anything bigger than a handful of files; it is faster and resumes if the connection drops. Our SFTP for game servers guide covers the client setup.
Map names are the .bsp file names without the extension. A pack that contains maps/mycampaign1.bsp gives you a map called mycampaign1. Note the first map of a campaign: the rest usually chain on by themselves through level changes inside the map.

Step 3: Add it to the map cycle
mapcycle.txt in the svencoop folder controls what plays next when a map ends or times out. It is one map name per line:
svencoop1
hl_c01_a1
mycampaign1
stadium4
For a campaign, list only its first map. The campaign's own level changes handle the rest, and the cycle picks up again once it finishes. The server reads the file named by the mapcyclefile variable, which is mapcycle.txt unless you changed it.
To jump straight to a map without waiting for the cycle, type in the server console:
changelevel mycampaign1
Or queue it as the next map with mp_nextmap_cycle mycampaign1. From inside the game, admins can do the same through RCON or an admin plugin; see how to become admin on a Sven Co-op server.
Step 4: Let players vote for it
The in game map vote reads a separate list, mapvote.cfg, where each map gets its own line:
addvotemap svencoop1
addvotemap hl_c01_a1
addvotemap mycampaign1
Keep the list sensible. The official configuration manual warns that more than 200 maps in the vote list may stop players from joining. mp_votemaprequired sets the percentage of yes votes needed (66 by default).
Step 5: Make downloads fast with sv_downloadurl
When a player joins and lacks the map, the game server sends it to them. That works, but it is slow, and a campaign with custom models and music can take minutes. Two fixes:
Fast download. Upload a copy of your svencoop_addon content to any plain web host with the same folder layout, then add this to server.cfg:
sv_downloadurl "http://files.example.com/svencoop/"
The trailing slash is required. Clients then pull the files over HTTP, which is far quicker than the in game transfer.
Hand out the pack. For a fixed group, sharing a zip in your Discord works well. Players unzip it into their own svencoop_addon folder (or the svencoop_downloads folder the game uses for downloaded content) and connect with everything already in place.

Survival mode and other per map settings
Many custom maps ship a mapname.cfg in the maps folder. It runs when that map loads and can set things like survival mode support (mp_survival_supported), starting weapons or a different time limit, so one map can behave differently from the rest of your rotation without touching server.cfg. If a map feels wrong (no respawns, weird gear), read its .cfg before blaming the server.
When a custom map will not load
| Symptom | Likely cause |
|---|---|
| Server stops when switching to the map | Typo in the map name, or the .bsp went into the wrong folder |
| Server will not start at all | The start map is a custom map that has not been uploaded yet |
| Players kicked with a missing file message | A model, sound or sprite the map needs is missing from svencoop_addon |
| Map loads but scripted events never fire | The map's AngelScript files are not in scripts/maps |
| Players stuck on "downloading" | Large pack and no sv_downloadurl, so the server is sending it slowly |
The .res file next to a .bsp lists everything that map needs. If players get a missing file error, check that each path in it exists on the server.
Doing this on a GamezServers server
On a hosted Sven Co-op server the steps are the same, without the PC. Upload the pack to svencoop_addon over SFTP or with the file manager, edit mapcycle.txt and mapvote.cfg in the browser, and use the live console for changelevel. Only set a custom map as the Default Map in the panel after its files are uploaded, because the server will not start on a map it cannot find. Take a one click backup before you drop in a large pack, so you can roll back if it overwrites something. A community running big map packs usually sits on the 4 GB plan, and you can change plans from the panel any time.
FAQ
Where do I put custom maps on a Sven Co-op server?
In svencoop_addon/maps for the .bsp files, with the pack's models, sounds and sprites in the matching folders under svencoop_addon. Keep them out of the main svencoop folder.
Do players need to download the map pack themselves?
No, the server sends missing files when they join. It is slow without sv_downloadurl, so many groups also share the pack for regulars to install ahead of time.
How do I change the map on a running server?
Type changelevel mapname in the server console, or use RCON from the game. To set what plays next instead, use mp_nextmap_cycle mapname.
Can I run a whole campaign like They Hunger in the rotation?
Yes. They Hunger ships with the game. For any campaign, put only its first map in mapcycle.txt and the campaign's own level changes carry players through.
How many maps can I add to the vote list?
The official manual warns that more than 200 maps in mapvote.cfg may stop players from joining. Keep the vote list to your best maps and leave the rest for admins to load by hand.
Skip the setup. Your own Sven Co-op server.
Then $4.99/mo. Just trying it? $1.25 for 3 days