diff --git a/Libraries/SPTarkov.Server.Core/Helpers/RagfairServerHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/RagfairServerHelper.cs
index caa2b909..b46fe977 100644
--- a/Libraries/SPTarkov.Server.Core/Helpers/RagfairServerHelper.cs
+++ b/Libraries/SPTarkov.Server.Core/Helpers/RagfairServerHelper.cs
@@ -186,31 +186,37 @@ public class RagfairServerHelper(
return weightedRandomHelper.GetWeightedValue(ragfairConfig.Dynamic.Currencies);
}
- /**
- * Given a preset id from globals.json, return an array of items[] with unique ids
- * @param item Preset item
- * @returns Array of weapon and its children
- */
+ ///
+ /// Given a preset id from globals.json, return an array of items[] with unique ids
+ ///
+ /// Preset item
+ /// Collection containing weapon and its children
public List- GetPresetItems(Item item)
{
- var preset = cloner.Clone(databaseService.GetGlobals().ItemPresets[item.Id].Items);
- return itemHelper.ReparentItemAndChildren(item, preset);
+ if (!databaseService.GetGlobals().ItemPresets.TryGetValue(item.Id, out var presetToClone))
+ {
+ return [];
+ }
+
+ // Re-parent and clone the matching preset found
+ return itemHelper.ReparentItemAndChildren(item, cloner.Clone(presetToClone.Items));
}
- /**
- * Possible bug, returns all items associated with an items tpl, could be multiple presets from globals.json
- * @param item Preset item
- * @returns
- */
+ ///
+ /// Possible bug, returns all items associated with an items tpl, could be multiple presets from globals.json
+ ///
+ /// Preset item
+ /// Collection of item objects
public List
- GetPresetItemsByTpl(Item item)
{
var presets = new List
- ();
foreach (var itemId in databaseService.GetGlobals().ItemPresets.Keys)
{
- if (databaseService.GetGlobals().ItemPresets[itemId].Items[0].Template == item.Template)
+ if (databaseService.GetGlobals().ItemPresets.TryGetValue(itemId, out var presetsOfItem)
+ && presetsOfItem.Items?.FirstOrDefault()?.Template == item.Template)
{
- var presetItems = cloner.Clone(databaseService.GetGlobals().ItemPresets[itemId].Items);
- presets.AddRange(itemHelper.ReparentItemAndChildren(item, presetItems));
+ // Add a clone of the found preset into list above
+ presets.AddRange(itemHelper.ReparentItemAndChildren(item, cloner.Clone(presetsOfItem.Items)));
}
}