# SCUE6 (Secure-Client) — Anti-Cheat Plugin for Unreal Engine 5.6+ (UE6-ready rewrite) > **Fork credit / original author** > > This project is a fork of **[BrUnOXaVIeRLeiTE/SCUE5-Plugin](https://github.com/BrUnOXaVIeRLeiTE/SCUE5-Plugin)** > by **Bruno Xavier B. Leite**, the original author of the SCUE4/SCUE5 "Secure-Client" > anti-cheat system. All credit for the original design and implementation belongs to him. > > This fork ([Louiml/SCUE5-Plugin-updated](https://github.com/Louiml/SCUE5-Plugin-updated)) > modernizes the plugin for Unreal Engine 5.6/5.7 (UE6-ready), improves the anti-cheat > capabilities (per-install encryption, real x64 anti-debug, code-integrity checks, > module scanning, anti-injection hooks, server-side movement validation, encrypted > heartbeat telemetry, and a rewritten external C++ Game-Guard), and fixes a number of > latent bugs — while preserving the original Blueprint-facing API so existing projects > keep compiling. > > The original system is published on the Unreal Engine Marketplace; Epic Games' > Marketplace terms still apply (see the original LICENSE below). Full rewrite of the SCUE5 plugin: per-install encryption, real 64-bit anti-debug, code integrity checks, module/DLL scanning, anti-injection hooks, server-side movement validation, encrypted heartbeat telemetry, and an external C++ Game-Guard. ## Known Limitations * Runtime module builds for **UE 5.6/5.7 Windows Win64** (won't break packaging for other platforms — non-Win64 builds compile out the guard code). * The optional **kernel driver** (`SCGuardDriver/`) is not included in this pass; it requires a separate WDK project and EV-code-signing/WHQL attestation. The plugin builds and runs **without** the driver (graceful degradation). * Anti-injection hooks require the vendored MinHook (see below). If absent, that one detector is disabled; everything else still runs. ## Requirements * Unreal Engine **5.6** or **5.7**. * To build the external Game-Guard: **CMake** + **Visual Studio 2022** (x64). * (Optional) MinHook source vendored under `Source/SCUE5/Private/ThirdParty/MinHook/`. ## How To Use — install 1. Close the Unreal Editor. 2. Copy the `Plugins/SCUE5` folder into your UE project's `Plugins/` directory. 3. Right-click your `.uproject` → **Generate Visual Studio project files**, then open the `.uproject`. 4. In the Editor: **Edit → Project Settings → Maps & Modes** → set **Game Instance Class** to `SafeGameInstance`. If you have a custom GameInstance, re-parent it to `USafeGameInstance`. 5. (Recommended) **Edit → Project Settings → Synaptech → Anti-Cheat Settings** → enable **bUsePerInstallKey** for per-install encryption. The first run generates a random key at `Saved/Config/SCUE5.key` (XOR-encrypted with a machine-ID mask so it's non-portable). ## How To Use — build the external Game-Guard (recommended) The in-process guard always runs. The external guard adds out-of-process detection that a cheat patching the game cannot disable. ```sh cd Plugins\SCUE5\Source\ThirdParty\SCUE6Guard cmake -S . -B build -G "Visual Studio 17 2022" -A x64 cmake --build build --config Release copy build\Release\SCUE6Guard.exe ..\x64\ ``` The plugin auto-launches `SCUE6Guard.exe` with the game PID and connects over a named pipe (`\\.\pipe\SCUE6Guard_`). ## How To Use — vendor MinHook (optional, enables anti-injection) ```sh cd Plugins\SCUE5\Source\SCUE5\Private\ThirdParty git clone --depth 1 https://github.com/TsudaKageyu/minhook MinHook ``` `SCUE5.Build.cs` auto-detects the folder and enables the hooking code. ## Safe Types The encrypted `FSafe*` types (Bool/Byte/Int/Float/Name/String/Text/Vector2D/3D/4D/ Color/Rotator/Transform) keep their **identical Blueprint API** from v2.x, so existing Blueprints compile unchanged. Internally they now store `sentinel + nonce + CRC8 + payload` substitution-encoded strings and raise a tamper event if the in-memory string is altered. ## Server-side validation `USCUE6ServerValidatorComponent` (reference) + the `FServerValidator` API validate replicated Safe-Type blobs authoritatively. Wire the kick/ban response to your session system via the `OnThreatDetected` Blueprint event on the GameInstance. ## Telemetry Heartbeat is written to `Saved/Logs/SCUE6_heartbeat.log` by default. Set `TelemetryEndpoint` to an HTTPS URL to POST payloads instead (provide your own `ISCTelemetrySink` for custom transports). ## Architecture ``` Source/SCUE5/ Public/ SCUE5.h — Settings, GameInstance, Guard Subsystem (aggregator) Crypto/ — SecureRandom, SubstitutionCipher, IntegrityHash SafeTypes/ — macro-generated encrypted value types + operators Guard/ — AntiDebug, ModuleScanner, AntiInjection, GuardClient Validation/ — MovementValidator, HeartbeatClient Private/ Crypto/, Guard/, Validation/ — implementations SCUE5.cpp — subsystem wiring Blueprints/SCLibrary.* — Blueprint function library (regenerated, API preserved) Source/ThirdParty/SCUE6Guard/ — standalone C++ external guard (CMake) ``` ## FAQs (updated) * **Will my old save-games still load?** Yes — the default cipher is the original ASCII substitution table, so existing encoded values decode unchanged. Enable `bUsePerInstallKey` for new installs only. * **Performance?** Get/Set is ~0.01ms (string encode/decode). Integrity CRC runs every 30s (configurable) off the game thread. * **Does Safe Types support SaveGame?** Yes — `Base`/`Shift`/`Flag`/`Internal` are `SaveGame`-tagged, identical to v2. --- **Original author:** Copyright (C) Bruno Xavier B. Leite — see [BrUnOXaVIeRLeiTE/SCUE5-Plugin](https://github.com/BrUnOXaVIeRLeiTE/SCUE5-Plugin). **Fork modifications** (UE6-ready rewrite + anti-cheat improvements): Louiml ([Louiml/SCUE5-Plugin-updated](https://github.com/Louiml/SCUE5-Plugin-updated)). Licensed per Epic Games Marketplace terms (original).