Conversation
…, Nice Bill Tab, True RPG Inventory, and Flourish - Add multiplayer compatibility for Radius UI suite: - Radius UI - Faction Menu (Dialog_Comms synchronization) - Radius UI - Health Tab (deterministic multi-map pagination & safe rendering) - Radius UI - Inspector (safe UI inspect drawer) - Radius UI - Mission Control (command / alert click safe handling) - Radius UI - Quest Menu (quest accept/reject/dismiss command sync) - Add multiplayer compatibility for Modern UI suite: - Modern Character Creation (block in-game editor in MP, sync teleportation) - Modern Faction Menu (Dialog_Comms synchronization) - Modern History Menu (time graph timeline scrub protection) - Modern Quest Menu (quest action synchronization) - Modern Social Tab (safe UI interactions) - Add multiplayer compatibility for Adaptive Work Priorities: - Full synchronization of global modes (Observe, Suggest, Semi, Auto) and master toggle - Synchronized per-pawn mode cycling and priority locking - Multi-map deterministic LearningStore evaluation and emergency coverage - Safe UI hooks for header, cohort tabs, and pawn cards - Add multiplayer compatibility for Sleek Work Priorities: - Integration with built-in MultiplayerBridge - Synchronized toggle for manual numeric priorities vs checkmark mode - Add multiplayer compatibility for Nice Bill Tab & Nice Bill Tab Expansion: - Synchronized bill creation for standard and x4 recipes - Synchronized recipe quantities with Shift (10x) and Ctrl (100x) modifier support - Synchronized +/- count adjustment with network multiplier passing - Drag-and-drop bill reordering and hidden recipe synchronization - Add multiplayer compatibility for True RPG Inventory: - Synchronized gear wear, equip, unequip, drop, sidearm toggle, and stripping - Prevent direct trade window redirection in multiplayer - Synchronized pawn-to-pawn item exchange dialog - Add multiplayer compatibility for Flourish: - RNG state protection (Rand.PushState / Rand.PopState) for idle visual flourishes - Update README.md with newly supported mods and .gitignore for scratch files
…ual grid drag-and-drop syncs immediately
Manaether
force-pushed
the
ui-overhaul-compat
branch
from
September 11, 2026 21:40
7dc97b3 to
ca75aaa
Compare
…zation - Defer patching and reflection to LongEventHandler.ExecuteWhenFinished to avoid background thread asset loading during mod construction - Add fallback type initializer check to ensure AWTex textures are loaded on main thread
- Defer all patching and sync registration to LongEventHandler.ExecuteWhenFinished(LatePatch) - Fix thread-affinity errors for Modern Social Tab (SocialTex) and other UI overhauls - Ensure 100% architectural coherence across all MpCompat patches
When stack frames have nameHash == 0 (dynamic wrappers or inlined frames), the frame counter was not incremented while the raw array index was, causing traceIn[num4] to overrun the 32-element buffer. - Added transpiler bounds check in DeferredStackTracingImpl.TraceImpl - Added finalizer exception guards on TraceImpl and DeferredStackTracing.Postfix
…etNextID off-tick
…ing, and safe cast work signals - Optimize UniqueIDsManagerGuard with precompiled expression delegates (zero allocations) and single Finalizer cleanup - Restore DeferredStackTracingFix with bounds check transpiler and RNG finalizer guards - Fix InvalidCastException in AdaptiveWorkPriorities PrefixNotifySignal using Convert.ToInt32 - Fix NullReferenceException in RadiusUIHealthTab when inspecting enemy pawns without playerSettings - Add HarmonyPrepare defensive check and XML documentation to CompShuttleFix
Manaether
marked this pull request as ready for review
September 12, 2026 05:53
Member
|
Core & Engine Fixes cannot be here. They belong to Multiplayer. |
Contributor
Author
thanks, i'll remove and make a pr on the MP project for those |
Removed CompShuttleFix, DeferredStackTracingFix, and UniqueIDsManagerGuard as core fixes now live directly in rwmt/Multiplayer.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This pull request introduces comprehensive multiplayer compatibility for Astryl's UI overhaul series (Radius UI & Modern UI), Adaptive Work Priorities, Nice Bill Tab, True RPG Inventory, and Flourish.
🎨 New Mod Compatibilities
1. Astryl's Radius UI Suite
astryl.RadiusUI.ColonistBar):KitPreview:GraphicFor) to avoid off-tick rendering desyncs.astryl.RadiusUI.HealthTab):TriagePanel.Enforce()in multiplayer to avoid desynchronizing doctor assignments, while synchronizing manual "Tend" and "Rescue" actions.GameComp_TendRulescare rules and preferred medicine settings.SyncMedCareandSyncSelfTendduring inspector drawer and dropdown interactions with defensive null-checks for non-colony / enemy pawns.astryl.RadiusUI.MissionControl):SendVote/SendPauseToggle).OccasionsTracker.CheckRemindersto use simulation ticks (Find.TickManager.TicksGame) instead ofTime.realtimeSinceStartupfor deterministic reminder evaluation.astryl.RadiusUI.Inspector): Synchronized inspector actions, pin toggles, and target switching.astryl.RadiusUI.FactionMenu): Synchronized faction interactions and settlement actions.astryl.RadiusUI.QuestMenu): Synchronized quest acceptance, dismissal, and reward selections.2. Astryl's Modern UI Suite
astryl.modernsocialtab): Synchronized prisoner interactions, slave suppression, and relations drawer. Deferral handling added for UI thread safety (SocialTex).astryl.moderncc):astryl.modernhistorymenu): Synchronized statistics graph viewing and tab switching.astryl.modernfactionmenu): Synchronized goodwill gifting and settlement interaction buttons.astryl.modernquestmenu): Synchronized quest operations and reward choice radio options.3. Adaptive Work Priorities (
kathanon.AdaptiveWorkPriorities)ApplyManual), emergency priority interventions (ApplyEmergency), and cohort applications (ApplyAllVisible).learningStore.SetChain).Convert.ToInt32onSignalKind).4. Nice Bill Tab (
Vesper.NiceBillTab)5. True RPG Inventory (
Vesper.TrueRPGInventory)6. Flourish (
Flourish.Mod)📄 Documentation
README.mdto list all newly supported mods.✅ Testing & Verification
InvalidCastExceptionwhen forcing pawns to work with Adaptive Work Priorities enabled.NullReferenceException.dotnet build -c Releasecompletes with 0 errors and 0 warnings.