Requirements:
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:
- nativevotes.inc from NativeVotes 0.8.0 or later.
- colors.inc from Colors 1.1.3 or newer. As of 2014-02-05, Attachment 126978 is the latest version.
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.
Installation:
- Unpack archive to game root directory eg. /tf
- Move addons/sourcemod/plugins/mapchooser.smx to the disabled folder if present in plugins.
Upgrading:
- 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”
- This has two potential problems. The first is that you didn’t upload the sound files to your game server or fast download server.
- 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
- If it is a sv_pure 1 server, add this above the } at the end of hl2/pure_server_whitelist.txt :
Code:
sound\mapchooser\... allow_from_disk
- You cannot fix this on an sv_pure 2 server.
- “The sounds play fine the first map, but not after a map change!”
- 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?”
- 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.
Convars:
- 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.
Commands:
- 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.