There is no “all those places”. You can literally declare structs anywhere. The question you should be asking is where does it make sense code-wise. The error that you received clearly says what the issue is as well. You are using USTRUCT and UPROPERTY macros, which means Unreal will generate boilerplate code for blueprint support. This generated code is in a file called <OriginalFile>.generated.h
. You don’t have this included.