TutorialPath
TutorialPath
#Overview
name: TutorialPath
The value of this variable can be defined or overridden in .ini config files. 7
.ini config files referencing this setting variable.
It is referenced in 3
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of TutorialPath is to store the path or location of tutorial content within the Unreal Engine 5 ecosystem. This variable is primarily used for guiding developers and users through various aspects of the engine or project-specific tutorials.
The TutorialPath variable is utilized by the following Unreal Engine subsystems and modules:
- IntroTutorials plugin (GuidedTutorials)
- TurnkeySupport module
- Core module’s DataDrivenPlatformInfoRegistry
The value of this variable is typically set in different contexts:
- In the IntroTutorials plugin, it’s derived from the UEditorTutorial asset’s outer package name.
- In the TurnkeySupport module, it’s obtained from platform-specific checks.
- In the DataDrivenPlatformInfoRegistry, it’s loaded from an INI file configuration.
The TutorialPath variable interacts with other variables and systems:
- It’s used to generate analytics event names in the IntroTutorials plugin.
- It’s part of the platform requirements check in the TurnkeySupport module.
- It’s stored as part of the FDataDrivenPlatformInfo structure in the Core module.
Developers should be aware of the following when using this variable:
- The path format may vary depending on the context (asset path, URL, or file system path).
- It may be platform-specific, especially when used in the TurnkeySupport and DataDrivenPlatformInfoRegistry contexts.
- The variable might be empty or undefined in some cases, so proper null checks should be implemented.
Best practices when using this variable include:
- Ensure the path is valid and exists before attempting to load or display tutorial content.
- Use platform-agnostic path handling functions when manipulating the TutorialPath.
- Consider localization requirements if the tutorials are available in multiple languages.
- Implement proper error handling and fallback mechanisms if the tutorial content is not found or accessible.
- Keep the tutorial content up-to-date with the current version of the engine or project to maintain relevance.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/Android/DataDrivenPlatformInfo.ini:17, section: [DataDrivenPlatformInfo]
- INI Section:
DataDrivenPlatformInfo
- Raw value:
SharingAndReleasing/Mobile/Android
- Is Array:
False
Location: <Workspace>/Engine/Config/Linux/DataDrivenPlatformInfo.ini:18, section: [DataDrivenPlatformInfo]
- INI Section:
DataDrivenPlatformInfo
- Raw value:
SharingAndReleasing/Linux
- Is Array:
False
Location: <Workspace>/Engine/Config/LinuxArm64/DataDrivenPlatformInfo.ini:21, section: [DataDrivenPlatformInfo]
- INI Section:
DataDrivenPlatformInfo
- Raw value:
SharingAndReleasing/Linux
- Is Array:
False
Location: <Workspace>/Engine/Config/Mac/DataDrivenPlatformInfo.ini:18, section: [DataDrivenPlatformInfo]
- INI Section:
DataDrivenPlatformInfo
- Raw value:
SharingAndReleasing
- Is Array:
False
Location: <Workspace>/Engine/Config/TVOS/DataDrivenPlatformInfo.ini:11, section: [DataDrivenPlatformInfo]
- INI Section:
DataDrivenPlatformInfo
- Raw value:
SharingAndReleasing/Mobile/iOS
- Is Array:
False
Location: <Workspace>/Engine/Config/Windows/DataDrivenPlatformInfo.ini:24, section: [DataDrivenPlatformInfo]
- INI Section:
DataDrivenPlatformInfo
- Raw value:
SharingAndReleasing
- Is Array:
False
Location: <Workspace>/Engine/Platforms/VisionOS/Config/DataDrivenPlatformInfo.ini:11, section: [DataDrivenPlatformInfo]
- INI Section:
DataDrivenPlatformInfo
- Raw value:
SharingAndReleasing/Mobile/iOS
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Plugins/Editor/GuidedTutorials/Source/IntroTutorials/Private/IntroTutorials.cpp:56
Scope (from outer to inner):
file
function FString FIntroTutorials::AnalyticsEventNameFromTutorial
Source code excerpt:
FString FIntroTutorials::AnalyticsEventNameFromTutorial(UEditorTutorial* Tutorial)
{
FString TutorialPath = Tutorial->GetOutermost()->GetFName().ToString();
// strip off everything but the asset name
FString RightStr;
TutorialPath.Split( TEXT("/"), NULL, &RightStr, ESearchCase::IgnoreCase, ESearchDir::FromEnd );
return RightStr;
}
TSharedRef<FExtender> FIntroTutorials::AddSummonBlueprintTutorialsMenuExtender(const TSharedRef<FUICommandList> CommandList, const TArray<UObject*> EditingObjects) const
{
#Loc: <Workspace>/Engine/Source/Editor/TurnkeySupport/Private/TurnkeySupportModule.cpp:859
Scope (from outer to inner):
file
function static void ShowInstallationHelp
Source code excerpt:
// EBuildConfiguration Configuration;
// bool bRequiresAssetNativization;
// FString TutorialPath, DocumentationPath;
// FText LogMessage;
//
// Platform->CheckRequirements(bProjectHasCode, Configuration, bRequiresAssetNativization, TutorialPath, DocumentationPath, LogMessage);
FTurnkeyEditorSupport::ShowInstallationHelp(IniPlatformName, FDataDrivenPlatformInfoRegistry::GetPlatformInfo(IniPlatformName).SDKTutorial);
}
static void TurnkeyInstallSdk(FString IniPlatformName, bool bPreferFull, bool bForceInstall, FString DeviceId)
{
#Loc: <Workspace>/Engine/Source/Runtime/Core/Private/Misc/DataDrivenPlatformInfoRegistry.cpp:366
Scope (from outer to inner):
file
function static void LoadDDPIIniSettings
Source code excerpt:
DDPIGetString(IniFile, TEXT("AutoSDKPath"), Info.AutoSDKPath);
DDPIGetString(IniFile, TEXT("TutorialPath"), Info.SDKTutorial);
DDPIGetName(IniFile, TEXT("PlatformGroupName"), Info.PlatformGroupName);
DDPIGetName(IniFile, TEXT("PlatformSubMenu"), Info.PlatformSubMenu);
DDPIGetString(IniFile, TEXT("NormalIconPath"), Info.IconPaths.NormalPath);
DDPIGetString(IniFile, TEXT("LargeIconPath"), Info.IconPaths.LargePath);