Files
CS2-SimpleAdmin/CS2-SimpleAdmin-docs/docs/user/configuration.md
Dawid Bepierszcz b0d8696756 Add CS2-SimpleAdmin documentation site
Introduces a new documentation site for CS2-SimpleAdmin using Docusaurus, including developer API references, tutorials, user guides, and module documentation. Removes the CleanModule example and updates FunCommands and ExampleModule. Also updates main plugin and API files to support new documentation and module structure.
2025-10-20 01:27:01 +02:00

9.2 KiB

sidebar_position
sidebar_position
3

Configuration

Learn how to configure CS2-SimpleAdmin to suit your server's needs.

Configuration File Location

The main configuration file is located at:

addons/counterstrikesharp/configs/plugins/CS2-SimpleAdmin/CS2-SimpleAdmin.json

Configuration Structure

The configuration file is divided into several sections:

Database Configuration

Configure your database connection:

"DatabaseConfig": {
  "DatabaseType": "SQLite",
  "SqliteFilePath": "cs2-simpleadmin.sqlite",
  "DatabaseHost": "",
  "DatabasePort": 3306,
  "DatabaseUser": "",
  "DatabasePassword": "",
  "DatabaseName": "",
  "DatabaseSSlMode": "preferred"
}

Database Types:

  • SQLite - Local database file (good for single server)
  • MySQL - MySQL/MariaDB server (required for multi-server setups)

MySQL Example:

"DatabaseConfig": {
  "DatabaseType": "MySQL",
  "DatabaseHost": "localhost",
  "DatabasePort": 3306,
  "DatabaseUser": "cs2admin",
  "DatabasePassword": "your_password",
  "DatabaseName": "cs2_simpleadmin",
  "DatabaseSSlMode": "preferred"
}

Other Settings

General plugin settings:

"OtherSettings": {
  "ShowActivityType": 2,
  "TeamSwitchType": 1,
  "KickTime": 5,
  "BanType": 1,
  "TimeMode": 1,
  "DisableDangerousCommands": true,
  "MaxBanDuration": 10080,
  "MaxMuteDuration": 10080,
  "ExpireOldIpBans": 0,
  "ReloadAdminsEveryMapChange": false,
  "DisconnectedPlayersHistoryCount": 10,
  "NotifyPenaltiesToAdminOnConnect": true,
  "ShowBanMenuIfNoTime": true,
  "UserMessageGagChatType": false,
  "CheckMultiAccountsByIp": true,
  "AdditionalCommandsToLog": [],
  "IgnoredIps": []
}

Settings Explained:

Setting Description Default
ShowActivityType How to display admin actions (0=hide, 1=anonymous, 2=show name) 2
TeamSwitchType Team switch behavior 1
KickTime Delay before kicking player (seconds) 5
BanType Ban type (1=SteamID, 2=IP, 3=Both) 1
TimeMode Time display mode 1
DisableDangerousCommands Disable potentially dangerous commands true
MaxBanDuration Maximum ban duration in minutes (0=unlimited) 10080
MaxMuteDuration Maximum mute duration in minutes (0=unlimited) 10080
ExpireOldIpBans Auto-expire IP bans after X days (0=disabled) 0
ReloadAdminsEveryMapChange Reload admin permissions on map change false
DisconnectedPlayersHistoryCount Number of disconnected players to track 10
NotifyPenaltiesToAdminOnConnect Show penalties to admins when they connect true
ShowBanMenuIfNoTime Show ban menu even without time parameter true
UserMessageGagChatType Use UserMessage for gag (alternative chat blocking) false
CheckMultiAccountsByIp Detect multiple accounts from same IP true
AdditionalCommandsToLog Array of additional commands to log []
IgnoredIps IPs to ignore in multi-account detection []

Metrics and Updates

"EnableMetrics": true,
"EnableUpdateCheck": true
  • EnableMetrics - Send anonymous usage statistics
  • EnableUpdateCheck - Check for plugin updates on load

Timezone

Set your server's timezone for accurate timestamps:

"Timezone": "UTC"

See the list of timezones below.

Warning Thresholds

Configure automatic actions when players reach warning thresholds:

"WarnThreshold": {
  "998": "css_addban STEAMID64 60 \"3/4 Warn\"",
  "999": "css_ban #USERID 120 \"4/4 Warn\""
}

Example: Automatically ban a player for 60 minutes when they receive their 3rd warning.

Multi-Server Mode

Enable if you're running multiple servers with a shared database:

"MultiServerMode": true

When enabled:

  • Bans are shared across all servers
  • Admin permissions can be global or server-specific
  • Player data is synchronized

Discord Integration

Send notifications to Discord webhooks:

"Discord": {
  "DiscordLogWebhook": "https://discord.com/api/webhooks/...",
  "DiscordPenaltyBanSettings": [...],
  "DiscordPenaltyMuteSettings": [...],
  "DiscordPenaltyGagSettings": [...],
  "DiscordPenaltySilenceSettings": [...],
  "DiscordPenaltyWarnSettings": [...],
  "DiscordAssociatedAccountsSettings": [...]
}

Webhook Settings: Each penalty type can have its own webhook configuration:

"DiscordPenaltyBanSettings": [
  {
    "name": "Color",
    "value": "#FF0000"
  },
  {
    "name": "Webhook",
    "value": "https://discord.com/api/webhooks/YOUR_WEBHOOK_HERE"
  },
  {
    "name": "ThumbnailUrl",
    "value": "https://example.com/ban-icon.png"
  },
  {
    "name": "ImageUrl",
    "value": ""
  },
  {
    "name": "Footer",
    "value": "CS2-SimpleAdmin"
  },
  {
    "name": "Time",
    "value": "{relative}"
  }
]

Available Placeholders:

  • {relative} - Relative timestamp
  • {fixed} - Fixed timestamp

Map Configuration

Configure default maps and workshop maps:

"DefaultMaps": [
  "de_dust2",
  "de_mirage",
  "de_inferno"
],
"WorkshopMaps": {
  "aim_map": "123456789",
  "surf_map": "987654321"
}

Custom Server Commands

Add custom commands to the admin menu:

"CustomServerCommands": [
  {
    "Flag": "@css/root",
    "DisplayName": "Reload Admins",
    "Command": "css_reloadadmins"
  },
  {
    "Flag": "@css/cheats",
    "DisplayName": "Enable sv_cheats",
    "Command": "sv_cheats 1"
  }
]

Menu Configuration

Configure menu appearance and options:

"MenuConfig": {
  "MenuType": "selectable",
  "Durations": [
    { "name": "1 minute", "duration": 1 },
    { "name": "5 minutes", "duration": 5 },
    { "name": "15 minutes", "duration": 15 },
    { "name": "1 hour", "duration": 60 },
    { "name": "1 day", "duration": 1440 },
    { "name": "7 days", "duration": 10080 },
    { "name": "14 days", "duration": 20160 },
    { "name": "30 days", "duration": 43200 },
    { "name": "Permanent", "duration": 0 }
  ],
  "BanReasons": [
    "Hacking",
    "Voice Abuse",
    "Chat Abuse",
    "Admin disrespect",
    "Other"
  ],
  "KickReasons": [
    "Voice Abuse",
    "Chat Abuse",
    "Admin disrespect",
    "Other"
  ],
  "WarnReasons": [
    "Voice Abuse",
    "Chat Abuse",
    "Admin disrespect",
    "Other"
  ],
  "MuteReasons": [
    "Advertising",
    "Spamming",
    "Spectator camera abuse",
    "Hate",
    "Admin disrespect",
    "Other"
  ],
  "AdminFlags": [
    { "name": "Generic", "flag": "@css/generic" },
    { "name": "Chat", "flag": "@css/chat" },
    { "name": "Change Map", "flag": "@css/changemap" },
    { "name": "Slay", "flag": "@css/slay" },
    { "name": "Kick", "flag": "@css/kick" },
    { "name": "Ban", "flag": "@css/ban" },
    { "name": "Perm Ban", "flag": "@css/permban" },
    { "name": "Unban", "flag": "@css/unban" },
    { "name": "Show IP", "flag": "@css/showip" },
    { "name": "Cvar", "flag": "@css/cvar" },
    { "name": "Rcon", "flag": "@css/rcon" },
    { "name": "Root (all flags)", "flag": "@css/root" }
  ]
}

Timezone List

Click to expand timezone list
UTC
America/New_York
America/Chicago
America/Denver
America/Los_Angeles
Europe/London
Europe/Paris
Europe/Berlin
Europe/Warsaw
Europe/Moscow
Asia/Tokyo
Asia/Shanghai
Asia/Dubai
Australia/Sydney
Pacific/Auckland
... (and many more)

For a complete list, see the info.txt file in the documentation folder.

Commands Configuration

You can customize command aliases in:

addons/counterstrikesharp/configs/plugins/CS2-SimpleAdmin/Commands.json

Example:

{
  "Commands": {
    "css_ban": {
      "Aliases": [
        "css_ban",
        "css_ban2"
      ]
    }
  }
}

This allows you to:

  • Disable commands - Remove all aliases from the array
  • Add aliases - Add multiple command variations
  • Rename commands - Change the command name while keeping functionality

Best Practices

Security

  1. Use MySQL in production - SQLite is not suitable for multi-server setups
  2. Set MaxBanDuration - Prevent accidental permanent bans
  3. Enable DisableDangerousCommands - Protect against accidental server crashes
  4. Use strong database passwords - If using MySQL

Performance

  1. Set ReloadAdminsEveryMapChange to false - Unless you frequently modify admin permissions
  2. Limit DisconnectedPlayersHistoryCount - Reduce memory usage
  3. Use database indices - Migrations create these automatically

Multi-Server Setup

  1. Enable MultiServerMode - Share data across servers
  2. Use MySQL - Required for multi-server
  3. Configure server IDs - Each server gets a unique ID automatically
  4. Test penalties - Ensure bans work across all servers

Troubleshooting

Changes not taking effect

Solution: Reload the plugin or restart the server:

css_plugins reload CS2-SimpleAdmin

Discord webhooks not working

Solution:

  • Verify webhook URL is correct
  • Check that the webhook is not deleted in Discord
  • Ensure server has internet access

TimeMode issues

Solution: Set your timezone correctly in the configuration

Next Steps