feat(master): watch the client's cdclient.fdb and reload it on every server

Master copies the fdb at startup, polls its size and mtime every
cdclient_watch_seconds, builds the new copy and CDServer.sqlite on a
worker, switches itself, writes the pointer file, tells every world and
keeps the last two copies.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Aaron Kimbrell
2026-09-29 23:19:55 -05:00
parent 1f87b2557d
commit e19f6c5fdc
6 changed files with 276 additions and 2 deletions

View File

@@ -29,6 +29,9 @@ enable_ugc_server=0
live_update_warn_seconds=10
# World instances replaced at the same time
live_update_parallel_worlds=4
# Seconds between checks of the client's cdclient.fdb for changes (a change is reloaded on every server); 0 = off
cdclient_watch_seconds=5
# Seconds dead or building players may take before they are moved anyway
live_update_player_wait=30
# Seconds builders on a property may take before it is saved for its new instance anyway