Kernphilosophie: Vollständige Entkopplung
Die Regeln
- Jeder Bot ist eigenständig lauffähig
- Jedes Modul kann einzeln deaktiviert werden
- Kommunikation nur über Dateien, Datenbanken und Discord-Events
- Keine direkten Abhängigkeiten zwischen Komponenten
- Reihenfolge von Start/Stop spielt keine Rolle
Die Konsequenzen
- System ist extrem resilient — Teilausfälle bleiben lokal
- Neue Features als isolierte Module hinzufügbar
- Einzelne Bots können ohne Downtime neugestartet werden
- Trade-off: Gemeinsame Logik wird teils dupliziert
- 6 Jahre Wachstum ohne komplette Rewrites
Startkette
Ein einziger Klick auf start.ahk startet das gesamte System.
Cleanup, Boot, Log-Parsing, Chat-Injection — alles automatisch.
Systemarchitektur
Datenflüsse
20+ Datenbanken
Alle Datenbanken sind SQLite. Jedes Subsystem hat seine eigene DB — kein monolithisches Schema.
| Datenbank | Hauptnutzer | Zweck |
|---|---|---|
| userdata.db | identity, profile, char | Spieler-Stammdaten, Steam-Discord-Link, Counters |
| bank.db | bank, lizenzen, voice_rewards | Gold-Kontostände, Transaktionen, Lizenzen |
| persistent_stats.db | char, titles, awards, fishing | Überlebensstatistiken, Skills, Fang-Stats |
| carservice.db | carservice, insurance | Fahrzeughistorie, Events, Versicherung |
| lottery.db | bot_lottery | Tickets, Ziehungen, Spieler-Metadaten |
| flags.db | trackingstation | Aktive Flaggen-Positionen, Besitzer |
| handelshaus.db | handelshaus | Auktionen, Gebote, Käufe |
| trades.db | trade_stats | Handelsstatistiken, Item-Analytics |
| historical_stats.db | handelsbericht | Tagesaggregation, Item-Preisverlauf |
| event_stats.db | events_stats | Event-Teilnahme, Trophäen |
| heartbeat.db | heartbeat-Modul | CPU, RAM, PID — System-Health |
| +10 weitere | diverse Subsysteme | statbot, userstats, userhistory, donations, payment, ... |
50+ Module (Cogs)
Der Haupt-Bot bot_infobot.py lädt alle Module dynamisch über einen Loader.
Jedes Modul kann in der Config einzeln deaktiviert werden.
Spieler & Identität (7)
identity, profile, char, history, link_translator, team_sync
Wirtschaft & Handel (7)
bank, handelshaus, trade_stats, insurance, lizenzen, donations, carservice
Tracking & Monitoring (8)
trackingstation, statbot, kill_feed, server_status, trader_status, steam_watch, voice_rewards, health
Events & Gameplay (11)
game_events, map_event_challenges, purge, bunker, fishing, awards, titles, npczones, aircraft, carservice, cars_uploader
Kommunikation (5)
chat_bridge, log_bridge, inselkom, router, router_v2
Administration (10)
core, bootstrap, audit, maintenance, cleanup_messages, hooks, squad, rules, basic, help
AutoHotkey-Skripte
Hardware-nahe Automatisierung: Diese Skripte interagieren direkt mit dem Spielfenster, parsen Logs, steuern Events und simulieren Tastatureingaben.
| Skript | Funktion |
|---|---|
| start.ahk | System-Startup-Orchestrator — startet alle Prozesse |
| log_separator.ahk | Parst Server-Logs in 15+ kategorisierte Ordner, ANSI-Farbkodierung, TZ-Korrektur |
| streamtochat.ahk | 650ms-Polling auf .tochat — Tastatur-Simulation ins SCUM-Fenster |
| onclipactions.ahk | Clipboard-Hook → sortiert Daten in ini-Dateien (Autos, Squads, Spieler, Flaggen) |
| eventmanager.ahk | Blackout-Fenster (4x täglich), Zufalls-Event-Scheduler, Speech-Dateien |
| purge_checker.ahk | 6 Punkt-Kategorien, 10.000er-Schwelle, Wahrscheinlichkeit 50–100% |
| remote.ahk | Polling auf remote/ — Codes: 99=Reboot, 9=Event, 10=Cancel, 11-13=Horde |