diff --git a/frontend/src/locales/de.js b/frontend/src/locales/de.js
index 4ceaec9..ef09a3a 100644
--- a/frontend/src/locales/de.js
+++ b/frontend/src/locales/de.js
@@ -182,6 +182,7 @@ export default {
'server.free': 'frei',
'server.full': 'voll',
'server.whoIsOn': 'Wer gerade drauf ist',
+ 'server.nobody24h': 'In den letzten 24 Stunden war niemand drauf.',
'server.andMore': '+%s weitere',
'server.lastOnline': 'Zuletzt online: %s',
'server.agoMin': 'vor %s min',
diff --git a/frontend/src/locales/en.js b/frontend/src/locales/en.js
index 2ac1ed7..00566cc 100644
--- a/frontend/src/locales/en.js
+++ b/frontend/src/locales/en.js
@@ -181,6 +181,7 @@ export default {
'server.free': 'free',
'server.full': 'full',
'server.whoIsOn': 'Who is playing',
+ 'server.nobody24h': 'Nobody played in the last 24 hours.',
'server.andMore': '+%s more',
'server.lastOnline': 'Last online: %s',
'server.agoMin': '%s min ago',
diff --git a/frontend/src/pages/Server.jsx b/frontend/src/pages/Server.jsx
index efc091a..ae4321c 100644
--- a/frontend/src/pages/Server.jsx
+++ b/frontend/src/pages/Server.jsx
@@ -75,6 +75,10 @@ function ServerCard({ s }) {
const [alleSpieler, setAlleSpieler] = useState(false);
const pct = s.online && s.max ? Math.round((s.players / s.max) * 100) : 0;
const stats = historyStats(s.history);
+ // War in 24 h überhaupt jemand drauf? Wenn nicht, ist das Diagramm eine
+ // Nulllinie in hundert Pixeln Leere — das sieht nach Fehler aus, obwohl
+ // es keiner ist. Dann lieber ein Satz statt einer leeren Fläche.
+ const hatVerlauf = s.history.length > 1 && s.history.some((h) => (h.players ?? 0) > 0);
// Ab 80 % wird es eng, ab 100 % kommt keiner mehr rein — das soll man
// sehen, ohne den Balken mit der Zahl daneben zu vergleichen.
const fuellung = pct >= 100 ? 'voll' : pct >= 80 ? 'eng' : 'frei';
@@ -153,20 +157,22 @@ function ServerCard({ s }) {
)}
- {s.history.length > 1 &&
{t('server.nobody24h')}
)}{gewaehltesSpiel - ? <>Gewählt: {gewaehltesSpiel.name}{!gewaehltesSpiel.eigen && gewaehltesSpiel.port ? ` — Standard-Query-Port ${gewaehltesSpiel.port}` : ''}. Die Liste kommt direkt aus gamedig, {games.length} Einträge.> + ? <>Gewählt: {gewaehltesSpiel.name}{!gewaehltesSpiel.eigen && gewaehltesSpiel.port ? ` — Standard-Query-Port ${gewaehltesSpiel.port}, Hoster weichen oft davon ab` : ''}. Die Liste kommt direkt aus gamedig, {games.length} Einträge.> : <>Unbekannte ID — sie wird trotzdem versucht. Alle bekannten stehen in der gamedig-Liste.>}
@@ -3358,7 +3390,7 @@ export default function Settings({ me }) { />
{gewaehltesSpiel.id.startsWith('farmingsimulator')
- ? <>Im Spiel heißt er Code. Steht im Webinterface des Servers unter http://host:{gewaehltesSpiel.port ?? 8080}/settings.html — er gilt nur für den eigenen Server.>
+ ? <>Im Spiel heißt er Code und steckt in der Abfrage-URL, die dein Hoster ausgibt: …/feed/dedicated-server-stats.xml?code=DAS_HIER. Am einfachsten die ganze URL oben ins Host-Feld einfügen — Host, Port und Code werden herausgezogen.>
: <>Steht im Webinterface des Servers. Ohne ihn liefert die Abfrage nichts und der Server stünde dauerhaft auf „offline".>}