Files
MSCO/CHANGELOG.md
T
2026-10-03 18:55:04 +02:00

23 KiB
Raw Blame History

Changelog

2.10.7

Sicherheit

  • Daten von Servern und Mitspielern werden auf gültige Längen geprüft – eine gefälschte Längenangabe ließ das Spiel vorher mit „Out of Memory“ abstürzen
  • Mitspieler können nicht mehr beliebige Spiel-Zustände bei anderen auslösen (z.B. am eigenen Spieler oder an Systemen wie Tod/Speichern) – nur noch Klicks auf klickbare Dinge und echte Schraub-/Montage-Schritte
  • Uhrzeit/Wetter und Meldungen im Stil von Server-/Admin-Nachrichten („* …“) nur noch vom Admin bzw. Host
  • Release ist mit dem MSCO-Release-Schlüssel signiert

2.10.6

  • Neuer Konsolenbefehl oilcheck: zeigt, woher Öl ausläuft – die Leck-Werte des Motors (Ölwanne, Ölfilter, Zylinderkopfdichtung, Ventildeckel), die Schrauben der Ölwanne samt Ablassschraube und den Ölfilter (eingebaut, Festigkeit). Wichtig: der Ölfilter ist ein gekauftes Teil und steht in items.txt – fehlt diese Datei im Spielstand eines Servers, fehlt der Filter am Auto und Öl läuft aus
  • Neue Beispiel-Mod Show Bolt Size (examples/ShowBoltSize); Mods lassen sich jetzt über den Launcher veröffentlichen (siehe MODDING.md)

2.10.5

  • Teleport zu Orten (Admin, Reiter TELEPORT) landet wieder am Ort: vorher zählten alle weit verstreuten Teile eines Ortes mit (Briefkasten, Wege, abgeschaltete Objekte) und man landete irgendwo im Wald; außerdem wurde manchmal ein gleichnamiges Unterobjekt statt des Ortes genommen

2.10.4

Admin-Menü neu aufgebaut

  • Festes Fenster mit gleich breiten Reitern, Zeilen mit Status-Abzeichen statt langer Listen
  • VEHICLE: Suche, Filter PROBLEMS (kaputt, lose, verschlissen) und je Kategorie, Füllstände ein-/ausklappbar
  • INSTALL für nicht eingebaute Teile: das Teil wird wie beim Laden eines Spielstands eingebaut und sitzt exakt auf seinem Halter (auch bei den Mitspielern); fehlt das Trägerteil, steht der Grund im Log
  • Status LOOSE kommt jetzt aus der echten Festigkeit (vorher blieb nach LOOSEN „BOLTED“ stehen)
  • WORLD: Uhrzeit (in 2-Stunden-Schritten) und Wetter (klar, Regen, Gewitter – direkt über dir) für alle
  • ITEMS: Suchfeld; Konsole und Admin-Menü überdecken sich nicht mehr

JOIN ohne Rückfrage

  • JOIN im Server-Browser oder auf der Website verbindet im Hauptmenü sofort. Server-Mods fragen weiterhin nach

2.10.3

Schrauben synchron

  • Jede Schraube wird jetzt als Stufe (0–8) übertragen und die Festigkeit jedes Teils dazu: vorher drehte sich beim Mitspieler nur die Schraube, sein Teil blieb „lose“ bzw. „fest“ (die Festigkeit zählt im Spiel das Werkzeug hoch) – Teile ließen sich dann nicht abbauen oder fielen ab
  • Wird ein Teil festgezogen (Werkzeug, Admin oder vom Mitspieler), springt es exakt auf seinen Halter – verrutschte Teile sitzen wieder richtig (nicht bei eingedrehten Teilen wie Zündkerzen/Ölfilter und nicht bei Türen/Hauben)

Admin-Menü, Reiter VEHICLE

  • Je Teil TIGHTEN / LOOSEN (alle Schrauben ganz fest bzw. ganz lose, wie mit dem Werkzeug) und oben TIGHTEN ALL / LOOSEN ALL; Anzeige „bolted“/„loose“; das Fenster ist auf diesem Reiter breiter

2.10.2

  • Beifahrer: automatisch festgehalten wird man nur noch, wenn das Fahrzeug fährt (egal wer fährt) – am stehenden Auto kann man sich frei bewegen und schrauben (vorher hing man fest, sobald man sich in den Motorraum beugte, und wurde nach dem Aussteigen gleich wieder eingefangen)
  • Öl lief endlos aus: die Ablassschraube war bei Mitspielern unterschiedlich weit eingedreht (offen = Leck). Schrauben mit Funktion (Ablassschraube) werden jetzt als Stufe übertragen und über die Logik des Spiels angewendet; beim Beitreten gibt die Welt-Autorität ihren Stand vor
  • Admin-Menü, Reiter VEHICLE: Füllstände (Benzin, Öl, Brems-/Kupplungsflüssigkeit, Kühlwasser) mit FILL/EMPTY, alle Teile mit Verschleiß und Zustand – einzeln REPAIR/BREAK, REPAIR ALL, Filter (zum Testen; im Chat angezeigt)
  • Server-Profil im Server-Browser aufgeräumt: Infos und Spieler als zwei gleich hohe Karten, nichts bricht mehr um
  • Diagnose fsmdump zeigt jetzt auch die Variablen der FSMs

2.10.1

Türen

  • Autotüren (Satsuma, Hayosiko, Kekmet, Gifu, Ferndale, Ruscko ...) werden jetzt als offen/zu übertragen: beim Mitspieler geht die Tür wirklich auf (Halte-Joint weg, Scharnier frei) und schwingt mit, Zumachen läuft über die Schließ-Logik des Spiels (mit Geräusch)
  • Behoben: Satsuma-Türen ließen sich manchmal gar nicht mehr öffnen – jedes übertragene Zumachen hängte einen weiteren Halte-Joint an. Solche „verklemmten“ Türen werden automatisch repariert
  • Garagentor (und andere Tore/Türen mit Scharnier) synchron

Leistung

  • Szenenname wird nur noch einmal pro Bild abgefragt (vorher hundertfach – jedes Mal ein neuer String)
  • Konsole perf: FPS und Zeit pro MSCO-Teil (inkl. Oberfläche); Messung auf einem Server: MSCO braucht ~0,2 ms pro Bild – die FPS begrenzt das Spiel selbst
  • Konsole fsmdump <text>: Diagnose für Spiel-Logik (Zustände, Aktionen, Scharniere) in MSCO\fsmdump.txt

2.10.0

Mod-Support

  • Eigene MSCO-Mods: DLLs in <Spielordner>\MSCO\Mods mit einer Klasse, die von MscoMod erbt (OnLoad, OnMenuLoad, OnGameLoad, Update, OnGUI, Spieler kommen/gehen, Sitzung, eigene Netzwerk-Nachrichten zwischen den Spielern). Anleitung und Beispiel: MODDING.md, examples/HelloMod
  • Server-Mods: Server mit Mods schicken beim Beitreten die Liste; fehlende Mods lädt das Spiel nach Zustimmung („INSTALL & JOIN“) direkt vom Server (SHA-256 geprüft). Sie sind nur auf diesem Server aktiv
  • Neue Seite Mods im MSCO-Menü, Konsole mods
  • Server-Browser: Pille MODS n, Filter VANILLA / MODDED, Mod-Liste im Server-Profil
  • ESC im Hauptmenü beendet das Spiel nicht mehr (zum Beenden: QUIT)
  • Netzwerk-Version bleibt 2.8 – Server und Mitspieler mit 2.8.x/2.9.x funktionieren weiter

2.9.1

Fehler ohne MSCLoader behoben

  • Server-Browser: „Could not load System.Runtime.Serialization“ – MSCO braucht Newtonsoft.Json nicht mehr (eigener kleiner JSON-Leser); die Bibliothek kam vorher von MSCLoader
  • Mauszeiger im Admin-Menü, Chat und in der Konsole wieder sichtbar (wie im Pausemenü des Spiels)
  • Startbildschirm „Press any key“: statt ihm erscheint sofort ein MSCO-Ladebildschirm, dann das Hauptmenü
  • JOIN im Browser, während das Spiel schon läuft: der Link kommt im Spiel an (Hinweis bzw. Beitreten im Hauptmenü)

Admin-Menü: Teleport

  • Neuer Reiter TELEPORT: Haus, Laden (Teimo), Werkstatt, Prüfstelle, Peräjärvi, Müllkippe, Tanzhalle, Ferienhaus, Hütte, Rallye, Dragrace, Fußballplatz, Kilju-Käufer, Theater, Satsuma – man landet neben dem Ort auf dem Boden

MSCO-Look

  • Fenstertitel „MSCO - My Summer Car Online“ und MSCO-Symbol; im Hauptmenü ist das MSCO-Logo statt des Spiel-Logos
  • Oberfläche im Stil der Website: rundere Karten mit feinem Rand, Filter als Pillen, oranger Schimmer, schlanke Scrollleisten, Navigation mit abgerundeten Einträgen

2.9.0

Eigenständig – ohne MSCLoader

  • MSCO braucht MSCLoader nicht mehr: es startet selbst über Unity Doorstop (winhttp.dll) aus <Spielordner>\MSCO. Der MSCO Launcher richtet alles ein und stellt doorstop_config.ini auf MSCO um – auch der Start über Steam lädt dann MSCO. MSCLoader ist dabei blockiert (seine Konfiguration wird als doorstop_config.mscloader.ini gesichert)
  • Der Nachrichten-Bildschirm beim Spielstart („Press any key“) wird übersprungen, MSCO öffnet direkt im Hauptmenü
  • Tasten ändern jetzt mit bind in der F7-Konsole (bind passenger O), gespeichert in den Spiel-Einstellungen
  • Harmony und Newtonsoft.Json liegen neben MSCO.dll; Lade-Protokoll in MSCO\MSCO_Loader.txt
  • msco://-Links werden vom Launcher übernommen, wenn er installiert ist
  • Netzwerk-Version bleibt 2.8: spielt mit 2.8.x-Servern und -Mitspielern

2.8.1

Mehr Events synchron

  • Zusätzlich zu Jobs, Laden, Werkstatt, Prüfstelle, Müllkippe, Tanzhalle, Ferienhaus und Rallye: Dragrace, Kilju-Käufer, Theater, Fußball, Peräjärvi (Dorf) und die Hütte - ständig wechselnde interne Zähler werden weiterhin automatisch ausgelassen

Admin-Menü

  • Im Admin-Menü (Spieler-Reiter) gibt es MAKE ADMIN / REMOVE ADMIN: Admins können anderen Spielern Admin-Rechte geben oder nehmen (dedizierter Server ab 2.9.4; der Spieler braucht Steam)

Kleine Updates

  • Mod-Version (2.8.1 für MSCLoader/MSC Launcher) und Netzwerk-Version (2.8) sind getrennt: Updates an der dritten Stelle passen zu allen 2.8-Servern und -Mitspielern. Anleitung im README („Updates veröffentlichen“)

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 erscheinen im Server-Profil; die Suche findet auch Tags. Serverbetreiber setzen eigene Tags im Web-Panel (Einstellungen), OFFICIAL vergeben nur die MSCO-Admins und wird hervorgehoben
  • Braucht keinen neuen Server: die Infos kommen vom Master (msco.mbm.wtf) und funktionieren mit 2.8-Servern

Mitspieler als echte MSC-Menschen

  • Andere Spieler sehen aus wie die Leute im Spiel: derselbe Körper wie alle MSC-Menschen, mit einem normalen Hemd, einer Hose und einem Gesicht aus dem Spiel (keine Kleider/Vorhänge/Geister). Bewegt wird ein eigenes Skelett mit der bisherigen Animation - laufen, springen, ducken, sitzen, Items halten
  • Jeder Spieler bekommt (nach Spieler-Nummer) eine andere Kombination; alle Mitspieler sehen dieselbe
  • Konsole (F7): model classic zeigt wieder die MSCO-Figur, model game die MSC-Menschen; rig zeigt, wer welches Modell hat. Findet MSCO den Körper nicht, bleibt automatisch die MSCO-Figur

Türen an allen Fahrzeugen

  • Türen hingen schief, sprangen zurück oder lösten sich: der Tür-Sync erfasste auch die FSMs zum An-/Abbauen, Festschrauben und Lackieren der Tür-Teile und erzwang deren Zustände beim Mitspieler. Jetzt nur noch Öffnen/Schließen
  • Türen schaukelten hin und her: an einem stehenden Auto schickte jeder in der Nähe den Türwinkel zurück. Jetzt schickt nur, wer an der Tür geklickt hat (bzw. beim fahrenden Auto der Fahrer); empfangene Winkel werden länger gehalten

Mitfahren

  • Wer im Fahrzeug ist, fährt mit - genau an seiner Stelle: Kopf in der Kabine, in der offenen Tür oder auf der Ladefläche -> die Position im Fahrzeug wird festgehalten, kein Umsetzen auf einen berechneten Sitz. Geht auch, wenn noch niemand fährt. Aussteigen mit Leertaste oder der Beifahrer-Taste (P) - man steht dann auf der näheren Seite neben dem Fahrzeug. P neben dem Auto setzt einen wie bisher auf den Beifahrersitz
  • Beim Ein-/Aussteigen am Fahrersitz und kurz nach dem Fahren wird man nicht festgehalten

Satsuma zerfällt nicht mehr beim gemeinsamen Fahren

  • Hing das Spiel des Fahrers kurz (z.B. beim Speichern für den Server), gab der Mitfahrer das Auto nach 3 s frei: es blieb bei ihm schlagartig stehen, die Teile wollten mit Tempo weiter und rissen ab - und das „Teil abgefallen“ ging an alle. Ein gefahrenes Auto wird jetzt erst nach 30 s ohne Daten freigegeben, rollt dann mit der Geschwindigkeit des Fahrers weiter, und die Teile bleiben noch 3 s fest, bis alles eingeschwungen ist
  • Ladung im Auto (Kisten, Werkzeug, Teile im Kofferraum oder auf dem Sitz) gehört jetzt immer dem Fahrer. Vorher übernahm sie oft der Mitfahrer; beim Fahrer folgte sie dann verspätet und „unendlich schwer“ und schlug Sitze und Teile ab

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

Weniger Hänger

  • Der Server holt sich den Spielstand nur noch, wenn sich seit dem letzten etwas geändert hat (Speichern lässt das Spiel kurz hängen), Standard für neue Server alle 10 statt 5 Minuten
  • Die teure Suche über alle PlayMaker-FSMs läuft seltener; die Schadens-Prüfung liest ab und zu nur noch ein Mesh
  • Hänger-Erkennung: dauert ein Bild länger als 0,2 s, steht in der F7-Konsole, ob MSCO schuld war (und welcher Teil) oder das Spiel selbst (z.B. beim Speichern)

Behoben: Öl lief aus dem Satsuma

  • Beim Beitreten lief Öl aus, obwohl der Spielstand lokal dicht war: die vom Spiel selbst berechneten Werte LeakOilpan, LeakOilfilter, LeakRockerCover, LeakHeadgasket (und Raten wie …LeakRate) wurden wie echte Fahrzeugwerte synchronisiert und überschrieben den Stand aus dem Spielstand. Werden jetzt nicht mehr übertragen
  • Diagnose: vars <filter> in der F7-Konsole zeigt die synchronisierten Fahrzeugwerte (z.B. vars oil)

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)