diff --git a/README.md b/README.md
index 96fba0e..66642ba 100644
--- a/README.md
+++ b/README.md
@@ -100,7 +100,7 @@ auf nichts mehr: keine Posts, keine Hintergrund-Prüfungen.
| Funktion | Beschreibung |
|---|---|
-| 🎮 **Game-Server-Monitor** | DiscordGSM-Stil: pro Server ein Live-Embed (🟢/🔴, Spieler-Balken, Map, Version, Spieler-Liste, Connect-Link, Ping); **alle Spiele, die gamedig kennt** — die Auswahl im Panel kommt aus der Bibliothek selbst, inklusive Standard-Port und Hinweis auf nötige Zugangs-Codes (Farming Simulator, Terraria) — plus FiveM + HTTP-Check; Down/Up-Alerts mit Ausfalldauer |
+| 🎮 **Game-Server-Monitor** | DiscordGSM-Stil: pro Server ein Live-Embed (🟢/🔴, Spieler-Balken, Map, Version, Mod-Anzahl, Spieler-Liste, Knöpfe für Verbinden und Mod-Download, Ping); **alle Spiele, die gamedig kennt** — die Auswahl im Panel kommt aus der Bibliothek selbst, inklusive Standard-Port und Hinweis auf nötige Zugangs-Codes (Farming Simulator, Terraria) — plus FiveM + HTTP-Check; Down/Up-Alerts mit Ausfalldauer |
| 🚨 **Wächter** | Prüft eigene Dienste in einstellbarem Takt, DM-Alarm bei Ausfall + Entwarnung; speist die öffentliche Statusseite |
| 💓 **Herzschlag** | Der Bot zeichnet sich selbst auf — im Dashboard steht neben der Laufzeit ein Erreichbarkeits-Balken über 7 Tage. Fehlende Stunden sind rot: dass nichts dasteht, *ist* die Aussage |
| 🔊 **Temp-Voice** | „Join to Create": Hub-Kanal betreten → eigener Voice-Kanal mit Control-Panel (Umbenennen, Sperren, Limit, Löschen — nur für den Besitzer), löscht sich wenn leer |
diff --git a/frontend/src/locales/de.js b/frontend/src/locales/de.js
index ef09a3a..c34da50 100644
--- a/frontend/src/locales/de.js
+++ b/frontend/src/locales/de.js
@@ -190,6 +190,8 @@ export default {
'server.agoDays': 'vor %s Tagen',
'server.neverOnline': 'Seit Beginn der Messung nicht erreichbar.',
'server.version': 'Version',
+ 'server.mods': '%s Mods',
+ 'server.modsDownload': 'Mods laden',
// ── Galerie ───────────────────────────────────────
'gallery.tag': '// Community',
diff --git a/frontend/src/locales/en.js b/frontend/src/locales/en.js
index 00566cc..b0c103f 100644
--- a/frontend/src/locales/en.js
+++ b/frontend/src/locales/en.js
@@ -189,6 +189,8 @@ export default {
'server.agoDays': '%s days ago',
'server.neverOnline': 'Not reachable since measuring began.',
'server.version': 'Version',
+ 'server.mods': '%s mods',
+ 'server.modsDownload': 'Get mods',
// ── Gallery ───────────────────────────────────────
'gallery.tag': '// Community',
diff --git a/frontend/src/pages/Server.jsx b/frontend/src/pages/Server.jsx
index ae4321c..005bb95 100644
--- a/frontend/src/pages/Server.jsx
+++ b/frontend/src/pages/Server.jsx
@@ -4,7 +4,7 @@
import { useEffect, useState } from 'react';
import { apiGet } from '../api.js';
import { SkeletonCards } from '../components/Skeleton.jsx';
-import { IconGame, IconMapPin, IconClock, IconCheck, IconTeam, IconPackage, IconZap } from '../icons.jsx';
+import { IconGame, IconMapPin, IconClock, IconCheck, IconTeam, IconPackage, IconZap, IconDownload, IconArchive } from '../icons.jsx';
import { useT, useFmt } from '../i18n.jsx';
import UptimeTrack from '../components/UptimeTrack.jsx';
@@ -130,6 +130,9 @@ function ServerCard({ s }) {
{s.map && {s.map}}
{s.version && {s.version}}
+ {/* Eigenes Zeichen — mit dem Paket-Icon der Version daneben
+ sähen die beiden Chips wie zusammengehörig aus. */}
+ {s.mods > 0 && {t('server.mods', s.mods)}}
{s.ping != null && {s.ping} ms}