Skip to content

Expand native Mod Settings with live controls and save feedback - #282

Draft
Guffawaffle wants to merge 29 commits into
STFC-Mod:devfrom
Guffawaffle:feature/mod-settings-controls
Draft

Guffawaffle wants to merge 29 commits into
STFC-Mod:devfrom
Guffawaffle:feature/mod-settings-controls

Conversation

@Guffawaffle

@Guffawaffle Guffawaffle commented Sep 12, 2026 •

Copy link
Copy Markdown
Contributor

Adds live controls under Settings → Mod Settings: Camera, Previews & Cargo, Map & Travel, and Fleet Labels. They share existing configuration and hotkey owners, show current values and report asynchronous save failures. Collapsible fleet sections start closed; conditional cargo rows retain preferences while hidden. FC and Forbidden Tech stay on the native confirmation page.

Depends on refreshed #281 and its #277/#280 prerequisites. Following #313, native settings and persistence use independent default-enabled [patches].nativesettingshooks and runtimeconfighooks. Forbidden Tech uses forbiddentechconfirmhooks; fleet labels install under zoomhooks, independent of feature values or UI activity. Installed callbacks read current feature values; unsupported or incomplete families retain native behavior.

Validation: Windows release build and existing settings/persistence fixtures on the compiled source, unchanged by final documentation corrections; all 11 example TOMLs. Windows client 270 static fit covers the core, navigation/widget, quit/update and fleet-label targets. Earlier combined Mac ARM testing is separate from this candidate. Exact native game smoke, Mac native extent/execution qualification and Windows partial-replacement fault injection remain outstanding.

@Guffawaffle
Guffawaffle force-pushed the feature/mod-settings-controls branch from fa4b9cf to fb90890 Compare September 28, 2026 00:00
@Guffawaffle

Guffawaffle commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor Author

Hook/feature alignment follow-up for #313

Follow-up to #313: keep hook installation independent of feature enablement, with default-enabled compatibility switches under [patches] and feature checks inside the installed hooks.

Use an independent native-settings installation switch rather than hardcoded installNativeSettings = true. Remove install_forbidden_tech = auto_confirm_ft_upgrade | installNativeSettings; use upstream's [patches].forbiddentechconfirmhooks, with [ui].auto_confirm_ft_upgrade checked inside the hook. Fleet-label hook installation currently depends on FleetLabelProfilesEnabled() or the settings installer; install supported hooks independently and consult [graphics].zoom_label_player_* / zoom_label_non_player_* during behavior. Preserve partial-install guards and native restoration. This is the parent of the sibling features #285, #293 and #297; propagate the corrected foundation into all three.

Settings cascade (verified from current branch ancestry): #279 → #280; #277 + #280 → #281 → #282; sibling branches from #282 are #285, #293 and #297. #285 additionally depends on #269; #297 additionally depends on #296. Correct the owning parent first, then carry the fix through every dependent branch while preserving each sibling's scope.

Implemented in 8fde63fc2d521d951d1f5c42082f3e118ed45b75. Corrected #281 is merged. Native settings and persistence use independent all-build nativesettingshooks/runtimeconfighooks switches. Forbidden Tech uses its existing compatibility switch; supported fleet-label callbacks install under ZoomHooks independent of feature/UI values. Runtime feature checks and partial-install guards remain intact. Current contract docs replace obsolete debug/platform/layout claims. Windows build and fixtures passed on unchanged compiled source; CI is queued. Native game/Mac qualification remains open. Next: propagate through HUD and settings siblings.

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.

1 participant