Here are the most important Data Types for my personal use:
Bool: bool, !bool
Integers: int32, int64
Floats: float, double
Arrays: TArray<int32>
TMaps: TMap<int32, FString> // Key, Value
Structs: FString, FVector, FVector2D, FIntPoint //2D int vector
Pointers: AActor*, UActorComponent*, USceneComponent*, UCameraComponent*, UWorld*
UObjects: objects derived from UObject like AActor, UPrimitiveComponent etc.
Important note for functions: if they're made static in Unreal, they can be used anywhere. If they're not, they need a reference to its class/actor.
For example: A vehicle has a non static function, it can be used within that class without issues. Externelly though, it always needs a reference to work which is especially weird if used with function libraries. There, ALWAYS use static!
UFUNCTION()
static void FunctionStatic(); // static function
UFUNCTION()
void FunctionNonStaic(); // non-static function
A few basics from C++ that may be helpful understanding certain basics.
A list of found errors and how to solve them.
A few shortcuts and helpful tips for using Unreal Engine with the Rider IDE by Jetbrains.
How to:
Okay, so while this one seems straight forward, it truly is not!
Note: the description is written for Rider with Visual Studio 2022, therefore some things might differ.
In your project folder, delete all sub-folders EXCEPT: "Config", "Content", "Plugins", "Ressources" "Saved/Config" & "Source" (except some 3rd party folders).
For any Plugins (especially if changed), delete their respective "Binaries" and "Intermediate" folders.
Delete the solution file "YourProject.sln".
Right click on the "YourProject.uproject" and select "Generate Visual Studio project files".
Once finished, open your solution with your IDE of choice and re-build the project.
Close the IDE (very important!) and just start the "YourProject.uproject", this may rebuild certain parts again.
Within the editor, make sure your project settings are filled out and set up.
In the main window, go to "Platforms/Windows/Package Project" and click.
On the lower right, a window should open showing that the project is being cooked/build; you can click on open log and see the progress.
Once finished, you should have an executable ready.
Tips:
If now you have any errors, you can mostly be sure that they are valid, and not because of any non-compiled binaries or intermediate files.
If you had any third party folders in your project folder, you may add them manually after building the executable.
Weird Behaviors on Shipping Builds:
Especially ENUMS can be quite tricky. If you, for example, where trying to read an ENUM value as a text, it could be, that the editor will use the DisplayName as the result, while the sipping build will use the actual variable name. Example:
UENUM(BlueprintType)
enum class EMyEnum : uint8
{
Yes UMETA(DisplayName = "yes"),
No UMETA(DisplayName = "no")
};
If you now were to use "UEnum::GetDisplayValueAsText", it will return the DisplayName "yes", while for the shipping build, it may use the actual variable value "Yes". This may seem trivial, but for some http responses etc. it can make the difference between working and not working!