Skip to content

A Counter-Strike 2 server plugin to help administrators manage custom game modes, settings, and map rotations.

License

Notifications You must be signed in to change notification settings

nickj609/GameModeManager

Repository files navigation

Copyright Nickj609l GitHub License Issues GitHub Downloads (all assets, all releases) GitHub commits since latest release

GameModeManager

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.

Description

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.

Enjoying the plugin?

Please drop a ⭐ star in the repository

image

Credits

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.

Requirements

Built-in RTV Plugin

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.

Untitled2

Commands

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.

Getting Started

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.

Installation

  1. Download the Latest Release.
  2. Copy the addons and cfg folders to /csgo/.
  3. Update each game mode configuration file (i.e. comp.cfg) to include css_gamemode <mode>.
  4. 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.

Need Help?

If you have a question, check out our FAQ and if you still need help, create a new issue.

About

A Counter-Strike 2 server plugin to help administrators manage custom game modes, settings, and map rotations.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project

  •  

Contributors 3

  •  
  •  
  •  

Languages