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.

No client install required. NeverCheat runs entirely on the server. Players don't need to install anything. It works alongside VAC and SourceMod bans.

Requirements

Install Plugin (Pre-built)

If you downloaded the pre-built .so (Linux) or .dll (Windows):

  1. 01
    Copy the plugin binary
    Place nevercheat.so into your server's addons/nevercheat/bin/ folder. Create the folder if it doesn't exist.
  2. 02
    Copy the VDF file
    Place nevercheat.vdf into addons/metamod/. This tells Metamod to load the plugin at startup.
  3. 03
    Set your ConVars
    Add the following to your cfg/server.cfg or cfg/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
  1. 04
    Start your server
    You should see [NeverCheat] v2.4.1 loaded. Anti-cheat active. in the server console. If not, check Metamod is loaded first with meta list.

Build from Source

Note: Building requires the Metamod:Source SDK and HL2SDK for CS2. These are large dependencies. Only do this if you need to modify the plugin.

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.

  1. 01
    Host the files
    Upload all .html files to a web server or open index.html locally. No backend required — the dashboard uses localStorage for session state.
  2. 02
    Log in as a server admin
    Go to login.html. Any username/password works for the demo. In production, integrate with your own auth backend.
  3. 03
    Configure your Discord webhook
    In the dashboard → Webhook tab, paste your Discord webhook URL and click Save. Test it with the test button.
  4. 04
    Copy your plugin token
    In Settings → Server Info, copy your plugin token. This goes into your server.cfg as nc_server_token (for future API sync).

Discord Webhook

Create a webhook in Discord

  1. Go to your Discord server → the channel you want ban alerts in
  2. Channel Settings → Integrations → Webhooks → New Webhook
  3. Name it (e.g. NeverCheat Bans), copy the URL
  4. Paste the URL into nc_discord_webhook in your server.cfg

What the alert looks like

🔨 Player Banned
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.

CredentialValue
URLceo-login.html
UsernameCEO
PasswordCasino777!
Change the CEO password before deploying to production. Edit ceo-login.html and replace the hardcoded credentials with a proper backend auth check.

From the CEO dashboard you can:

ConVars Reference

ConVarDefaultDescription
nc_enabled1Master on/off switch
nc_min_confidence85Minimum confidence % to trigger auto-ban
nc_discord_webhook""Full Discord webhook URL
nc_aim_sensitivity75Aim snap detection sensitivity (1–100)
nc_recoil_sensitivity80Recoil pattern detection sensitivity (1–100)
nc_bhop_max_perfect4Consecutive perfect bhops before flagging
nc_triggerbot_min_ms30Reaction time (ms) below which is flagged
nc_log_all_flags1Print every individual flag to server console
nc_ban_duration0Ban 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.

ModuleMax contributionTuning ConVar
Aim analysis40%nc_aim_sensitivity
Recoil pattern35%nc_recoil_sensitivity
Bhop / movement25%nc_bhop_max_perfect
Triggerbot35%nc_triggerbot_min_ms
Tip: Start with 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).