This guide outlines the changes to the map rotation and voting system in game Update [9.15.21].
Quick Summary
New map lists and button options will offer more variety of voted maps while keeping favored maps available, improving the map rotation. We are adding more customization power into the hands of server admins.
Server admins can customize the following data by modifying AAGame > Config > AAGame.ini, under [AAGame.AADataStore_OnlineGameSearch]
Map Lists
MapRotationList
The standard rotational list of maps. By default, map voting will pick out of this list from top to bottom.
MapVarietyList
An additional collection of maps that can optionally be picked from at random.
MapVoteList
A master list of all the maps available on a server, in alphabetical order.
Map Vote Buttons
Each of the three map vote buttons visible in the After Action Report (AAR) have vote options assigned that determine how map vote candidates are selected. By assigning a Vote Type to each button (ButtonOneVoteType, ButtonTwoVoteType and ButtonThreeVoteType), server admins can tune map rotations to their liking.
Vote Types
To better explain how these vote options work, an example map list is displayed below (Note that map names such as ‘BDX_Reaction_EX’ and ‘FLO_Watchdog_C4’ have been stripped down for clarity).
MapRotationList | MapVarietyList | MapVoteList |
Reaction | Springstreet | Reaction |
Hydra | BridgeNight | Hydra |
Watchdog | Uptown | Watchdog |
InnerHospital | ColdFront | InnerHospital |
Springstreet | ||
BridgeNight | ||
BridgeNight | ||
Coldfront |
This chart documents the VoteType name that can be assigned to a button, a description of how it chooses a map, and an example of what will happen if a vote using that button type wins.
VoteType | Description | Example |
MVOTE_Replay | Just like normal, this button will vote to replay the last map. | If we just played Reaction, we’ll play Reaction again. |
MVOTE_Next | Map vote will be the next map in the Rotation List. | If we just played Reaction, we’ll play Hydra next. |
MVOTE_NextPlusOne | Map vote will be based on the “Next” result, plus one space down in the map list. | If we just played Reaction, we’ll play Watchdog next. |
MVOTE_NextPlusTwo | Map vote will be based on the “Next” result, plus two spaces down in the map list. | If we just played Reaction, we’ll play InnerHospital next. |
MVOTE_RandomFromRotation | Chooses a completely random map from the MapRotationList. | This could be Reaction, Hydra, Watchdog, etc. |
MVOTE_ RandomFromVariety | Chooses a completely random map from the variety list. | This could be SpringStreet, BridgeNight, Uptown, etc. |
MVOTE_RandomFromVoteList | Chooses a completely random map from the VoteList. | This could be Reaction, Hydra, Watchdog, Springstreet, BridgeNight, Uptown, etc. |
MVOTE_Prev | Chooses the next spot from the MapRotationList in the reverse order. | If we just played Hydra, we’ll play Reaction next. |
MVOTE_Legacy | Classic method of button selections. Applying this to ANY of your buttons will result in ALL three of your buttons using it. This will effectively result in all buttons getting respectively assigned: ‘MVOTE_Replay’, ‘MVOTE_Next’ and ‘MVOTE_NextPlusOne’. | If we just played Reaction, the buttons will be assigned the following: ButtonOne: Reaction ButtonTwo: Hydra ButtonThree: Watchdog |
Advanced Map Vote Customization
Rotation Advancement Options defines exactly how the MapRotationList is advanced forward after each successful vote. When the map voting selections are generated in the AAR, the index, or the current location of the map rotation list, is used to determine how far along we are in the list (Example: Using the example map list above, Reaction is at the 1st index, Hydra is at the 2nd index, Watchdog is at the 3rd index, etc).
By default, most voting options will place the map rotation’s index at the selected map’s location in the list (Example: If the last played map is the 3rd map in the MapRotationList, and our next voted map is the 5th map in the MapRotationList, then the next game’s vote list will be generated starting from the 5th map in the MapRotationList).
By using Rotation Advancement Options, we can customize exactly where the MapRotationList goes after a map vote, and assign that functionality to individual buttons. To do so, assign a RotationAdvancementOption to a button name in AAGame.ini, using:
- MVOTE_ButtonName_ShouldAdvanceMapRotation=ADVMAP_YourAdvancementOption.
Examples:
- MVOTE_Replay_ShouldAdvanceMapRotation=ADVMAP_AdvanceToSelectedMap
- MVOTE_RandomFromVariety_ShouldAdvanceMapRotation=ADVMAP_CurPosPlusOne
This chart documents what each Rotation Advancement Option does, along with an example of how it would work using the example map list from above.
RotationAdvancementOption | Description | Example |
ADVMAP_AdvanceToSelectedMap | Rotation advances to the map represented by the vote option. | We just finished playing Reaction, and Watchdog is voted as the next map. After next game, the rotation index will start at Watchdog. The vote option for NextMap would be InnerHospital. |
ADVMAP_CurPosPlusOne | Rotation advances to the current rotation index, plus one. | We just finished playing Reaction, and Watchdog is voted as the next map. After next game, the rotation index will start at Hydra. The vote option for NextMap would be Watchdog. |
ADVMAP_CurPosPlusTwo | Rotation advances to the current rotation index, plus two. | We just finished playing Reaction, and Watchdog is voted as the next map. After next game, the rotation index will start at Watchdog. The vote option for NextMap would be InnerHospital. |
ADVMAP_CurPosMinusOne | Rotation goes backwards one position from the current index. | We just finished playing Hydra, and Watchdog is voted as the next map. After next game, the rotation index will start at Reaction. The vote option for NextMap would be Hydra. |
ADVMAP_DoNotAdvance | Rotation does not advance. | We just finished playing Reaction, and Watchdog is voted as the next map. After next game, the rotation index will start at Reaction again. The vote option for NextMap would be Hydra. |
Here’s a visual example of ADVMAP_AdvanceToSelectedMap at play; In this scenario, Reaction was just played so our current rotation index is at #1. ButtonOne is set to Replay Reaction (Map #1) again, ButtonTwo is set to play the Next map in rotation, Hydra (Map #2). ButtonThree is set to select a RandomFromRotation, which just happens to be Watchdog (#3).
The players voted for ButtonThree, so Watchdog will be played next. Because ButtonThree‘s type was set to AdvanceToSelectedMap, the rotation index will jump straight from #1 (Reaction) to #3 (Watchdog).
Once the match on Watchdog is finished, we’re brought back to the AAR screen to vote for the next match. With our current map rotation index now at #3, the button selections are now in order: We can Replay our last map Watchdog (#3), we can play the Next map InnerHospital (#4), or we can select another map RandomFromRotation, Hydra (which happens to be #2).
Button Priority
Button Priorities are used as tie breakers. Each button is assigned a priority, and if that button is tied with another one, the button with the highest priority will win the vote.
Note that all buttons MUST have different priorities (ie, ButtonOne and ButtonTwo can’t both have top priority).
Here is an example using the default button priorities:
- ButtonOnePriority=3
- ButtonTwoPriority=2
- ButtonThreePriority=1
In this case, if ButtonOne and ButtonTwo are both tied with votes, ButtonOne will win because it has the highest priority (3 is greater than 1).
If you want to only use FLO maps in your list, you need to switch ScaleWithNumPlayers to flase.
Like that: bScaleWithNumPlayers=false
Instead of: bScaleWithNumPlayers=true