Files
MSCO/CHANGELOG.md
T

11 KiB
Raw Blame History

Changelog

Nächste Version

Server-Browser

  • Hervorgehobene Server: vom Keymaster-Admin markierte Server (Tag featured) stehen ganz oben, mit goldener Zeile und FEATURED-Abzeichen (Liste und Profil)
  • Tags der Server (z.B. OFFICIAL) erscheinen im Server-Profil; die Suche findet auch Tags
  • Braucht keinen neuen Server: die Infos kommen vom Master (msco.mbm.wtf) und funktionieren mit 2.8-Servern

Mitfahren ohne Ruckeln

  • Fahrer und Beifahrer sitzen beim anderen fest auf dem Sitz: die Figur wird relativ zum Auto übertragen und geglättet, statt in Weltkoordinaten hinter dem fahrenden Auto herzuhinken (vorher wurde der Beifahrer bei Tempo nach hinten gezogen)
  • Der Beifahrersitz wird jetzt aus der richtigen Fahrerposition berechnet (vorher aus der hinterherhinkenden Figur)
  • Autos anderer Spieler ruckeln nicht mehr bei jedem Netzwerkpaket zurück (Vorausberechnung in Physik-Zeit) und werden zwischen den Physik-Schritten flüssig bewegt – auch der NPC-Verkehr
  • Kompatibel: ältere Mods und der Server ignorieren die neuen Sitz-Daten

Schönere Oberfläche

  • Fenster (Launcher, Konsole, Admin-Menü, Hinweise) mit weichem Schatten und feinem Rand, orange Knöpfe mit Verlauf
  • Server-Browser: mehr Platz für die Liste, Zeilen leuchten beim Überfahren auf, Füllbalken für die Spielerzahl, Ping farbig (grün/gelb/rot), goldener Streifen bei hervorgehobenen Servern
  • Seitenleiste mit Trennlinie, Menüpunkte werden beim Überfahren hell

2.8

Server und Mod müssen beide 2.8 sein (Server: git pull && docker compose up -d --build).

Scharfe Oberfläche, FPS, Leistung

  • Launcher wird in voller Auflösung gezeichnet (Schrift und Kanten scharf statt hochgezogen/verpixelt)
  • fps in der F7-Konsole: FPS-Anzeige oben rechts (grün/gelb/rot), Konsole zeigt auch das längste Bild (Ruckler)
  • Weniger Ruckler: Sync-Teile suchen nach dem Laden nicht mehr alle im selben Frame, gemeinsame Suche nach Rigidbodys, Unfallschäden werden nur noch nach einem Aufprall geprüft (vorher jede Sekunde große Mesh-Kopien), Fahrzeug-Effekte schlagen ihre Bauteile seltener nach, Ping-/FPS-Anzeige ohne Registry-Zugriff pro Bild

Launcher im Vollbild

  • Der MSCO-Launcher füllt das ganze Hauptmenü und skaliert automatisch mit der Auflösung; Listen wachsen mit dem Platz (keine abgeschnittenen Knöpfe mehr). Das Spielmenü dahinter (Logo, Farbauswahl, MP3 …) ist komplett verdeckt und gesperrt, die Menü-Musik ist stumm. MINIMIZE entfällt

P2P: Weiterspielen oder neues Spiel

  • In der Host-Lobby: CONTINUE (eigenen Spielstand weiterspielen, mit Datum) oder NEW GAME (frische Welt für alle). Der bisherige Spielstand wird vorher nach MSCO_Saves/<Datum> gesichert (die letzten 10 bleiben), mit Sicherheitsabfrage. Mitspieler bekommen die neue Welt automatisch, sobald sie einmal gespeichert ist

Mehr Sync

  • Einkäufe: gekaufte/ausgepackte Items tauchen bei allen auf (auch bei später Beitretenden)
  • Verbrauchte Items: Gegessenes, Getrunkenes und Verbrauchtes verschwindet bei allen
  • Räder drehen sich bei Autos, die ein anderer Spieler fährt
  • Unfallschäden: verbeulte Karosserie wird an alle übertragen
  • Jobs, Aufträge und Laden: Fortschritt (Auftrag angenommen, erledigt, bestellt ...) wird synchronisiert
  • Zündung, Motor, Licht, Choke, Blinker, Wischer: die Schalterstellungen werden übertragen – beim anderen laufen Motor und Scheinwerfer dadurch wirklich (nicht nur das Geräusch)
  • Autotüren, Motorhaube, Kofferraum: stehen bei allen im selben Winkel offen
  • Verkehr: NPC-Autos fahren bei allen an derselben Stelle (der erste Spieler simuliert, die anderen folgen)
  • vehicles in der F7-Konsole zeigt, wie viele Karosserie-Meshes, Job-Werte und Verkehrsautos synchronisiert werden

Admin: Welt verwalten (neuer Reiter WORLD im Admin-Menü)

  • RESET WORLD: die ganze Welt zurück auf den Spielstand, wie er auf den Server hochgeladen wurde (Reset-Punkt) – das automatische Hochladen alle 5 Minuten ändert den Reset-Punkt nicht; der Stand davor wird gesichert
  • SET RESET POINT: den aktuellen Spielstand als neuen Reset-Punkt nehmen (Server-Befehl: set-reset-point)
  • BACKUP NOW: aktuellen Server-Spielstand sichern (Server-Befehl: backup)
  • Backups mit Datum/Uhrzeit, RESTORE holt einen älteren Stand zurück (der aktuelle wird vorher gesichert)
  • Jede Aktion mit Sicherheitsabfrage; nur für Admins (vom Server geprüft)

Favoriten

  • Herz neben jedem Server (Liste und Profil) merkt ihn als Favorit
  • Neuer Tab Favorites: jedem Server einen eigenen Kurznamen geben, beitreten, entfernen, per Adresse hinzufügen
  • Schnell wechseln: /switch <kurzname> im Chat oder switch <kurzname> in der F7-Konsole – trennt und verbindet direkt mit dem anderen Server; fav listet alle, fav add <name> merkt den aktuellen Server

Pro Spieler

  • Hunger, Durst, Stress, Harndrang, Müdigkeit und Schmutz werden für jeden Spieler einzeln auf dem Server gespeichert und beim Beitreten zurückgegeben (nicht mehr die Werte aus dem gemeinsamen Spielstand)

Spielerfiguren

  • Springen: die ganze Figur hebt ab (vorher ging nur der Oberkörper nach oben), Knie werden angezogen
  • Runder Gürtel, runde Schultern, abgerundete Stiefel mit Sohle

Hinweise

  • Kleine Benachrichtigung oben rechts, wenn jemand beitritt oder das Spiel verlässt

Trennen & Neu-Verbinden

  • Gekickt, gebannt, Server beendet, Verbindung verloren: eigenes Fenster in der Bildmitte mit Grund und OK (im Spiel wird der Grund vorher 2,5 s groß angezeigt)
  • reset-world / reload-save / Server-Neustart (z.B. Update per docker compose up) / Verbindung verloren: Fenster „Reconnecting“ – verbindet automatisch neu, bis zu 10 Versuche (ca. 1 Minute), mit CANCEL-Knopf. Nach Kick, Ban oder eigenem Trennen wird nicht neu verbunden

Behoben

  • Nach Kick/Reset kam weder das Fenster mit dem Grund noch das automatische Neu-Verbinden: MSCLoader lädt beim Wechsel ins Hauptmenü alle Mods neu und damit ging der Zustand verloren. Er wird jetzt vorher gesichert und danach fortgesetzt
  • Absturz („NaN … collider“) und abfallende Teile am Satsuma: Türen/Haube/Kofferraum wurden gegen das Scharnier an ihre Position teleportiert – das erzeugte riesige Kräfte. Jetzt zieht die Feder des Scharniers sie sanft auf den Winkel
  • Beim anderen Spieler „orgelte“ der Anlasser endlos: erzwungene Geräusche/Lichter werden losgelassen, sobald keine Daten mehr vom Fahrer kommen
  • Beim Neuladen der Welt wurden herumliegende Objekte als „verbraucht“ gemeldet und bei allen gelöscht. Jetzt werden nur einzelne echte Items gemeldet, Fahrzeuge/Teile nie gelöscht, und der Server nimmt höchstens 20 pro Minute an

Leistung

  • Mod: herumliegende Objekte werden nur noch jedes 4. Frame geprüft (eigene/gehaltene/gefahrene weiterhin jedes Frame), weniger Speicher-Allokationen pro Frame, Gelenke fremd gefahrener Autos seltener geprüft
  • Server: Nachrichten an alle werden nur einmal verpackt; der Server wartet auf eingehende Daten statt fest zu schlafen (geringere Verzögerung, fast keine CPU-Last im Leerlauf)

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 <befehl> 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)