Skip to content

[Draft] Integration test branch for current fixes#2751

Closed
mindless2831 wants to merge 20 commits into
SubnauticaNitrox:masterfrom
mindless2831:integration/all-current-fixes
Closed

[Draft] Integration test branch for current fixes#2751
mindless2831 wants to merge 20 commits into
SubnauticaNitrox:masterfrom
mindless2831:integration/all-current-fixes

Conversation

@mindless2831
Copy link
Copy Markdown
Contributor

@mindless2831 mindless2831 commented May 18, 2026

Purpose

This is a temporary integration/testing branch that combines the current active fixes from my fork into one build for anyone who wants to test them together before they are individually merged.

This PR is not intended to replace the focused PRs. The focused PRs remain the proper review/merge targets. This branch is only meant to make it easier for users and maintainers to test a practical build that includes the related fixes together.

Included fixes

#2749 - Fix Release launcher dependency loading from lib

Fixes Release launcher dependency loading so the packaged Release layout resolves assemblies consistently from the launcher-local dependency path.

This addresses Release-only issues such as:

  • existing servers not appearing correctly in the launcher;
  • new server creation/startup failures;
  • runtime missing-method behavior caused by mismatched assembly resolution.

#2740 - Restore Nautilus GameInput compatibility

Restores compatibility between Nitrox and Nautilus GameInput/keybind handling.

This addresses Nautilus-related issues such as:

  • missing or broken keybind labels;
  • GameInput/keybind patch conflicts;
  • Nitrox/Nautilus compatibility failures that prevented a modded setup from reaching normal working gameplay.

#2747 - Fix launcher server Stop command

Fixes the launcher Stop button path for external servers.

This addresses cases where the launcher sent the stop/quit command but the external server did not reliably receive or process it, causing the launcher to remain in a closing/stopping state.

#2750 - Fix UwePrefab probability setter

Fixes the UwePrefab probability mutation issue during world/entity spawning.

This addresses server-side world-sync crashes where batch/entity spawning attempted to mutate Probability on UwePrefab, causing missing-method/runtime failures during multiplayer sync or additional cell/batch loading.

#2752 - Fix batteryless tool battery duplication

Fixes the exploit where battery-powered tools could generate a new fully charged battery after being dropped and picked back up with no battery installed.

This also preserves correct behavior for:

  • newly crafted/generated tools receiving their intended default battery;
  • batteryless dropped tools remaining batteryless;
  • dropped tools with installed batteries preserving those batteries and charge;
  • multiplayer pickup where one player drops a tool with a battery and another player picks it up.

Why this integration branch exists

Several of these fixes are easier to test together in a real modded Release setup than in isolation.

For example:

  • the Release dependency-loading fix makes Release builds usable for server listing and creation;
  • the Nautilus compatibility fix is needed for common modded setups;
  • the Stop command fix makes the launcher/server loop more reliable during repeated testing;
  • the UwePrefab and battery fixes address gameplay/runtime issues that are easier to validate once the Release launcher/server workflow is stable.

This branch gives testers one branch to pull while the individual PRs continue through normal focused review.

Suggested testing

Recommended coverage:

  • Build/run the launcher in Release.
  • Confirm existing servers appear correctly.
  • Confirm new server creation works.
  • Confirm an external server starts from the launcher.
  • Confirm the launcher Stop button gracefully shuts down the external server.
  • Confirm Nautilus-dependent mods load correctly.
  • Confirm GameInput/keybind labels and shortcuts behave correctly.
  • Join multiplayer and complete initial sync.
  • Travel far enough to trigger additional cell/batch loading without UwePrefab probability errors.
  • Remove a battery from a battery-powered tool, drop it, and pick it back up.
  • Confirm the batteryless tool remains batteryless.
  • Craft a new battery-powered tool and confirm it still receives its intended default battery.
  • Drop a tool with an installed battery and confirm another player can pick it up with that battery preserved.

Notes

This branch is a convenience/testing branch only.

Once the individual PRs are merged into master, this integration branch can be deleted or rebased as needed.

Mindless2831 added 20 commits May 17, 2026 00:49
Applies the focused Nautilus GameInput/keybind compatibility work from JackNytely's PR SubnauticaNitrox#2663. This restores compatibility with newer Nautilus builds that extend Subnautica's GameInput system, while excluding unrelated launcher/server changes from the original PR. Credit: based on JackNytely's work in SubnauticaNitrox#2663.
Removes readonly from UwePrefab so spawning code can mutate Probability without throwing a MissingMethodException for UwePrefab.set_Probability. This fixes repeated server-side sync exceptions during multiplayer world/entity spawning.
@dartasen
Copy link
Copy Markdown
Member

Closing for now, we'll test the changes individually 😄

@dartasen dartasen closed this May 20, 2026
@mindless2831
Copy link
Copy Markdown
Contributor Author

mindless2831 commented May 20, 2026 via email

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.

2 participants