UStruct Constructor

You absolutely can have a constructor, just as in the code you posted. USTRUCT is a very lightweight reflected type and doesn’t really have any of the C++ level restrictions that you get with UCLASS. However, you need to prefix USTRUCT types with the letter F (see coding standards which Corpse0327 linked above). I believe in this case it is a requirement, not merely standard practice.

As for wanting a constructor - USTRUCTs are still C++ structs and can be used in C++ as well as exposed to blueprints, so there’s every reason to want to give them constructors. In fact I believe it is even necessary in order to initialize the properties properly, since I don’t think they are given default values automatically as they are in the case of a UCLASS.