Pointer to incomplete class type is not allowed

Good Answer Up Voted =) just want to add three things.

In Visual Assist its very easy todo. Click and Hover over the class in your Code and a dropdown will appear with a option to include the needed .h file. Done. Just a small issue sometimes that it will include files with “” instead of “/” the compiler will tell you and its a quick fix. (There should be a Option for this but Im always forget to look it up xD)

Second thing I wanted to point out is in your XYZ.Build.cs its important to add the Module from where the .h file is coming from. Otherwise it will make you trouble. The Module Name can be found on the API Page at the very Bottom if you look it up there. Or look in the root folder of the .h file for the related Module .cpp file at the very bottom/top (usually) you find a Macro like this:

IMPLEMENT_MODULE(FClassNameOfTheModule, ActualNameYouWantForYourBuildCS)

The Module Name can vary from the Class name you might guess. For Example FBlueprintEditorModule but the Module name is actually Kismet. Its rare but something to remeber =)

And last one is once you added the Module to the XYZ.Build.cs you can shorten your include to be relative to the Module Hierarchy. If you add “Engine” you can simply use #include "Engine/World.h" instead of the full path.