From 30ad2efd0d2360168d1a3794dd0b0c27ad434a56 Mon Sep 17 00:00:00 2001 From: Jan Baier Date: Sun, 13 Sep 2026 13:02:00 +0200 Subject: [PATCH] fix(vfe-sec): sync concealed turret deploy and submerge Mod query changes in CompGetGizmosExtra shifted the button action lambdas to ordinals 3 and 4, which broke Multiplayer's automatic click replication. Direct sync on StartTransition also failed because the method is private, causing silent reflection lookup failure. Explicitly register the button lambdas as synced methods to guarantee click replication across clients. --- Source/Mods/VanillaFurnitureExpandedSecurity.cs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Source/Mods/VanillaFurnitureExpandedSecurity.cs b/Source/Mods/VanillaFurnitureExpandedSecurity.cs index efb9eff6..81b78897 100644 --- a/Source/Mods/VanillaFurnitureExpandedSecurity.cs +++ b/Source/Mods/VanillaFurnitureExpandedSecurity.cs @@ -52,10 +52,8 @@ private static void LatePatch() propsSubmergeSeconds = AccessTools.FieldRefAccess(propsType, "submergeSeconds"); propsDeploySeconds = AccessTools.FieldRefAccess(propsType, "deploySeconds"); - // Sync StartTransition directly. The gizmo actions call it as an - // instance method on CompConcealed (a ThingComp), which the MP - // framework can serialize. No need to sync the lambdas themselves. - MP.RegisterSyncMethod(type, "StartTransition"); + // Sync the Deploy/Submerge gizmos in CompGetGizmosExtra + MpCompat.RegisterLambdaMethod(type, "CompGetGizmosExtra", 3, 4); // StartTransition iterates Find.Selector.SelectedObjects which won't // contain the right objects on the remote client. In MP we replace it