Requested on Discord by tsu, seconded by Jessica: let the launcher use a Vintage Story version that was not installed through it. Point it at a folder, it registers that folder as a version and can launch installations against it.
Two audiences for this: players who already have the game installed and do not want to redownload half a gigabyte, and people who run builds that are not on the CDN at all (tsu's case: versions that are not out yet).
The game already leaves what we need for detection: the install writes a version marker at assets/version-X.Y.Z.txt (verified on the Windows conformance runner and in the Linux archive), and the executable presence check exists in the domain (gameExecutableCandidates handles the per-OS naming). So the flow is: pick a folder, the launcher reads the marker and confirms an executable, then registers it like any downloaded version, with a clear refusal if the folder does not look like a game install. For a build with no marker file, a manual version field is the fallback, since launch compatibility logic keys off the version string.
The version list would need to distinguish CDN-installed versions from linked ones, mostly so uninstall knows that deleting a linked version must only unregister it, never touch the folder.
Requested on Discord by tsu, seconded by Jessica: let the launcher use a Vintage Story version that was not installed through it. Point it at a folder, it registers that folder as a version and can launch installations against it.
Two audiences for this: players who already have the game installed and do not want to redownload half a gigabyte, and people who run builds that are not on the CDN at all (tsu's case: versions that are not out yet).
The game already leaves what we need for detection: the install writes a version marker at assets/version-X.Y.Z.txt (verified on the Windows conformance runner and in the Linux archive), and the executable presence check exists in the domain (gameExecutableCandidates handles the per-OS naming). So the flow is: pick a folder, the launcher reads the marker and confirms an executable, then registers it like any downloaded version, with a clear refusal if the folder does not look like a game install. For a build with no marker file, a manual version field is the fallback, since launch compatibility logic keys off the version string.
The version list would need to distinguish CDN-installed versions from linked ones, mostly so uninstall knows that deleting a linked version must only unregister it, never touch the folder.