diff --git a/Source/StudyFrameworkPlugin/Private/HUD/SFHUDWidget.cpp b/Source/StudyFrameworkPlugin/Private/HUD/SFHUDWidget.cpp
index 461565381c39f46ed75548fa5e7bb0c655560aa7..703778d2347d12b4942e73c17b8b660bde6b9b8c 100644
--- a/Source/StudyFrameworkPlugin/Private/HUD/SFHUDWidget.cpp
+++ b/Source/StudyFrameworkPlugin/Private/HUD/SFHUDWidget.cpp
@@ -4,6 +4,7 @@
 #include "HUD/SFHUDWidget.h"
 
 #include "Help/SFUtils.h"
+#include "Logging/SFLoggingUtils.h"
 
 
 USFHUDWidget::USFHUDWidget(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer)
@@ -27,12 +28,18 @@ void USFHUDWidget::SetPhase(const FString& Text)
 
 void USFHUDWidget::SetCondition(const TMap<FString, FString>& Texts)
 {
+	//TODO: as of now we have a fixed number of text blocks, maybe this can be made dynamic
 	TArray<UTextBlock*> TextBlocks = {
 		ConditionText1, ConditionText2, ConditionText3, ConditionText4, ConditionText5, ConditionText6
 	};
 	int TextIndex=0;
 	for(auto FactorLevel : Texts)
 	{
+		if(TextIndex>=TextBlocks.Num())
+		{
+			FSFLoggingUtils::Log("Not all factor levels fit in the HUD, so only showing the first 6 levels");
+			break;
+		}
 		TextBlocks[TextIndex++]->SetText(FText::FromString(FactorLevel.Key + ": "+FactorLevel.Value));
 	}
 	while(TextIndex<TextBlocks.Num())