SCUM BUILDING RESTORE — 0.1.0-test.1
Windows x64. Portable, self-contained. No game mod or .NET installation required.
Instructions: https://digitalf.uk/scum/building-restore/

TEST RELEASE: database integration tested; restoration in a running SCUM game
and on GGHost has NOT been verified. Use a separate test server first.
Supports SCUM database user_version 73 and matching source/destination schemas.
A game update may make old archives incompatible. Keep full original backups.

BEFORE WIPE: stop the server completely, download a closed SCUM.db and keep a
full untouched save backup. Extract the ZIP and run the EXE. Open the save,
check one/multiple/all owners, then select individual bases on the right.
Selections include the entire owner's base, including other builders' pieces.
Export selected bases to a .scumbuild archive. Keep the full save too.

AFTER WIPE: let the owners create characters, then stop the server and download
its new SCUM.db. Open your archive, select bases and choose Restore into a new
save. Select the post-wipe database. Review account-ID matches; map every
unmatched owner/builder to an existing destination player, or have them create
a character and download a fresh closed save. Manual mapping reassigns ownership.
Review the preview and choose a NEW output filename. Existing files are refused.
The app produces SCUM-restored.db and a JSON restoration report.

Test this file on a separate server copy using the same game version. Inspect
structures, doors, flags, colours, ownership, building/demolition permissions
and shelters. After successful testing, stop the destination server, back up
its current complete save, and upload a COPY of the output as SCUM.db. Start the
server, inspect logs and structures. Roll back the full backup if needed.
Never replace a running server's database. Do not discard active WAL/journal
files to bypass a check; request a closed save export from your host instead.

HOSTED SERVERS: the same download/edit/upload workflow applies. You need access
to download AND replace the save through the provider's panel, backups or SFTP.
Game-admin commands alone are insufficient. Ask hosting support if restricted.
GGHost access varies by game; see https://www.gghost.games/knowledgebase/7/SFTP-Access-to-your-files.html. No live GGHost
restoration has been tested. The app does not connect to any hosting account.

INCLUDED: completed structural pieces, colours/patterns, flags, shelter links.
EXCLUDED: locks, attached item entities, chests/contents, vehicles, gardens,
unfinished blueprints, player progression, money, squads and raid-protection
timers. Active flag takeover state is reset. Coordinates remain unchanged.
Identical geometry with the same base owner is skipped on repeated import;
this is not a repair/update feature. Exact partial overlaps are blocked, but
terrain clearance and all possible spatial collisions are not evaluated.
Archive files contain player account IDs and building positions: keep private.

VALIDATION
42 automated database integration checks passed using synthetic data with the
observed native schema, plus read-only loading of a real server backup (which
had no bases). Tests cover changed player IDs, multiple owners, shared builders,
flags, colours, shelters, integrity, repeat imports, overlap, schema rejection
and unchanged input files. This does NOT establish in-game compatibility.
Windows GUI compiled; see the website for current UI smoke-test status.

BUILD FROM SOURCE
Requires .NET SDK 10.0. From the source folder:
python3 Tests/make_fixtures.py
dotnet run --project Tests/Tests.csproj -c Release
dotnet publish App/App.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true
Tests require Python 3 (on Windows use python instead of python3 if needed).
Run commands from the extracted source root. Synthetic assets are TEST_ONLY: never
upload synthetic test databases to a game server.
