raycast terrain issues

I’m pretty sure they only come up as 0 because you’re using FString::FromInt to output them as strings.
The way you have it right now is that each of the Normal and ImpactNormal components X, Y and Z (which are floats) will be converted to int32. Since the vectors are normalized it is very rare that any of the components is actually == 1.0f leading to the truncation you’re describing.

Try to replace the GEngine->AddOnScreenDebugMessage lines with the following


				GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Green, FString::Printf( TEXT("Slope Normal: %s"), *(HitResult->Normal.ToString()) ));
				GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Green, FString::Printf( TEXT("Slope Impact Normal: %s"), *(HitResult->ImpactNormal.ToString()) ));