Skip to content

fix(overlay): ship GameContent.dll - #131

Merged
Zaldaryon merged 1 commit into
mainfrom
fix/issue-129-overlay-gamecontent
Oct 3, 2026
Merged

Zaldaryon merged 1 commit into
mainfrom
fix/issue-129-overlay-gamecontent

Conversation

@Zaldaryon

Copy link
Copy Markdown
Collaborator

Fixes #129

The v0.3.19 overlay omits Optimum.GameContent.dll, though patched Mods/VSEssentials.dll references types from it when the integrated server reaches RunGame. The server stops with FileNotFoundException before a world opens.

This change stages the assembly in the overlay, deploys it through platform package and direct deploy paths, validates patched assembly references, and restores or removes the DLL on rollback. Linux uninstall also removes this Optimum-owned runtime file.

The Windows overlay reproduction failed before the DLL was added and reached RunGame afterward. The final server smoke used a temporary copy of the RiftLauncher data directory.

This fix will ship in the next Optimum release after this PR merges.

Validation:

  • dotnet build VintageStory.slnx -c Release --nologo --verbosity minimal: passed, 0 warnings and 0 errors.
  • Five test projects: 1,026 passed, 34 skipped, 0 failed.
  • Prerequisite, shader, vanilla compatibility, shell syntax, and git diff --check checks passed. Vanilla compatibility had 18 explicit skips.
  • scripts/check-patches.sh --strict-unavailable reports 3 conflicts in existing patches unchanged from origin/main: ChunkTesselatorManager.cs.patch, LoadBalancer.cs.patch, and PhysicsManager.cs.patch. The runtime donor stage compiled all 22 runtime patches.

The client texture-atlas teardown race mentioned in the issue discussion is separate and was not changed or verified by this PR.

Overlay packages omitted an assembly referenced by patched VSEssentials at RunGame.

Closes #129
@Zaldaryon
Zaldaryon merged commit 480be24 into main Oct 3, 2026
10 checks passed
Zaldaryon pushed a commit to StratumServer/RiftLauncher that referenced this pull request Oct 5, 2026
…#662)

Optimum's patcher now deploys Optimum.GameContent.dll to the game root,
backing up a copy the build already had under .optimum/vanilla/, or
writing an .absent marker there when it had none
(StratumServer/Optimum#131). The launcher restores a build from that
folder itself and then deletes the whole state folder, and it only knew
about Optimum.Api.Contracts.dll, so Remove Optimum and the rollback of a
failed run both left the assembly in a folder that was otherwise vanilla
again, with the record of what had been there before gone too.

restoreVanillaBuild now copies the backup back over the live file when
there is one and removes the live file otherwise, before the state
folder goes. The refusals are unchanged, and a failure in the new step
leaves the state folder for a second try. A live file with neither a
backup nor a marker is removed here where Optimum's own rollback leaves
it, as the contracts assembly already is.

Part of #578
@Zaldaryon
Zaldaryon deleted the fix/issue-129-overlay-gamecontent branch October 6, 2026 22:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] Overlay installs cannot enter a world on 0.3.19: Optimum.GameContent.dll is missing from the overlay

1 participant