NeverCheat Documentation
Complete setup guide for the NeverCheat CS2 anti-cheat plugin, web dashboards, and Discord webhook integration.
Overview
NeverCheat is a server-side Metamod:Source plugin for CS2. It hooks into the game server's tick loop and analyses player data directly — no client software required, no VAC dependency.
When a player is flagged with sufficient confidence, the plugin fires a sm_ban command and sends an embed to your Discord webhook automatically.
Requirements
- CS2 Dedicated Server — any OS (Linux recommended)
- Metamod:Source 2.x — must be installed first (sourcemm.net)
- SourceMod 1.12+ — required for
sm_bancommand - libcurl — for Discord webhook (
apt install libcurl4-openssl-dev) - For building from source: GCC 11+ or Clang 14+, CMake 3.16+
Install Plugin (Pre-built)
If you downloaded the pre-built .so (Linux) or .dll (Windows):
-
01
Copy the plugin binaryPlace
nevercheat.sointo your server'saddons/nevercheat/bin/folder. Create the folder if it doesn't exist. -
02
Copy the VDF filePlace
nevercheat.vdfintoaddons/metamod/. This tells Metamod to load the plugin at startup. -
03
Set your ConVarsAdd the following to your
cfg/server.cfgorcfg/autoexec.cfg:
// NeverCheat config — add to server.cfg nc_enabled 1 nc_min_confidence 85 // % confidence required to auto-ban nc_discord_webhook "https://discord.com/api/webhooks/YOUR_ID/YOUR_TOKEN" nc_aim_sensitivity 75 // 1-100 nc_recoil_sensitivity 80 // 1-100 nc_bhop_max_perfect 4 // consecutive perfect bhops before flag nc_triggerbot_min_ms 30 // reaction time below this = suspicious nc_log_all_flags 1 // log every flag to console nc_ban_duration 0 // 0 = permanent
-
04
Start your serverYou should see
[NeverCheat] v2.4.1 loaded. Anti-cheat active.in the server console. If not, check Metamod is loaded first withmeta list.
Build from Source
1. Get dependencies
# Clone the SDKs git clone https://github.com/alliedmodders/mmsource-10 git clone https://github.com/alliedmodders/hl2sdk --branch cs2 # Install libcurl apt install libcurl4-openssl-dev cmake build-essential
2. Configure and build
cd nevercheat/plugin mkdir build && cd build cmake .. \ -DMMSOURCE_PATH=/path/to/mmsource-10 \ -DHL2SDK_CS2=/path/to/hl2sdk make -j$(nproc)
3. Output
The compiled plugin will be at build/nevercheat.so. Follow the install steps above.
Dashboard Setup
The web dashboard is a set of static HTML files. You can host them anywhere — a VPS, GitHub Pages, or just open locally in a browser.
-
01
Host the filesUpload all
.htmlfiles to a web server or openindex.htmllocally. No backend required — the dashboard useslocalStoragefor session state. -
02
Log in as a server adminGo to
login.html. Any username/password works for the demo. In production, integrate with your own auth backend. -
03
Configure your Discord webhookIn the dashboard → Webhook tab, paste your Discord webhook URL and click Save. Test it with the test button.
-
04
Copy your plugin tokenIn Settings → Server Info, copy your plugin token. This goes into your
server.cfgasnc_server_token(for future API sync).
Discord Webhook
Create a webhook in Discord
- Go to your Discord server → the channel you want ban alerts in
- Channel Settings → Integrations → Webhooks → New Webhook
- Name it (e.g. NeverCheat Bans), copy the URL
- Paste the URL into
nc_discord_webhookin yourserver.cfg
What the alert looks like
Player: xX_l33t_Xx | SteamID: STEAM_0:1:12345678
Confidence: 97.4% | Detections: aim_snap recoil_script
NeverCheat v2.4.1
The webhook fires immediately when a ban is executed. It includes the player name, SteamID, confidence score, and which detection modules triggered.
CEO Dashboard
The CEO dashboard is a separate panel for managing all servers and client accounts across your whole network.
| Credential | Value |
|---|---|
| URL | ceo-login.html |
| Username | CEO |
| Password | Casino777! |
ceo-login.html and replace the hardcoded credentials with a proper backend auth check.From the CEO dashboard you can:
- View health of all servers at a glance
- Send commands to individual server consoles
- Manage client accounts (add, suspend, assign plans)
- View and export the global ban list across all servers
- Configure system-wide thresholds and settings
ConVars Reference
| ConVar | Default | Description |
|---|---|---|
| nc_enabled | 1 | Master on/off switch |
| nc_min_confidence | 85 | Minimum confidence % to trigger auto-ban |
| nc_discord_webhook | "" | Full Discord webhook URL |
| nc_aim_sensitivity | 75 | Aim snap detection sensitivity (1–100) |
| nc_recoil_sensitivity | 80 | Recoil pattern detection sensitivity (1–100) |
| nc_bhop_max_perfect | 4 | Consecutive perfect bhops before flagging |
| nc_triggerbot_min_ms | 30 | Reaction time (ms) below which is flagged |
| nc_log_all_flags | 1 | Print every individual flag to server console |
| nc_ban_duration | 0 | Ban duration in minutes (0 = permanent) |
Detection Tuning
Each detection module contributes a score toward the overall confidence percentage. A ban only fires when the combined confidence reaches nc_min_confidence.
| Module | Max contribution | Tuning ConVar |
|---|---|---|
| Aim analysis | 40% | nc_aim_sensitivity |
| Recoil pattern | 35% | nc_recoil_sensitivity |
| Bhop / movement | 25% | nc_bhop_max_perfect |
| Triggerbot | 35% | nc_triggerbot_min_ms |
nc_min_confidence 90 on competitive servers to minimize false positives. Lower to 80 for casual servers where you want more aggressive detection.FAQ
Does it work with SourceMod?
Yes. NeverCheat uses sm_ban from SourceMod to execute bans. SourceMod 1.12+ must be installed.
Will it catch all cheats?
No anti-cheat catches everything. NeverCheat focuses on behavioural detection — things that produce statistically anomalous server-side data. Subtle cheats with humanization may not be caught immediately, but usually accumulate flags over multiple rounds.
How do I appeal a ban?
From the dashboard, go to Ban List and click Unban next to a player. You can also run sm_unban STEAM_0:X:XXXXXXXX from the server console.
Is the dashboard connected to the plugin in real time?
In the current version, the dashboard is a standalone UI. For live data sync, you'd connect the plugin to a backend API (see the API reference). The console log in the dashboard is illustrative of what you'd see in your actual server console.
Can I run it on Windows?
Yes — build the plugin targeting Windows and it produces a .dll. The CMakeLists.txt handles both. You'll need libcurl for Windows as well (vcpkg works well for this).