├── docker ├── init.sh └── Dockerfile ├── .editorconfig ├── .env ├── docker-compose.yml ├── setup-gamefiles.sh ├── LICENSE ├── .gitignore ├── README.md └── config └── server.cfg /docker/init.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | 3 | cd server/ 4 | echo "Starting server with args: ${IW4X_ARGS}" 5 | wine iw4x.exe $IW4X_ARGS 6 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 -------------------------------------------------------------------------------- /.env: -------------------------------------------------------------------------------- 1 | # Here you can change the commandline arguments of your server. 2 | IW4X_ARGS="-dedicated +set net_port 28960 +exec server.cfg +party_enable 0 +map_rotate" 3 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | 5 | iw4x-server: 6 | image: "iw4x-docker:latest" 7 | build: 8 | context: "./docker/" 9 | container_name: iw4x-docker 10 | # Will auto-restart your server if it crashes. 11 | restart: always 12 | volumes: 13 | - "./data/server:/iw4x/server" 14 | - "./config/server.cfg:/iw4x/server/userraw/server.cfg" 15 | env_file: .env 16 | ports: 17 | - "28960:28960/udp" 18 | - "28960:28960" 19 | -------------------------------------------------------------------------------- /docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.8 2 | LABEL com.iw4x.description="Alpine based Wine environment for IW4x dedicated server." 3 | 4 | ENV LANG en_US.utf8 5 | 6 | # This hack is necessary, because it is the only way to install 32-bit wine on 64-bit alpine. 7 | RUN echo "x86" > /etc/apk/arch \ 8 | && apk add --no-cache wine \ 9 | && echo "x86_64" > /etc/apk/arch \ 10 | && addgroup iw4x \ 11 | && adduser -h "/iw4x" -G iw4x -D iw4x \ 12 | && mkdir -p /iw4x/server 13 | 14 | ENV WINEARCH win32 15 | ENV IW4X_PORT=28960 16 | ENV IW4X_CONFIG=/iw4x/server/userraw/server.cfg 17 | ENV IW4X_ARGS="-dedicated +set net_port 28960 +exec server.cfg +party_enable 0" 18 | 19 | USER iw4x 20 | WORKDIR /iw4x 21 | 22 | COPY ./init.sh init.sh 23 | 24 | VOLUME ["/iw4x/server"] 25 | 26 | EXPOSE 28960/udp 27 | EXPOSE 28960 28 | 29 | CMD ["/bin/sh", "-e", "init.sh"] 30 | -------------------------------------------------------------------------------- /setup-gamefiles.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | GAMEFILES_ZIP="iw4x_files.zip" 4 | GAMEFILES_URL="https://dss0.cc/updater/$GAMEFILES_ZIP" 5 | GAMEFILES_DIRECTORY=./data/server 6 | 7 | function create_directories() { 8 | echo "Creating directories" 9 | mkdir -p $GAMEFILES_DIRECTORY 10 | } 11 | 12 | function setup_gamefiles () { 13 | echo "Preparing gamefiles..." 14 | # download gamefiles 15 | wget $GAMEFILES_URL 16 | # move and extract gamefiles 17 | unzip -d $GAMEFILES_DIRECTORY $GAMEFILES_ZIP 18 | if [ $? -eq 0 ]; then 19 | rm $GAMEFILES_ZIP 20 | else 21 | echo "Unzipping failed" 22 | return 1 23 | fi 24 | } 25 | 26 | function main () { 27 | create_directories 28 | setup_gamefiles 29 | if [ $? -eq 0 ]; then 30 | echo "Setup succeeded!" 31 | else 32 | echo "Setup failed!" 33 | fi 34 | } 35 | 36 | main 37 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Patrick Jung 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Created by https://www.gitignore.io/api/git,macos,windows,gitbook,dotfilessh 3 | 4 | ### DotfilesSh ### 5 | local-patch 6 | patched-src 7 | 8 | ### Git ### 9 | *.orig 10 | 11 | ### GitBook ### 12 | # Node rules: 13 | ## Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 14 | .grunt 15 | 16 | ## Dependency directory 17 | ## Commenting this out is preferred by some people, see 18 | ## https://docs.npmjs.com/misc/faq#should-i-check-my-node_modules-folder-into-git 19 | node_modules 20 | 21 | # Book build output 22 | _book 23 | 24 | # eBook build output 25 | *.epub 26 | *.mobi 27 | *.pdf 28 | 29 | ### macOS ### 30 | *.DS_Store 31 | .AppleDouble 32 | .LSOverride 33 | 34 | # Icon must end with two \r 35 | Icon 36 | 37 | # Thumbnails 38 | ._* 39 | 40 | # Files that might appear in the root of a volume 41 | .DocumentRevisions-V100 42 | .fseventsd 43 | .Spotlight-V100 44 | .TemporaryItems 45 | .Trashes 46 | .VolumeIcon.icns 47 | .com.apple.timemachine.donotpresent 48 | 49 | # Directories potentially created on remote AFP share 50 | .AppleDB 51 | .AppleDesktop 52 | Network Trash Folder 53 | Temporary Items 54 | .apdisk 55 | 56 | ### Windows ### 57 | # Windows thumbnail cache files 58 | Thumbs.db 59 | ehthumbs.db 60 | ehthumbs_vista.db 61 | 62 | # Folder config file 63 | Desktop.ini 64 | 65 | # Recycle Bin used on file shares 66 | $RECYCLE.BIN/ 67 | 68 | # Windows Installer files 69 | *.cab 70 | *.msi 71 | *.msm 72 | *.msp 73 | 74 | # Windows shortcuts 75 | *.lnk 76 | 77 | *.log 78 | **/*.log 79 | 80 | 81 | data/ 82 | # End of https://www.gitignore.io/api/git,macos,windows,gitbook,dotfilessh 83 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Call of Duty: Modern Warfare 2 - IW4X Dedicated Server 2 | 3 | ![Docker Cloud Automated build](https://img.shields.io/docker/cloud/automated/pddstudio/iw4x-docker.svg?logo=docker) 4 | ![Docker Pulls](https://img.shields.io/docker/pulls/pddstudio/iw4x-docker.svg?logo=linux&logoColor=white) 5 | ![GitHub license](https://img.shields.io/github/license/PDDStudio/iw4x-docker.svg?logo=github) 6 | ![Build Status](https://drone.pddstudio.io/api/badges/PDDStudio/iw4x-docker/status.svg) 7 | 8 | > A dockerized version of IW4X's serverfiles - to easily host _(multiple)_ dedicated server instances on a Linux VPS. 9 | 10 | Further information can be found [here](https://reactiongaming.us/community/resources/categories/mw2-mods.3/). 11 | 12 | ## Also worth checking out: 13 | 14 | - [Wikia](https://callofduty.fandom.com/wiki/Developer_console) 15 | - [TheTechGame](https://www.thetechgame.com/Archives/t=3221243/huge-mw2-dvar-list-managed-code-list.html) 16 | - [GameBanana](https://gamebanana.com/skins/games/3291) 17 | - [IW4x Steam Community](https://steamcommunity.com/groups/IW4X/discussions/0/) 18 | - [ReactionGaming](https://reactiongaming.us/community/resources/categories/mw2-mods.3/) 19 | - [Pre-configured Serverfiles](https://steamcommunity.com/linkfilter/?url=https://cdn.discordapp.com/attachments/219514629703860235/309010603484381186/IW4x_prebuilddediconfig.zip) 20 | - [IW4X Server Documentation](https://xlabs.dev/support_iw4x_server) 21 | - [IW4X Console Commands](https://xlabs.dev/console_commands) 22 | 23 | ## Building 24 | 25 | The following commands are used to build the `iw4x-docker` image: 26 | 27 | ```sh 28 | # build the docker image 29 | docker-compose build --compress --force-rm --no-cache --pull 30 | # fire up an instance 31 | docker-compose up -d 32 | ``` 33 | 34 | ## Usage 35 | 36 | - Download Serverfiles 37 | - Adjust config file 38 | - Start compose stack 39 | - Connect to server 40 | 41 | ## Serverfiles 42 | 43 | This docker image is shipped without any server files. 44 | The server files have to be installed separately and need to be mounted via `/iw4x/server` volume. 45 | If you use the `docker-compose` setup included in this repository the serverfiles are expected to be located at `./data/server`. 46 | -------------------------------------------------------------------------------- /config/server.cfg: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////// 2 | /// IW4x Server Configuration file // 3 | /////////////////////////////////////////////////// 4 | //This config best view with Notepad++ OR // 5 | //Other non-windows notepad of your choice. // 6 | /////////////////////////////////////////////////// 7 | 8 | ////////////////////////////////////////////////// 9 | // SERVER NAME & COLORS TIPS // 10 | ////////////////////////////////////////////////// 11 | // // 12 | // ^1 Red // 13 | // ^2 Green // 14 | // ^3 yellow // 15 | // ^4 Blue // 16 | // ^5 Cyan // 17 | // ^6 Pink // 18 | // ^7 White // 19 | // ^8 Depends on the map you playing. // 20 | // American maps: Dark Green // 21 | // Russian maps: Dark Red // 22 | // British maps: Dark Blue // 23 | // ^9 grey // 24 | // ^0 Black // 25 | // ^: Rainbow colors // 26 | // // 27 | ////////////////////////////////////////////////// 28 | 29 | 30 | set sv_hostname "^2KSB ^3Snipe-Only ^7FFA" // Sets the server hostname 31 | set sv_motd "" // Sets a custom motd which is shown on the loadscreen when a player joins 32 | 33 | 34 | ////////////////////////////////////////////////// 35 | // ADMIN INFO // 36 | ////////////////////////////////////////////////// 37 | 38 | set _Admin "" // Your username. 39 | set _Email "" // E-mail address. you can leave blank 40 | set _Website "" // Website 41 | set _Location "Earth" // Location 42 | 43 | 44 | ////////////////////////////////////////////////// 45 | // NON-GAMEPLAY CONFIGURATION // 46 | ////////////////////////////////////////////////// 47 | 48 | set rcon_password "s3cr3t" // Access to your server to change stuff remotely or ingame. empty disabled 49 | set sv_securityLevel "23" // Configures the servers security level. 50 | set sv_customTextColor "" // custom color for ^; 51 | set g_password "" // Password Protected Server. Leave blank if you want players to join 52 | set g_inactivity "250" // Enable auto kick feature for idle/AFK players 53 | set g_inactivitySpectator "250" // Time in seconds before a spectator gets kicked 54 | set g_logSync "1" // 1 always flush games_mp.log, 0 only flush on game end 55 | set g_log "logs/games_mp.log" // Gamelog filename. If you edit this..make sure you change B3.xml if you have bigbrotherbot. 56 | set sv_allowClientConsole "1" // Enable or Disable players ability to access server commands 57 | set sv_maxclients "18" // Max players in your server. 58 | set party_maxplayers "18" // ^^Same as above for some weird reason^^^ 59 | set sv_maxPing "0" // (BUGGED) Maximum ping allowed, any higher and players will get kicked.( If you get 'server is for low ping players only', set this to 0) 60 | set sv_timeout "20" // Timeout time period. You will timeout after (20) seconds when attempting to connect or if you are getting connection interruptions 61 | set sv_reconnectlimit "3" // How many times you can try to reconnect 62 | set com_logFilter "1" // Removes ~95% of unneeded lines from the log. 63 | set sv_pure "0" // verifying cilent files 64 | set sv_sayName "^7Console" // name server-side 'say' commands show up as 65 | set sv_floodProtect "1" // Chat Spam Protection 66 | set sv_kickBanTime "300" // Kick Ban Duration. Time before player can re-join the server after getting kicked. 67 | set set party_enable "0" // Lobby Mode Server. Read the wiki more about this. If you want sv_maprotation & control your gametype settings. Leave this at 0. 68 | 69 | ////////////////////////////////////////////////// 70 | // BASE GAME CONFIGURATION // 71 | ////////////////////////////////////////////////// 72 | // // 73 | // war - Team Deathmatch // 74 | // dm - Free-for-all // 75 | // dom - Domination // 76 | // koth - Headquarters // 77 | // sab - Sabotage // 78 | // sd - Search and Destroy // 79 | // arena - Arena // 80 | // dd - Demolition // 81 | // ctf - Capture the Flag // 82 | // oneflag - One-Flag CTF // 83 | // gtnw - Global Thermo-Nuclear War // 84 | // // 85 | ////////////////////////////////////////////////// 86 | 87 | set g_gametype "dm" // Defualt gametype in case map rotation doesn't have any gametypes. Choose a gametype from the list above. 88 | set scr_player_forcerespawn "1" // Players respawn automatically after being fragged 89 | set scr_thirdperson "0" // third-person mode 90 | set scr_game_hardpoints "0" // Enable/Disable Killstreak rewards 91 | set scr_hardpoint_allowhelicopter "1" // Allow Attack Helicopters 92 | set scr_hardpoint_allowuav "1" // Allow UAV 93 | set scr_hardpoint_allowartillery "1" // Allow Airstrikes 94 | set scr_game_perks "1" // Allow players to have perks 95 | set scr_game_allowkillcam "1" // Allow Killcam. 96 | set scr_nukeTimer "10" // Timer when nuke goes off 97 | set scr_diehard "0" // die-hard mode. Teammates will have to relieve each other. 98 | set scr_teambalance "1" // Enable or Disable auto balance. 99 | set scr_game_spectatetype "2" // Allow Spectators. 0 Disabled, 1 Team/Player only, 2 Free 100 | set scr_player_suicidespawndelay "0" // Wait before you respawn if you committed suicide. 101 | set scr_player_sprinttime "8" // Sprint time, duration a player can run. 102 | set scr_game_killstreakdelay "8" // Delay your killstreaks 103 | set scr_game_objectiveStreaks "1" // Enable Chopper, AC130 and Nuke 104 | set scr_classic "0" // Enable IW3 killstreak system 105 | 106 | ////////////////////////////////////////////////// 107 | // XP BOOST CONFIGURATION // 108 | ////////////////////////////////////////////////// 109 | // uncomment below commands for XP config // 110 | // by removing the // before each set dvar. // 111 | // Change "war" gametype to your liking. // 112 | // // 113 | // DO NOT ABUSE! Some people like to rank. // 114 | // DON'T BE A DICK! Warn HIGH XP via hostname. // 115 | // Don't know what you doing? Don't touch it! // 116 | ////////////////////////////////////////////////// 117 | 118 | //set scr_xpscale "2" // IW's way of Double XP. 119 | 120 | //set scr_war_score_kill "0" // Amount of XP by each kill. 121 | //set scr_war_score_headshot "0" // Amount of XP by each headshot. 122 | //set scr_war_score_death "0" // Amount of XP by each death. 123 | //set scr_war_score_suicide "0" // Amount of XP by each suicide. 124 | //set scr_war_score_assist "0" // Amount of XP by each assist. 125 | 126 | ////////////////////////////////////////////////// 127 | // HARDCORE CONFIGURATION // 128 | ////////////////////////////////////////////////// 129 | // uncomment below commands for some hardcore // 130 | // by removing the // before each set dvar. // 131 | ////////////////////////////////////////////////// 132 | 133 | // set g_hardcore "1" // Enable hardcore mode 134 | // set scr_hardcore "1" // Enable hardcore mode again... 135 | // set ui_hud_hardcore "1" // Removes Heads up display in hardcore mode. 136 | // set scr_game_deathpointloss "0" // Points Loss on death XP. 137 | // set scr_game_onlyheadshots "0" // Enable/Disable Only Headshots mode. You can only kill players by taking headshots. 138 | set scr_player_maxhealth "30" // Percent of Health players will have on Respawn. 139 | // set scr_team_fftype "1" // Enable or Disable Friendly Fire. 1 on, 2 reflect, 3 shared 140 | // set scr_player_healthregentime "0" // Time it takes you to recover damage. 141 | // set scr_team_kickteamkillers "5" // Anyone who team kills, gets kicked automatically if you enable this feature. 142 | // set scr_team_teamkillspawndelay "20" // Team Killer gets a respawn penalty of specified seconds (20). 143 | 144 | 145 | ////////////////////////////////////////////////// 146 | // AIRDROP CONFIGURATION // 147 | ////////////////////////////////////////////////// 148 | // uncomment below commands for airdrop config // 149 | // by removing the // before each set dvar. // 150 | // // 151 | // Weight (1->1000) // 152 | // Selection is weighted random // 153 | // higher weights increase selection chance // 154 | ////////////////////////////////////////////////// 155 | 156 | // set scr_airdrop_ac130 "3" 157 | // set scr_airdrop_ammo "17" 158 | // set scr_airdrop_counter_uav "15" 159 | // set scr_airdrop_emp "1" 160 | // set scr_airdrop_harrier_airstrike "7" 161 | // set scr_airdrop_helicopter "7" 162 | // set scr_airdrop_helicopter_flares "5" 163 | // set scr_airdrop_helicopter_minigun "3" 164 | // set scr_airdrop_nuke "0" 165 | // set scr_airdrop_precision_airstrike "11" 166 | // set scr_airdrop_predator_missile "12" 167 | // set scr_airdrop_sentry "12" 168 | // set scr_airdrop_stealth_airstrike "5" 169 | // set scr_airdrop_uav "17" 170 | 171 | 172 | ////////////////////////////////////////////////// 173 | // EMERGENCY AIRDROP CONFIGURATION // 174 | ////////////////////////////////////////////////// 175 | // uncomment below commands for airdrop config // 176 | // by removing the // before each set dvar. // 177 | // // 178 | // Weight (1->1000) // 179 | // Selection is weighted random // 180 | // higher weights increase selection chance // 181 | ////////////////////////////////////////////////// 182 | 183 | // set scr_airdrop_mega_ac130 "2" 184 | // set scr_airdrop_mega_ammo "12" 185 | // set scr_airdrop_mega_counter_uav "16" 186 | // set scr_airdrop_mega_emp "0" 187 | // set scr_airdrop_mega_harrier_airstrike "5" 188 | // set scr_airdrop_mega_helicopter "5" 189 | // set scr_airdrop_mega_helicopter_flares "3" 190 | // set scr_airdrop_mega_helicopter_minigun "2" 191 | // set scr_airdrop_mega_nuke "0" 192 | // set scr_airdrop_mega_precision_airstrike "10" 193 | // set scr_airdrop_mega_predator_missile "14" 194 | // set scr_airdrop_mega_sentry "16" 195 | // set scr_airdrop_mega_stealth_airstrike "3" 196 | // set scr_airdrop_mega_uav "12" 197 | 198 | 199 | ////////////////////////////////////////////////// 200 | // FREE FOR ALL GAMETYPE SETTINGS // 201 | ////////////////////////////////////////////////// 202 | 203 | set scr_dm_scorelimit "2000" // Score limit to win the game. 204 | set scr_dm_timelimit "15" // Duration in minutes for the game to end if the score limit isn't reached. 205 | set scr_dm_playerrespawndelay "0" // How long player will wait until respawn. 206 | set scr_dm_numlives "0" // Number of lives per player 0 for unlimited. 207 | set scr_dm_roundlimit "1" // Rounds per game. 208 | set scr_dm_winlimit "1" // amount of wins needed to win a round-based game 209 | set scr_dm_promode "0" 210 | 211 | ////////////////////////////////////////////////// 212 | // TEAM DEATHMATCH GAMETYPE SETTINGS // 213 | ////////////////////////////////////////////////// 214 | 215 | set scr_war_scorelimit "8500" // Score limit to win the game. 216 | set scr_war_timelimit "10" // Duration in minutes for the game to end if the score limit isn't reached. 217 | set scr_war_playerrespawndelay "0" // How long player will wait until respawn. 218 | set scr_war_waverespawndelay "0" // Duration is seconds before the first respawn in each round. 219 | set scr_war_numlives "0" // Number of lives per player 0 for unlimited. 220 | set scr_war_roundlimit "1" // Rounds per game. 221 | set scr_war_winlimit "1" // amount of wins needed to win a round-based game 222 | set scr_war_promode "0" 223 | 224 | ////////////////////////////////////////////////// 225 | // DOMINATION GAMETYPE SETTINGS // 226 | ////////////////////////////////////////////////// 227 | 228 | set scr_dom_scorelimit "200" // Score limit to win the game. 229 | set scr_dom_timelimit "0" // Duration in minutes for the game to end if the score limit isn't reached. 230 | set scr_dom_playerrespawndelay "0" // How long player will wait until respawn. 231 | set scr_dom_waverespawndelay "0" // Duration is seconds before the first respawn in each round. 232 | set scr_dom_numlives "0" // Number of lives per player per game. 0 is unlimited. 233 | set scr_dom_roundlimit "1" // Rounds per game 234 | set scr_dom_winlimit "1" // amount of wins needed to win a round-based game 235 | set scr_dom_promode "0" 236 | 237 | ////////////////////////////////////////////////// 238 | // DEMOLITION GAMETYPE SETTINGS // 239 | ////////////////////////////////////////////////// 240 | 241 | set scr_dd_scorelimit "1" // Score limit needed to win. 242 | set scr_dd_timelimit "2.5" // Duration in minutes for the game to end if the score limit isn't reached. 243 | set scr_dd_playerrespawndelay "0" // How long player will wait until respawn. 244 | set scr_dd_waverespawndelay "0" // Duration is seconds before the first respawn in each round. 245 | set scr_dd_numlives "0" // Number of lives per player per game. 0 is unlimited. 246 | set scr_dd_roundswitch "1" // Rounds before the teams switch the sides. 247 | set scr_dd_bombtimer "45" // Time the bomb takes to detonate. 248 | set scr_dd_defusetime "5" // Time taken to defuse the bomb. 249 | set scr_dd_planttime "5" // Time it takes to plant a bomb in seconds. 250 | set scr_dd_roundlimit "3" // Rounds the game is limited to, if there are no winners. 251 | set scr_dd_promode "0" 252 | 253 | ////////////////////////////////////////////////// 254 | // SEARCH AND DESTROY GAMETYPE SETTINGS // 255 | ////////////////////////////////////////////////// 256 | 257 | set scr_sd_scorelimit "1" // Score limit required to win the game. 258 | set scr_sd_timelimit "2.5" // Duration in minutes for the game to end if the score limit isn't reached. 259 | set scr_sd_playerrespawndelay "0" // How long player will wait until respawn. 260 | set scr_sd_waverespawndelay "0" // Duration is seconds before the first respawn in each round. 261 | set scr_sd_numlives "1" // Number of lives per player per game. 262 | set scr_sd_roundlimit "0" // Rounds the game is limited to 0 for unlimited. 263 | set scr_sd_winlimit "4" // amount of wins needed to win a round-based game. 264 | set scr_sd_roundswitch "3" // after X rounds, switch sides. 265 | set scr_sd_bombtimer "45" // Time taken for the bomb to detonate. 266 | set scr_sd_defusetime "5" // Time taken to defuse the bomb. 267 | set scr_sd_multibomb "0" // allow multiple people to 'have the bomb'. 268 | set scr_sd_planttime "5" // How long will it take player to 'plant the bomb'. 269 | set scr_sd_promode "0" 270 | 271 | 272 | ////////////////////////////////////////////////// 273 | // SABOTAGE GAMETYPE SETTINGS // 274 | ////////////////////////////////////////////////// 275 | 276 | set scr_sab_scorelimit "0" // Score limit to win the match. 277 | set scr_sab_timelimit "20" // Duration in minutes for the game to end if the score limit isn't reached. 278 | set scr_sab_bombtimer "30" // Duration in seconds the bomb takes to detonate. 279 | set scr_sab_defusetime "5" // Time taken to defuse the bomb. 280 | set scr_sab_hotpotato "0" // One bomb that the teams must fight over. One defending and one have to plant at the site. 281 | set scr_sab_numlives "0" // Number of lives per player per game. 282 | set scr_sab_planttime "2.5" // Time taken to plant the bomb. 283 | set scr_sab_playerrespawndelay "7.5" // Time before respawn. 284 | set scr_sab_roundlimit "1" // Rounds per game. 285 | set scr_sab_roundswitch "1" // Rounds needed to be played before the teams switch sides. 286 | set scr_sab_waverespawndelay "0" // Time delay for first respawn before the game. 287 | set scr_sab_promode "0" 288 | 289 | 290 | ////////////////////////////////////////////////// 291 | // CAPTURE THE FLAG GAMETYPE SETTINGS // 292 | ////////////////////////////////////////////////// 293 | 294 | set scr_ctf_scorelimit "0" // Target score before the round ends. 295 | set scr_ctf_timelimit "10" // Duration in minutes for the game to end if the score limit isn't reached. 296 | set scr_ctf_numlives "0" // Number of lives per player 0 for unlimited. 297 | set scr_ctf_halftime "1" // Half-Time 298 | set scr_ctf_roundlimit "1" // How many rounds match would last. 299 | set scr_ctf_returntime "30" // How many seconds before flag returns to base without nobody touching it. 300 | set scr_ctf_playerrespawndelay "0" // Respawn wait in seconds. 301 | set scr_ctf_waverespawndelay "10" // Time delay for first respawn before the game. 302 | set scr_ctf_promode "0" 303 | 304 | ////////////////////////////////////////////////// 305 | // ONE FLAG GAMETYPE SETTINGS // 306 | ////////////////////////////////////////////////// 307 | 308 | set scr_oneflag_scorelimit "1" // Target score before the round ends. 309 | set scr_oneflag_timelimit "3" // Duration in minutes for the game to end if the score limit isn't reached. 310 | set scr_oneflag_numlives "0" // number of lives per player 0 for unlimited. 311 | set scr_oneflag_playerrespawndelay "0" // Respawn wait in seconds. 312 | set scr_oneflag_roundlimit "1" // How many rounds match would last. 313 | set scr_oneflag_roundswitch "1" // Rounds before the teams switch sides. 314 | set scr_oneflag_waverespawndelay "0" // First respawn delay for each round. 315 | set scr_oneflag_promode "0" 316 | 317 | ////////////////////////////////////////////////// 318 | // HEADQUARTERS GAMETYPE SETTINGS // 319 | ////////////////////////////////////////////////// 320 | 321 | set scr_koth_scorelimit "250" // Score limit to win the game. 322 | set scr_koth_timelimit "15" // Duration in minutes the game will continue if the score isn't reached. 323 | set scr_koth_numlives "0" // Number of lives per game. 0 for unlimited. 324 | set scr_koth_playerrespawndelay "0" // Players respawn wait. 325 | set scr_koth_roundlimit "1" // Rounds to be played. 326 | set scr_koth_roundswitch "1" // Rounds to be played before teams switch sides. 327 | set scr_koth_winlimit "1" // rounds per game 328 | set scr_koth_waverespawndelay "0" // First respawn delay for each round. 329 | set scr_koth_promode "0" 330 | 331 | ////////////////////////////////////////////////// 332 | // ARENA GAMETYPE SETTINGS // 333 | ////////////////////////////////////////////////// 334 | 335 | set scr_arena_scorelimit "1" // Score limit to win the game. 336 | set scr_arena_timelimit "2.5" // Duration in minutes the game will continue if the score isn't reached. 337 | set scr_arena_numlives "1" // Number of lives per game 0 for unlimited. 338 | set scr_arena_roundlimit "0" // Rounds to be played. 339 | set scr_arena_roundswitch "3" // Rounds before the teams switch sides. 340 | set scr_arena_winlimit "4" // rounds per game 341 | set scr_arena_promode "0" 342 | 343 | 344 | ////////////////////////////////////////////////// 345 | // GLOBAL THERMONUCLEAR WAR GAMETYPE SETTINGS // 346 | ////////////////////////////////////////////////// 347 | 348 | set scr_gtnw_scorelimit "101" // Score limit to win the game. 349 | set scr_gtnw_timelimit "10" // Duration in minutes the game will continue if the score isn't reached. 350 | set scr_gtnw_numlives "0" // Number of lives per game 0 for unlimited. 351 | set scr_gtnw_playerrespawndelay "0" // Players respawn wait. 352 | set scr_gtnw_roundlimit "1" // Rounds to be played. 353 | set scr_gtnw_roundswitch "0" // Rounds before the teams switch sides. 354 | set scr_gtnw_winlimit "1" // rounds per game 355 | set scr_gtnw_waverespawndelay "0" // First respawn delay for each round. 356 | set scr_gtnw_promode "0" 357 | 358 | 359 | ////////////////////////////////////////////////// 360 | // MAP ROTATION TIPS // 361 | ////////////////////////////////////////////////// 362 | // // 363 | //Example: sv_maprotation "map mp_bloc map mp_" // 364 | // // 365 | // mp_afghan - Afghan // 366 | // mp_derail - Derail // 367 | // mp_estate - Estate // 368 | // mp_favela - Favela // 369 | // mp_highrise - Highrise // 370 | // mp_invasion - Invasion // 371 | // mp_checkpoint - Karachi // 372 | // mp_quarry - Quarry // 373 | // mp_rundown - Rundown // 374 | // mp_rust - Rust // 375 | // mp_boneyard - Scrapyard // 376 | // mp_nightshift - Skidrow // 377 | // mp_subbase - Sub Base // 378 | // mp_terminal - Terminal // 379 | // mp_underpass - Underpass // 380 | // mp_brecourt - Wasteland // 381 | // // 382 | //// DLC1 STIMULUS /////////////////////////////// 383 | // Make sure you have them all installed on your// 384 | // server. // 385 | // // 386 | // mp_complex - Bailout // 387 | // mp_crash - Crash // 388 | // mp_overgrown - Overgrown // 389 | // mp_compact - Salvage // 390 | // mp_storm - Storm // 391 | // // 392 | //// DLC2 RESURGENCE ///////////////////////////// 393 | // // 394 | // mp_abandon - Carnival // 395 | // mp_fuel2 - Fuel // 396 | // mp_strike - Strike // 397 | // mp_trailerpark - Trailer Park // 398 | // mp_vacant - Vacant // 399 | // // 400 | //// DLC3 NUKETOWN /////////////////////////////// 401 | // // 402 | // mp_nuked - Nuketown // 403 | // // 404 | /// DLC4 CLASSICS 1 ////////////////////////////// 405 | // // 406 | // mp_cross_fire - Crossfire // 407 | // mp_bloc - Bloc // 408 | // mp_cargoship - Cargoship // 409 | // // 410 | /// DLC5 CLASSICS 2 ////////////////////////////// 411 | // // 412 | // mp_killhouse - Killhouse // 413 | // mp_bog_sh - Bog // 414 | // // 415 | /// DLC6 FREIGHTER /////////////////////////////// 416 | // // 417 | // mp_cargoship_sh - Freighter // 418 | // // 419 | /// DLC7 RESURRECTION //////////////////////////// 420 | // // 421 | // mp_shipment_long - Long:Shipment // 422 | // mp_rust_long - Long: Rust // 423 | // mp_firingrange - Firing Range // 424 | // // 425 | /// DLC8 RECYCLED //////////////////////////////// 426 | // // 427 | // mp_storm_spring - Chemical Plant // 428 | // mp_fav_tropical - Tropical: Favela // 429 | // mp_estate_tropical - Tropical: Estate // 430 | // mp_crash_tropical - Tropical: Crash // 431 | // mp_bloc_sh - Forgotten City // 432 | // // 433 | /// SP MAPS to MP //////////////////////////////// 434 | // // 435 | // oilrig - Oilrig // 436 | // iw4_credits - Test map // 437 | // co_hunted - Village // 438 | // // 439 | ////////////////////////////////////////////////// 440 | 441 | /////////////////////////////////////////////////////// 442 | // GAMETYPE ROTATION TIPS // 443 | /////////////////////////////////////////////////////// 444 | // // 445 | // Example: set sv_maprotation // 446 | // "gametype dm map mp_rust gametype war map oilrig" // 447 | // // 448 | // war - Team Deathmatch // 449 | // dm - Free-for-all // 450 | // dom - Domination // 451 | // koth - Headquarters // 452 | // sab - Sabotage // 453 | // sd - Search and Destroy // 454 | // arena - Arena // 455 | // dd - Demolition // 456 | // ctf - Capture the Flag // 457 | // oneflag - One-Flag CTF // 458 | // gtnw - Global Thermo-Nuclear War // 459 | // // 460 | /////////////////////////////////////////////////////// 461 | 462 | // Disable fall damage 463 | set sv_cheats 1 464 | set bg_fallDamageMaxHeight 900001 465 | set bg_fallDamageMinHeight 900000 466 | 467 | set sv_maprotation "map mp_highrise map mp_terminal map mp_rust map mp_nuked" 468 | --------------------------------------------------------------------------------