# Changelog ## 2.7 Server und Mod müssen beide 2.7 sein (Server: `git pull && docker compose up -d --build`). **Neu** - Eigene Spielerfigur im MSC-Stil (Karohemd, Jeans, Arbeitsschuhe, Schnurrbart, Kappe oder Haare, je Spieler etwas anders) statt kopierter NPCs – keine liegenden/verbuggten Figuren mehr - Ping-Anzeige oben rechts: `ping` in der F7-Konsole (grün/gelb/rot) - MSCO-Konsole jetzt auf **F7** (F8 öffnet im Pausenmenü ein Test-Menü des Spiels) - Admin-Menü: Cheats (+1.000 / +10.000 MK, Bedürfnisse auffüllen, Satsuma zu sich holen), GOTO / BRING (teleportieren) - Fahrzeugzustand-Sync: Tank, Öl, Kühlwasser, Bremsflüssigkeit, Batterie, Schäden, Verschleiß, Kilometerstand, Lack - `vehicles` in der Konsole zeigt die Position jedes Fahrzeugs - Admin-Menü mit Reitern: **PLAYERS** (Kick/Ban/GOTO/BRING, Cheats), **ITEMS** (Items spawnen – alle sehen sie, auf dem Server gespeichert), **BANS** (Sperren aufheben); Server-Befehle `bans` / `unban` - Tacho, Drehzahlmesser, Tank-/Temperaturanzeige und Lenkrad werden beim Beifahrer mitbewegt - Flüssigerer Sync: Position wird aus der Geschwindigkeit vorausberechnet, 30 Updates/s - Letzte Position wird zuverlässig gespeichert (nicht mehr immer an der Toilette spawnen) - Server-Browser: Klick auf den Server öffnet das Profil (JOIN-Knopf in der Liste entfernt) - Alle Mod-Meldungen nur noch in der MSCO-Konsole (F7) - Eigenes Hauptmenü: Continue, New Game, Credits, Changelog und Quit des Spiels sind ausgeblendet, der MSCO-Launcher ist das Hauptmenü (mit eigenem QUIT) - Server-Profil neu: JOIN oben, Spielerliste rechts, Namensfeld ohne Steam in eigenem Kasten - Admin-ITEMS: Werkzeuge und Laden-Artikel (Ratschenkasten, Batterie, Motoröl, Kühlmittel, Bremsflüssigkeit ...) - Nach dem Trennen (Kick, Ban, Shutdown, Timeout ...) zeigt das Hauptmenü den Grund - `reset-world` / `reload-save` auf dem Server: alle Spieler bekommen eine Meldung und verbinden sich automatisch neu - **Server holt sich den aktuellen Spielstand vom Spiel** (beim Beitreten und alle 5 Minuten): neue Spieler bekommen exakt die aktuelle Welt – Schrauben fest, Teile dran – statt nachgespielter Aktionen; Backups der letzten 5 Stände - Feuer, Rauch, Dampf und Funken an Fahrzeugen werden synchronisiert, auch bei geparkten Autos - Kick-, Ban-, Reset- und Shutdown-Meldungen kommen zuverlässig an (Server trennt sauber) - Status-Punkt gelb, bis man wirklich verbunden ist **Behoben** - Auto fiel beim Fahren eines anderen Spielers auseinander (angebaute Teile rissen an ihren Gelenken ab) - Auto kippte mit dem Kopf des Fahrers mit und zitterte (Fahrzeug wurde als „in der Hand gehalten“ erkannt) - Satsuma wurde weggeschleudert und war „verschwunden“ – ungültige/im Boden liegende Positionen werden jetzt verworfen bzw. angehoben, weggeschleuderte Objekte sofort gestoppt - Items und Autos zitterten nach dem Loslassen (Ownership-Pingpong) - Absturz beim Beitreten durch einen Kreis in der Objekt-Hierarchie (nachgespielte Montage-Aktion) - Tippen im Chat/in der Konsole löste Spieltasten aus (Benutzen, Beifahrer-Taste P …) - Maus sprang bei offenem Admin-Menü/Chat immer in die Bildmitte - Ein Fehler in einem Sync-Teil legt nicht mehr den ganzen Sync lahm - Freie Fahrzeuge: nur noch deutliche Wertänderungen werden abgeglichen (kein gegenseitiges Überschreiben) **Sicherheit (Server)** - Admin-Rechte nur noch für von Steam bestätigte SteamIDs – der Server braucht dafür einen `SteamWebApiKey` (sonst könnte sich jeder als Admin ausgeben). Unbestätigte SteamIDs können niemanden mehr vom Server drängen. - Ungültige Positionen werden nicht gespeichert, Paketgröße und Weltzustand sind begrenzt **Server & Keymaster** - Master-Adresse fest (`msco.mbm.wtf`), nicht mehr änderbar - Docker läuft als dein Linux-Benutzer (kein „Permission denied“ in `data/` mehr), klare Meldungen statt Absturz - `docker exec msco-server msco ` für Server-Befehle - Keymaster: Rate-Limits, Security-Header, Healthcheck, Docs-Seite - Automatische Tests: Server `dotnet run --project Tests` (30 Checks), Keymaster `npm run smoke` (24 Checks)