# Is there step by step tutorial on how to add custom maps to a server

**URL:** <https://cod4x.ovh/t/is-there-step-by-step-tutorial-on-how-to-add-custom-maps-to-a-server/2096>\
**Category:** CoD4x | Custom Maps\
**Created:** [April 13, 2023, 8:49pm UTC](https://cod4x.ovh/t/is-there-step-by-step-tutorial-on-how-to-add-custom-maps-to-a-server/2096 "2023-04-13T20:49:21Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ofaw](https://cod4x.ovh/user_avatar/cod4x.ovh/ofaw/32/916_2.png) [@Ofaw](https://cod4x.ovh/u/Ofaw)\
**Post date:** [April 13, 2023, 8:49pm UTC](https://cod4x.ovh/t/is-there-step-by-step-tutorial-on-how-to-add-custom-maps-to-a-server/2096/1 "2023-04-13T20:49:21Z")

</div>

i know i have to put the custom maps in the folder usermaps, but how do i get the maps to load in the map rotation? i cant seem to find a noob method on how to do this? can someone please help or point me in the right direction, much appreciated in advance  
 ![Snag_b20b1a](https://cod4x.ovh/uploads/default/original/1X/96f0966d92479d5f014078360a5d2582ad70a300.png)

---

<div class="post-metadata">

**Author:** ![AlexC](https://cod4x.ovh/user_avatar/cod4x.ovh/alexc/32/4_2.png) [@AlexC](https://cod4x.ovh/u/AlexC)\
**Post date:** [April 14, 2023, 6:23am UTC](https://cod4x.ovh/t/is-there-step-by-step-tutorial-on-how-to-add-custom-maps-to-a-server/2096/2 "2023-04-14T06:23:04Z")

</div>

In your server.cfg put:

```auto
set sv_maprotation "map mp_as_tundra map mp_bazaar etc..."

```

Than in your server startup script stick this in the end:

```auto
+map_rotate

```

That should do it.

---

<div class="post-metadata">

**Author:** ![Ofaw](https://cod4x.ovh/user_avatar/cod4x.ovh/ofaw/32/916_2.png) [@Ofaw](https://cod4x.ovh/u/Ofaw)\
**Post date:** [April 14, 2023, 8:10am UTC](https://cod4x.ovh/t/is-there-step-by-step-tutorial-on-how-to-add-custom-maps-to-a-server/2096/3 "2023-04-14T08:10:04Z")

</div>

Thanks for your relpy  
this is my config

//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
// Call of Duty 4 Server Configuration File

//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
// Color Codes  
//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
// Colors for text. Do not clear the comment in front of the color codes.  
// Useful for your server name, motd msg’s - Information and ref use only  
//  
// ^1 = Red  
// ^2 = Green  
// ^3 = Yellow  
// ^4 = Blue  
// ^5 = Cyan  
// ^6 = pink/Magenta  
// ^7 = White  
// ^0 = Black

//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
// Public Information  
//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
sets sv\_hostname “^2TEST”  
sets \_Admin “TEST”  
sets \_Email “”  
sets \_Website “”  
sets \_Location “London”  
sets \_Irc “”  
set scr\_motd “”

//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
// Common Server Settings  
//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
// Log Settings  
set g\_logsync “2” // 0=no log, 1=buffered, 2=continuous, 3=append  
set logfile “1” // 0 = NO log, 1 = log file enabled  
set g\_log “games\_mp.log” // Name of log file, default is games\_mp.log  
set sv\_log\_damage “1”

// Master servers  
set sv\_master1 “[cod2master.activision.com](http://cod2master.activision.com)”  
set sv\_master2 “[cod2authorize.activision.com](http://cod2authorize.activision.com)”  
set sv\_master3 “[cod2master.infinityward.com](http://cod2master.infinityward.com)”  
set sv\_master3 “[cod2update.activision.com](http://cod2update.activision.com)”  
set sv\_master4 “[master.gamespy.com:28960](http://master.gamespy.com:28960)”  
set sv\_master5 “[master0.gamespy.com](http://master0.gamespy.com)”  
set sv\_master6 “[master1.gamespy.com](http://master1.gamespy.com)”  
set sv\_master7 “[clanservers.net](http://clanservers.net)”  
set sv\_gamespy “1”

// Password Settings  
set rcon\_password “” // RCON must supply pw to use  
set sv\_privatePassword “” // Private slots, non-public slots

// The following can be used to lock out the server so that only those  
// players that have been provide the password can connect. Good for  
// matches, practices, etc.  
set g\_password “”

// Player slots setup  
set sv\_privateclients “” // Number of private player slots, maxclients - privateclients = public slots

// Ping  
set sv\_minPing “0” // MIN player ping on CONNECT, any lower and player isnt allowed to connect  
set sv\_maxping “900” // MAX player ping on CONNECT, any higher and player isnt allowed to connect

// Client Download Settings. (0=off/1=on) Used for MODs and custom maps  
// See included Quick Setup Guide for instructions.  
set sv\_allowDownload “1” // allow clients to download gamefiles  
set sv\_wwwDownload “1” // enable download redirection  
set sv\_wwwBaseURL “[404 - File Not Found](http://fdl-01.b-cdn.net/services/35532/)” // defines url to download from  
set sv\_wwwDlDisconnected “0” // disconnect clients while downloading

// Rate  
set sv\_maxRate “5000”

// FPS  
//set sv\_fps “20”

// Drop inactive players  
set sv\_timeout “300”  
set sv\_zombietime “1”  
set g\_inactivity “0”  
set g\_inactivityspectator “0”

// AntiFlooding Settings  
set sv\_floodProtect “1”  
set sv\_reconnectlimit “3”

// Anti Cheat Settings  
set sv\_disableClientConsole “0”  
set cl\_autocmd “0”  
set sv\_cheats “0”  
set sv\_pure “1”  
set g\_banIPs “”  
set g\_no\_script\_spam “1”  
set sv\_punkbuster “1”

// Temporary Ban duration, in seconds  
set sv\_kickBanTime “3600”

// In-game voice communication system  
set sv\_voice “1”  
set sv\_voiceQuality “1”  
set voice\_deadChat “0”  
set voice\_global “0”  
set voice\_localEcho “0”  
set winvoice\_mic\_mute “1”

//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
// Misc  
//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
set sv\_allowAnonymous “0”  
set g\_antilag “0”  
set g\_compassShowEnemies “0”

//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
// GAME TYPE SETTINGS  
//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
// DEATHMATCH  
//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
set scr\_dm\_scorelimit 150  
set scr\_dm\_timelimit 10  
set scr\_dm\_roundlimit 1  
set scr\_dm\_numlives 0  
set scr\_dm\_playerrespawndelay 0  
set scr\_dm\_waverespawndelay 0

//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
// DOMINATION  
//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
set scr\_dom\_scorelimit 200  
set scr\_dom\_timelimit 0  
set scr\_dom\_roundlimit 1  
set scr\_dom\_numlives 0  
set scr\_dom\_playerrespawndelay 0  
set scr\_dom\_waverespawndelay 0

//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
// TEAM DEATHMATCH  
//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
set scr\_war\_scorelimit 750  
set scr\_war\_timelimit 10  
set scr\_war\_roundlimit 1  
set scr\_war\_numlives 0  
set scr\_war\_playerrespawndelay 0  
set scr\_war\_waverespawndelay 0

//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
// SABOTAGE  
//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
set scr\_sab\_scorelimit 1  
set scr\_sab\_timelimit 20  
set scr\_sab\_roundlimit 0  
set scr\_sab\_roundswitch 1  
set scr\_sab\_numlives 0  
set scr\_sab\_bombtimer 30  
set scr\_sab\_planttime 2.5  
set scr\_sab\_defusetime 5  
set scr\_sab\_hotpotato 0  
set scr\_sab\_playerrespawndelay 7.5  
set scr\_sab\_waverespawndelay 0

//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
// SEARCH AND DESTROY CLASSIC  
//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
set scr\_sd\_scorelimit 4  
set scr\_sd\_timelimit 2.5  
set scr\_sd\_roundlimit 0  
set scr\_sd\_roundswitch 3 // rounds between switching teams  
set scr\_sd\_numlives 1 // elimination  
set scr\_sd\_bombtimer 45  
set scr\_sd\_planttime 5  
set scr\_sd\_defusetime 5  
set scr\_sd\_multibomb 0  
set scr\_sd\_playerrespawndelay 0  
set scr\_sd\_waverespawndelay 0

//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
// CAPTURE THE FLAG – NOT INCLUDED IN COD4  
//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
//set scr\_ctf\_scorelimit 10  
//set scr\_ctf\_timelimit 5  
//set scr\_ctf\_roundlimit 2  
//set scr\_ctf\_roundswitch 1  
//set scr\_ctf\_numlives 0  
//set scr\_ctf\_playerrespawndelay 0  
//set scr\_ctf\_waverespawndelay 15

//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
// KING OF THE HILL  
//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
set scr\_koth\_scorelimit 250  
set scr\_koth\_timelimit 15  
set scr\_koth\_roundlimit 1  
set scr\_koth\_roundswitch 1  
set scr\_koth\_numlives 0  
set scr\_koth\_playerrespawndelay 0  
set scr\_koth\_waverespawndelay 0  
set koth\_autodestroytime 60  
set koth\_spawntime 0  
set koth\_kothmode 0  
set koth\_capturetime 20  
set koth\_destroytime 10  
set koth\_delayPlayer 0  
set koth\_spawnDelay 60

//\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
// First gametype to load  
// “dm” - free for all deathmatch  
// “dom” - domination  
// “koth” - headquarters  
// “sab” - sabotage  
// “sd” - search & destroy  
// “war” - team deathmatch

set sv\_mapRotation "gametype sd map mp\_as\_tundra gametype sd map mp\_bazaar gametype sd map mp\_breakout gametype sd map mp\_brecourt gametype sd map mp\_convoy +map\_rotate

when i restart server i get this

 ![Snag_dc3375](https://cod4x.ovh/uploads/default/original/1X/6e9599066febae275ed8454a6d922c3a573c1c9c.png)

i know i have done something wrong?

---

<div class="post-metadata">

**Author:** ![STEEP](https://cod4x.ovh/letter_avatar_proxy/v4/letter/s/e19b73/32.png) [@STEEP](https://cod4x.ovh/u/STEEP)\
**Post date:** [April 14, 2023, 9:32am UTC](https://cod4x.ovh/t/is-there-step-by-step-tutorial-on-how-to-add-custom-maps-to-a-server/2096/4 "2023-04-14T09:32:22Z")

</div>

Lan server?

exec server.cfg in console

---

<div class="post-metadata">

**Author:** ![AlexC](https://cod4x.ovh/user_avatar/cod4x.ovh/alexc/32/4_2.png) [@AlexC](https://cod4x.ovh/u/AlexC)\
**Post date:** [April 14, 2023, 11:11am UTC](https://cod4x.ovh/t/is-there-step-by-step-tutorial-on-how-to-add-custom-maps-to-a-server/2096/5 "2023-04-14T11:11:37Z")

</div>

And you misunderstood what I said, what you have now is wrong in your config.

```auto
set sv_mapRotation "gametype sd map mp_as_tundra gametype sd map mp_bazaar gametype sd map mp_breakout gametype sd map mp_brecourt gametype sd map mp_convoy +map_rotate

```

That is wrong

The `+map_rotate` is needed in your startup command, not in your server.cfg  
And close your bracket as well, like this:

```auto
set sv_mapRotation "gametype sd map mp_as_tundra gametype sd map mp_bazaar gametype sd map mp_breakout gametype sd map mp_brecourt gametype sd map mp_convoy"

```

---

<div class="post-metadata">

**Author:** ![Ofaw](https://cod4x.ovh/user_avatar/cod4x.ovh/ofaw/32/916_2.png) [@Ofaw](https://cod4x.ovh/u/Ofaw)\
**Post date:** [April 14, 2023, 12:08pm UTC](https://cod4x.ovh/t/is-there-step-by-step-tutorial-on-how-to-add-custom-maps-to-a-server/2096/6 "2023-04-14T12:08:00Z")

</div>

thanks for the correction, can you please give a example of start up command, thank you

---

<div class="post-metadata">

**Author:** ![geplaza](https://cod4x.ovh/user_avatar/cod4x.ovh/geplaza/32/905_2.png) [@geplaza](https://cod4x.ovh/u/geplaza)\
**Post date:** [April 14, 2023, 10:33pm UTC](https://cod4x.ovh/t/is-there-step-by-step-tutorial-on-how-to-add-custom-maps-to-a-server/2096/7 "2023-04-14T22:33:21Z")

</div>

+set fs\_savepath C:\TCAFiles\Users\FNX3755\4042\ +set fs\_localAppData C:\TCAFiles\Users\FNX3755\4042\ +set dedicated 2 +set net\_ip 172.93.110.222 +set net\_port 28961 +set sv\_maxclients 14 +exec server\_config.cfg +set developer “0” +set rcon\_password “” +set ui\_maxclients 64 +set sv\_punkbuster “0” +set net\_port6 4042 +map\_rotate
