StartupTutorial

StartupTutorial

#Overview

name: StartupTutorial

The value of this variable can be defined or overridden in .ini config files. 1 .ini config file referencing this setting variable.

It is referenced in 4 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of StartupTutorial is to specify the tutorial that should be launched when the Unreal Engine editor starts up. This setting variable is used to guide new users or remind existing users about specific features or workflows when they begin a new editing session.

StartupTutorial is primarily used by the Guided Tutorials plugin, which is part of the Unreal Engine’s editor toolset. This plugin is responsible for providing interactive tutorials within the Unreal Engine editor environment.

The value of this variable is set in two different places:

  1. In the UEditorTutorialSettings class, which likely represents editor-wide settings.
  2. In the UTutorialSettings class, which might represent project-specific settings.

Both instances are marked with the UPROPERTY macro and have the Config specifier, indicating that their values can be set in configuration files.

This variable interacts with other parts of the tutorial system, such as:

Developers should be aware of the following when using this variable:

  1. There are two different StartupTutorial variables: one for editor-wide tutorials and one for project-specific tutorials.
  2. The variable is of type FSoftClassPath, which means it stores a path to a class rather than a direct reference to the class itself.
  3. The tutorial class must derive from UEditorTutorial.

Best practices when using this variable include:

  1. Ensure that the specified tutorial is appropriate for new users or as a refresher for existing users.
  2. Keep the startup tutorial concise and focused to avoid overwhelming users at the start of their editing session.
  3. Regularly update the startup tutorial to reflect new features or changes in recommended workflows.
  4. Consider providing an option for users to skip or disable the startup tutorial after they’ve become familiar with the editor.
  5. Use the project-specific StartupTutorial for guidance related to your specific project, and the editor-wide StartupTutorial for general Unreal Engine usage tips.

#Setting Variables

#References In INI files

Location: <Workspace>/Engine/Plugins/Editor/GuidedTutorials/Config/BaseGuidedTutorials.ini:11, section: [/Script/IntroTutorials.EditorTutorialSettings]

#References in C++ code

#Callsites

This variable is referenced in the following C++ source code:

#Loc: <Workspace>/Engine/Plugins/Editor/GuidedTutorials/Source/IntroTutorials/Private/EditorTutorialSettings.h:48

Scope (from outer to inner):

file
class        class UEditorTutorialSettings : public UObject

Source code excerpt:

	/** Tutorial to start on Editor startup */
	UPROPERTY(Config, EditAnywhere, Category="Tutorials", meta=(MetaClass="/Script/IntroTutorials.EditorTutorial"))
	FSoftClassPath StartupTutorial;

	/** Tutorials used in various contexts - e.g. the various asset editors */
	UPROPERTY(Config, EditAnywhere, Category = "Tutorials")
	TArray<FTutorialContext> TutorialContexts;

	/** Get the tutorial info for the specified context */

#Loc: <Workspace>/Engine/Plugins/Editor/GuidedTutorials/Source/IntroTutorials/Private/IntroTutorials.cpp:327

Scope (from outer to inner):

file
function     bool FIntroTutorials::MaybeOpenWelcomeTutorial

Source code excerpt:

	{
		// try editor startup tutorial
		TSubclassOf<UEditorTutorial> EditorStartupTutorialClass = LoadClass<UEditorTutorial>(NULL, *GetDefault<UEditorTutorialSettings>()->StartupTutorial.ToString(), NULL, LOAD_None, NULL);
		if(EditorStartupTutorialClass != nullptr)
		{
			UEditorTutorial* Tutorial = EditorStartupTutorialClass->GetDefaultObject<UEditorTutorial>();
			if (!GetDefault<UTutorialStateSettings>()->HaveSeenTutorial(Tutorial))
			{
				LaunchTutorial(Tutorial);

#Loc: <Workspace>/Engine/Plugins/Editor/GuidedTutorials/Source/IntroTutorials/Private/IntroTutorials.cpp:339

Scope (from outer to inner):

file
function     bool FIntroTutorials::MaybeOpenWelcomeTutorial

Source code excerpt:


		// Try project startup tutorial
		const FString ProjectStartupTutorialPathStr = GetDefault<UTutorialSettings>()->StartupTutorial.ToString();
		if (!ProjectStartupTutorialPathStr.IsEmpty())
		{
			TSubclassOf<UEditorTutorial> ProjectStartupTutorialClass = LoadClass<UEditorTutorial>(NULL, *ProjectStartupTutorialPathStr, NULL, LOAD_None, NULL);
			if (ProjectStartupTutorialClass != nullptr)
			{
				UEditorTutorial* Tutorial = ProjectStartupTutorialClass->GetDefaultObject<UEditorTutorial>();

#Loc: <Workspace>/Engine/Plugins/Editor/GuidedTutorials/Source/IntroTutorials/Private/TutorialSettings.h:21

Scope (from outer to inner):

file
class        class UTutorialSettings : public UObject

Source code excerpt:

	/** Tutorial to start on project startup */
	UPROPERTY(Config, EditAnywhere, Category="Tutorials", meta=(MetaClass="/Script/IntroTutorials.EditorTutorial"))
	FSoftClassPath StartupTutorial;
};