diff --git a/Content.Shared/Actions/ActionTypes/InstantAction.cs b/Content.Shared/Actions/ActionTypes/InstantAction.cs index ec1f6bba05..27254c4d05 100644 --- a/Content.Shared/Actions/ActionTypes/InstantAction.cs +++ b/Content.Shared/Actions/ActionTypes/InstantAction.cs @@ -26,11 +26,14 @@ public class InstantAction : ActionType { base.CopyFrom(objectToClone); + // Server doesn't serialize events to us. + // As such we don't want them to bulldoze any events we may have gotten locally. if (objectToClone is not InstantAction toClone) return; // Events should be re-usable, and shouldn't be modified during prediction. - Event = toClone.Event; + if (toClone.Event != null) + Event = toClone.Event; } public override object Clone() diff --git a/Content.Shared/Actions/ActionTypes/TargetedAction.cs b/Content.Shared/Actions/ActionTypes/TargetedAction.cs index 0b535cce6d..ba32fae0da 100644 --- a/Content.Shared/Actions/ActionTypes/TargetedAction.cs +++ b/Content.Shared/Actions/ActionTypes/TargetedAction.cs @@ -104,7 +104,8 @@ public class EntityTargetAction : TargetedAction Whitelist = toClone.Whitelist; // Events should be re-usable, and shouldn't be modified during prediction. - Event = toClone.Event; + if (toClone.Event != null) + Event = toClone.Event; } public override object Clone() @@ -141,7 +142,8 @@ public class WorldTargetAction : TargetedAction return; // Events should be re-usable, and shouldn't be modified during prediction. - Event = toClone.Event; + if (toClone.Event != null) + Event = toClone.Event; } public override object Clone()