From e31953b4ab09fc923ae508a73b509c6ce6830c22 Mon Sep 17 00:00:00 2001 From: MrMaho Date: Fri, 2 Oct 2026 22:28:56 +0200 Subject: [PATCH] Update docs and README: launcher, downloads, accounts, MySQL, new game, updates, tags, riding along, models, version scheme Co-Authored-By: Claude Opus 5.5 --- README.md | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 16cbf1f..d625875 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ und Windows. - Mod: [MSCO](https://git.mbm.wtf/MrMaho/MSCO) - Keymaster & Serverliste: [MSCO-Keymaster](https://git.mbm.wtf/MrMaho/MSCO-Keymaster) – https://msco.mbm.wtf +- Launcher für Spieler: [MSCO-Launcher](https://git.mbm.wtf/MrMaho/MSCO-Launcher) – https://msco.mbm.wtf/download ![Web-Panel: Übersicht mit Start/Stop, Spielern, Laufzeit, Welt, Backups und letzter Aktivität](docs/images/panel-dashboard.png) @@ -15,7 +16,8 @@ und Windows. Der Server prüft ihn beim Start und meldet sich danach regelmäßig beim Master für die Serverliste. - Ein My-Summer-Car-Spielstand als Startwelt. - Port **7777/TCP** im Router/Firewall freigegeben (sonst wird der Server nicht gelistet). -- Server und Mod müssen dieselbe Version haben (sonst bekommen Spieler eine Warnung). +- Server und Mod müssen in den ersten zwei Stellen der Version passen (z.B. Server 2.8 ↔ Mod 2.8.x), sonst bekommen + Spieler eine Warnung. Kleine Mod-Updates (dritte Stelle) brauchen kein Server-Update. ## Mit Docker (empfohlen) @@ -113,7 +115,7 @@ und neu starten. | `RequireSteam` | `true` = nur Spieler mit Steam; `false` = Non-Steam-Server (Spieler werden über den Namen erkannt) | | `PublicAddress` | öffentliche IP/Domain für die Liste (nur hinter NAT/Proxy nötig) | | `AutosaveSeconds` | wie oft der Weltzustand gespeichert wird | -| `SaveSyncMinutes` | wie oft (Minuten) sich der Server von einem Spieler im Spiel den **aktuellen Spielstand** hochladen lässt (Standard 5, zusätzlich bei jedem Beitritt; 0 = nur beim Beitritt) | +| `SaveSyncMinutes` | wie oft (Minuten) sich der Server von einem Spieler im Spiel den **aktuellen Spielstand** hochladen lässt (Standard 10, zusätzlich bei jedem Beitritt; nur wenn sich etwas geändert hat; 0 = nur beim Beitritt) | | `SteamWebApiKey` | Steam-Anmeldetickets der Spieler bei Steam prüfen – **nötig für Admins** (kostenlos: https://steamcommunity.com/dev/apikey) | | `BannedSteamIds` | gesperrte Spieler | | `Admins` | SteamID64s, die im Spiel mit `/admin` kicken/bannen dürfen (nur mit `SteamWebApiKey`, siehe Sicherheit) | @@ -149,8 +151,9 @@ Mit diesem Code legst du im Browser das **Owner**-Konto an (erneut anzeigen: `ms | Console | Live-Log (Chat, Beitritte, Admin-Aktionen) und Befehle eingeben (mit Verlauf ↑/↓) | | Admins | Ingame-Admins per SteamID hinzufügen/entfernen (braucht einen [Steam Web API Key](https://steamcommunity.com/dev/apikey)) | | Bans | Gebannte ansehen, entbannen, SteamID auch offline bannen | -| World & Backups | Welt zurücksetzen, Backup, Reset-Punkt, Backups wiederherstellen, **Spielstand als ZIP, RAR oder 7z hochladen**, als ZIP herunterladen | -| Settings | `server.json` bearbeiten (Name, Spielerzahl, Sichtbarkeit, Ports, Panel, Schlüssel …) | +| World & Backups | Welt zurücksetzen, Backup, Reset-Punkt, Backups wiederherstellen, **Spielstand als ZIP, RAR oder 7z hochladen**, als ZIP herunterladen, **neues Spiel starten** | +| Settings | `server.json` bearbeiten (Name, Beschreibung, **Tags**, Spielerzahl, Sichtbarkeit, Ports, Panel, Schlüssel …) | +| Update | neue Server-Versionen prüfen und mit Fortschrittsanzeige installieren (oranger Punkt in der Seitenleiste, wenn eine da ist) | | Panel Users | weitere Benutzer anlegen: **Moderator** (Spieler/Chat), **Admin** (alles am Server), **Owner** (+ Benutzer) | - **Das Panel ist unabhängig vom Gameserver:** Es läuft auch, wenn der Server gestoppt ist, abgestürzt ist oder gar @@ -162,7 +165,11 @@ Mit diesem Code legst du im Browser das **Owner**-Konto an (erneut anzeigen: `ms Lizenzschlüssel und Spielstand im Panel hinterlegen, Start. - Oberfläche auf **Deutsch oder Englisch** (Umschalter unten in der Seitenleiste). - **Port oder Panel-Einstellungen geändert?** In den Einstellungen unten **„Panel neu starten“** – übernimmt sie sofort, - man bleibt angemeldet und wird auf die neue Adresse weitergeleitet. + man bleibt angemeldet und wird auf die neue Adresse weitergeleitet. Ist *Web-Panel aktiviert* abgehakt, wird das + Panel dabei wirklich ausgeschaltet – wieder an mit `panel on` in der Server-Konsole. +- **Tags**: eigene Tags für die Serverliste (z.B. `deutsch, roleplay`, max. 6). `official` und `featured` vergeben nur + die MSCO-Admins im Keymaster. +- **Anmeldungen überstehen Neustarts** (auch Updates): Sitzungen liegen gehasht in `data/panel_sessions.json`. - **Keymaster nicht erreichbar oder lehnt den Schlüssel ab?** Ein laufender Server läuft bis zum nächsten Neustart weiter und warnt im Log/Panel. Ein Neustart klappt noch bis 72 Stunden nach der letzten Bestätigung (gespeichert in `data/license.json`); danach startet der Server von selbst, sobald der Master den Schlüssel wieder bestätigt. @@ -218,11 +225,12 @@ erreichbar. Ganz aus: `"PanelEnabled": false`. | `stop` / `start` | Gameserver stoppen (das Web-Panel läuft weiter) / wieder starten | | `restart` | Server neu starten (Einstellungen, Lizenz, Spielstand neu laden) | | `exit` | ganzes Programm beenden (auch das Panel) – mit Docker startet es danach wieder, dauerhaft aus: `docker compose stop` | -| `panel` | Adresse des Web-Panels und ggf. den Einrichtungs-Code anzeigen | -| `stop` | speichern und beenden | +| `new-game` | Spielstand sichern und ein frisches neues Spiel starten (der erste Spieler legt die Welt an) – alle verbinden neu | +| `panel [on\|off]` | Adresse des Web-Panels und ggf. den Einrichtungs-Code anzeigen / Panel an- oder ausschalten | Im Spiel öffnen Admins mit `/admin` (Chat, Taste T) oder `admin` (F7-Konsole) das Admin-Menü: Kick/Ban, -GOTO/BRING (zu einem Spieler / Spieler zu sich teleportieren) und Cheats (Geld, Bedürfnisse auffüllen, Satsuma zu sich holen). +**Admin geben/nehmen**, GOTO/BRING (zu einem Spieler / Spieler zu sich teleportieren), Cheats (Geld, Bedürfnisse +auffüllen, Satsuma zu sich holen), Items spawnen und Welt/Backups. Cheats werden allen im Chat angezeigt, Teleports stehen im Server-Log. Der Chat landet auch im Server-Log. @@ -235,7 +243,9 @@ nachgespielt. Der vorherige Spielstand liegt jeweils in `data/save_backups/` (di - `save/` – der Ausgangs-Spielstand, den jeder neue Spieler bekommt. - `world.json` – alles, was seitdem passiert ist: Positionen bewegter Objekte, Schraub-/Montage-Aktionen, - Geld, Türen/Tore, Fahrzeugzustand (Tank, Öl, Schrauben, Verschleiß …) und die letzte Position jedes Spielers. + Geld, Türen/Tore, Fahrzeugzustand (Tank, Öl, Verschleiß, Teile, Lack …), Schalter (Licht, Zündung, Motor …), Jobs und + Events, gekaufte/verbrauchte Items sowie die letzte Position und die Bedürfnisse (Hunger, Durst …) jedes Spielers. +- Den Spielstand holt sich der Server nur, wenn sich seitdem etwas geändert hat (Speichern lässt das Spiel kurz hängen). Beim Beitreten: Spielstand laden → Objekte erfassen → Weltzustand anwenden → an der letzten eigenen Position weiterspielen. @@ -262,7 +272,8 @@ anhalten – der Weltzustand wird atomar geschrieben. Beispiel (täglich per cro tar czf /backup/msco-$(date +%F).tar.gz -C /pfad/zu/MSCO-Dedicated-Server data ``` -**Updates:** Server und Mod müssen dieselbe Version haben. Nach einem neuen Release: +**Updates:** am einfachsten im Web-Panel unter **Update**. Server und Mod müssen in den ersten zwei Stellen der +Version passen; die Mod bei den Spielern aktualisiert der Launcher. Ohne Panel: ```bash git pull