Match this symptom
After app_update or validate, the server uses a default name, world, password, player count, or gameplay rules even though an XML file still contains the intended values.
The answer first
Stop the server and preserve both the pre-update and current XML files. Verify the exact -configfile path in the launch definition, then merge current supported properties into an owner-named configuration instead of copying the old file blindly over a new schema.

Do not validate again yet
Repeated validation can replace more vendor-owned files without explaining which configuration the process reads. Stop automatic restarts, copy the old/current XML, launch script or service definition, and startup log, and make the first diagnosis from those files.
Resolve the active configuration path
- 1Read the exact -configfile value in the service or startup script.
- 2Resolve a relative name from the process working directory, not from the folder currently open in an editor.
- 3Check that the file exists under the service account and that its startup values appear in the new log.
- 4Search for a second startup task or service that could be launching a different XML.
Merge against the current sample
- 1Keep the old owner file unchanged as evidence.
- 2Copy the sample from the current installed build to a new owner-named working file.
- 3Move known settings one at a time, preserving exact property names, XML syntax, and current allowed values.
- 4For a console profile, recheck the live crossplay requirements instead of restoring an old allowlist by memory.
Test a reversible configuration
Start privately and confirm server name, save/world identity, port, player cap, and one visible gameplay value. Then use saveworld and native shutdown, restart, and verify again. Do not invite players until the intended world—not a fresh default—is confirmed.
Prevent another silent reset
- Keep the active XML under an owner-controlled filename supplied explicitly with -configfile.
- Store it with version history and a redacted launch record outside replaceable Steam binaries.
- Before every update, snapshot configuration, save, generated map, permissions, and mods.
- After every update, compare the new vendor sample before public startup.
Tell a schema change from a manager overwrite
Watch the active XML's modification time and keep a checksum before one controlled start. If the file changes at launch or shutdown, a server manager or the game is writing an in-memory value back to disk; correct the manager's saved setting instead of fighting the generated file. If the file is unchanged but the value is ignored, concentrate on the selected -configfile path, spelling, supported property schema, and startup log.
For a decisive test, use a harmless visible value such as a temporary distinctive server name on a private copy. Confirm which XML produced that name, then revert it after the path is proven. Do not use the world name, save name, or generated-world selector as the test value because changing those can create apparently missing progress and turn a configuration diagnosis into a recovery incident.
