🌈 UE5 C++ And Blueprint Community Tutorials (Notification Center)

Dear UE Community,

Hi there!

I was trying to think of a fun UE5 thread idea that could also be very helpful, so here’s the USTRUCT(ure) of what I came up with.

UE4 Tutorial Content Notification Center

:zebra: Let Us Know When Your Latest Tutorial Is Live! :zebra:

  1. The purpose of this thread is so you can notify the UE5 community of your helpful UE5 content, wherever it is located. Even after an official UE5 wiki becomes available, the purpose of this thread is so that you, :heart: Our Lovely UE Community Members :heart:, have a place to let us all know when you have made a new tutorial available for the rest of us to enjoy!

When you post, please put the title you’d like me to use as the first line of the post, and I will add to this initial post, creating a Table of Contents that everyone can refer to for All Time.

:sun_with_face: Requests Welcome! :sun_with_face:

  1. Another purpose of this thread is so you can request tutorials of the community on the subject matter you would like assistance with.

:goat: External Links Encouraged! :goat:

  1. You are welcome to post links here to UE5 tutorials that you have created on your own external website.

:palm_tree: Entire Tutorials In This Thread :palm_tree:

  1. Feel free to post an entire UE5 tutorial in this thread, including pictures!

My ultimate goal is to have a place where UE5 early access tutorial content creators can gather and make us all aware that you are racing ahead to help us all out as we :tulip:Joyfully Embrace UE5! :tulip:

So again, putting links to your own personal site here is highly encouraged, so we can all come here to find out who is posting new content for UE5.

Table Of Contents

:sheep: Special Animal Emojis :horse: for the first 5 (non-Rama) tutorials to appear in this thread!

  1. [C++] “Help, I Can’t Create A C++ Project!” Solution: Download VS2019 & ASP net 3.1 @Rama

  2. [Plugins] How To Build Plugins For UE Marketplace Distribution (UE5) @Rama

  3. [C++] Cannot convert argument 1 from ‘UClass *’ to ‘TSubclassOf’ @Rama

  4. [C++] Compiler Error: Unrecognized Type for Enums @Rama

  5. [Victory Plugin] How To Create a Save-Game Picture System With 2 Nodes @Rama




“Help, I Can’t Create A C++ Project!”
Solution: You need to download ASP net Core 3.1

If you see this:

You probably need to download ASP net Core 3.1 (if you have Visual Studio 2019 already):

:sun_with_face: Pro Tip: :sun_with_face: If you are like me, you downloaded the installer, and then tried to create a project again, and got the same message, and you panicked and grabbed your dog/cat/nearest plant :herb: for comfort.

Don’t worry, you just have to restart your computer first, THEN it will work and you can being playing with C++ in UE5!

Visual Studio 2019

If you see this,

then you need to download VS 2019

C++ Modules

Don’t forget to include the C++ Modules for VS 2019!





(See All Tutorials)

How To Build Plugins for UE Marketplace Distribution

  1. Create a directory within your project called PluginStaging, this is important, because the RunUAT batch file will :cloud_with_lightning:delete :cloud_with_lightning: the contents of whatever directory you pick to send your plugin to after it is built, so make sure the folder is empty!

  2. Create a file named something like “Clang_5.bat” or "BuildUE5Plugin.bat"within YourProject/PluginStaging

  3. Use windows 10 options to expose file extensions if you cannot rename the file to .bat

  4. Open the file with text editor and set its contents to be this:

@echo ~~~ Dont run this in your project dir, IT DELETES EVERYTHING IN ITS PATH ~~~ 
@echo ~~~ Also make sure you are using the correct Engine version for RunUAT for your project ~~~
@echo ~~~ Enjoy! -Rama ~~~ 

"E:\UE4Engine\UE_5.0EA\Engine\Build\BatchFiles\RunUAT.bat" BuildPlugin -Plugin="E:\Unreal Projects\Sun5\Plugins\VictoryBPLibrary\VictoryBPLibrary.uplugin" -Package="%CD%\Output5.1" -Rocket
  1. Right click the PluginStaging folder while holding down Left Shift to expose option to open PowerShell cmd prompt:

  1. Start to type the name of your .bat file and press TAB so it auto completes, adding the necessary .\

  1. If you see something like this:

Then install this:

  1. If your build fails without a reason, make sure you are only building for your supported platforms, inside of your .uplugin file:
"Modules": [
			"Name": "VictoryBPLibrary",
			"Type": "Runtime",
			"LoadingPhase": "PreLoadingScreen",
			"WhitelistPlatforms" :
  1. After compilation finishes, your final packaged plugin, ready for Marketplace or distribution to your friends, colleagues, and community members, will be found in YourProject/PluginStaging/Output5.1





(See All Tutorials)

Compiler Error: Cannot convert argument 1 from ‘UClass *’ to ‘TSubclassOf’

Cannot convert argument 1 from 'UClass *' to 'TSubclassOf<UObject>'


use of undefined type 'TSubclassOf<UObject>'

Solution: Add this to your header file (.h) for your class!

#include "UObject/Object.h"
#include "Templates/SubclassOf.h"

Explanation: With the new compiling rules to speed up compiling time, you have to include SubclassOf.h, and it has to be in your .h, not just in your .cpp.

It is quite common to include obviously, so you may not encounter this error if you are including other engine header files, until some unexpected time when you have about 5 min before your project’s demo, and you just wanted to do that one last compile :).

Also you might not encounter this error unless you are packaging a plugin using RunUAT, as I did not encounter this issue with a standard project compile, only when packaging the plugin independently.



PS: Here is my whole .h file relevant portion if you want to replicate the compile error:

// Copyright Rama All Rights Reserved.

#pragma once

#include "UObject/Object.h"
#include "Templates/SubclassOf.h"

#include "Kismet/BlueprintFunctionLibrary.h"
#include "VictoryBPFunctionLibrary.generated.h"

	Victory to You! <3 Rama
class UVictoryBPFunctionLibrary : public UBlueprintFunctionLibrary

	// 	  Load Object
	/** The FName that is expected is the exact same format as when you right click on asset -> Copy Reference! You can directly paste copied references into this node! IsValid lets you know if the path was correct or not and I was able to load the object. MAKE SURE TO SAVE THE RETURNED OBJECT AS A VARIABLE. Otherwise your shiny new asset will get garbage collected. I recommend you cast the return value to the appropriate object and then promote it to a variable :)  -Rama */
	UFUNCTION(BlueprintCallable, Category = "Victory BP Library|Misc", Meta = (DeterminesOutputType = "ObjectClass"))
	static UObject* LoadObjectFromAssetPath(TSubclassOf<UObject> ObjectClass, FName Path, bool& IsValid);

(See All Tutorials)

Compiler Error: Unrecognized Type for Enums

In UE4 you would do something like this:

enum class EJoyImageFormats : uint8
	JPG		UMETA(DisplayName="JPG"),
	PNG		UMETA(DisplayName="PNG"),
	BMP		UMETA(DisplayName="BMP"),
	ICO		UMETA(DisplayName="ICO"),
	EXR		UMETA(DisplayName="EXR"),
	ICNS	UMETA(DisplayName="ICNS")

In UE5 it is this (Cleaner and simpler!):

enum EJoyImageFormats
	JPG		UMETA(DisplayName="JPG"),
	PNG		UMETA(DisplayName="PNG"),
	BMP		UMETA(DisplayName="BMP"),
	ICO		UMETA(DisplayName="ICO"),
	EXR		UMETA(DisplayName="EXR"),
	ICNS	UMETA(DisplayName="ICNS"),
	JoyImageFormats_Max		UMETA(Hidden),



This is a reminder that anyone is welcome to post tutorials here, or links to their own website, with UE5 tutorial content, to help promote their site :slight_smile:



1 Like

Hello Rama,
Thank you for your tutorial thread.
I’m learning UE C++ and plugin development. It’s quite difficult but i’m sure the payoff will be as rewarding.
I need some guidance. I am trying to extend the editor module to have custom measuring functionality in UE . This is for learning purposes as the functionality for this is already within UE5 now.
Do read my thread on the topic here

Instead of modifying the engine code I want to learn how to repurpose engine modules into plugins.
Can you perhaps do a tutorial or a breakdown of how one would do this ?
Marc Audy has a plugin version of a Measure Tool.

Could you do a tutorial that would breakdown the process or describe what’s going on in the Cpp file ?

Thanking you,