diff --git a/Libraries/Core/Generators/BotEquipmentModGenerator.cs b/Libraries/Core/Generators/BotEquipmentModGenerator.cs index 01505f35..09e6ae8c 100644 --- a/Libraries/Core/Generators/BotEquipmentModGenerator.cs +++ b/Libraries/Core/Generators/BotEquipmentModGenerator.cs @@ -980,7 +980,7 @@ public class BotEquipmentModGenerator( // Ensure there's a pool of mods to pick from var modPool = GetModPoolForSlot(request, weaponTemplate); - if (modPool is null && !(parentSlot?.Required ?? false)) + if ((modPool is null || !modPool.Any()) && !(parentSlot?.Required ?? false)) { // Nothing in mod pool + item not required if (_logger.IsLogEnabled(LogLevel.Debug)) @@ -1277,7 +1277,7 @@ public class BotEquipmentModGenerator( /// /// Mods root parent (weapon/equipment) /// Array of mod tpls - public HashSet GetModPoolForSlot(ModToSpawnRequest request, TemplateItem weaponTemplate) + public HashSet? GetModPoolForSlot(ModToSpawnRequest request, TemplateItem weaponTemplate) { // Mod is flagged as being default only, try and find it in globals if (request.ModSpawnResult == ModSpawn.DEFAULT_MOD) @@ -1291,7 +1291,12 @@ public class BotEquipmentModGenerator( } // Required mod is not default or randomisable, use existing pool - return request.ItemModPool[request.ModSlot]; + if (request.ItemModPool.TryGetValue(request.ModSlot, out var modsForSlot)) + { + return null; + } + + return modsForSlot; } public HashSet GetModPoolForDefaultSlot(ModToSpawnRequest request, TemplateItem weaponTemplate)