diff --git a/OpenRA.Mods.Common/ServerTraits/LobbyCommands.cs b/OpenRA.Mods.Common/ServerTraits/LobbyCommands.cs index e1366b8139..42810149e7 100644 --- a/OpenRA.Mods.Common/ServerTraits/LobbyCommands.cs +++ b/OpenRA.Mods.Common/ServerTraits/LobbyCommands.cs @@ -729,6 +729,12 @@ namespace OpenRA.Mods.Common.Server if (oo.Value == split[1]) return true; + if (!option.Values.ContainsKey(split[1])) + { + server.SendLocalizedMessageTo(conn, InvalidConfigurationCommand); + return true; + } + oo.Value = oo.PreferredValue = split[1]; server.SyncLobbyGlobalSettings(); diff --git a/OpenRA.Mods.Common/ServerTraits/SkirmishLogic.cs b/OpenRA.Mods.Common/ServerTraits/SkirmishLogic.cs index 99e02d3e8a..537ef429bd 100644 --- a/OpenRA.Mods.Common/ServerTraits/SkirmishLogic.cs +++ b/OpenRA.Mods.Common/ServerTraits/SkirmishLogic.cs @@ -84,7 +84,7 @@ namespace OpenRA.Mods.Common.Server foreach (var optionNode in optionsNode.Value.Nodes) { - if (options.TryGetValue(optionNode.Key, out var option) && !option.IsLocked) + if (options.TryGetValue(optionNode.Key, out var option) && !option.IsLocked && option.Values.ContainsKey(optionNode.Value.Value)) { var oo = server.LobbyInfo.GlobalSettings.LobbyOptions[option.Id]; oo.Value = oo.PreferredValue = optionNode.Value.Value;