Server-side savegames: Rust service with a shared savegame list in the menu, fallback to files

- server/: small axum service storing savegames as files (1 MB each, 500 MB total, rate limit)
- docker compose: second container with a volume; nginx forwards /api/
- JS plugin: asynchronous HTTP requests polled by the game
- Save/Load open a list page (name field, new, overwrite, load, delete with confirmation)
- Without a reachable service the game keeps using savegame files and the browser autosave

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard ZinkandClaude Opus 5.5 committed 2026-11-03 09:31:36 +01:00
1 parent c5b7896609
commit 7f4324abca
17 files changed
+1390 -30

No files matched your search

+22
View File
@@ -344,3 +344,25 @@ hint.punch_where = The hand can only punch heroes on your own territory.
unit.chainbreaker = Chainbreaker
hint.chainbreaker_restless = The Chainbreaker is restless: it wants something to fight!
# savegames on the server
saves.name = Name:
saves.new = Save as new
saves.default_name = Wave {0} - {1}
saves.overwrite = Overwrite
saves.load = Load
saves.delete = Delete
saves.sure = Sure?
saves.meta = {3} UTC, wave {0}, map {1}, played {2}
saves.empty = No savegames on the server yet.
saves.loading = Loading the list ...
saves.wait = Please wait ...
saves.file_save = Download as file
saves.file_load = Load from file
cloud.deleted = Savegame deleted.
cloud.err_net = The savegame server cannot be reached.
cloud.err_large = The savegame is too large for the server.
cloud.err_rate = Too many requests - please wait a moment.
cloud.err_full = The savegame server is full.
cloud.err_missing = This savegame no longer exists.
cloud.err = The savegame server reported an error.