Commit Graph
18 Commits
Author SHA1 Message Date
MrMahoandClaude Opus 5.5 d946c95198 Server 2.10.3: browse the MSCO mod list in the web panel
Mods -> MSCO mod list: search the approved mods from msco.mbm.wtf/mods and add or
update one with a click. The server lists and downloads only from the official
keymaster (never from a URL in the answer), checks the SHA-256 and stores it in
data/mods like an uploaded mod. Admins only. 6 new tests (154 pass).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 18:08:37 +02:00
MrMahoandClaude Opus 5.5 266a462fc3 Server 2.10.2: warn when an uploaded save has no items.txt
Bought parts (oil filter, spark plugs, fan belt, battery ...) and whether they are
installed are stored in items.txt. Without it they are missing on the car - e.g. the
finished Satsuma of a downloaded save loses oil on the server (in singleplayer an old
local items.txt hides the problem). The upload result now says so. 2 new tests (148 pass).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 17:41:24 +02:00
MrMahoandClaude Opus 5.5 bb3efb8cc3 Server 2.10.1: remote management from the MSCO Launcher
- Polls the keymaster every 5 s for commands from the owner's launcher, runs only allowed
  commands (say, kick, ban, save, backup, restart, mods reload, status, players), sends results
  and the player list back
- RemoteManagement in server.json / web panel settings (on by default) to turn it off

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 11:11:14 +02:00
MrMahoandClaude Opus 5.5 3a79c928d1 Server 2.10.0: distribute MSCO mods from data/mods
- ModStore: mods in data/mods (id, name, version, SHA-256), console "mods [reload]"
- ModList is sent before Welcome, files on request in 60 KB parts (once per connection)
- ModMessage relayed between players (max 64 KB)
- Heartbeat reports the mods to the keymaster (automatic "modded" tag)
- Web panel page "Mods": upload, remove, reload (DE/EN)
- Tests for list, download, checksum, relay and limits

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 01:00:23 +02:00
MrMahoandClaude Opus 5.5 5e07fe1001 Server 2.9.6: no old positions after reset / new game
Late position updates from players that are being reconnected after reset-world or a new game
were stored again, so everyone spawned at their old-world position. Tracking stops for those
clients now. Test added.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 00:34:15 +02:00
MrMahoandClaude Opus 5.5 835d3ce998 Panel: unticking 'web panel enabled' + restart panel really turns it off (2.9.5)
The restart used to refuse when the panel was disabled, so it stayed
reachable. Now it stops the panel (also the relay on the game port);
'panel on|off' in the console turns it on/off and saves server.json.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 21:07:18 +02:00
MrMahoandClaude Opus 5.5 4a9ad55d14 In-game admin menu can grant and remove admin rights (2.9.4)
AdminAction 9/10 (admins only) runs op/deop for the target player, same as
the console and the web panel.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 17:52:32 +02:00
MrMahoandClaude Opus 5.5 e94123fa40 New game from the panel instead of an uploaded save (2.9.3)
World & Backups -> Start new game (console: new-game, also when stopped):
the save is backed up and replaced by a new-game marker (also as reset
point). Joining players are told to start a new game; the server pulls the
first player's save and from then on runs normally. Reset world returns to
a new game when the reset point is one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 17:36:33 +02:00
MrMahoandClaude Opus 5.5 06a58e08d5 Store job/shop values and vehicle switch states for late joiners (2.9.2)
WorldVars and VehicleControls were only relayed; players joining later only
got them with the next save pull. They are now stored in world.json (cleared
with a new save) and appended to the world snapshot (old clients ignore it).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 14:11:05 +02:00
MrMahoandClaude Opus 5.5 48446c46db Version 2.9.1 (own server tags)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 21:20:43 +02:00
MrMahoandClaude Opus 5.5 1ab9a01efb Server updates from the web panel with progress screen
- Updater checks git.mbm.wtf every 6 h (and on demand) for a newer <Version>
  on main, shows the new commits and the required mod version
- Install: download the source, build it with dotnet publish into
  data/app/current, warn players and restart (exit code 75 for Docker/systemd,
  self-relaunch on Windows). At startup a newer installed update is loaded in
  its own AssemblyLoadContext; after 3 failed starts the built-in version runs
- Panel: Update page, sidebar badge, full-screen progress overlay (download,
  build, install, restart) that survives the restart and reloads the panel
- Panel sessions survive restarts (hashed tokens in data/panel_sessions.json)
- Docker image is based on the .NET SDK so it can build updates
- Version 2.9.0

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 21:07:09 +02:00
MrMahoandClaude Opus 5.5 8df6cbcafc Panel: German/English, redesigned sidebar, in-game admins page, Steam Web API key link, RAR/7z save upload (SharpCompress), responsive cards; upload errors return 400; tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 19:40:46 +02:00
MrMahoandClaude Opus 5.5 f8aad82d18 Web panel (like txAdmin) on the game port: login/roles/users, players, kick/ban/op, bans, live console, world reset/backups/restore, settings editor, save ZIP upload/download, start/stop/restart; in-process restart loop; tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 18:18:58 +02:00
MrMahoandClaude Opus 5.5 6f8474d66b 2.8: relay bought/consumed items (stored for joiners), crash damage, job values, traffic (world authority only); tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 14:58:47 +02:00
MrMahoandClaude Opus 5.5 d784c88841 Version 2.7
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 23:58:11 +02:00
MrMahoandClaude Opus 5.5 c70b284e17 Security: admin rights only for Steam-verified SteamIDs; protocol test suite (Tests/)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 23:51:18 +02:00
MrMahoandClaude Opus 5.5 7e291d06ea Production ready: hardening, limits, docs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 20:55:39 +02:00
MrMahoandClaude Opus 5.5 0d289879f4 MSCO dedicated server 2.6: code, Docker, systemd, README
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 19:45:02 +02:00