Description
Sekury – Server Security & Management Suite
new user command :
/report
English | Deutsch
English
Sekury is an all-in-one security, backup, and administration plugin for Hytale servers. Web dashboard, automated backups, logging, anti-cheat, cluster support, player inventory management, and a full permission system — everything in one plugin.
⚠️ SSL Warning: If your cluster nodes are not on the same network, enable SSL to protect your API endpoints.
Database Support
MariaDB, MySQL, SQLite, and MongoDB. Built-in migration tool to switch between database types without data loss. Schema updates happen automatically on startup. (MongoDB is experimental)
Setup
On first start, a setup wizard in your browser guides you through database config and admin user creation. No config files to edit manually.
Authentication & Security
- Two-Factor Authentication (TOTP) with recovery keys
- BCrypt password hashing
- API key management with timing-attack protection
- Cloudflare Turnstile bot protection
- Configurable rate limiting per endpoint type
- Security headers (HttpOnly, Secure, SameSite, CSP, X-Frame-Options)
- Session management with Cookie and Bearer Token support
Permissions & Groups
- Role-based system with group inheritance and cycle detection
- 30+ granular permission keys
- Node-level permissions for cluster setups
- Settings are automatically filtered based on user permissions
- Default groups: Admin, Moderator, Viewer (customizable)
- Visual permission editor in the dashboard
User Management
Create, edit, delete users. Assign groups, force password changes, see 2FA status — all from the web UI.
Backups
- Scheduled or manual, local or S3-compatible (AWS, MinIO, R2, etc.)
- Multipart upload with retry and exponential backoff
- Retention limits with auto-cleanup
- Real-time progress via SSE (phase, percentage, bytes)
- Full backup history with filters (trigger, status, server)
- Download and delete from the dashboard
- Cluster support — trigger backups on any node from the controller
Logging
- System, chat, command, network, and action logs (block break/place, item drop/pickup, gamemode, permissions)
- External app logging via REST API with per-app API keys
- Every log entry tracks source server
- Filters: date range, level, player, keyword, server, action type
- Auto-refresh with pause/resume, scroll position preservation
- Bulk delete by date range, type, and server
Cluster Mode
- Controller/Node architecture with heartbeat and auto-cleanup
- Centralized log aggregation and combined dashboard
- Per-node settings from the controller
- Proxy passthrough for API requests
- Server context switching across all features
Anti-Cheat
- X-Ray detection with configurable thresholds per block type
- Motion anticheat — Speed, fly, noclip, and teleport checks with violation levels, setbacks, optional kicks, and grace ticks after teleports/velocity pushes. Configuration stored in the log database (SQL or MongoDB)
- Creative flight enforcement (optional) — When enabled, players in creative-style gamemodes need the
sekury.anticheat.motion.allowed.creative_flightpermission for fly/speed checks to count as allowed. Default off for backwards compatibility - Flagged player overview with detailed flag history (block, reason, world, coordinates, timestamp) — supports both X-Ray and Movement flag types with deep links
- Console + in-game staff alerts for anticheat flags (permission-gated, with cooldown)
- Ban system — permanent or temporary, directly from the dashboard
- Sekury ban protection — prevents other systems from removing Sekury bans
- Block event tracking via ECS
- Chat filter and chat flag system
- More detections coming soon
Player Inventories
- View and edit player inventories from the dashboard (Security → Player Inventories)
- Supports online players and offline UUIDs from Hytale's player storage
- Inspectable slots: hotbar, storage, armor, utility, tools, backpack
- Online edits run on the world thread and refresh the client inventory packet
- Offline edits load/save the player BSON file (avoid editing while the player is online)
- Item-type picker uses server-registered item IDs with optional icon path hints
- Dashboard permissions:
security.inventory.view/security.inventory.edit - REST API:
/api/player-inventory/*
Inventory Audit Log
- Tracks staff actions (inventory edits from the web UI) and optional live in-game inventory/duplicate-watch events
- Category filter: all, inventory, duplicate watch
- Compact table view (time, actor, action, target preview)
- Detail modal with category, actor user ID, full target UUID, and pretty-printed JSON payload
- Requires log database and
security.inventory.viewpermission - Dashboard: Security → Inventory Audit Log
- REST API:
/api/security-tools/audit
System Commands
/system (alias /sys) — requires sekury.system
| Command | Description |
|---|---|
getflags <player> |
Stored anticheat flags (all types, including movement) |
xray list |
X-Ray block rules from DB |
xray add <blockType> [max] [second|minute] |
Add rule |
xray remove <id> |
Remove by ID |
motion reload |
Reload motion settings from log DB (no restart) |
kick <player> [reason…] |
Disconnect only (no ban) |
ban <player> [durations…] [reason…] |
Ban through Sekury → Hytale. No duration = permanent. Tokens: 1d, 24h, 60m, 60s, 2w (combinable, e.g. 1d 12h) |
bans [filter] |
Active Hytale bans; shows Sekury anticheat vs other sources |
logs [--level LEVEL] [--limit N] |
System logs for this server instance |
Motion Anticheat Permissions (Hytale, JSON permissions)
| Permission Node | Role |
|---|---|
sekury.anticheat.motion.admin |
Admin / reload |
sekury.anticheat.motion.alerts |
In-game alert messages |
sekury.anticheat.motion.bypass |
Full bypass (+ bypass.speed, .fly, .noclip, .teleport) |
sekury.anticheat.motion.allowed.creative_flight |
Required for server canFly to count as "allowed" when fly enforcement is enabled |
Web Dashboard
- Glassmorphism UI, responsive
- Real-time monitoring: status, uptime, players, worlds, memory, tick time, TPS per world
- World reset from the dashboard
- Cluster overview with server list
- Security panels: Movement Anticheat (settings + flags), Player Inventories, Inventory Audit Log
- Auto-refresh with live indicator
- Notification system for actions
Documentation
Built-in docs in the dashboard covering API, backups, database, permissions, and translations. Markdown-rendered with syntax highlighting, follows your selected language.
Multilingual
English and German included. Add your own language with one JSON file and an entry in index.json. Language switch works without page reload.
External App API
All dashboard endpoints are session-protected. The only external API is for app logging:
POST /api/apps/register— Register app, get API keyPOST /api/apps/log/{apiKey}— Send log entries
{
"level": "INFO",
"keyword": "payment",
"message": "User purchased item #1234"
}
Logs appear under Logs → Apps in the dashboard.
Developer Integration
- WebServer needs
XRayService+MotionAnticheatSettingsService SekuryRuntime.inittakesMotionAnticheatSettingsServiceas fourth argument- One log backend:
logDbTypepicks Mongo or SQL. For Mongo,getLogDbUrl()is the URI (not JDBC). UseisLogDatabaseConfigured()for checks
Installation
- Drop
sekury.jarintoplugins - Start the server
- Open
http://localhost:8090 - Setup wizard → database config → admin user
- Configure everything else in the web UI
Roadmap
- Player management & analytics
- Server diagnostics & performance monitoring
- Plugin management & auto-updating
- Additional anti-cheat detections
- Webhook notifications (Discord, Slack)
- Command system / custom commands
- SSO integration for the web dashboard
Support
Bug or feature request? Leave a comment or reach out on Discord. I usually respond within 24–48 hours 🙂
Deutsch
Sekury ist ein All-in-One Security-, Backup- und Administrations-Plugin für Hytale-Server. Web-Dashboard, automatisierte Backups, Logging, Anti-Cheat, Cluster-Unterstützung, Spieler-Inventarverwaltung und ein vollständiges Berechtigungssystem — alles in einem Plugin.
⚠️ SSL-Hinweis: Wenn deine Cluster-Nodes nicht im selben Netzwerk sind, aktiviere SSL zum Schutz deiner API-Endpunkte.
Datenbank-Unterstützung
MariaDB, MySQL, SQLite und MongoDB. Integriertes Migrations-Tool zum Wechsel zwischen Datenbanktypen ohne Datenverlust. Schema-Updates passieren automatisch beim Start. (MongoDB ist noch im experimentellen Status)
Einrichtung
Beim ersten Start führt ein Setup-Wizard im Browser durch Datenbank-Konfiguration und Admin-Erstellung. Keine Config-Dateien manuell bearbeiten.
Authentifizierung & Sicherheit
- Zwei-Faktor-Authentifizierung (TOTP) mit Recovery Keys
- BCrypt-Passwort-Hashing
- API-Key-Management mit Timing-Attack-Schutz
- Cloudflare Turnstile Bot-Schutz
- Konfigurierbares Rate Limiting pro Endpoint-Typ
- Security Headers (HttpOnly, Secure, SameSite, CSP, X-Frame-Options)
- Session-Management mit Cookie- und Bearer-Token-Unterstützung
Berechtigungen & Gruppen
- Rollenbasiertes System mit Gruppenvererbung und Zykluserkennung
- 30+ granulare Permission-Keys
- Node-Level-Berechtigungen für Cluster-Setups
- Einstellungen werden automatisch nach Berechtigung gefiltert
- Standardgruppen: Admin, Moderator, Viewer (anpassbar)
- Visueller Permission-Editor im Dashboard
Benutzerverwaltung
Benutzer erstellen, bearbeiten, löschen. Gruppen zuweisen, Passwortänderung erzwingen, 2FA-Status sehen — alles im Web-UI.
Backups
- Geplant oder manuell, lokal oder S3-kompatibel (AWS, MinIO, R2, etc.)
- Multipart-Upload mit Retry und Exponential Backoff
- Aufbewahrungslimits mit Auto-Cleanup
- Echtzeit-Fortschritt via SSE (Phase, Prozent, Bytes)
- Vollständiger Backup-Verlauf mit Filtern (Auslöser, Status, Server)
- Download und Löschen aus dem Dashboard
- Cluster-Support — Backups auf jedem Node vom Controller aus starten
Logging
- System-, Chat-, Command-, Netzwerk- und Action-Logs (Block abbauen/platzieren, Item droppen/aufheben, Spielmodus, Berechtigungen)
- Externes App-Logging via REST API mit App-eigenen API-Keys
- Jeder Log-Eintrag erfasst den Quell-Server
- Filter: Zeitraum, Level, Spieler, Stichwort, Server, Aktionstyp
- Auto-Refresh mit Pause/Fortsetzen, Scroll-Position-Erhaltung
- Massen-Löschung nach Zeitraum, Typ und Server
Cluster-Modus
- Controller/Node-Architektur mit Heartbeat und Auto-Cleanup
- Zentralisierte Log-Aggregation und kombiniertes Dashboard
- Pro-Node-Einstellungen vom Controller
- Proxy-Durchleitung für API-Requests
- Server-Kontext-Wechsel über alle Features hinweg
Anti-Cheat
- X-Ray-Erkennung mit konfigurierbaren Schwellenwerten pro Blocktyp
- Bewegungs-Anticheat — Speed, Fly, NoClip und Teleport mit Violation Levels, Setbacks, optionalem Kick und Gnaden-Ticks nach Teleport/Velocity. Konfiguration in der Log-Datenbank (SQL oder MongoDB)
- Creative-Flug-Enforcement (optional) — Bei Aktivierung benötigen Spieler im Creative-Modus die Permission
sekury.anticheat.motion.allowed.creative_flight, damit Fly-/Speed-Checks als erlaubt gelten. Standard: aus, für Abwärtskompatibilität - Geflaggte-Spieler-Übersicht mit detailliertem Flag-Verlauf (Block, Grund, Welt, Koordinaten, Zeitstempel) — unterstützt X-Ray- und Movement-Flagtypen mit Deep Links
- Konsole + Ingame-Alerts für Anticheat-Flags (rechtebasiert, mit Cooldown)
- Ban-System — permanent oder temporär, direkt aus dem Dashboard
- Sekury-Ban-Schutz — verhindert Entfernung durch andere Systeme
- Block-Event-Tracking via ECS
- Chatfilter und Chatflag-System
- Weitere Erkennungen folgen
Spieler-Inventar
- Spieler-Inventare direkt im Dashboard einsehen und bearbeiten (Security → Spieler-Inventar)
- Unterstützt Online-Spieler und Offline-UUIDs aus dem Hytale-Spielerspeicher
- Einsehbare Slots: Hotbar, Lager, Rüstung, Utility, Werkzeuge, Rucksack
- Online-Änderungen laufen auf dem Welt-Thread, Client bekommt das Inventar-Paket neu
- Offline-Änderungen laden/speichern die Spieler-BSON (nicht parallel zum Login desselben Accounts bearbeiten)
- Item-Auswahl nutzt alle serverseitig registrierten Item-IDs mit optionalem Icon-Pfad als Hinweis
- Dashboard-Rechte:
security.inventory.view/security.inventory.edit - REST API:
/api/player-inventory/*
Inventar-Audit-Log
- Protokolliert Staff-Aktionen (Inventar-Änderungen über das Web) und optionale Live-Inventar-/Duplikatüberwachungs-Ereignisse
- Kategorie-Filter: alle, Inventar, Duplikatüberwachung
- Kompakte Tabellenansicht (Zeit, Bearbeiter, Aktion, Ziel-Vorschau)
- Detail-Modal mit Kategorie, Benutzer-ID, vollständiger Ziel-UUID und formatiertem JSON-Payload
- Voraussetzung: Log-Datenbank und
security.inventory.view-Berechtigung - Dashboard: Security → Inventar-Protokoll
- REST API:
/api/security-tools/audit
System-Befehle
/system (Alias /sys) — benötigt sekury.system
| Befehl | Beschreibung |
|---|---|
getflags <Spieler> |
Gespeicherte Anticheat-Flags (alle Typen, inkl. Bewegung) |
xray list |
X-Ray-Blockregeln aus der DB |
xray add <blockTyp> [max] [second|minute] |
Regel anlegen |
xray remove <id> |
Regel per ID löschen |
motion reload |
Bewegungs-Anticheat aus Log-DB neu laden (kein Neustart nötig) |
kick <Spieler> [Grund…] |
Trennen, kein Ban-Eintrag |
ban <Spieler> [Dauern…] [Grund…] |
Ban über Sekury → Hytale; ohne Dauer = permanent; 1d, 24h, 60m, 60s, 2w kombinierbar (z.B. 1d 12h) |
bans [Filter] |
Aktive Hytale-Bans; Quelle Sekury-Anticheat vs. sonstige |
logs [--level LEVEL] [--limit N] |
System-Logs dieser Instanz |
Bewegungs-Anticheat Berechtigungen (Hytale, JSON Permissions)
| Permission-Node | Zweck |
|---|---|
sekury.anticheat.motion.admin |
Admin / Reload |
sekury.anticheat.motion.alerts |
Ingame-Alerts |
sekury.anticheat.motion.bypass |
Komplett-Bypass (+ bypass.speed, .fly, .noclip, .teleport) |
sekury.anticheat.motion.allowed.creative_flight |
Bei aktivem Creative-Flug-Enforcement: nötig, damit serverseitiges canFly für Speed/Fly zählt |
Web-Dashboard
- Glassmorphism-UI, responsiv
- Echtzeit-Monitoring: Status, Uptime, Spieler, Welten, Speicher, Tick-Zeit, TPS pro Welt
- Welt-Reset aus dem Dashboard
- Cluster-Übersicht mit Server-Liste
- Security-Bereiche: Bewegungs-Anticheat (Einstellungen + Flags), Spieler-Inventar, Inventar-Protokoll
- Auto-Refresh mit Live-Indikator
- Benachrichtigungs-System für Aktionen
Dokumentation
Integrierte Doku im Dashboard zu API, Backups, Datenbank, Berechtigungen und Übersetzungen. Markdown-gerendert mit Syntax-Highlighting, folgt der gewählten Sprache.
Mehrsprachig
Englisch und Deutsch enthalten. Eigene Sprache mit einer JSON-Datei und einem Eintrag in index.json hinzufügen. Sprachwechsel ohne Seite neu zu laden.
Externe App-API
Alle Dashboard-Endpunkte sind session-geschützt. Die einzige externe API ist für App-Logging:
POST /api/apps/register— App registrieren, API-Key erhaltenPOST /api/apps/log/{apiKey}— Log-Einträge senden
{
"level": "INFO",
"keyword": "payment",
"message": "User purchased item #1234"
}
Logs erscheinen unter Logs → Apps im Dashboard.
Entwickler-Integration
- WebServer benötigt
XRayService+MotionAnticheatSettingsService SekuryRuntime.initnimmtMotionAnticheatSettingsServiceals viertes Argument- Eine Log-DB:
logDbType= Mongo oder SQL; bei Mongo istgetLogDbUrl()die URI (kein JDBC). Prüfung perisLogDatabaseConfigured()
Installation
sekury.jarinpluginslegen- Server starten
http://localhost:8090öffnen- Setup-Wizard → Datenbank → Admin-Benutzer
- Alles Weitere im Web-UI konfigurieren
Roadmap
- Spielerverwaltung & Analysen
- Server-Diagnose & Performance-Monitoring
- Plugin-Verwaltung & Auto-Updating
- Weitere Anti-Cheat-Erkennungen
- Webhook-Benachrichtigungen (Discord, Slack)
- Befehlssystem / Custom Commands
- SSO-Integration für das Web-Dashboard
Support
Bug oder Feature-Wunsch? Schreib einen Kommentar oder kontaktiere mich auf Discord. Ich antworte normalerweise innerhalb von 24–48 Stunden 🙂


