Skip to content

Commit

Permalink
Merge pull request #128 from joedwards32/57-worshop-maps-support
Browse files Browse the repository at this point in the history
experimental support for workshop maps
  • Loading branch information
joedwards32 committed Sep 1, 2024
2 parents 1e3c026 + a15e7ce commit 78009c6
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 6 deletions.
20 changes: 18 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,8 @@ CS2_GAMEALIAS="" (Game type, e.g. casual, competitive, deathmatch.
See https://developer.valvesoftware.com/wiki/Counter-Strike_2/Dedicated_Servers)
CS2_GAMETYPE=0 (Used if CS2_GAMEALIAS not defined. See https://developer.valvesoftware.com/wiki/Counter-Strike_2/Dedicated_Servers)
CS2_GAMEMODE=1 (Used if CS2_GAMEALIAS not defined. See https://developer.valvesoftware.com/wiki/Counter-Strike_2/Dedicated_Servers)
CS2_MAPGROUP="mg_active" (Map pool)
CS2_STARTMAP="de_inferno" (Start map)
CS2_MAPGROUP="mg_active" (Map pool. Ignored if workshop maps are defined.)
CS2_STARTMAP="de_inferno" (Start map. Ignored if workshop maps are defined.)
```

### Bots
Expand Down Expand Up @@ -110,6 +110,22 @@ CS2_LOG_DETAIL=0 (Combat damage logging: 0=disabled, 1=enemy, 2=frien
CS2_LOG_ITEMS=0 (Turns item logging on/off: 0=off, 1=on)
```

### Steam Workshop

Support for Steam Workshop is experimental!

```dockerfile
CS2_HOST_WORKSHOP_MAP="" (Steam Workshop Map ID to load on server start)
CS2_HOST_WORKSHOP_COLLECTION="" (Steam Workshop Collection ID to download)
```

If a Workshop Collection is set, maps can be selected via rcon. E.g:

```
ds_workshop_listmaps
ds_workshop_changelevel $map_name
```

# Customizing this Container

## Validating Game Files
Expand Down
21 changes: 20 additions & 1 deletion bullseye/etc/entry.sh
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,22 @@ if [[ ! -z $SRCDS_TOKEN ]]; then
SV_SETSTEAMACCOUNT_ARGS="+sv_setsteamaccount ${SRCDS_TOKEN}"
fi

if [[ ! -z $CS2_HOST_WORKSHOP_COLLECTION ]] || [[ ! -z $CS2_HOST_WORKSHOP_MAP ]]; then
CS2_MP_MATCH_END_CHANGELEVEL="+mp_match_end_changelevel true" # https://github.com/joedwards32/CS2/issues/57#issuecomment-2245595368
CS2_STARTMAP="\<empty\>" # https://github.com/joedwards32/CS2/issues/57#issuecomment-2245595368
CS2_MAPGROUP_ARGS=
else
CS2_MAPGROUP_ARGS="+mapgroup ${CS2_MAPGROUP}"
fi

if [[ ! -z $CS2_HOST_WORKSHOP_COLLECTION ]]; then
CS2_HOST_WORKSHOP_COLLECTION_ARGS="+host_workshop_collection ${CS2_HOST_WORKSHOP_COLLECTION}"
fi

if [[ ! -z $CS2_HOST_WORKSHOP_MAP ]]; then
CS2_HOST_WORKSHOP_MAP_ARGS="+host_workshop_map ${CS2_HOST_WORKSHOP_MAP}"
fi

# Start Server

if [[ ! -z $CS2_RCON_PORT ]]; then
Expand All @@ -107,8 +123,11 @@ eval "./cs2" -dedicated \
-usercon \
-maxplayers "${CS2_MAXPLAYERS}" \
"${CS2_GAME_MODE_ARGS}" \
+mapgroup "${CS2_MAPGROUP}" \
"${CS2_MAPGROUP_ARGS}" \
+map "${CS2_STARTMAP}" \
"${CS2_HOST_WORKSHOP_COLLECTION_ARGS}" \
"${CS2_HOST_WORKSHOP_MAP_ARGS}" \
"${CS2_MP_MATCH_END_CHANGELEVEL}" \
+rcon_password "${CS2_RCONPW}" \
"${SV_SETSTEAMACCOUNT_ARGS}" \
+sv_password "${CS2_PW}" \
Expand Down
8 changes: 5 additions & 3 deletions examples/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
version: '3.7'
services:
cs2-server:
image: joedwards32/cs2
Expand All @@ -22,8 +21,11 @@ services:
- CS2_GAMEALIAS # (Game type, e.g. casual, competitive, deathmatch. See https://developer.valvesoftware.com/wiki/Counter-Strike_2/Dedicated_Servers)
- CS2_GAMETYPE=0 # (Used if CS2_GAMEALIAS not defined. See https://developer.valvesoftware.com/wiki/Counter-Strike_2/Dedicated_Servers)
- CS2_GAMEMODE=1 # (Used if CS2_GAMEALIAS not defined. See https://developer.valvesoftware.com/wiki/Counter-Strike_2/Dedicated_Servers)
- CS2_MAPGROUP=mg_active # (Map pool)
- CS2_STARTMAP=de_inferno # (Start map)
- CS2_MAPGROUP=mg_active # (Map pool. Ignored if Workshop maps are defined.)
- CS2_STARTMAP=de_inferno # (Start map. Ignored if Workshop maps are defined.)
# Workshop Maps
- CS2_HOST_WORKSHOP_COLLECTION # The workshop collection to use
- CS2_HOST_WORKSHOP_MAP # The workshop map to use. If collection is also defined, this is the starting map.
# Bots
- CS2_BOT_DIFFICULTY # (0 - easy, 1 - normal, 2 - hard, 3 - expert)
- CS2_BOT_QUOTA # (Number of bots)
Expand Down

0 comments on commit 78009c6

Please sign in to comment.