Update docs and README: launcher, downloads, accounts, MySQL, new game, updates, tags, riding along, models, version scheme

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-02 22:28:47 +02:00
co-authored by Claude Opus 5.5
parent 15c9ee548d
commit 6bd4e67382
+157 -130
View File
@@ -1,130 +1,157 @@
# MSCO – My Summer Car Online # MSCO – My Summer Car Online
Multiplayer-Mod für **My Summer Car** (MSCLoader). Spiel mit bis zu 3 Spielern zusammen – per Steam-Einladung Multiplayer-Mod für **My Summer Car** (MSCLoader). Spiel mit bis zu 3 Spielern zusammen – per Steam-Einladung
(P2P) oder auf einem dedizierten Server aus dem Server-Browser. (P2P) oder auf einem dedizierten Server aus dem Server-Browser.
- Mod: dieses Repository - Mod: dieses Repository
- Dedizierter Server: [MSCO-Dedicated-Server](https://git.mbm.wtf/MrMaho/MSCO-Dedicated-Server) - Dedizierter Server: [MSCO-Dedicated-Server](https://git.mbm.wtf/MrMaho/MSCO-Dedicated-Server)
- Keymaster & Serverliste: [MSCO-Keymaster](https://git.mbm.wtf/MrMaho/MSCO-Keymaster) – live unter https://msco.mbm.wtf - Keymaster & Serverliste: [MSCO-Keymaster](https://git.mbm.wtf/MrMaho/MSCO-Keymaster) – live unter https://msco.mbm.wtf
- Launcher (installiert und aktualisiert die Mod): [MSCO-Launcher](https://git.mbm.wtf/MrMaho/MSCO-Launcher)
## Features - Download: https://msco.mbm.wtf/download
**Verbinden** ## Features
- Launcher im Hauptmenü: P2P-Seite und Server-Browser
- **P2P über Steam:** HOST GAME, Freunde einladen, Beitritt über die Steam-Freundesliste (max. 3 Spieler) **Verbinden**
- **Server-Browser:** Suche, Filter (Steam / Non-Steam / volle ausblenden), Ping, Server-Profil - Launcher im Hauptmenü (Vollbild, automatisch skaliert): P2P-Seite, Server-Browser und Favoriten; mit **–** einklappen,
(Besitzer, Version, Laufzeit, Spieler), lokale Server auf diesem PC werden automatisch gefunden dann ist das Startmenü des Spiels wieder bedienbar
- **Direct Connect** per Adresse, JOIN-Links von der Website (`msco://`) starten das Spiel und verbinden direkt - **P2P über Steam:** HOST GAME, Freunde einladen, Beitritt über die Steam-Freundesliste (max. 3 Spieler)
- Server ohne Steam („Non-Steam“) werden unterstützt, andere Mod-Version = Warnung statt Sperre - **Server-Browser:** Suche, Filter (Steam / Non-Steam / volle ausblenden), Ping, Server-Profil
- Der Host-Spielstand wird beim Start automatisch an alle übertragen; der eigene Spielstand wird vorher gesichert (Besitzer, Version, Laufzeit, Spieler), lokale Server auf diesem PC werden automatisch gefunden
und nach dem Spielen wiederhergestellt - **Direct Connect** per Adresse, JOIN-Links von der Website (`msco://`) starten das Spiel und verbinden direkt
- **Favoriten** mit Herz und Kurzname, schnell wechseln mit `/switch <kurzname>`
**Synchronisiert** - **P2P: neues Spiel oder weiterspielen** – der Host startet ein frisches Spiel oder lädt seinen Spielstand
- Spieler als eigene Figur im MSC-Stil (Karohemd, Jeans, Schnurrbart, Kappe – je Spieler etwas anders) mit - Server ohne Steam („Non-Steam“) werden unterstützt; Versionen passen, solange die ersten zwei Stellen gleich sind
Blickrichtung, Laufen, Ducken/Lehnen, Sitzen, gehaltenem Item und Namensschild - Nach einem Kick/Bann ein Fenster mit dem Grund; nach Welt-Reset oder Server-Neustart verbindet man automatisch neu
- Items, lose Teile, Schrauben und Fahrzeuge (auch mit G geschoben) mit Besitzer-System – inkl. was jemand in der Hand hält - Der Host-Spielstand wird beim Start automatisch an alle übertragen; der eigene Spielstand wird vorher gesichert
- Fahrzeuge: Position, Lichter, Motorgeräusch; als **Beifahrer** mitfahren (Taste P) und nach dem Spielen wiederhergestellt
- **Fahrzeugzustand:** Tank, Öl, Kühlwasser, Bremsflüssigkeit, Batterie, Schrauben-Festigkeit, Schäden, Verschleiß,
Kilometerstand, Lack, Vergaser-/Zündungseinstellungen **Synchronisiert**
- Anbauen/Abbauen von Teilen und Schrauben (PlayMaker-Events) - Spieler als **echte MSC-Menschen** (derselbe Körper wie die Leute im Spiel, je Spieler anderes Hemd, Hose, Gesicht)
- Türen, Tore, Hauben (z.B. Garagentor), Geld, Uhrzeit und Wetter mit Blickrichtung, Laufen, Springen, Ducken/Lehnen, Sitzen, gehaltenem Item und Namensschild (`model classic` = einfache
MSCO-Figur)
**Im Spiel** - Items, lose Teile, Schrauben und Fahrzeuge (auch mit G geschoben) mit Besitzer-System – inkl. was jemand in der Hand hält
- **T** – Chat - Fahrzeuge: Position, Lichter, Motorgeräusch, Bedienelemente (Zündung, Licht, Blinker, Wischer, Handbremse …), Tacho,
- **F7** – MSCO-Konsole mit allen Befehlen Lenkrad, drehende Räder, Türen/Haube/Kofferraum, Unfallschäden
- **/admin** – Admin-Menü für Server-Admins bzw. den P2P-Host: Spieler kicken/bannen, GOTO/BRING (teleportieren), - **Mitfahren**: wer im Fahrzeug ist (Kabine, offene Tür, Ladefläche), fährt genau dort mit – mit oder ohne Fahrer
Cheats (+1.000 / +10.000 MK, Bedürfnisse auffüllen, Satsuma zu sich holen) – Cheats werden im Chat angezeigt - **Fahrzeugzustand:** Tank, Öl, Kühlwasser, Bremsflüssigkeit, Batterie, Schäden, Verschleiß, Kilometerstand,
- **P** – als Beifahrer ein-/aussteigen Vergaser-/Zündungseinstellungen; beim Satsuma zusätzlich jedes Teil (Verschleiß, kaputte Teile, Reifen, Ölwanne,
- Alle Tasten sind in den MSCLoader-Einstellungen der Mod änderbar Fahrwerk) und der **Lack**
- Rich Presence: zeigt Freunden deinen Status („In the Menus“, Server, Spielerzahl) - Anbauen/Abbauen von Teilen und Schrauben (PlayMaker-Events)
- Türen, Tore, Hauben (z.B. Garagentor), Geld, Uhrzeit und Wetter, NPC-Verkehr
## Installation - Jobs und Events: Laden, Werkstatt, Prüfstelle, Müllkippe, Tanzhalle, Rallye, Dragrace, Kilju-Käufer, Theater, Fußball,
Peräjärvi, Ferienhaus, Hütte
1. [MSCLoader](https://github.com/piotrulos/MSCModLoader) installieren. - Pro Spieler auf dem Server: letzte Position und Bedürfnisse (Hunger, Durst, Stress …)
2. `MSCO.dll` von den [Releases](https://git.mbm.wtf/MrMaho/MSCO/releases/latest) herunterladen und in den
Mods-Ordner kopieren (Standard: `Documents\MySummerCar\Mods`). **Im Spiel**
3. Spiel **über Steam** starten – ohne Steam gehen nur Non-Steam-Server. - **T** – Chat
- **F7** – MSCO-Konsole mit allen Befehlen
### Einen eigenen Server betreiben - **/admin** – Admin-Menü für Server-Admins bzw. den P2P-Host: Spieler kicken/bannen, **Admin geben/nehmen**,
GOTO/BRING (teleportieren), Cheats (+1.000 / +10.000 MK, Bedürfnisse auffüllen, Satsuma zu sich holen), Items spawnen,
Siehe [MSCO-Dedicated-Server](https://git.mbm.wtf/MrMaho/MSCO-Dedicated-Server) – Lizenzschlüssel gibt es kostenlos Welt zurücksetzen/Backups – Cheats werden im Chat angezeigt
unter https://msco.mbm.wtf/keys. - **P** / **Leertaste** – aussteigen; **P** neben einem Auto – auf den Beifahrersitz
- Alle Tasten sind in den MSCLoader-Einstellungen der Mod änderbar
## Probleme? - Rich Presence: zeigt Freunden deinen Status („In the Menus“, Server, Spielerzahl)
| Problem | Lösung | ## Installation
|---|---|
| Server fehlt im Browser | REFRESH drücken; Filter (STEAM / NON-STEAM) prüfen; der Server muss von außen erreichbar sein | **Mit dem Launcher (empfohlen):** den [MSCO Launcher](https://msco.mbm.wtf/download) installieren – er installiert
| „This server requires Steam“ | Spiel über Steam starten | und aktualisiert MSCO und startet das Spiel. [MSCLoader](https://github.com/piotrulos/MSCModLoader) muss installiert sein.
| Warnung „Version mismatch“ | Mod und Server auf dieselbe Version bringen (Releases) |
| Eigener Spielstand weg | Wird nach dem Verlassen automatisch wiederhergestellt; Sicherung liegt in `AppData\LocalLow\Amistech\My Summer Car\MSCO_Backup` | **Von Hand:**
| Absturz / Hänger beim Beitreten | `output_log.txt` im Spielordner an den Server-Betreiber bzw. als Issue schicken |
1. [MSCLoader](https://github.com/piotrulos/MSCModLoader) installieren.
## Befehle 2. `MSCO.dll` von der [Download-Seite](https://msco.mbm.wtf/download) laden und in den Mods-Ordner kopieren
(Standard: `Documents\MySummerCar\Mods`).
In der F7-Konsole direkt, in der MSCLoader-Konsole mit `mp` davor (z.B. `mp connect ...`): 3. Spiel **über Steam** starten – ohne Steam gehen nur Non-Steam-Server.
| Befehl | Beschreibung | ### Einen eigenen Server betreiben
|---|---|
| `connect <host[:port]>` | mit einem dedizierten Server verbinden | Siehe [MSCO-Dedicated-Server](https://git.mbm.wtf/MrMaho/MSCO-Dedicated-Server) – Lizenzschlüssel gibt es kostenlos
| `disconnect` | Server / Spiel verlassen | unter https://msco.mbm.wtf/keys.
| `host [port]` / `join <ip> [port]` | LAN-Testsitzung ohne Steam |
| `save` | Spiel speichern (Host / Einzelspieler) | ## Probleme?
| `ping [on\|off]` | Ping zum Server oben rechts anzeigen (grün < 80 ms, gelb < 150 ms, rot darüber) |
| `admin` bzw. `/admin` im Chat | Admin-Menü | | Problem | Lösung |
| `vehicles`, `rig` | Diagnose: Fahrzeuge / Spielermodelle | |---|---|
| `debug` | Sync-Debugausgaben an/aus | | Server fehlt im Browser | REFRESH drücken; Filter (STEAM / NON-STEAM) prüfen; der Server muss von außen erreichbar sein |
| `clear` | Konsole leeren | | „This server requires Steam“ | Spiel über Steam starten |
| Warnung „Version mismatch“ | Die ersten zwei Stellen unterscheiden sich – Mod (Launcher) oder Server aktualisieren |
## Selbst bauen | Mod lässt sich nicht aktualisieren | Spiel schließen – solange es läuft, ist `MSCO.dll` gesperrt |
| Eigener Spielstand weg | Wird nach dem Verlassen automatisch wiederhergestellt; Sicherung liegt in `AppData\LocalLow\Amistech\My Summer Car\MSCO_Backup` |
- Eine C#-Entwicklungsumgebung, .NET Framework 3.5 (Unity 5.0 / Mono) | Absturz / Hänger beim Beitreten | `output_log.txt` im Spielordner an den Server-Betreiber bzw. als Issue schicken |
- Die Verweise in `MSCO.csproj` zeigen auf `F:\SteamLibrary\steamapps\common\My Summer Car\mysummercar_Data\Managed\`
(UnityEngine, PlayMaker, Assembly-CSharp, Assembly-CSharp-firstpass, MSCLoader, 0Harmony, Newtonsoft.Json, cInput) – ## Befehle
bei anderem Installationsort anpassen.
- Nach dem Build wird die DLL automatisch nach `Documents\MySummerCar\Mods` kopiert (`MSCMODSFOLDER` in der csproj). In der F7-Konsole direkt, in der MSCLoader-Konsole mit `mp` davor (z.B. `mp connect ...`):
``` | Befehl | Beschreibung |
msbuild MSCO.csproj -p:Configuration=Release |---|---|
``` | `connect <host[:port]>` | mit einem dedizierten Server verbinden |
| `disconnect` | Server / Spiel verlassen |
### Updates veröffentlichen (MSC Launcher / MSCLoader) | `host [port]` / `join <ip> [port]` | LAN-Testsitzung ohne Steam |
| `save` | Spiel speichern (Host / Einzelspieler) |
- **Kleines Update** (Fehlerbehebungen, neue Funktionen, Netzwerk unverändert): in `MSCO.cs` nur die dritte Stelle von | `ping [on\|off]` | Ping zum Server oben rechts anzeigen (grün < 80 ms, gelb < 150 ms, rot darüber) |
`ModVersion` erhöhen (`2.8.1` → `2.8.2`), Release bauen und `bin/Release/MSCO.dll` hochladen. Spieler mit 2.8.x | `fps [on\|off]` | Bilder pro Sekunde oben rechts |
spielen weiter zusammen, Server 2.8 müssen nicht aktualisiert werden. | `switch <kurzname>`, `fav …` | Zu einem Favoriten wechseln, Favoriten verwalten |
- **Großes Update** (Protokoll inkompatibel geändert): `ProtocolVersion` in `MSCO.cs` **und** `GameServer.ModVersion` im | `model [game\|classic]` | Mitspieler als MSC-Menschen oder als einfache Figur |
Server erhöhen (z.B. `2.9`), `ModVersion` auf `2.9.0`. Dann brauchen alle die neue Mod und den neuen Server. | `vars <filter>` | Diagnose: synchronisierte Fahrzeugwerte |
- Verglichen werden immer nur die ersten zwei Stellen; übers Netz geht nur die Netzwerk-Version. | `admin` bzw. `/admin` im Chat | Admin-Menü |
- **Automatisch hochladen**: Ist lokal `MSCO_RELEASE_TOKEN` gesetzt (= `RELEASE_TOKEN` des Keymasters, oder in | `vehicles`, `rig` | Diagnose: Fahrzeuge / Spielermodelle |
`%AppData%\MSCO␍elease-token.txt`), lädt jeder Release-Build eine neue Version selbst auf den Keymaster | `debug` | Sync-Debugausgaben an/aus |
(`release.ps1`, Changelog aus dem passenden Abschnitt in `CHANGELOG.md`). Gibt es die Version schon, passiert nichts. | `clear` | Konsole leeren |
## Aufbau ## Selbst bauen
| Datei | Aufgabe | - Eine C#-Entwicklungsumgebung, .NET Framework 3.5 (Unity 5.0 / Mono)
|---|---| - Die Verweise in `MSCO.csproj` zeigen auf `F:\SteamLibrary\steamapps\common\My Summer Car\mysummercar_Data\Managed\`
| `MSCO.cs` | Mod-Einstieg, Tastenbelegung | (UnityEngine, PlayMaker, Assembly-CSharp, Assembly-CSharp-firstpass, MSCLoader, 0Harmony, Newtonsoft.Json, cInput) –
| `MultiplayerManager.cs` | Sitzung, Nachrichten, Spielerliste, Spielstart, HUD | bei anderem Installationsort anpassen.
| `NetSession.cs` | Netzwerk (TCP und Steam P2P), Protokoll | - Nach dem Build wird die DLL automatisch nach `Documents\MySummerCar\Mods` kopiert (`MSCMODSFOLDER` in der csproj).
| `LobbyUI.cs`, `Overlays.cs`, `UiTheme.cs` | Launcher, Konsole/Chat/Admin-Menü, gemeinsamer Stil |
| `ServerBrowser.cs`, `WinHttp.cs` | Serverliste (TLS 1.2 über WinHTTP), Server-Abfrage | ```
| `ObjectSync.cs` | Items/Teile/Fahrzeuge mit Besitzer-System | msbuild MSCO.csproj -p:Configuration=Release
| `VehicleStateSync.cs`, `VehicleFx.cs`, `Passenger.cs` | Fahrzeugzustand, Lichter/Sound, Beifahrer | ```
| `FsmSync.cs`, `DoorSync.cs`, `WorldSync.cs`, `MoneySync.cs` | Montage-Events, Türen, Zeit/Wetter, Geld |
| `RemotePlayer.cs` | Spielfiguren der Mitspieler | ### Updates veröffentlichen (MSC Launcher / MSCLoader)
| `SaveSync.cs`, `MenuHelper.cs` | Spielstand übertragen/sichern, Laden aus dem Menü |
| `SteamLobby.cs`, `JoinLinks.cs`, `DiscordPresence.cs` | Steam-Lobbys, `msco://`-Links, Rich Presence | - **Kleines Update** (Fehlerbehebungen, neue Funktionen, Netzwerk unverändert): in `MSCO.cs` nur die dritte Stelle von
| `SafetyPatches.cs`, `InputLock.cs`, `SceneCache.cs` | Absturzschutz, Eingabesperre, geteilte FSM-Suche | `ModVersion` erhöhen (`2.8.1` → `2.8.2`), Release bauen und `bin/Release/MSCO.dll` hochladen. Spieler mit 2.8.x
spielen weiter zusammen, Server 2.8 müssen nicht aktualisiert werden.
## Bekannte Einschränkungen - **Großes Update** (Protokoll inkompatibel geändert): `ProtocolVersion` in `MSCO.cs` **und** `GameServer.ModVersion` im
Server erhöhen (z.B. `2.9`), `ModVersion` auf `2.9.0`. Dann brauchen alle die neue Mod und den neuen Server.
- Teile, die nach dem Server-Spielstand montiert wurden, werden für neue Spieler nachgespielt – das klappt nicht immer - Verglichen werden immer nur die ersten zwei Stellen; übers Netz geht nur die Netzwerk-Version.
perfekt. `reset-world` auf dem Server setzt den Stand zurück. - **Automatisch hochladen**: Ist lokal `MSCO_RELEASE_TOKEN` gesetzt (= `RELEASE_TOKEN` des Keymasters, oder in
- Maximal 3 Spieler. `%AppData%\MSCO
elease-token.txt`), lädt jeder Release-Build eine neue Version selbst auf den Keymaster
## Lizenz (`release.ps1`, Changelog aus dem passenden Abschnitt in `CHANGELOG.md`). Gibt es die Version schon, passiert nichts.
GNU AGPL-3.0 – siehe [LICENSE.txt](LICENSE.txt). ## Aufbau
Made by **MBM** – [mbm.wtf](https://mbm.wtf) | Datei | Aufgabe |
|---|---|
| `MSCO.cs` | Mod-Einstieg, Tastenbelegung |
| `MultiplayerManager.cs` | Sitzung, Nachrichten, Spielerliste, Spielstart, HUD |
| `NetSession.cs` | Netzwerk (TCP und Steam P2P), Protokoll |
| `LobbyUI.cs`, `Overlays.cs`, `UiTheme.cs` | Launcher, Konsole/Chat/Admin-Menü, gemeinsamer Stil |
| `ServerBrowser.cs`, `WinHttp.cs` | Serverliste (TLS 1.2 über WinHTTP), Server-Abfrage |
| `ObjectSync.cs` | Items/Teile/Fahrzeuge mit Besitzer-System |
| `VehicleStateSync.cs`, `VehicleFx.cs`, `Passenger.cs` | Fahrzeugzustand, Lichter/Sound, Beifahrer |
| `FsmSync.cs`, `DoorSync.cs`, `WorldSync.cs`, `MoneySync.cs` | Montage-Events, Türen, Zeit/Wetter, Geld |
| `RemotePlayer.cs`, `GameCharacter.cs` | Spielfiguren der Mitspieler (Animation, MSC-Körper mit eigenem Skelett) |
| `HingeSync.cs`, `ControlSync.cs`, `DamageSync.cs`, `WorldVarSync.cs` | Türwinkel, Schalter, Unfallschäden, Jobs/Events |
| `Favorites.cs`, `Commands.cs`, `PlayerNeeds.cs` | Favoriten, Konsolenbefehle, Bedürfnisse pro Spieler |
| `SaveSync.cs`, `MenuHelper.cs` | Spielstand übertragen/sichern, Laden aus dem Menü |
| `SteamLobby.cs`, `JoinLinks.cs`, `DiscordPresence.cs` | Steam-Lobbys, `msco://`-Links, Rich Presence |
| `SafetyPatches.cs`, `InputLock.cs`, `SceneCache.cs` | Absturzschutz, Eingabesperre, geteilte FSM-Suche |
## Bekannte Einschränkungen
- Teile, die nach dem Server-Spielstand montiert wurden, werden für neue Spieler nachgespielt – das klappt nicht immer
perfekt. `reset-world` auf dem Server setzt den Stand zurück.
- Maximal 3 Spieler im P2P-Spiel (dedizierte Server: so viele wie eingestellt).
## Lizenz
GNU AGPL-3.0 – siehe [LICENSE.txt](LICENSE.txt).
Made by **MBM** – [mbm.wtf](https://mbm.wtf)