- Next Map Configuration & Display: Set the next map in the cycle and display it for players.
- Map Voting: Players can vote for a new map towards the end of the current map.
- Real-time Voting Percentages: View the percentage of votes for each map in real time.
- Rock The Vote (RTV): Players can vote to trigger a map change vote, with configurable thresholds and timing restrictions.
- Admin Map List: Admins can access a list of available maps and instantly change the current map.
- Dynamic Map Cycle: Set which maps are part of the cycle and which ones can be changed from the map list.
- Dynamic Map Selection: Maps are selected based on the current number of players, with options for max and min player thresholds.
- Custom Map Display: Show custom names instead of map values (e.g., showing "Dust II" instead of "de_dust2").
- Round/Timelimit-Based Map Changes: Change maps based on the number of rounds or time limits.
- Vote Start Sound: Play a sound when the voting for a new map begins.
- Ignore Option: Players can now choose to ignore the current vote.
- Extend Map Option: Allows players to vote to extend the current map instead of switching to a new one.
- Timeleft Command (
!timeleft): Displays the remaining time before the map changes. - Current Map Command (
!currentmap): Shows the name of the map currently being played. - Last Map Command (
!lastmap): Displays the previously played map. - Map Change Delay: Configurable delay after the current map ends before the next map loads.
- Vote Trigger Time: Set how long before the end of the map the voting process should start.
- Command Aliases: Each command can have multiple aliases for easier accessibility.
-
!nextmapCommand in Chat: Displays the next map when the!nextmapcommand is typed in chat. -
Start of Map Voting: Displays when a map vote begins.
-
Voting Percentage After Map Selection: Shows the percentage of votes for each map.
-
Player Voting Logs: Shows logs of which players voted for which maps and the next map.
-
Admin Map List: Displays the map list that the admin can access and modify.
-
Support for Local Language Change: Demonstrates the plugin’s support for language customization.
To run this plugin, you need the following dependencies:
-
Metamod:Source (2.x)
Download from: Metamod:Source Official Site -
CounterStrikeSharp (Version 1.0.355 or higher)
REQUIRED: You must use CounterStrikeSharp version 1.0.355 or higher. Using an older version will cause your server to crash!
Download from: CounterStrikeSharp GitHub Releases -
CS2MenuManager
REQUIRED: This plugin uses CS2MenuManager for menu functionality. You must install it on your server.
Download from: CS2MenuManager GitHub ReleasesCS2MenuManager Configuration:
This plugin uses the WASD Menu from CS2MenuManager. You can configure menu behavior, colors, and controls by editing the
config.tomlfile located at:
csgo/addons/counterstrikesharp/shared/CS2MenuManager/config.tomlSound Settings - Configure menu sounds:
[Sound] Select = "sounds/ui/item_sticker_select.vsnd_c" Exit = "" ScrollUp = "sounds/ui/csgo_ui_contract_type4.vsnd_c" ScrollDown = "sounds/ui/csgo_ui_contract_type4.vsnd_c"
Button Mapping - Change which keys control the menu:
[Buttons] ScrollUp = "W" ScrollDown = "S" Select = "E" Prev = "Shift" Exit = "Tab"
WASD Menu Appearance - Customize menu colors and appearance:
[WasdMenu] TitleColor = "Green" ScrollUpDownKeyColor = "Cyan" SelectKeyColor = "Green" PrevKeyColor = "Orange" ExitKeyColor = "Red" SelectedOptionColor = "Orange" OptionColor = "White" DisabledOptionColor = "Grey" ArrowColor = "Purple" FreezePlayer = false
Note: The
enable_player_freeze_in_menuoption has been removed from MapManager config. Player freezing is now controlled by theFreezePlayersetting in CS2MenuManager'sconfig.tomlfile. -
MultiAddonManager (optional)
Download from: MultiAddonManager GitHub Releases- If you want to play a sound when map voting begins, this dependency is required. You can use your own custom sounds, though no tutorial is provided. Search online for guidance.
- Alternatively, if you'd like to use pre-configured sounds, visit this link: Steam Workshop Sounds.
Setup for Sounds:
- To enable the sounds, you must add the
3420306144ID to themultiaddonmanager.cfgfile. - Path to file:
game/csgo/cfg/multiaddonmanager/multiaddonmanager.cfg. - Add the ID under the
mm_extra_addonssection, for example:"....,3420306144"
-
!nextmap- Description: Displays the next map in the cycle.
- Access: Available to all players.
-
!timeleft- Description: Displays the remaining time before the current map ends (rounds/minutes).
- Access: Available to all players.
-
!currentmap- Description: Displays the current map name.
- Access: Available to all players.
-
!lastmap- Description: Displays the last played map.
- Access: Available to all players.
-
!rtv- Description: Vote to trigger a map change vote (Rock The Vote).
- Access: Available to all players.
-
css_nextmap- Description: Sets the next map in the rotation.
- Access: Admins only, requires
@css/changemappermission.
-
css_maps- Description: Lists all maps and allows instant map changes.
- Access: Admins only, requires
@css/changemappermission.
Below is a step-by-step guide explaining the available configuration options for MapManager. These options allow you to customize how the plugin behaves and interacts with players.
-
vote_map_enable- Possible Values:
true,false - Description: Enables or disables the voting system for a new map.
true: Voting is enabled.false: Voting is disabled.
- Possible Values:
-
vote_map_duration- Possible Values: Integer values between
1and45(e.g.,15,30, etc.) - Description: Specifies the duration (in seconds) for the map voting period. Must be greater than
0and less than45, otherwise an error will occur.
- Possible Values: Integer values between
-
depends_on_the_round- Possible Values:
true,false - Description: Determines whether map voting is based on rounds or time.
true: The plugin usesmp_maxroundsto trigger voting. Voting will automatically start during freeze time of the next round with extended freeze time.false: The plugin usesmp_timelimitto trigger voting. Voting will start immediately without freeze time extension.
- Possible Values:
-
enable_random_nextmap- Possible Values:
true,false - Description: Determines if the next map is selected randomly or cyclically.
true: The next map will be chosen randomly.false: The next map will follow a cyclic order.
- Possible Values:
-
enable_player_voting_in_chat- Possible Values:
true,false - Description: Logs in the chat which player voted for which map.
true: Displays voting logs in the chat.false: Disables voting logs.
- Possible Values:
-
enable_nextmap_command- Possible Values:
true,false - Description: Enables or disables the
!nextmapcommand.
- Possible Values:
-
enable_lastmap_command- Possible Values:
true,false - Description: Enables or disables the
!lastmapcommand.
- Possible Values:
-
enable_currentmap_command- Possible Values:
true,false - Description: Enables or disables the
!currentmapcommand.
- Possible Values:
-
enable_timeleft_command- Possible Values:
true,false - Description: Enables or disables the
!timeleftcommand.
- Possible Values:
-
enable_command_ads_in_chat- Possible Values:
true,false - Description: Displays command advertisements in chat every 5 minutes if enabled.
- Possible Values:
-
enable_ignore_vote- Possible Values:
true,false - Description: Adds an "Ignore Vote" option to the map voting menu.
- Possible Values:
-
ignore_vote_position- Possible Values:
"top","bottom" - Description: Defines whether the "Ignore Vote" option appears at the top or bottom of the voting menu.
- Possible Values:
-
enable_extend_map- Possible Values:
true,false - Description: Adds an "Extend Map" option to the map voting menu.
- Possible Values:
-
extend_map_time- Possible Values: Integer values greater than
0 - Description: Defines how much time the map will be extended.
- If
depends_on_roundistrue, the value represents rounds. - If
depends_on_roundisfalse, the value represents minutes.
- If
- Possible Values: Integer values greater than
-
extend_map_position- Possible Values:
"top","bottom" - Description: Defines whether the "Extend Map" option appears at the top or bottom of the voting menu.
- Possible Values:
-
delay_to_change_map_in_the_end- Possible Values: Integer values greater than
5 - Description: Defines the delay (in seconds) between the end of the current map and the actual map change.
- Possible Values: Integer values greater than
-
vote_trigger_time_before_map_end- Possible Values: Integer values greater than
2 - Description: Defines how long before the end of the current map the vote is triggered.
- If
depends_on_roundistrue, the value is in rounds. - If
depends_on_roundisfalse, the value is in minutes.
- If
- Possible Values: Integer values greater than
-
display_map_by_value- Possible Values:
true,false - Description: Defines how maps are displayed.
true: Displays the map by its technical name (e.g.,de_dust2).false: Displays the map by its custom tag (e.g.,Dust II).
- Possible Values:
-
rtv_enable- Possible Values:
true,false - Description: Enables or disables the Rock The Vote (RTV) feature.
- Possible Values:
-
rtv_min_players- Possible Values: Integer values between
0and64 - Description: Minimum number of players required for RTV to be available.
- Possible Values: Integer values between
-
rtv_time_after_map_start- Possible Values: Integer values between
0and300 - Description: Time (in minutes) that must pass after map start before RTV can be triggered.
- Possible Values: Integer values between
-
rtv_minimum_votes_percent- Possible Values: Integer values between
0and100 - Description: Percentage of players required to vote for RTV to trigger a map vote.
- Possible Values: Integer values between
-
commands_css_nextmap- Possible Values: List of strings
- Description: Defines alias commands for
css_nextmap.
-
commands_css_maps- Possible Values: List of strings
- Description: Defines alias commands for
css_maps.
-
commands_nextmap- Possible Values: List of strings
- Description: Defines alias commands for
!nextmap.
-
commands_lastmap- Possible Values: List of strings
- Description: Defines alias commands for
!lastmap.
-
commands_currentmap- Possible Values: List of strings
- Description: Defines alias commands for
!currentmap.
-
commands_timeleft- Possible Values: List of strings
- Description: Defines alias commands for
!timeleft.
-
commands_rtv- Possible Values: List of strings
- Description: Defines alias commands for
!rtv.
-
sounds
- Possible Values: An array of string paths to sound files.
- Description: Specifies the sounds that play when map voting begins.
- Add as many sounds as you'd like, and the plugin will play one randomly.
- Leave this field empty (
[]) to disable sounds.
maps
- Description: A list of maps with customizable settings for each map. Each map entry contains the following:
map_value: The technical name of the map (e.g.,de_dust2).map_display: The custom display name for the map (e.g.,Dust II).map_is_workshop:trueif the map is from the Steam Workshop;falseotherwise.map_workshop_id: The Workshop ID of the map (required ifmap_is_workshopistrue, otherwise set to"").map_cycle_enabled:trueif the map should be included in the map cycle;falseif it should only appear in the admin map list (css_maps).map_can_vote:trueif the map should appear in the voting system;falseif it should not.map_min_players: Minimum number of players required for the map to be included in voting.map_max_players: Maximum number of players allowed for the map to be included in voting.
IMPORTANT: Before installing this plugin, you must configure the following cvars in your server configuration files. These cvars are essential for the plugin to work correctly.
Add these cvars to one of the following files depending on your server setup:
gamemode_competitive.cfggamemode_casual.cfggamemode_custom.cfgserver.cfg- Or any other relevant configuration file your server uses
Required CVars:
mp_match_can_clinch 0
mp_endmatch_votenextmap 0
mp_endmatch_votenextleveltime 0
mp_halftime 0
IMPORTANT - Disable Workshop Collection Parameters:
You MUST NOT use the following parameters in your CS2 server startup configuration:
+host_workshop_collection+mapgroup mg_activeor+mapgroup mg_customor any similar mapgroup parameter
These parameters will conflict with the plugin's map management system and must be removed or disabled.
- Download the MapManager v1.4 plugin as a
.zipfile. - Upload the contents of the
.zipfile into the following directory on your server:game/csgo/addons/counterstrikesharp/plugins
- After uploading, change the map or restart your server to activate the plugin.
- The configuration file will be generated at:
game/csgo/addons/counterstrikesharp/configs/plugins/MapManager-COFYYE/MapManager-COFYYE.json
Adjust all settings in this file as needed.
The language files are located in the following directory:
game/csgo/addons/counterstrikesharp/plugins/MapManager-COFYYE/lang
Currently, there are two language files:
en.json(English)sr.json(Serbian)
If you encounter any bugs or issues while using the plugin, please report them on the GitHub Issues page. Provide a detailed description of the problem, and I will work on resolving it as soon as possible.
Feel free to submit any suggestions for improvements or new features you'd like to see in future releases. Your feedback is highly appreciated!
- Code Snippets for Menu (v1.0 - v1.2): The menu code snippets used in versions 1.0 through 1.2 were sourced from oqyh's GitHub. I would like to thank him for providing valuable resources that helped in building the initial menu system of this plugin.
- CS2MenuManager (v1.3+): Starting from version 1.3, this plugin uses CS2MenuManager for menu functionality.
- Other Contributors: A big thank you to all other authors and contributors of similar plugins that inspired the creation of this MapManager plugin. Their work was a key part of shaping the final version of this plugin.
This plugin is my version of the MapManager functionality, combining various elements from the community to provide a better and more customizable experience for server admins and players alike.





