# BSO Server Dedizierter Server für **BSO – Bus Simulator Online** (Multiplayer-Mod für Bus-Simulator 2012). - Mod: [BSO-Mod](https://git.mbm.wtf/MrMaho/BSO-Mod) - Launcher: [BSO-Launcher](https://git.mbm.wtf/MrMaho/BSO-Launcher) - Website, Konten und Releases: [BSO-Website](https://git.mbm.wtf/MrMaho/BSO-Website) Nimmt Spieler an (Hello → Welcome), merkt sich den letzten Zustand jedes Spielers und reicht ihn an alle anderen weiter. Eine einzige Schleife fragt alle Verbindungen ab – ohne Sperren. Protokoll wie bei MSCO: `[int Länge][byte Typ][Daten]` über TCP. `Shared\*.cs` (Protokoll, `PacketReader`, `Connection`) sind **dieselben Dateien wie in BSO-Mod** – bei Änderungen in beiden Repos gleich halten und bei inkompatiblen Änderungen `Protocol.Version` erhöhen. ## Starten Voraussetzung: .NET 10 Runtime. ```powershell BSO.Server.exe --bot # Port 7777, mit Testbot BSO.Server.exe --port 7777 --name "Mein Server" --max 8 BSO.Server.exe --probe host[:port] # Test: verbindet sich wie die Mod, zeigt was ankommt ``` Für Spieler von außen Port **7777/TCP** im Router/Firewall freigeben. | Option | | |---|---| | `--name`, `--description` | Anzeige im Server-Browser | | `--max` | Maximale Spielerzahl (Standard 8) | | `--private` | Nicht in der Serverliste – Beitritt nur per Adresse | | `--public-address host` | Adresse für die Serverliste (hinter NAT/Proxy oder wenn die Website im selben Netz läuft) | | `--master url` | andere Website (Standard `https://bso.mbm.wtf`, Tests: `http://localhost:5080`) | | `--no-auth` | Spieler brauchen kein BSO-Konto (LAN, Tests) | | `--bot` | Testbot | **Serverliste:** Der Server meldet sich jede Minute bei der Website, beim `stop` ab. Gelistet wird er erst, wenn die Website ihn von außen erreicht (sie fragt ihn wie die Mod ab) – das Log sagt, ob es geklappt hat. **BSO-Konto:** Spieler brauchen ein Spiel-Ticket aus dem Launcher (signiert von der Website, 24 h gültig). Der Server prüft die Signatur mit dem öffentlichen Schlüssel der Website (`ticket-key.xml` wird zwischengespeichert), der Name im Spiel kommt aus dem Konto. Ein Konto kann nur einmal gleichzeitig auf einem Server sein. | Konsole | | |---|---| | `status` | Spieler mit Position, Modus und Tempo | | `bot` | Testbot an/aus – fährt als „Bus“ 30 km/h Kreise (20 m) um den ersten Spieler | | `kick [grund]` | Spieler entfernen | | `stop` | Server beenden | ## Bauen ```powershell dotnet publish -c Release -o publish .\release.ps1 -Product server -Version 0.2.0 -File BSO-Server.zip -Changelog "..." ```