SCUE5 Plugin Updated
PublicFork of the SCUE plugin, updated for Unreal Engine 5.
| Name | Size |
|---|---|
| Plugins , directory | |
| .gitignore | 500 B |
| LICENSE | 271 B |
| LICENSE.txt | 384 B |
| README.md | 5.9 KB |
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 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) 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
- Close the Unreal Editor.
- Copy the
Plugins/SCUE5folder into your UE project'sPlugins/directory. - Right-click your
.uproject→ Generate Visual Studio project files, then open the.uproject. - In the Editor: Edit → Project Settings → Maps & Modes → set
Game Instance Class to
SafeGameInstance. If you have a custom GameInstance, re-parent it toUSafeGameInstance. - (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.
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_<pid>).
How To Use — vendor MinHook (optional, enables anti-injection)
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
bUsePerInstallKeyfor 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/InternalareSaveGame-tagged, identical to v2.
Original author: Copyright (C) Bruno Xavier B. Leite — see BrUnOXaVIeRLeiTE/SCUE5-Plugin. Fork modifications (UE6-ready rewrite + anti-cheat improvements): Louiml (Louiml/SCUE5-Plugin-updated).
Licensed per Epic Games Marketplace terms (original).