This guide will cover the installation and operation of a\u00a0Call of Duty 4 (COD4)<\/strong>\u00a0server using screen. In this tutorial, we will install COD4 on Debian 7.<\/p>\n Login as root on the server that you will be using for this installation.<\/p>\n Run the command below to update your server’s list of available packages from the repositories and then upgrade any existing packages.<\/p>\n Screen is often times included with the OS image by default, but you may be required to install it yourself.<\/p>\n Because the Call of Duty 4 server only runs on i386 machines, you have to enable the “multilib” feature in Debian.<\/p>\n For security purposes, we do not want to run the server using the root account. You should use a standard user account.<\/p>\n Create a directory for the game server.<\/p>\n Download the Call of Duty 4 dedicated server.<\/p>\n The download size is roughly 280 MB. When the download finishes, unpack the package.<\/p>\n Install the COD4 game client onto your computer. Copy the\u00a0 Once your upload completes, download the IceOps made executable. It contains various bugfixes and improvements.<\/p>\n Make the server “executable”.<\/p>\n Create a config file for the dedicated server.<\/p>\n If you want to run a simple “Team Deathmatch” or “Search & Destroy” server, then use this sample config.<\/p>\n Save your changes to the config file.<\/p>\n Next, create a start-up script that starts a dedicated server (with screen) and enables map rotation.<\/p>\n Paste the following content into the script file.<\/p>\n Save your changes to the script file, then make it “executable”.<\/p>\n If you are using the iptables firewall, add the following rules. Update the ports if you have changed them in the server configuration file.<\/p>\n Finally, start your server.<\/p>\nRequirements<\/strong><\/h3>\n
\n
Installation<\/strong><\/h3>\n
apt-get update && apt-get upgrade\r\n<\/code><\/pre>\n
apt-get install screen\r\n<\/code><\/pre>\n
dpkg --add-architecture i386\r\napt-get update\r\n<\/code><\/pre>\n
cd ~\r\nmkdir cod4\r\n<\/code><\/pre>\n
cd cod4\r\nwget http:\/\/treefort.icculus.org\/cod\/cod4-linux-server-06282008.tar.bz2\r\n<\/code><\/pre>\n
tar -xvjf cod4-linux-server-06282008.tar.bz2\r\n<\/code><\/pre>\n
main<\/code>\u00a0and\u00a0
zone<\/code>\u00a0folder of the game client onto the COD4 directory of your server using your favorite SCP client.<\/p>\n
wget https:\/\/iceops.in\/cod4x17a_dedrun\r\n<\/code><\/pre>\n
chmod +x cod4x17a_dedrun\r\n<\/code><\/pre>\n
nano general.cfg\r\n<\/code><\/pre>\n
\/\/************************************************** ****************************\r\n\/\/ Call of Duty 4\r\n\/\/************************************************** ****************************\r\n\/\/************************************************** ****************************\r\n\/\/ Public Information\r\n\/\/************************************************** ****************************\r\nsets sv_hostname \"CoD4 Server\" \/\/ Change this field, what is the server name\r\nsets _Admin \"Admin\" \/\/ Change this\r\nsets _Email \"admin@admin.com\" \/\/ Change this\r\nsets _Website \"www.website.com\" \/\/ Change this\r\nsets _Location \"Location\" \/\/ Change this\r\nsets _Irc \"\"\r\nsets _Mod \"\"\r\nsets _ModVer \"\"\r\nsets _ModUpdate \"\"\r\nsets _Maps \"COD4 Stock\"\r\nset scr_motd \"Message of the Day when the gamer joined the server\" \/\/ Change it\r\n\r\n\/\/************************************************** ****************************\r\n\/\/ Common Server Settings\r\n\/\/************************************************** ****************************\r\n\/\/ Log Settings\r\nset g_logsync \"2\" \/\/ 0=no log, 1=buffered, 2=continuous, 3=append\r\nset logfile \"1\" \/\/ 0 = NO log, 1 = log file enabled\r\nset g_log \"games_mp.log\" \/\/ Name of log file, default is games_mp.log\r\nset sv_log_damage \"1\"\r\n\r\n\/\/ Network options\r\nset net_ip \"192.168.1.1\" \/\/ Set your servers IP address\r\nset net_port \"28960\" \/\/ Set your port number\r\nset com_hunkMegs \"512\"\r\nset net_noipx \"1\" \/\/ Allow ONLY tcp\/ip protocol, player\/server communications\r\n\r\n\/\/ Server Network Mode\r\nset dedicated \"2\" \/\/ 0 = Listen, 1 = LAN, 2 = Internet\r\n\r\n\/\/ Password Settings\r\nset rcon_password \"yourpass\" \/\/ RCON must be set.\r\nset sv_privatePassword \"\" \/\/ Private slots, non-public slots\r\n\r\n\/\/ The following can be used to lock out the server so that only those\r\n\/\/ players that have been provide the password can connect. Good for\r\n\/\/ matches, practices, etc.\r\nset g_password \"\"\r\n\r\n\/\/ Player slots setup\r\nset sv_maxclients \"32\" \/\/ MAX server player slots, this is TOTAL player slots\r\nset sv_privateclients \"\" \/\/ Number of private player slots, maxclients - privateclients = public slots\r\n\r\n\/\/ Ping\r\nset sv_minPing \"0\" \/\/ MIN player ping on CONNECT, any lower and player isnt allowed to connect\r\nset sv_maxping \"250\" \/\/ MAX player ping on CONNECT, any higher and player isnt allowed to connect\r\n\r\n\/\/ Client Download Settings. (0=off\/1=on) Used for MODs and custom maps\r\n\/\/ You have to got a working httpd server if fast downloading enabled.\r\nset sv_allowdownload \"0\"\r\nseta sv_wwwDownload \"0\"\r\nseta sv_wwwBaseURL \"\"\r\nseta sv_wwwDlDisconnected \"1\"\r\n\r\n\/\/ Rate\r\nset sv_maxRate \"25000\"\r\n\r\n\r\n\/\/ Drop inactive players\r\nset sv_timeout \"300\"\r\nset sv_zombietime \"1\"\r\nset g_inactivity \"0\"\r\nset g_inactivityspectator \"0\"\r\n\r\n\/\/ AntiFlooding Settings\r\nset sv_floodProtect \"1\"\r\nset sv_reconnectlimit \"3\"\r\n\r\n\/\/ Anti Cheat Settings\r\n\/\/ In IceOps Dedicated server have their own cheat protection, so Punkbuster not needed\r\nset sv_punkbuster \"0\"\r\nset sv_disableClientConsole \"0\"\r\nset cl_autocmd \"0\"\r\nset sv_cheats \"0\"\r\nset sv_pure \"1\"\r\nset g_banIPs \"\"\r\nset g_no_script_spam \"1\"\r\n\r\n\/\/ Temporary Ban duration, in seconds\r\nset sv_kickBanTime \"3600\"\r\n\r\n\/\/ In-game voice communication system\r\nset sv_voice \"0\"\r\nset sv_voiceQuality \"4\"\r\nset voice_deadChat \"0\"\r\nset voice_global \"0\"\r\nset voice_localEcho \"0\"\r\nset winvoice_mic_mute \"1\"\r\n\r\n\/\/************************************************** ****************************\r\n\/\/ Misc\r\n\/\/************************************************** ****************************\r\nset sv_allowAnonymous \"0\"\r\nset g_antilag \"0\"\r\nset g_compassShowEnemies \"0\"\r\nset scr_hardcore \"1\"\r\nset g_allowvote \"0\"\r\nset scr_allow_vote \"0\"\r\nset scr_teambalance \"1\"\r\nset ui_hud_hardcore \"1\"\r\nset scr_game_allowkillcam \"0\"\r\nset scr_game_onlyheadshots \"0\"\r\nset scr_game_deathpointloss \"0\"\r\nset scr_game_suicidepointloss \"0\"\r\nset scr_team_teamkillpointloss \"1\"\r\nset scr_game_spectatetype \"1\" \/\/ [0-2] 0=none, 1= team only, 2=spectate all\r\nset scr_team_fftype \"1\" \/\/ 0=off 1=on 2=reflect damage 3=shared\r\n\r\n\r\n\/\/================================================== ===============================\r\n\/\/ Gametype Settings\r\n\/\/================================================== ===============================\r\n\r\n\/\/ First gametype to load\r\n\/\/ \"dm\" - free for all deathmatch\r\n\/\/ \"dom\" - domination\r\n\/\/ \"koth\" - headquarters\r\n\/\/ \"sab\" - sabotage\r\n\/\/ \"sd\" - search & destroy\r\n\/\/ \"war\" - team deathmatch\r\n\r\n\/\/ Deathmatch\r\nset scr_dm_scorelimit 150\r\nset scr_dm_timelimit 10\r\nset scr_dm_roundlimit 1\r\nset scr_dm_numlives 0\r\nset scr_dm_playerrespawndelay -1\r\nset scr_dm_waverespawndelay 0\r\n\r\n\r\n\/\/ Domination\r\nset scr_dom_scorelimit 200\r\nset scr_dom_timelimit 0\r\nset scr_dom_roundlimit 1\r\nset scr_dom_numlives 0\r\nset scr_dom_playerrespawndelay -1\r\nset scr_dom_waverespawndelay 0\r\n\r\n\r\n\/\/ Teamdeath Match\r\nset scr_war_scorelimit 750\r\nset scr_war_timelimit 10\r\nset scr_war_roundlimit 1\r\nset scr_war_numlives 0\r\nset scr_war_playerrespawndelay -1\r\nset scr_war_waverespawndelay 0\r\n\r\n\/\/ Sabotoge\r\nset scr_sab_scorelimit 3\r\nset scr_sab_timelimit 10\r\nset scr_sab_roundlimit 3\r\nset scr_sab_roundswitch 1\r\nset scr_sab_numlives 0\r\nset scr_sab_bombtimer 30\r\nset scr_sab_planttime 3\r\nset scr_sab_defusetime 3\r\nset scr_sab_hotpotato 0\r\nset scr_sab_playerrespawndelay -1\r\nset scr_sab_waverespawndelay -1\r\n\r\n\/\/ King of the Hill\r\nset scr_koth_scorelimit 250\r\nset scr_koth_timelimit 15\r\nset scr_koth_roundlimit 1\r\nset scr_koth_roundswitch 1\r\nset scr_koth_numlives 0\r\nset scr_koth_playerrespawndelay -1\r\nset scr_koth_waverespawndelay 0\r\nset koth_autodestroytime 60\r\nset koth_spawntime 0\r\nset koth_kothmode 0\r\nset koth_capturetime 20\r\nset koth_destroytime 10\r\nset koth_delayPlayer 0\r\nset koth_spawnDelay 60\r\n\r\n\/\/ Search and Destroy\r\nset scr_sd_scorelimit 6\r\nset scr_sd_timelimit 3\r\nset scr_sd_roundlimit 0\r\nset scr_sd_roundswitch 3 \/\/ rounds between switching teams\r\nset scr_sd_numlives 1 \/\/ elimination\r\nset scr_sd_bombtimer 60\r\nset scr_sd_planttime 7\r\nset scr_sd_defusetime 7\r\nset scr_sd_multibomb 0\r\nset scr_sd_playerrespawndelay -1\r\nset scr_sd_waverespawndelay 0\r\n\r\n\/\/ Team-Balance and Voting\r\nset scr_teambalance \"1\"\r\nset g_allowvote \"0\"\r\n\r\nset sv_mapRotation \"gametype sd map mp_bloc gametype sd map mp_backlot gametype sd map mp_crash gametype sd map mp_convoy gametype sd map mp_vacant gametype sd map mp_bog gametype sd map mp_pipeline gametype sd map mp_farm gametype sd map mp_crossfire gametype sd map mp_overgrown gametype sd map mp_citystreets gametype sd map mp_showdown gametype sd map mp_strike gametype sd map mp_cargoship gametype sd map mp_countdown\"\r\n<\/code><\/pre>\n
nano cod4.sh\r\n<\/code><\/pre>\n
#!\/bin\/bash\r\nscreen -dmS cod4 .\/cod4x17a_dedrun +set sv_authorizemode \"-1\" +exex general.cfg +map_rotate\r\n<\/code><\/pre>\n
chmod +x cod4.sh\r\n<\/code><\/pre>\n
-A INPUT -p udp --dport 28960 -j ACCEPT\r\n-A INPUT -p udp --sport 28960 -j ACCEPT\r\n-A INPUT -p tcp --dport 28960 -j ACCEPT\r\n-A INPUT -p tcp --sport 28960 -j ACCEPT\r\n-A INPUT -p udp --dport 20800 -j ACCEPT\r\n-A INPUT -p udp --sport 20800 -j ACCEPT\r\n-A INPUT -p tcp --dport 20800 -j ACCEPT\r\n-A INPUT -p tcp --sport 20800 -j ACCEPT\r\n-A INPUT -p udp --dport 20810 -j ACCEPT\r\n-A INPUT -p udp --sport 20810 -j ACCEPT\r\n-A INPUT -p tcp --dport 20810 -j ACCEPT\r\n-A INPUT -p tcp --sport 20810 -j ACCEPT\r\n<\/code><\/pre>\n
.\/cod4.sh<\/code><\/pre>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","manualknowledgebasecat":[105,233],"manual_kb_tag":[216],"_links":{"self":[{"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manual_kb\/2323"}],"collection":[{"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manual_kb"}],"about":[{"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/types\/manual_kb"}],"author":[{"embeddable":true,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/comments?post=2323"}],"version-history":[{"count":1,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manual_kb\/2323\/revisions"}],"predecessor-version":[{"id":2324,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manual_kb\/2323\/revisions\/2324"}],"wp:attachment":[{"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/media?parent=2323"}],"wp:term":[{"taxonomy":"manualknowledgebasecat","embeddable":true,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manualknowledgebasecat?post=2323"},{"taxonomy":"manual_kb_tag","embeddable":true,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manual_kb_tag?post=2323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}