Ok, map rotations can get a bit complicated, so this file will help you get started creating map rotations for your server.
 
The first thing you have to decide is what type of map rotation you want to use.
There are up to three different types of rotation to choose from and they are each selected using the cvar "ca_mapRotationType".
 
Setting this value to "1" allows you to use a basic map rotation (for people that have never run a server before).
Setting this value to "2" allows you to use the advanced map rotation system.
Setting this value to "0" allows you to use id softwares vstr rotation (default rotation).
 
Below is a tutorial for each of the available rotation systems highlighting how to use them and what cvars are needed for each rotation.
ID softwares vstr system
set d1 "map q3dm1 ; set nextmap vstr d2"
set d2 "map q3dm2 ; set nextmap vstr d3"
set d3 "map q3dm3 ; set nextmap vstr d4"
set d4 "map q3dm4; set nextmap vstr d5"
set d5 "map q3dm5 ; set nextmap vstr d6"
set d6 "map q3dm6 ; set nextmap vstr d7"
set d7 "map q3dm7 ; set nextmap vstr d8"
set d8 "map q3dm8 ; set nextmap vstr d9"
set d9 "map q3dm9 ; set nextmap vstr d10"
set d10 "map q3dm10 ; set nextmap vstr d11"
set d11 "map q3dm11 ; set nextmap vstr d12"
set d12 "map q3dm12 ; set nextmap vstr d13"
set d13 "map q3dm13 ; set nextmap vstr d14"
set d14 "map q3dm14 ; set nextmap vstr d15"
set d15 "map q3dm15 ; set nextmap vstr d16"
set d16 "map q3dm16 ; set nextmap vstr d17"
set d17 "map q3dm17 ; set nextmap vstr d18"
set d18 "map q3dm18 ; set nextmap vstr d19"
set d19 "map q3dm19 ; set nextmap vstr d20"
set d20 "map q3tourney1 ; set nextmap vstr d21"
set d21 "map q3tourney2 ; set nextmap vstr d22"
set d22 "map q3tourney3 ; set nextmap vstr d23"
set d23 "map q3tourney4 ; set nextmap vstr d24"
set d24 "map q3tourney5 ; set nextmap vstr d25"
set d25 "map q3tourney6 ; set nextmap vstr d26"
set d26 "map q3ctf1 ; set nextmap vstr d27"
set d27 "map q3ctf2 ; set nextmap vstr d28"
set d28 "map q3ctf3 ; set nextmap vstr d29"
set d29 "map q3ctf4 ; set nextmap vstr d1"
 
vstr d1
 
This is the systems default map rotation (ca_mapRotationType "0").
As you can see it starts with "d1" and executes all the way to "d29" where it then restarts back to "d1".
 
The line "vstr d1" is used to simply jumpstart the rotation.
Its also worth noting that you should allways use the letter "d", when using this type of rotation, otherwise callvoting for map changes will result the same map reloading over in a loop.
 
There is a pre written rotation named "rotation.cfg" that can be found in the files directory.
Simply add the path to this file at the bottom of your main server file (map_settings.cfg).
 
An example path would be:
exec files/rotation.cfg
Carnage basic system
This rotation system is for people that have never run a server, or for people that want nothing more than to have their maps rotate (ca_mapRotation "1").
 
The map files for this system can be found inside the "maps" folder and are simple txt files.
As you can see there is no need for long script lines, you simply add the name of each map you want to rotate.
 
Now open your map settings file "map_settings.cfg" and you will see two commands named "ca_mapFile" and "ca_startMap".
 
You need to add the name of your map rotation into the ca_mapFile command and the name of the first map in rotation to ca_startMap.
 
Example:
set ca_mapFile "ffa.txt"
set ca_startMap "q3dm1"
 
You also need to jumpstart your rotation, to do this simply add the name of the first map in rotation to the bottom of your map settings file.
Remember, this needs to be the last line in your config!
 
Example:
map q3dm1
q3dm1
q3dm2
q3dm3
q3dm4
q3dm5
q3dm6
q3dm7
q3dm8
q3dm9
q3dm10
q3dm11
q3dm12
q3dm13
q3dm14
q3dm15
q3dm16
q3dm17
q3dm18
q3dm19
q3tourney1
q3tourney2
q3tourney3
q3tourney4
q3tourney5
q3tourney6
q3ctf1
q3ctf2
q3ctf3
q3ctf4
Carnage advanced system      (ca_mapRotationType "2")
Before using this, you need to understand the following:
If you run multiple servers on the same machine, do *NOT* use the same filename for each rotation config file.  Carnage saves state information in advancedStateFile.cfg, so you could create
any ugly situation if both servers try to read/write that file at the same time.
 
This is the Carnage advanced format for map rotations.  To use it, you first need to learn about "templates".
 
Templates are used to hold custom server values that can be executed when a specific map is loaded, (you can see an example template on your left).
Below is an description of each template flag.
 
define = the name of your template.
 
disabled = don't use this definition in the normal rotation.
                This lets you define a map that can be voted in, but isn't part of the normal rotation.
 
notvoteable = don't allow players to vote this map into play.
 
minplayers = minimum number of players that must be connected before the server or a
                    callvote nextmap will choose this definition to be played.
 
maxplayers = maximum number of players that can be connected for the server or a callvote
                     nextmap will choose this definition to be played.
 
exec = Execute this file before the map is loaded.
 
execifvoted = If set to 1, then a 'callvote map mapname' will not only load the map, but will
                    also execute any 'exec' settings for that map.
                    Normally A 'callvote map mapname' would load the map with the active settings
                    in place, ignoring your 'exec' line (if any).
 
Now remember, template flags MUST be placed inside an open brace "{" and a closed brace "}", otherwise your template will not load.
 
Dont forget you can add more than one single template, just put each one at the top of your rotation file.
 
 
 
 
 
 
 
 
 
 
 
Example Template:
{
define          promode               
notvoteable     0                       
disabled        0                       
minplayers      0                       
maxplayers      0                       
exec            "modes/promode.cfg"       
execifvoted     0                       
}
 
Example Rotation:
{
map             q3dm1
template            promode
}
{
map             q3dm2
template            rocketarena
}
{
map             q3dm3
template            shottie
}
{
map             q3dm4
template            superball
}
{
map             q3tourney1
template            zappy
}
{
map             q3dm5
template            excessive
}
{
map             q3dm6
template            instagib
}
{
map             q3tourney2
}
{
map             q3dm7
}
{
map             q3dm8
}
{
map             q3dm9
}
{
map             q3tourney3
}
{
map             q3dm10
}
{
map             q3dm11
}
{
map             q3dm12
}
{
map             q3dm13
}
{
map             q3tourney4
}
{
map             q3dm14
}
{
map             q3dm15
}
{
map             q3dm16
}
{
map             q3dm17
}
{
map             q3tourney5
}
{
map             q3dm18
}
{
map             q3dm19
}
{
map             q3tourney6
}
 
Next on to the rotation, agian each rotation flag must be between an open and closed brace.
These are quick description of the rotation flags:
 
map = map name to load.
 
template = template to load (if any).
 
id =  Any string/digit that you want to use to uniquely identify the current stanza.  If you have
        the same map defined multiple times with different settings,
        you can use 'ca_map_id your_id_here' to load that map. 
        Otherwise when you use 'ca_map', the first mapname found will be loaded.
 
You can see an example of how the map rotation works on the left, i also included template flag to show how templates are added into the rotation, id flags work in the same manner as thetemplate flag, but with a stanza number.
 
There are also some cvars that work in conjuction with the map rotation, these can be found in your map settings file (map_settings.cfg)
 
Below is a description of each cvar:
 
ca_mapRotationFile = name & location of your rotation file.
 
ca_mapRotationStateFile = name & location of your map rotations state file.
 
ca_mapRotationAdvancedType =  sequential or random map rotation.
 
ca_mapRotationVotePreserve = preserves for sequential rotation.
 
ca_mapRotationSpacing = if a random rotation method, then this many maps must pass by
                                       before a map will be picked again.
                                       This prevents the server from picking a recently-played
                                       map too soon.
 
ca_mapRotationAutoLoad = autoload maps instead of using map rotation file.
 
ca_mapRotationGametypeMask = What type of maps to load - gametype.
 
 
 
You also need to jumpstart your rotation, to do this simply add the name of the first map in rotation to the bottom of your map settings file.
Remember, this needs to be the last line in your map settings config!
 
Example:
map q3dm1
****************************************************************************************************************************
                                                                                                     Map Rotation Help
****************************************************************************************************************************
 
****************************************************************************************************************************
****************************************************************************************************************************
 
****************************************************************************************************************************
****************************************************************************************************************************
 
****************************************************************************************************************************
****************************************************************************************************************************
 
****************************************************************************************************************************
****************************************************************************************************************************