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.
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.
The Official Map lists is now stored in separate files. This allows them to be updated independently of the main plugin. It also allows other people to submit new lists of files for each game.
The official map list files are checked for changes every map change.. You can force a check with the sm_mapvote_reload_maplist server command (via console or rcon). It's recommended you just let it update on map change, though.
This version is now synced against SourceMod Mapchooser 1.3.7. This was done to give us better interoperability with other plugins that think they're talking to the SourceMod Mapchooser. This mainly changes how things are logged.
Fixed some translation issues. (Custom) and the slot blocking lines are now hooked into the client's language instead of the server's language.
The code to print votes is gone. Use SourceMod 1.3.0's sm_vote_progress cvars instead.
This rewrite finally fixes the % bug in translations (which still needs to be %% due to how SourceMod works). As a downside, messages no longer allow colors.
New cvar sm_mapvote_menustyle. This cvar controls which style menu you see. 0 for your game's default style (same as 1.5). 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 (like HL2:DM). Block Slots is ignored for the older Valve style.
New cvar sm_mapvote_warningtimerlocation. Location for the warning timer text. 0 is HintBox, 1 is Center text, 2 is Chat. Defaults to HintBox.
If runoffs are enabled, a runoff will now be triggered if the top two or more maps have the same number of votes regardless of the percentage... as long as you're not already on the last runoff vote.
What's new since 1.4 (for translators):
New Translation string "Cannot Start Vote":
Code:
"Cannot Start Vote"
{
"#format" "{1:i}"
"en" "Vote already in progress. Retrying in {1}s."
}
New Translation string "Tie Vote":
Code:
"Tie Vote"
{
"#format" "{1:i}"
"en" "The top {1} maps had the same number of votes.\nA revote is needed!"
}
Changelog:
Spoiler
Version 1.10.2
Sync with MapChooser 1.5.3: Fix being able to nominate same map multiple times
Version 1.10.1
TF2: Fix issue where vote count may be off if NativeVotes is being used
CSGO: Clinch votes no longer take mce_startrounds into account
MapChooser Extended Sounds: Should now work on CS:GO.
Version 1.10.0
Synced to SourceMod MapChooser 1.5. However, runoffs still work slightly differently. Translations may change in a later 1.10 version.
CSGO: Minor fix related to mp_map_can_clinch
CSGO: mp_endmatch_votenextmap is automatically disabled while this plugin is running.
CSS and CSGO: Use mp_round_restart_delay instead of mp_bonusroundtime.
OnMapEnd callback signature changed. It now passes the map that won as a const String[].
Updated TF2 map list.
Updated CS:GO map list
Runoff votes weren't always happening when they should.
BuiltinVotes is no longer supported. Seriously, use NativeVotes instead.
Now uses GetEngineVersion (SM 1.5) or GuessSDKVersion (SM 1.4) to determine which cvars need to be set.
Mapchooser Extended Sounds is now included in the main repository. However, you'll need a sound set for it.
MapChooser Extended Sounds
TF2: Now supports the "event" key... this is used to call the teamplay_broadcast_audio event, which reads values from the game's gamesounds files. Support for this in other games may happen if EmitSound is ever changed to support game sounds.
TF2 sound set was changed to use the stock TF2 sounds for starting and ending votes. 60 second sound was also removed as it wasn't really necessary.
Nominations Extended
Nominations are now logged in the server log.
Version 1.9.7 (2013-06-19, internal version)
All maps now use PLATFORM_MAX_PATH as their length
Fix for extend not being
Version 1.9.6 (2013-02-21)
Compiled against latest nativevotes.inc, fixes 'Native "NativeVotes_Close" was not found' when NativeVotes isn't running.
Fixed plugin crashing if you're using NativeVotes and mce_extend was greater than 0.
Version 1.9.5 (2013-02-21)
Fixed issues with CS:GO's clinch support. Seeing as how it didn't actually work in 1.9.4.
Moved version number from mapchooser_extended.inc to each plugin. It didn't really make sense in the .inc file.
(Hopefully) Fixed issue where sm_mapvote didn't work if normal vote or rtv had already passed.
Standardized the string size for map name across MCE and its two subplugins.
Version 1.9.4 (Internal version)
Added initial support for CS:GO's clinch win feature.
Version 1.9.3 (2012-06-23)
MapChooser Extended
Fixed bug where nominations list is cleared, but nominations count isn't reset.
Version 1.9.2 (2012-06-08)
MapChooser Extended
Fixed a bug where internal votes would override the vote type of external votes. Internal votes will no longer start if an external vote was called.
Version 1.9.1 (2012-05-17)
MapChooser Extended
New cvar mce_addnovote which tells it whether to add No Vote to the vote. If mce_addnovote 1 and mce_blockslots 1 are both set, only slots 2 and 3 are blocked.
Nominations Extended
Fixed bug where nominate chat text would be blocked if the nominate command was blocked.
Now correctly resets the reply source when nominate chat command is blocked.
Now uses ReplyToCommand in shared code, so console access should work.
Version 1.9.0 (2012-05-12)
Bugfixes:
Fixed bug where sm_setnextmap wasn't preventing the end of map vote. [Bug Report]
The number of maps in a vote will be reduced if not enough maps are available to fill the list [Bug Report]
Bonus Time length error is now only logged when mce_starttime is 0 [Bug Report]
rtv is no longer blocked during the warning timer [Bug Report on the RUGC Midwest server]
New cvar mce_hidetimer to hide the warning timer display. The first warning will still display. However, if you have the Sounds plugin installed, sounds will still play every second. Request
Possible controversial change: The first menu option is now No Vote, and blocked slots now only blocks slots 2 and 3.
Removed mce_forcertv (see new subplugins)
New natives: IsOfficialMap and CanNominate.
IsOfficialMap - Given a map name, returns true or false based on its internal map list for the current game.
CanNominate - Returns a CanNominateResult based on whether nominations are currently applicable and why not if not.
If enough rtv votes are reached during the warning timer, the vote will instead change maps immediately when the vote ends.
New subplugins
RockTheVote Extended
Replaces mce_forcertv with forcertv. It uses the internal rtv system to do its processing so it now acts like the normal rtv. [Reported on the RUGC Midwest server] (mce_forcertv is supported for backward compatibility)
Nominate Extended
Lists whether maps are official or not, based on how MapChooser Extended lists them.
nominate command checks whether nominations are currently allowed (nominate list full or vote already completed) before bringing up the menu, and displays an appropriate message if the vote is underway or completed.
Version 1.8.2 (2012-01-31)
Fixed issue with the vote just failing instead of activating the retry timer if a vote was already being displayed.
Fixed a second issue related to the retry timer if BuiltinVotes was being used. BuiltinVotes votes will be delayed if either type of vote is being displayed due to potential issues with the sm_vote_progress cvars. (This will require some new cvars for BuiltinVotes to avoid conflicts.)
MCE now checks if the game is TF2 before activating BuiltinVotes. This fixes an issue when this plugin is used on L4D/L4D2 with BuiltinVotes or if you loaded BuiltinVotes on a HL2:DM, CS:S, or DoD:S server (despite it not working on those). This is a temporary fix and will be rewritten later with a more permanent solution.
Game check has now been moved to plugin start, rather than checking it every time a library is added.
Source code now looks for include/builtinvotes.inc and include/mapchooser_extended.inc locally instead of treating them as global library files.
Version 1.8.1 [Translations update]
Added Serbian Translation (thanks RoaR!)
Added 1337speak translation. Yes, this is a supported SourceMod language.
Added mapchooser translations for Finnish, Lithuanian, Chinese (Traditional), and Slovak. These still need their extended phrases translated.
Version 1.8.1 (2011-12-18)
Fixed a problem with BuiltinVotes success screen not being shown when Extend won a vote.
Fixed incorrect translation being used during the warning counter for revotes.
Version 1.8.0a [Map update] (2011-12-17)
Added cp_foundry to tf.txt, the TF2 official map list.
Version 1.8.0a (2011-12-07)
Recompiled plugin to eliminate "Unable to load plugin "mapchooser_extended.smx": Native "DisplayBuiltinVotePass2" was not found" error when BuiltinVotes wasn't loaded. No actual code changes.
Version 1.8.0 (2011-12-06)
New command: mce_forcertv. This command starts a map vote that changes the map as soon as it finishes. It is similar to sm_mapvote, which starts the end of map vote immediately.
Votes from all sources now trigger the warning countdown. This includes round end votes, and any external sources such as rockthevote.
Fixed a bug that made it possible to start an external vote while the warning counter was counting down. This is much more important now that all sources are using the warning countdown.
If using BuiltinVotes, version 0.5.0 is required.
Instant mapchanges, such as done by rtv, now produce a different success message.
/revote and !revote are supported by BuiltinVotes 0.5.0 with the builtinvotes_revote plugin... but with a 3 second delay. I recommend increasing the length of the vote to compensate.
Version 1.7.3 (2011-11-05)
BuiltinVotes related
Fixed a bug where Extend current Map would sometimes be selected if no one voted.
Fixed a bug where a failure message would be shown if no one voted, rather than a success message showing the selected map.
Fixed a bug where rtv would no longer work following a map vote.
Added Korean translation. Thanks, Minoost!
Version 1.7.2 (2011-11-03)
Fixed a bug where custom maps would appear in the vote twice if using BuiltinVotes.
(a) Fixed Extend/Don't Change not working with BuiltinVotes (ported from BuiltinVotes MapChooser)
Version 1.7.1 (2011-11-01)
Fixed handle leak when randomize maps was enabled.
Toggling mce_randomizemaps mid-map will no longer do odd things with the map list (reuse the same map list).
Version 1.7 (2011-10-31)
All CVars changed names
Detection for MapChooser is done on load. This plugin will not load if MapChooser is loaded.
TF2's Next Level vote is now automatically disabled. If you want nextlevel votes, use rockthevote.smx.
Percent start time should now be working correctly instead of being off by a multiple of 60.
Version number is no longer stored in the config file.
Updated with the capabilities of MapChooser 1.4. This includes some new forwards, plus preliminary support for Nuclear Dawn.
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 for TF2 (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 (officially part of MapChooser 1.4) instead. OnMapVoteStart will be removed later on (originally 1.8, but 1.8 is out and it's still there...)
Version 1.6.3 (translations update 2) (2011-06-22)
Added Mapchooser translation files for all other SourceMod languages. These files are not complete, but any phrases used by the main SourceMod plugin will now be translated.
Version 1.6.3 (2011-05-29)
Fixed issue with KillTimer errors showing up if mp_timelimit was adjusted during a game.
Version 1.6.2 (2011-05-27) (testing only)
First attempt to fix an issue with KillTimer errors.
Version 1.6.1 (2011-05-20)
Fixed Runoffs not working properly.
Changed error checking for vote menu type.
Changed Runoff vote map selection process... if the second and third (or more) maps have the same number of votes, they will all show up in the runoff.
Made OnMapVoteEnd no longer trigger when a Runoff Vote starts.
Increased the amount of time between a successful rtv and map change to 4 seconds to allow any optional sounds to play.
Version 1.6 (2011-05-19)
Removed hacky HL2: Deathmatch detection, set sm_mapvote_warningtimerlocation 1 instead.
New cvar sm_mapvote_menustyle
New cvar sm_mapvote_warningtimerlocation
Runoff will be triggered if runoffs are enabled and two maps have the same number of votes.
Version 1.5.2 (fixed Russian translation) (2011-05-18)
Fixed issue with Russian translation being the default rather than English... the Russian translation was claiming to be the English one. (no change to .sp or .smx files)
Version 1.5.2 (2011-05-17)
(Hopefully) Fixed issue with DataTimer DataPack.
Version 1.5.1 (fixed translations) (2011-05-17)
Corrected several issues in French, Russian, and Polish translation files (no change to .sp or .smx files)
Version 1.5.1 (2011-05-15)
Fixed having too many convars with the FCVAR_NOTIFY attribute.
Official map lists are now controlled by files in the addons/sourcemod/configs/mapchooser_extended/maps/ directory for easier updating. Includes maps for DOD:S, CS:S, HL2:DM, and TF2.
Moved sound support to a separate plugin, including all the sound convars.
Removed ability to automatically disable the SourceMod mapchooser. This is intentional, as I don't think plugins should be messing around with other plugins files.
Removed colors support... wasn't really used that much anyway.
Games that use Valve menus, like HL2DM, now ignore the block slots setting. They also get center text instead of Hint Messages as their hint boxes also work differently.
Version 1.4.2 (2011-04-18)
Added koth_banlands to TF2 map list
New English translation
Version 1.4.1 (2011-03-25)
Fixed some issues with KillTimer being called on invalid timer handles.
Included TF2 Sounds
Included example config files to use the other sound sets
Version 1.4 (2011-03-07)
Fixed bugs with vote countdown. The announcer may count a little fast from time to time, but she'll no longer skip or repeat numbers.
Changed how vote slot blocking works. Slots 1-3 are always blocked, maps start filling at position 4. This fixes issues with random map selection when no one votes with only 2-3 maps showing, including with runoff votes.
Fixed some issues with English translation file, particularly where % signs were not showing.
Updated colors.inc to 1.0.5, the latest version on Allied Modders. Now has support for new colors, such as olive.
Added HL2 sounds
Version 1.3 (2010-04-14) by Zuko
Initial Release
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_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.
Credits:
SM Devs
Zerak
Zuko
Powerlord
Sammit92 (Russian translation)
DaRk56 (old French translation)
Arcy (Polish translation)
Sunshisoo (Italian translation)
banania (French translation)
Franc1sco (Spanish translation)
Minoost (Korean translation)
RoaR (Serbian translation)
Floody (German translation)
Yalamix (Portuguese translation)
* - For Team Fortress 2, Counter-Strike: Source, Day of Defeat: Source and Half-Life 2: Deathmatch
Plugins that work with MapChooser Extended:
NativeVotes
SourceMod NextMap
SourceMod RockTheVote
SourceMod Nominations
MapChooser Extended Sounds
RockTheVote Extended
Nominations Extended
The Get Plugin link will not work because the plugins requires mapchooser_extended.inc to compile.
__________________
Not currently working on SourceMod plugin development.
Last edited by Powerlord; 02-05-2016 at 17:32.
Reason: Updated mapchooser_extended_sounds so it will now compile correctly