A Counter-Strike 2 server plugin to help administrators manage custom game modes, settings, and map rotations.
Inspired by CS2 Modded Dedicated Server by Kus and the CS2 Rock The Vote plugin by Abnerfs.
Tired of manually managing game modes, settings, and maps?
GameModeManager simplifies server administration for Counter-Strike 2 by providing:
- Admin menus for modes, maps, and settings.
- Customizable rotation of maps and game modes.
- Player voting for maps, settings, and game modes.
- Shared API for cross-plugin development and integration.
- Built-in RTV that can be customized to include modes and maps.
- Dynamic map lists and menus based on the current game mode or all game modes.
- Customization options for rotation schedules, commands, voting styles, and languages.
This plugin is perfect for servers with a variety of custom content or those that want to give players more control over their experience.
Please drop a ⭐ star in the repository
This plugin utilizes the GameLoop.Vdf library (licensed under the MIT License) for parsing the gamemodes_server.txt
file, which is in Valve Data Format.
For creating custom votes, this plugin utilizes the CS2-CustomVotes shared plugin API (licensed under the MIT License).
For creating WASD menus, this plugin utilizes a custom fork of WASDMenuAPI shared plugin API (licensed under the MIT License).
Lastly, a special thanks to the CS2 Rock The Vote plugin by Abnerfs. The plugin's use of the dependency injection framework served as the core architecture for the development of this plugin.
- Counter-Strike 2
- Metamod:Source (v1282+)
- CounterStrikeSharp (v.197+)
This plugin comes with a built-in RTV plugin that can be customized to include maps and modes. The built-in RTV plugin is enabled by default.
Server Commands
Command | Description |
---|---|
css_gamemode | Sets the current mode. |
css_warmupmode | Schedules and sets the game mode to be used during the warmup period. |
css_endwarmup | Ends the custom warmup mode, transitioning to the scheduled or default game mode. |
css_startwarmup | Immediately starts a custom warmup mode with the specified mode. |
css_timelimit <true|false> | Enables or disables a time limit for the map. Optionally, you can specify the time limit in seconds. |
css_rtv_extend <true|false> | Enables or disables extending the current map. |
css_rtv_enabled <true|false> | Enables or disables the Rock the Vote (RTV) system. |
css_rtv_duration | Sets the duration of an RTV vote in seconds. |
css_rtv_max_extends | Sets the maximum number of times a map can be extended via RTV. |
css_rtv_end_of_map_vote <true|false> | Enables or disables a vote to change the map at the end of the current map. |
css_rtv_rounds_before_end | Sets the number of rounds remaining before an end-of-map vote can be initiated. |
css_rtv_seconds_before_end | Sets the number of seconds remaining before an end-of-map vote can be initiated. |
css_rtv_start_vote <true|false> | Starts an RTV vote with a specified duration. You can immediately change the map or game mode. |
Admin Commands
Command | Description |
---|---|
!maps | Displays an admin menu for changing the map. |
!modes | Displays an admin menu for changing the game mode. |
!settings | Displays an admin menu for enabling or disabling custom game settings. |
!mode | Changes the game mode to the mode specified. For example, for mg_surf you would do !mode surf. |
!map | Changes the map to the map specified. The workshop ID is optional. |
!timelimit <true|false> | Sets the time limit for the current map. |
!setting <enable|disable> | Enables or disables a custom game setting. For example, for enable_movement_unlock.cfg you would do !setting movement_unlock. |
Player Commands
Command | Description |
---|---|
!rtv | Rocks the vote! |
!game | Displays a dynamic menu of all player commands. |
!nominate | Nominates a map or game mode for the RTV vote. |
!nextmap | Displays the next map. |
!nextmode | Displays the next mode. |
!timeleft | Displays the time left in the current map. |
!currentmap | Displays the current map. |
!changemap | Displays a dynamic menu of all per-map votes that can be created. |
!currentmode | Displays the current game mode. |
!changemode | Displays a menu of all per-mode votes that can be created. |
!changesetting | Displays a menu of all per-setting votes that can be created. |
Important
If this is your first time setting up a modded server, I highly suggest checking out the CS2-Modded-Server Repo by Kus. It's a great resource for understanding how to set up custom game modes, which aren't included with this plugin. Additionally, it includes a preconfigured version of this plugin for beginners.
To get started, make sure all of the following prerequisites are met:
- All of your mode config files are located in
/csgo/cfg/
. - Both Metamode:Source and CounterStrikeSharp are installed.
- Your
gamemodes_server.txt
or custom map group file is in VDF Format and contains a list of map groups.
- Download the Latest Release.
- Copy the
addons
andcfg
folders to/csgo/
. - Update each game mode configuration file (i.e. comp.cfg) to include
css_gamemode <mode>
. - After the first run, update the configuration file
GameModeManager.json
.
For more information about the configuration of this plugin and the use of the Shared API, see our Wiki.
If you have a question, check out our FAQ and if you still need help, create a new issue.