Home » MapChooser Extended 1.10.2

MapChooser Extended 1.10.2

SourceMod 1.4.x. 1.5.x recommended.
To compile: A recent version of colors.inc.

This plugin is an updated version of Zuko’s MapChooser Extended plugin, under a new author.

Now on Github!

Like my work? Now taking donations.

Like SourceMod MapChooser, MapChooser Extended uses addons/sourcemod/maplists.cfg to determine which maps will show up in map votes.

Optional Requirements:
NativeVotes Plugin (TF2 only) 0.8.0 or newer.
For MapChooser Extended Sounds, you need to install a Sound Set. Except on TF2, where the included tf.cfg uses sounds already included with the game.

Compilation Requirements:

A recent copy of colors.inc

MapChooser Extended is the SourceMod Mapchooser with the following new features:

  • Players are warned before the vote (by countdown)
  • Optional Sounds for vote start, end, countdown start, and countdown ticks
  • Custom maps are marked on the vote menu*
  • You can block slots in vote menu
  • Additional vote when none of the maps receive the minimum required number of votes
  • Percentage calculation when to start voting

What’s new since 1.6:
1.7 has a breaking change: All cvars have been renamed to be different from their MapChooser counterparts.

Also, you must update your main (English) translation file.

This means you need to delete or rename mapchooser_extended.cfg and recreate it.

This was done to prevent confusion between MapChooser and MapChooser Extended’s config files, since mapchooser had the exact same Cvars.

  • Updated with the capabilities of MapChooser 1.4.
  • Extend/Don’t Change can now be moved above the other vote options.
  • Nominations can now be randomized with maps.
  • The Custom map phrase can now be disabled or set to *. * is now the default.
  • Preliminary support for the BuiltinVotes extension (but said extension isn’t done yet, so sorry). This means that builtinvotes.inc is now required in order to build MapChooser Extended.
  • OnMapVoteStart is now deprecated. Use OnMapVoteStarted instead.


  • Unpack archive to game root directory eg. /tf
  • Move addons/sourcemod/plugins/mapchooser.smx to the disabled folder if present in plugins.


  • If you’re upgrading from 1.3.x, 1.4.x, or 1.5.x, you need to follow the installation instructions above to get the updated translation files and official map files. You will also need to delete/rename your config file.
  • If you are upgrading from 1.6.x, you just need mapchooser_extended.smx, although it is recommended you also update your translation files and official map files. You will also need to delete/rename your config file.
  • If you are upgrading from 1.7.x, you need mapchooser_extended.smx and mapchooser_extended.phrases.txt
  • If you are upgrading from 1.8.x, you need mapchooser_extended.smx and the translations directory, as new translations were added this version. nominations_extended.smx and rockthevote_extended.smx were added in this release in the disabled folder. Move them to enabled (after moving the originals to disabled) if you want to use them.

Common Problems:

  • I’m running Half-Life 2: Deathmatch, but the warning timer messages are longer than the box they appear in.
    • Change the location of the warning timer using sm_mapvote_warningtimerlocation 1 (this changes to center message).
  • “The sounds download but don’t play!” or “I get the error ‘Failed to load sound “sourcemod\mapchooser\tf2\announcer_dec_missi onbegins30s06.mp3”, file probably missing from disk/repository”‘ in my game console”
    1. This has two potential problems. The first is that you didn’t upload the sound files to your game server or fast download server.
    2. The second is that you may be running a sv_pure 2 server or a sv_pure 1 server without having the Mapchooser Sounds directory in your pure_server_whitelist.txt
    3. If it is a sv_pure 1 server, add this above the } at the end of hl2/pure_server_whitelist.txt :
      sound\mapchooser\...            allow_from_disk
    4. You cannot fix this on an sv_pure 2 server.
  • “The sounds play fine the first map, but not after a map change!”
    1. This is actually the same issue as the previous problem, except that you’re setting the sv_pure value in server.cfg. See the previous answer’s solution.
  • “The constant beeping during a vote is annoying. How do I get rid of it?”
    1. This is controlled by the game server. Set sv_hudhint_sound 0 in your server.cfg. Note: This disables the sound for all hint messages.
  • “I’m running CS:GO and on map change, the same map loads again!”
    • The first thing to try is to change mp_match_end_changelevel to 1 and mp_match_end_restart to 0.
    • If this still doesn’t work, CS:GO’s map group system may be interfering. I suggest making sure all maps in your map vote appears in CS:GO’s map group for your server. Setting up map groups and cfg/gamemodes_server.txt is beyond the scope of this document.

Known bugs:

  • None at the moment.

Future plans:

  • Possibly make the number of blocked slots configurable.


  • mce_extend_fragstep [val] (min 5, def 5) – Specifies how many more frags are allowed when map is extended.
  • mce_extend_roundstep [val] (min 5, def 5) – Specifies how many more rounds each extension makes
  • mce_extend_timestep [val] (min 5, def 15) – Specifies how much many more minutes each extension makes
  • mce_dontchange [0/1] (def 1) – Specifies if a ‘Don’t Change’ option should be added to early votes
  • mce_endvote [0/1] (def 1) – Specifies if MapChooser should run an end of map vote
  • mce_exclude [val] (def 5) – Specifies how many past maps to exclude from the vote.
  • mce_extend [val] (def 0) – Number of extensions allowed each map.
  • mce_include [val] (min 2, max 5, def 5) – Specifies how many maps to include in the vote.
  • mce_novote [0/1] (def 1) – Specifies whether or not MapChooser should pick a map if no votes are received.
  • mce_starttime [val] (min 1, def 10) – Specifies when to start the vote based on time remaining.
  • mce_startfrags [val] (min 1, def 5) – Specifies when to start the vote base on frags remaining.
  • mce_startround [val] (min 1, def 2) – Specifies when to start the vote based on rounds remaining. Use 0 on TF2 to start vote during bonus round time
  • mce_voteduration [val] (min 5, def 20) – Specifies how long the mapvote should be available for.
  • mce_blockslots [0/1] (def 1) – Block slots to prevent accidental votes. This setting is ignored for Valve-style menus.
  • mce_maxrunoffs [val] (def 1) – Number of run off votes allowed each map.
  • mce_runoff [0/1] (def 1) – Hold run off votes if winning choice has less than a certain percentage of votes
  • mce_runoffpercent [val] (min 0, max 100, def 50) – If winning choice has less than this percent of votes, hold a runoff
  • mce_runoffvotewarningtime [val] (min 0, max 60, def 5) – Warning time for runoff vote in seconds.
  • mce_start_percent [val] (min 0, max 100, def 35) – Specifies when to start the vote based on percents.
  • mce_start_percent_enable [0/1] (def 0) – Enable or Disable percentage calculations when to start vote.
  • mce_version [val] (def 1.9.1) – MapChooser Extended Version
  • mce_warningtime [val] (min 0, max 60, def 15) – Warning time in seconds.
  • mce_menustyle [val] (min 0, max 2, def 0) – Menu Style. 0 is the game’s default, 1 is the older Valve style that requires you to press Escape to see the menu, 2 is the newer 1-9 button Voice Command style. Style 2 is unavailable in some games.
  • mce_warningtimerlocation [val] (min 0, max 2, def 0) – Location for the warning timer text. 0 is HintBox, 1 is Center text, 2 is Chat. Defaults to HintBox.
  • mce_markcustommaps [val] (min 0, max 2, def 1) – Mark custom maps in the vote list. 0 = Disabled, 1 = Mark with *, 2 = Mark with phrase.
  • mce_randomizeorder [0/1] (def 0) – Randomize the order of nominations and randomly selected maps instead of having nominations first?
  • mce_extendposition [0/1] (def 0) – Extend/Don’t Change position. 0 = end, 1 = start
  • mce_hidetimer [0/1] (def 0) – Hide Warning timer notices, except the first.
  • mce_addnovote [0/1] (def 1) – Specified if “No Vote” should be added in the first vote slot. Has no effect if NativeVotes is in use. Adjusts the number of blocked slots if mce_blockslots is set.

MapChooser Extended Sounds:

  • mce_sounds_downloadallsounds [0/1] (def 0) – Force players to download all sound sets, so sets can be dynamically changed during the map. Takes effect at map change.
  • mce_sounds_enablesounds [0/1] (def 1) – Enable this plugin. Sounds will still be downloaded (if applicable) even if the plugin is disabled this way.
  • mce_sounds_enablewarningcountersounds [0/1] (def 1) – Enable sounds to be played during warning counter. If this is disabled, map vote warning, start, and stop sounds still play.
  • mce_sounds_version [val] (def “1.1.2”) – Mapchooser Extended Sounds Version
  • mce_sounds_soundset [val] (def “tf”) – Sound set to use, optimized for TF by default. Sound sets are defined in individual files in addons/sourcemod/configs/mapchooser_extended/sounds/. Takes effect immediately if mce_sounds_downloadallsounds is 1, otherwise at map change.


  • sm_mapvote_reload_sounds – Console command that reloads the Mapchooser Sound configuration files. EXPERIMENTAL. This may or may not work, although 1.1.2 should have fixed the crashing issue with it.
  • sm_mapvote_list_soundsets – Admin command that lists which sound sets have been successfully loaded. Requires the Cvar admin flag.

For Plugin Developers – Mapchooser Extended Forwards:

  • OnMapVoteStarted(const String:map[]) – Called at the start of a map vote, part of MapChooser
  • OnMapVoteEnd() – Called at the end of a map vote
  • OnMapVoteWarningStart() – Called 1 second before the warning timer starts ticking
  • OnMapVoteRunnoffWarningStart() – Called 1 second before the runoff warning timer starts ticking.
  • OnMapVoteWarningTick(timeLeft) – Called once a second as long as the warning timer is running. timeLeft is the number of seconds left on the timer.



Leave a Reply

Your email address will not be published. Required fields are marked *