Skip to content

Features

shmitzas edited this page May 5, 2026 · 9 revisions

MixScrims provides a complete suite of features for running professional-quality PUG matches on your CS2 server.

Core Features

Full In-Game Match Management

Everything is managed directly on the server through chat commands and menus. No external panels, websites, or third-party services required. Players can start, manage, and complete matches entirely within the game.

Automated Match Flow

The plugin handles the entire match lifecycle automatically:

  • Warmup - Players join and ready up
  • Map Voting - Democratic map selection
  • Captain Selection - Random or manual captain assignment
  • Team Picking - Captains alternate picking players
  • Knife Round - Determine starting sides
  • Competitive Match - Full CS2 competitive rules

Each phase transitions smoothly to the next, with clear announcements and instructions for players.

Team Timeout System

Teams can call tactical timeouts during matches:

  • Requires majority team vote to activate
  • Configurable number of timeouts per team (default: 3)
  • Adjustable timeout duration (default: 60 seconds)
  • Vote initiated with !timeout or !pause command
  • Prevents abuse through voting system

Surrender System

Teams can vote to end the match early:

  • Requires majority team vote
  • Ends match immediately if passed
  • Useful for unbalanced matches or when players need to leave
  • Initiated with !surrender or !ff command

Vote Kick System

Remove disruptive players from an active match through team consensus:

  • Available during the Match phase only
  • Calling player nominates a teammate for removal
  • All other teammates must vote Yes to proceed — unanimous agreement required
  • A single No vote immediately cancels the kick
  • Timer-based vote window (configurable via VoteKickTime, default: 30 seconds)
  • CenterHTML progress overlay updates in real-time after each vote cast
  • CT and T teams can run simultaneous, independent votes
  • Players cannot initiate a vote against themselves
  • Spectators and bots are excluded
  • Initiated with !votekick <name> or !vk <name> command
  • Can be disabled via VoteKick.Enabled: false

Player Leave Punishment

Discourage match abandonment with automatic punishment:

  • Configurable sensitivity levels (match only, knife round+, team picking+)
  • Grace period before punishment applies (default: 5 minutes)
  • Customizable ban commands and durations
  • Helps maintain match integrity
  • See Configuration for details

Discord Integration

Keep your community informed with rich webhook notifications:

  • Send invites when server needs more players
  • Rich Discord embeds with customizable colors, fields, and formatting
  • Configurable webhook messages with role mentions
  • Server connect info included automatically
  • Cooldown system prevents spam (default: 5 minutes)
  • Multiple webhook support for different Discord servers/channels
  • Configured in separate discord_config.jsonc file
  • Initiated with !invite or !inv command

Map Voting System

Democratic map selection with smart features:

  • All ready players vote for preferred map
  • Configurable voting duration (default: 30 seconds)
  • Players can change votes with !revote command
  • Recent maps automatically excluded from voting (configurable count, default: 2 maps)
  • Supports both official and workshop maps
  • Individual maps can be marked as non-votable while remaining in pool
  • Vote results announced in real-time
  • Custom display names for map presentation

Captain System

Flexible team leader selection:

  • Random Selection - System picks two captains automatically
  • Manual Selection - Admins choose specific players with !captain command
  • Volunteer System - Players can volunteer with !volunteer_captain (if enabled)
  • Team names automatically set to captain names
  • Can be completely disabled if preferred

Knife Round

Fair side selection through skill-based competition:

  • Knife-only warmup round
  • Winning team captain chooses starting side
  • Options: !stay to keep sides or !switch to swap
  • Menu-based selection available
  • Creates competitive atmosphere from the start

Auto-Configuration

Server automatically executes appropriate configs for each phase:

  • warmup.cfg - Initial warmup and post-map-change warmup
  • teampick.cfg - Team picking phase
  • knife_round.cfg - Knife round specific settings
  • match_start.cfg - Competitive match configuration
  • staging_overrides.cfg - Test mode additions (bots, etc.)
  • production_overrides.cfg - Production environment settings

All configs are fully customizable to match your server preferences.

Highly Configurable

Extensive JSON configuration with options for:

  • Match requirements (minimum players, ready requirements)
  • Phase control (skip map voting, skip team picking, disable captains)
  • Captain selection timing (configurable delay)
  • Timeout and surrender settings
  • Discord webhook configuration
  • Player punishment settings
  • Command aliases and permissions
  • Map pool management
  • Chat announcement timers (with independent enable/disable toggles)
  • Ready status display options (scoreboard/center HTML)
  • Match access control (prevent unpicked players from joining)
  • And much more...

See the Configuration page for complete details.

Command System & Permissions

Flexible command management with built-in permission support:

  • Permission-Based Access - Restrict admin commands with custom permission flags
  • Command Aliases - Multiple aliases per command (e.g., !r, !ready both work)
  • 10 Player Commands - Ready/unready, voting, timeouts, surrenders, vote kicks, invites
  • 8 Admin Commands - Match control, captain assignment, map changes, force ready
  • Fully Customizable - Edit command names and aliases in configuration
  • Integrates with Swiftly's permission system

Default admin permission: managemix for all administrative commands.

Chat Announcement System

Automated timed reminders keep players informed:

  • Ready Status Announcements - Periodic updates on who needs to ready (configurable interval, default: 30s)
  • Captain Announcements - Regular reminders during captain selection phase (configurable interval, default: 30s)
  • Command Reminders - Helpful reminders about available commands like !timeout, !ready, !invite (configurable interval, default: 320s)
  • Customizable Intervals - Each announcement type has independent timing controls
  • Localized Reminders - Specify which commands to remind about via localization keys
  • Automatically pauses when not relevant to current match state

Multi-Language Support

Built-in localization system:

  • English, Portuguese (Brazilian), and Simplified Chinese included
  • Easy to add new languages
  • Color code support in messages
  • Consistent terminology across all phases
  • All player-facing text is translatable

See Localization for adding new languages.

Comprehensive Plugin API

Full integration support for other Swiftly plugins via the IMixScrims interface:

Complete Match Control

  • Monitor and set match states across all 11 phases (Warmup, MapVoting, MapLoading, MapChosen, PickingTeam, KnifeRound, PickingStartingSide, Match, Timeout, Ended, Reset)
  • Control entire match flow programmatically (start warmup, voting, picking, knife round, match)
  • Pause matches with timeout control for both teams
  • Force team surrenders or cancel matches programmatically
  • Change maps dynamically with both official and workshop map support

Team & Player Management

  • Set custom team names for CT and T sides
  • Assign specific players as team captains
  • Manage picked player lists during team selection phase
  • Control active player rosters during live matches
  • Force all players ready/unready states
  • Kick non-participating or unpicked players
  • Prevent new players from joining during active matches

Advanced Integration Capabilities

  • Build custom matchmaking systems with automated team assignment
  • Create tournament automation with predefined teams and brackets
  • Implement skill-based team balancing algorithms
  • Control punishment queue for players who abandon matches
  • Handle timeouts and surrenders through external systems
  • Monitor plugin state (Production vs Staging/Test mode)

40+ API Methods organized across 10 categories: state management, team configuration, match flow control, timeout & surrender, player management, picked players (CT/T), playing players (CT/T), and punishment system. Perfect for building custom matchmaking plugins, tournament systems, ELO/ranking integrations, or anti-cheat systems.

The API enables complete external control while maintaining match integrity. Use cases include automated skill-based team creation, integration with Discord bots for match management, custom admin panels, and tournament bracket systems.

See API Integration for complete documentation, method reference, and integration examples.

Phase Control Options

MixScrims allows you to customize which phases run:

Skip Map Voting

Set SkipMapVoting: true to bypass map voting and use:

  • Random map from pool
  • First map in configuration
  • Useful for servers that want to set specific maps

Skip Team Picking

Set SkipTeamPicking: true to bypass team picking phase and use:

  • Random team assignment
  • Players stay on teams they join
  • Faster match starts

Disable Captains

Set DisableCaptains: true to remove captain system entirely:

  • No captain selection
  • Works with or without team picking
  • Teams named by side (CT/T) instead of captain names

Allow Volunteer Captains

Set AllowVolunteerCaptains: true to let players volunteer:

  • Players use !volunteer_captain <t/ct> to volunteer
  • Volunteers take priority over random selection
  • Must specify which team to captain

Testing Features

Test Mode

Enable TestMode: true for development and testing:

  • Loads staging config with bots
  • Lower player requirements
  • Detailed logging enabled
  • Quick testing of match flow

Detailed Logging

Enable DetailedLogging: true for verbose debug output:

  • State transitions logged
  • Player actions tracked
  • Useful for troubleshooting
  • Can be enabled independently of test mode

Match Quality Features

FACEIT-Style Damage Control

Enable FaceitLikeDamageControl: true for:

  • Friendly fire damage reflection
  • Prevents intentional team damage
  • Mirrors FACEIT competitive environment

Overflow Player Management

Enable MoveOverflowPlayersToSpec: true to:

  • Automatically move extra players (beyond 10) to spectator
  • Keeps team balance
  • Prevents overfilled teams

Match Access Control

Enable PreventNotPickedPlayersFromJoiningOngoingMatch: true to:

  • Block players who weren't picked from joining active matches
  • Maintains roster integrity during competitive play
  • Prevents disruption from late joiners
  • Only affects players present during team selection

Ready Status Display

Multiple options for showing player ready states:

  • Scoreboard Display - Set ShowReadyStatusInScoreboard: true to show ready indicators next to player names
  • Center HTML Panel - Set ShowReadyStatusInCenterHtml: true for a central ready status widget
  • Both can be enabled simultaneously or disabled entirely
  • Provides visual feedback during warmup phase

Ready Requirements

Configure how matches start:

  • MinimumReadyPlayers - Minimum players needed (default: 10)
  • RequireAllConnectedPlayersToBeReady - If true, ALL connected players must ready, not just minimum count
  • AdminCommandsBypassPlayerLimit - If true, admins can use !forceready, !forceunready, and !mix_start even when fewer than MinimumReadyPlayers are connected (default: false)
  • Prevents matches starting with AFK players

Feature Summary Table

Feature Configurable Can Skip Default State
Match Management ✅ Yes ❌ No Always Active
Warmup/Ready System ✅ Yes ❌ No Always Active
Map Voting ✅ Yes ✅ Yes Active
Captain Selection ✅ Yes ✅ Yes Active
Team Picking ✅ Yes ✅ Yes Active
Knife Round ❌ No ❌ No Always Active
Competitive Match ✅ Yes ❌ No Always Active
Team Timeouts ✅ Yes ✅ Yes Active
Surrender Voting ✅ Yes ❌ No Always Active
Discord Integration ✅ Yes ✅ Yes Disabled
Player Punishment ✅ Yes ✅ Yes Disabled
Volunteer Captains ✅ Yes ✅ Yes Disabled
Match Access Control ✅ Yes ✅ Yes Disabled
Ready Status Display ✅ Yes ✅ Yes Active
Chat Announcements ✅ Yes ✅ Yes Active
Vote Kick ✅ Yes ✅ Yes Disabled
Command System (23 Cmds) ✅ Yes ❌ No Always Active
Multi-Language ✅ Yes ❌ No Always Active
Plugin API (40+ Methods) ❌ No ❌ No Always Active

Next Steps:

Clone this wiki locally