Skip to main content

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:

SettingDescriptionDefault
ShowActivityTypeHow to display admin actions (0=hide, 1=anonymous, 2=show name)2
TeamSwitchTypeTeam switch behavior1
KickTimeDelay before kicking player (seconds)5
BanTypeBan type (1=SteamID, 2=IP, 3=Both)1
TimeModeTime display mode1
DisableDangerousCommandsDisable potentially dangerous commandstrue
MaxBanDurationMaximum ban duration in minutes (0=unlimited)10080
MaxMuteDurationMaximum mute duration in minutes (0=unlimited)10080
ExpireOldIpBansAuto-expire IP bans after X days (0=disabled)0
ReloadAdminsEveryMapChangeReload admin permissions on map changefalse
DisconnectedPlayersHistoryCountNumber of disconnected players to track10
NotifyPenaltiesToAdminOnConnectShow penalties to admins when they connecttrue
ShowBanMenuIfNoTimeShow ban menu even without time parametertrue
UserMessageGagChatTypeUse UserMessage for gag (alternative chat blocking)false
CheckMultiAccountsByIpDetect multiple accounts from same IPtrue
AdditionalCommandsToLogArray of additional commands to log[]
IgnoredIpsIPs 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"
}
]

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