Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794
{"id":2323,"date":"2019-11-26T07:55:40","date_gmt":"2019-11-26T07:55:40","guid":{"rendered":"https:\/\/support.aklwebhost.com\/?post_type=manual_kb&p=2323"},"modified":"2019-12-05T00:54:58","modified_gmt":"2019-12-05T00:54:58","slug":"setup-a-call-of-duty-4-server-on-debian-7-x64","status":"publish","type":"manual_kb","link":"https:\/\/support.aklwebhost.com\/knowledgebase\/setup-a-call-of-duty-4-server-on-debian-7-x64\/","title":{"rendered":"Setup a Call of Duty 4 Server on Debian 7 x64"},"content":{"rendered":"

Overview<\/strong><\/h3>\n

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

Requirements<\/strong><\/h3>\n
    \n
  • Call of Duty 4<\/strong>\u00a0game client installer CD or image.<\/li>\n
  • Debian server running a stable release (Wheezy, Jessie)<\/li>\n
  • Aklwebhost VPS (1 CPU, 1GB Memory, 20GB Storage)<\/strong>\u00a0as a minimum. This configuration may not be suitable for large servers.<\/li>\n<\/ul>\n

    Installation<\/strong><\/h3>\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

    apt-get update && apt-get upgrade\r\n<\/code><\/pre>\n

    Screen is often times included with the OS image by default, but you may be required to install it yourself.<\/p>\n

    apt-get install screen\r\n<\/code><\/pre>\n

    Because the Call of Duty 4 server only runs on i386 machines, you have to enable the “multilib” feature in Debian.<\/p>\n

    dpkg --add-architecture i386\r\napt-get update\r\n<\/code><\/pre>\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

    cd ~\r\nmkdir cod4\r\n<\/code><\/pre>\n

    Download the Call of Duty 4 dedicated server.<\/p>\n

    cd cod4\r\nwget http:\/\/treefort.icculus.org\/cod\/cod4-linux-server-06282008.tar.bz2\r\n<\/code><\/pre>\n

    The download size is roughly 280 MB. When the download finishes, unpack the package.<\/p>\n

    tar -xvjf cod4-linux-server-06282008.tar.bz2\r\n<\/code><\/pre>\n

    Install the COD4 game client onto your computer. Copy the\u00a0main<\/code>\u00a0and\u00a0zone<\/code>\u00a0folder of the game client onto the COD4 directory of your server using your favorite SCP client.<\/p>\n

    Once your upload completes, download the IceOps made executable. It contains various bugfixes and improvements.<\/p>\n

    wget https:\/\/iceops.in\/cod4x17a_dedrun\r\n<\/code><\/pre>\n

    Make the server “executable”.<\/p>\n

    chmod +x cod4x17a_dedrun\r\n<\/code><\/pre>\n

    Create a config file for the dedicated server.<\/p>\n

    nano general.cfg\r\n<\/code><\/pre>\n

    If you want to run a simple “Team Deathmatch” or “Search & Destroy” server, then use this sample config.<\/p>\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

    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

    nano cod4.sh\r\n<\/code><\/pre>\n

    Paste the following content into the script file.<\/p>\n

    #!\/bin\/bash\r\nscreen -dmS cod4 .\/cod4x17a_dedrun +set sv_authorizemode \"-1\" +exex general.cfg +map_rotate\r\n<\/code><\/pre>\n

    Save your changes to the script file, then make it “executable”.<\/p>\n

    chmod +x cod4.sh\r\n<\/code><\/pre>\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

    -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

    Finally, start your server.<\/p>\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}]}}