diff --git a/Libraries/SPTarkov.Server.Core/Routers/EventOutputHolder.cs b/Libraries/SPTarkov.Server.Core/Routers/EventOutputHolder.cs index b9713596..0d631ce9 100644 --- a/Libraries/SPTarkov.Server.Core/Routers/EventOutputHolder.cs +++ b/Libraries/SPTarkov.Server.Core/Routers/EventOutputHolder.cs @@ -134,7 +134,13 @@ public class EventOutputHolder { foreach (var production in productions) { - if ((production.Value.SptIsComplete ?? false) && (production.Value.SptIsContinuous ?? false)) + if (production.Value == null) + { + // cultist circle + // remove production in case client already issued a HideoutDeleteProductionCommand and the item is moved to stash + productions.Remove(production.Key); + } + else if ((production.Value.SptIsComplete ?? false) && (production.Value.SptIsContinuous ?? false)) { // Water collector / Bitcoin etc production.Value.SptIsComplete = false; diff --git a/Libraries/SPTarkov.Server.Core/Services/CircleOfCultistService.cs b/Libraries/SPTarkov.Server.Core/Services/CircleOfCultistService.cs index 118f7c48..baebc08c 100644 --- a/Libraries/SPTarkov.Server.Core/Services/CircleOfCultistService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/CircleOfCultistService.cs @@ -58,7 +58,12 @@ public class CircleOfCultistService( HideoutCircleOfCultistProductionStartRequestData request ) { - var cultistCircleStashId = pmcData.Inventory.HideoutAreaStashes.GetValueOrDefault(HideoutAreas.CIRCLE_OF_CULTISTS.ToString()); + var cultistCircleStashId = pmcData.Inventory.HideoutAreaStashes.GetValueOrDefault(((int)HideoutAreas.CIRCLE_OF_CULTISTS).ToString()); + + if (cultistCircleStashId is null) + { + _logger.Critical("Could not find cultist circle stash ID! This may result in no rewards..."); + } // `cultistRecipes` just has single recipeId var cultistCraftData = _databaseService.GetHideout().Production.CultistRecipes.FirstOrDefault();