promotional bannermobile promotional banner
premium banner
a web-based admin panel for backups (S3-compatible), antispam,chatfilter,logging, inventory Inspektor ,monitoring, and anti-cheat including XRay detection.

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_flight permission 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.view permission
  • 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 key
  • POST /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.init takes MotionAnticheatSettingsService as fourth argument
  • One log backend: logDbType picks Mongo or SQL. For Mongo, getLogDbUrl() is the URI (not JDBC). Use isLogDatabaseConfigured() for checks

Installation

  1. Drop sekury.jar into plugins
  2. Start the server
  3. Open http://localhost:8090
  4. Setup wizard → database config → admin user
  5. 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 erhalten
  • POST /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.init nimmt MotionAnticheatSettingsService als viertes Argument
  • Eine Log-DB: logDbType = Mongo oder SQL; bei Mongo ist getLogDbUrl() die URI (kein JDBC). Prüfung per isLogDatabaseConfigured()

Installation

  1. sekury.jar in plugins legen
  2. Server starten
  3. http://localhost:8090 öffnen
  4. Setup-Wizard → Datenbank → Admin-Benutzer
  5. 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 🙂