Statistikportal für den All-the-Mods-10-Server (Minecraft 1.21.1, NeoForge 21.1): - mod/: serverseitige NeoForge-Mod atmstats – Ereignisse, Live-Zähler, Servergesundheit, FTB-Dateien; Outbox auf der Festplatte, signierter gzip-Versand per HTTPS mit Backoff - backend/: Fastify + PostgreSQL – idempotenter Ingest, Projektionen, Parser für SNBT, FTB Quests/Teams, world/stats, world/advancements und latest.log; Ranglisten, Snapshots, Retention, öffentliche API, SSE-Live-Updates, Admin mit argon2/CSRF, SFTP-Worker - web/: Next.js-Dashboard – Übersicht, Ranglisten, Spielerprofile, ATM10, Server, Datenquellen, Verwaltung - shared/: Protokoll v1 und API-Typen; tools/: Simulator, Log-Anonymisierer, RCON-Client - deploy/: Docker Compose hinter Traefik, Backup; docs/: Architektur, Datenquellen, Betrieb Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
7.1 KiB
7.1 KiB
Datenquellen und Einschränkungen
Jede Zahl im Portal stammt aus einer der unten genannten Quellen. Nichts wird geschätzt oder erfunden. Wo eine Quelle fehlt, zeigt das Portal einen leeren Zustand oder den Hinweis, woher die Daten kommen werden.
Grundlage: was am echten Server geprüft wurde
Stand 13.10.2026, aus einer Kopie des Servers (server-snapshot/, nicht im Repository, enthält Spieler-IPs):
| Fakt | Beleg |
|---|---|
| Minecraft 1.21.1 | DataVersion 3955 in world/stats/*.json |
| 464 Mods, u. a. FTB Quests 2101.1.36, FTB Teams 2101.1.11, Mekanism 10.7.19, Apotheosis 8.8.0, Spark 1.10.124 | Modliste des Servers |
FTB-Quest-Fortschritt je Team als SNBT (completed, started, task_progress, claimed_rewards) |
world/ftbquests/<team>.snbt |
Mod-eigene Zähler in den Vanilla-Statistiken: apotheosis:world_tiers_activated, lootr:looted_stat, waystones:waystone_activated |
world/stats/*.json |
| Item-Statistiken enthalten Einträge aus Mekanism, Powah, Mystical Agriculture, Ars Nouveau, Iron's Spellbooks, Create, Modern Industrialization, Oritech u. v. m. | world/stats/*.json |
| Log enthält Beitritte (mit UUID), Verlassen, Advancements/Ziele/Herausforderungen im Klartext; Zeilenenden CRLF | logs/latest.log |
| NeoForge 21.1.219 und Java 21 (Testlauf der Mod auf einem lokalen NeoForge-Server) | server_start-Ereignis der Mod |
Quest-Konfiguration: 66 Kapitel (chapters/*.snbt), 4 790 Quests, Texte über ftbquestslangsplitter in lang/en_us/**/*.snbt_merged (decken alle 3 103 Titel der 1,5 MB großen lang/en_us.snbt ab); Titel mit Farbcodes (&a, &6&l, \& für ein echtes &) |
config/ftbquests/quests/ |
Von 585 IDs in completed (CDOGamer) sind nur 267 Quests, der Rest Aufgaben und Kapitel |
Abgleich mit der Quest-Konfiguration |
FTB-Teams: id, type (player/party/server), ranks (UUID → Rang), properties."ftbteams:display_name" |
world/ftbteams/player/*.snbt |
Die exakte NeoForge- und Java-Version des Produktionsservers meldet die Mod beim ersten Start (Seite Server).
Welche Kennzahl woher kommt
| Kennzahl | Quelle | Aktualität | Hinweis |
|---|---|---|---|
| Online-Status, Sitzungen, Heatmap „Wann gespielt wird“ | Mod: Beitritt/Verlassen; Fallback: Server-Log | sofort; Fallback ≤ 15 min | Log-Sitzungen werden nur genutzt, wenn die Mod seit 10 min nichts gesendet hat; liefert die Mod später nach, werden überlappende Sitzungen nicht doppelt gezählt |
| Spielzeit, Tode, besiegte Mobs, Sprünge, Schaden | Vanilla-Zähler: Mod liest sie live, SFTP liest world/stats |
5 min (Mod) bzw. beim Speichern der Welt (SFTP) | die neueste Beobachtung gewinnt |
| Strecken je Fortbewegungsart | Vanilla-Zähler *_one_cm |
wie oben | „Weltenbummler“ ohne Fallstrecke |
| Abgebaut / hergestellt / benutzt / aufgesammelt je Item und Mod | Vanilla-Zähler minecraft:mined usw. |
wie oben | Mod-Zuordnung über den Namespace der Item-ID |
| Technik / Magie / Farming | Summe hergestellter und benutzter Items der Mods einer Kategorie | wie oben | Zuordnung in backend/config/mod-categories.json |
| Diamantenbank | abgebaute Diamanterze (normal + Tiefenschiefer) | wie oben | misst Abbau, nicht Besitz |
| Schatzjäger, Weltenstufe | lootr:looted_stat, apotheosis:world_tiers_activated |
wie oben | |
| Todesursachen, Killer | Mod: LivingDeathEvent |
sofort | ohne Mod nur Anzahl und killed_by-Zähler |
| Boss- und Spieler-Kills mit Waffe | Mod: LivingDeathEvent, Boss = NeoForge-Tag c:bosses |
sofort | normale Mob-Kills nur als Zähler (Last) |
| Advancements | Mod: AdvancementEarnEvent; SFTP: world/advancements; Log (nur für Spieler ohne Advancement-Datei) |
sofort / ≤ 15 min | Rezept-Freischaltungen ausgenommen. Die Mod zählt nur Advancements mit Anzeige im Spiel; aus world/advancements kommen auch solche ohne Anzeige, weil die Datei keine Anzeige-Informationen enthält. Ohne Mod kann „Abenteurer“ daher etwas höher ausfallen |
| Besuchte Dimensionen | Mod: Dimensionswechsel | sofort | erst ab Installation der Mod |
| FTB-Quest-Fortschritt | world/ftbquests/*.snbt (Mod alle 2 min oder SFTP) |
2–15 min | pro Team; gezählt werden nur IDs, die in der Quest-Konfiguration als Quest vorkommen |
| Quest- und Kapiteltitel | config/ftbquests/quests/chapters/*.snbt + lang/en_us/**/*.snbt_merged (Mod oder SFTP; andere Sprachen und Belohnungstabellen werden nicht übertragen) |
bei Änderung | Farbcodes entfernt |
| Party-Teams | world/ftbteams/{player,party}/*.snbt |
bei Änderung | |
| TPS, Tickdauer (Ø, 95. Perzentil, Max), Spieler, Chunks, Speicher | eigene Messung der Mod um jeden Tick | jede Minute | unabhängig von Spark |
| Versionen, Modliste | Mod beim Serverstart (ModList) |
bei jedem Start | |
| Verlaufsdiagramme, 7-/30-Tage-Ranglisten | stündliche und tägliche Snapshots durch den Worker | stündlich | Verläufe beginnen mit der Inbetriebnahme; Stunden 30 Tage, Tage unbegrenzt |
Bewusst nicht erfasst
Ohne verlässliche serverseitige Quelle oder nur über ungeprüfte Interna einzelner Mods erreichbar:
- Energie (Erzeugung und Verbrauch von Mekanism-, Powah- und anderen Maschinen)
- Inhalte von AE2- und Refined-Storage-Netzen
- Mana, Source, Zauber, Rituale (Ars Nouveau, Iron's Spellbooks, Occultism); Magie-Aktivität stammt aus Items
- MineColonies-Kolonien
- Spielerpositionen, Todesorte, Heatmaps der Welt: Datenschutz (Basen) und Last
- Inventare/Besitz (daher misst die Diamantenbank den Abbau)
Erweiterungen sind über neue Ereignistypen im Protokoll möglich, jeweils erst nach Prüfung der Mod-API in der installierten Version.
Einschränkungen durch Hoster und Mods
| Einschränkung | Auswirkung | Status |
|---|---|---|
| Ob Mine-Hoster ausgehendes HTTPS erlaubt, ist nicht dokumentiert | ohne Freigabe nur SFTP-Modus (keine Echtzeit, keine Todesursachen, keine Leistungsdaten) | wird beim ersten Start geprüft: Log-Zeile atmstats: backend reachable |
world/stats wird vom Server nur beim Speichern geschrieben |
SFTP-Zähler hinken bis zum nächsten Autosave hinterher | Mod liefert Live-Werte alle 5 min |
| Der Log-Ausschnitt enthielt keinen Startabschnitt | Versionen nicht aus dem Log lesbar | Mod meldet sie beim Start |
| Log-Zeitstempel sind in der lokalen Zeitzone des Servers | Zeitzone muss stimmen (TIMEZONE, Standard Europe/Berlin) |
für Mine-Hoster nicht bestätigt; betrifft nur log-basierte Daten |
| FTB Teams: Party-Dateien auf dem Server derzeit nicht vorhanden | Party-Mitgliedschaft wird aus ranks (member/officer/owner) gelesen; Format an den echten Spieler-Team-Dateien geprüft, Party-Dateien nutzen dieselben Felder |
ohne Party zählt jeder Spieler als eigenes Team (wie im Spiel) |
| Quest-Titel: 1 789 von 4 790 Quests haben keinen eigenen Titel | sie zählen mit, erscheinen aber nicht namentlich (im Spiel heißen sie nach dem Aufgaben-Item, das serverseitig nicht übersetzbar ist) | geprüft an der echten Konfiguration (66 Kapitel, 3 029 Titel) |
| SFTP-Passwort = Gamepanel-Passwort | volle Schreibrechte im Worker-Container | Worker liest nur; .env schützen |
| Spieler-IPs stehen im Server-Log | Datenschutz | werden nie gespeichert; Test-Fixtures anonymisiert |