From 2842ed1622c9fdd9c447153cc35292cfa90d0842 Mon Sep 17 00:00:00 2001 From: KnotScripts <139625288+PMouse23@users.noreply.github.com> Date: Sat, 10 Jan 2026 13:17:28 +0100 Subject: [PATCH] Check level first preventing profile from breaking. (#727) * Check level first preventing profile from breaking. --------- Co-authored-by: Archangel Co-authored-by: sp-tarkov-bot Co-authored-by: Chomp --- .../Controllers/HideoutController.cs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Libraries/SPTarkov.Server.Core/Controllers/HideoutController.cs b/Libraries/SPTarkov.Server.Core/Controllers/HideoutController.cs index 93b6c5e6..c770bf01 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/HideoutController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/HideoutController.cs @@ -162,10 +162,7 @@ public class HideoutController( return; } - // Upgrade profile values - profileHideoutArea.Level++; - profileHideoutArea.CompleteTime = 0; - profileHideoutArea.Constructing = false; + var nextLevel = profileHideoutArea.Level + 1; var hideoutData = hideout.Areas.FirstOrDefault(area => area.Type == profileHideoutArea.Type); if (hideoutData is null) @@ -177,12 +174,18 @@ public class HideoutController( } // Apply bonuses - if (!hideoutData.Stages.TryGetValue(profileHideoutArea.Level.ToString(), out var hideoutStage)) + if (!hideoutData.Stages.TryGetValue(nextLevel.ToString(), out var hideoutStage)) { - logger.Error($"Stage level: {profileHideoutArea.Level} not found for area: {request.AreaType}"); + logger.Error($"Stage level: {nextLevel} not found for area: {request.AreaType}"); return; } + + // Upgrade profile values + profileHideoutArea.Level = nextLevel; + profileHideoutArea.CompleteTime = 0; + profileHideoutArea.Constructing = false; + var bonuses = hideoutStage.Bonuses; if (bonuses?.Count > 0) {