Sentinel Guard in 10 Minuten installieren
Diese Anleitung führt dich durch Installation, Konfiguration und ersten Test der Anti-Cheat-Resource für deinen FXServer (FiveM).
Was Sentinel Guard ist
Sentinel Guard ist eine FXServer-Resource, die jeden Spieler aus Server-Perspektive beobachtet. Es gibt keine Client-DLL, keinen Treiber und keine Software, die der Spieler installieren muss.
Detections (Teleport, God-Mode, Waffen-Spawn, Vehicle-Mods, Noclip, Ped-Swap, Event-Flood, Aimbot-Heuristiken, Honeypots, Resource-Integrity und mehr) laufen Lua-seitig. Jedes auffällige Event wird HMAC-signiert an das Sentinel-Backend gesendet. Dort entscheidet eine Engine über Score, Cases und Auto-Aktionen (Kick/Ban). Aktuelle Resource-Version: 0.6.x.
Voraussetzungen
- FXServer (txAdmin oder Standalone) auf Linux oder Windows.
- Outbound-HTTPS auf
sentinelscan.de(Port 443). - Sentinel-Account auf /auth/login.
- Mindestens Guard-Starter-Tier — siehe Preise.
Resource installieren
- Lade das vorkonfigurierte ZIP aus Dashboard → Guard / AC Install (oder ein Release-Paket) in deinen resources/-Ordner:
# Prefer the preconfigured ZIP from Dashboard → Guard / AC Install # (license & server credentials are baked in). # Manual place into resources/ if you already have a package: cd /path/to/fxserver/resources unzip sentinel-ac-0.6.0.zip -d sentinel-ac
- In server.cfg aktivieren (möglichst weit oben):
ensure sentinel-ac
Server-ID & Secret
Im Dashboard einloggen auf /ac, dann Server → Neuen Server anlegen. Du bekommst zwei Werte:
server_id— eine UUID, identifiziert deinen Server.secret— wird für HMAC-Signaturen verwendet — nicht öffentlich teilen.
Trage beides ein in resources/sentinel-ac/config.lua:
Config = Config or {}
Config.BaseUrl = 'https://sentinelscan.de/sentinel-ac-api'
Config.ServerId = '01288a78-f27a-4dcf-8024-80b6c6156515'
Config.Secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
Config.ServerHeartbeatMs = 15000
Config.ClientHeartbeatMs = 10000
Config.WeaponPollMs = 4000
Config.VehicleModPollMs = 2500
Config.NoclipSampleMs = 1500
Config.PedModelPollMs = 3000Anschließend Server neu starten oder refresh; restart sentinel-ac.
Smoke-Test
Nach dem Start solltest du in der FXServer-Konsole sehen:
[sentinel-ac] resource_hash = a4f2c1d8b9e7… [sentinel-ac] action poller started
Im Dashboard unter /ac/servers erscheint dein Server online, mit Spielerzahl. Joine als Testspieler — er taucht auf unter /ac/players.
Manueller Kick zum Testen: Admin → Actions, Identifier eintragen, "kick" wählen, Begründung eingeben.
Rollen & Bypasses
Staff/Admins sollen nicht selber geflaggt werden. Trage ihre Identifier (z.B. steam:11000010ababcd) unter Admin → Rollen ein und wähle die nötigen Bypasses:
bypass_position— kein Teleport-Flag (z.B. /tp-Befehle)bypass_health— God-Mode während Testsbypass_weapon_spawn— wenn Admins Waffen gebenbypass_vehicle_mod— Custom-Tuner-Testsbypass_ped_model— Roleplay-Skinsbypass_invis— Stealth-Modbypass_event_flood— Skript-Tests mit hoher Event-Rate
Auto-Actions & Bans
Das System eskaliert automatisch:
- Score ≥ 100 → Auto-Kick (mit 5min Cooldown gegen Loops)
- Score ≥ 250 → Auto-Ban (persistent, blockt Re-Joins via Deferral)
Bans sind in der DB gespeichert (Tabelle ac_bans) und werden von der Lua-Resource bei jedem playerConnecting per HMAC-Check abgefragt. Manuelles Aufheben unter Admin → Bans.
Score-Decay: Standard −20 / Minute. Konfigurierbar per Backend-ENVSCORE_DECAY_PER_MINUTE
Discord-Alerts
Setze in deinem Backend (oder per Server-Setting) einen Webhook:
# backend .env DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/123…/abc…
Dann erhältst du Embeds bei Case-Open und Case-Eskalation (Severity-Aufstieg). Pro (Server, Identifier, Regel) ist das auf 1× / 5min rate-limited, damit Flap-Detections nicht spammen.
Rule-Overrides pro Server
Unter Admin → Regeln kannst du jede Regel pro Server anpassen:
- aktivieren / deaktivieren
- Severity überschreiben (low/medium/high/critical)
- Weight multiplizieren (0.0 – 10.0)
Beispiel: Drift-Server will vehicle_mod nicht flaggen → Toggle aus. Hardcore-PvP will weapon_spawn kritisch → Severity = critical, ×1.5.
Resource-Integrity
Die Lua-Resource hasht beim Start alle eigenen Script-Files (SHA-256) und schickt den Hash in jedem Server-Heartbeat. Im Backend (Tabelle ac_servers) kannst du den erwarteten Hash setzen:
UPDATE ac_servers SET expected_resource_hash = 'a4f2c1d8b9e7…' WHERE server_id = '<server UUID>';
Bei Mismatch wird automatisch ein Flag (severity=high, weight=35) gegen einen synthetischen __server__-Player erzeugt und ein Case geöffnet — du wirst sofort gewarnt, falls jemand Resource-Files manipuliert.
Troubleshooting
- "bad_signature" — in Backend-Logs → Server-Uhr stimmt nicht (HMAC-Timestamp hat 5min Toleranz). NTP einrichten.
- Spieler taucht nicht auf — Outbound-HTTPS blockiert? Test:
curl -I https://sentinelscan.de/sentinel-ac-api/health - Auto-Kick feuert, aber Spieler bleibt — Action-Poller-Log in der Konsole prüfen ("action poller started"). Bei 404 auf /api/v1/ac/actions/pending ist die Resource veraltet.
- Falsch positiv — Im Player-Detail das Flag "als FP markieren". Aggregierte FP-Stats unter /api/v1/ac/admin/review/fp-stats helfen beim Tuning.
Brauchst du Hilfe beim Setup?
Setup läuft vollständig per Self-Service über die Doku. Wenn etwas hakt, hilft dir der Support direkt im Ticket.
Support anschreiben