![]() |
UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
|
#include <ProjectDescriptor.h>
Static Public Member Functions | |
| static PROJECTS_API FString | GetExtension () |
Friends | |
| struct | FProjectsLoadingPluginDescriptorTestsHelper |
Descriptor for projects. Contains all the information contained within a .uproject file.
| FProjectDescriptor::FProjectDescriptor | ( | ) |
Constructor.
| bool FProjectDescriptor::AddPluginDirectory | ( | const FString & | Dir | ) |
Adds a directory to the additional plugin directories list.
| Dir | - the new directory to add (must be a full path) |
| bool FProjectDescriptor::AddRootDirectory | ( | const FString & | Dir | ) |
Adds a directory to the additional root directories list.
| Dir | - the new directory to add (must be a full path) |
| int32 FProjectDescriptor::FindPluginReferenceIndex | ( | const FString & | PluginName | ) | const |
Finds the index of a plugin in the references array
|
inline |
|
inline |
|
static |
Returns the extension used for project descriptors (uproject)
| bool FProjectDescriptor::IsSigned | ( | const FString & | FilePath | ) | const |
Checks whether the descriptor is signed
Loads the descriptor from the given file.
| bool FProjectDescriptor::Read | ( | const FJsonObject & | Object, |
| const FString & | PathToProject, | ||
| FText & | OutFailReason | ||
| ) |
Reads the descriptor from the given JSON object
| bool FProjectDescriptor::RemovePluginDirectory | ( | const FString & | Dir | ) |
Removes the directory from the list to scan
| Dir | the directory to remove (must be a full path) |
| bool FProjectDescriptor::RemoveRootDirectory | ( | const FString & | Dir | ) |
Removes the directory from the list to scan
| Dir | the directory to remove (must be a full path) |
Saves the descriptor to the given file.
| void FProjectDescriptor::Sign | ( | const FString & | FilePath | ) |
Signs the project given for the given filename
| void FProjectDescriptor::UpdateSupportedTargetPlatforms | ( | const FName & | InPlatformName, |
| bool | bIsSupported | ||
| ) |
Updates the supported target platforms list
| void FProjectDescriptor::Write | ( | TJsonWriter<> & | Writer, |
| const FString & | PathToProject | ||
| ) | const |
Writes the descriptor to the given JSON object
| bool FProjectDescriptor::bDisableEnginePluginsByDefault |
Indicates that enabled by default engine plugins should not be enabled unless explicitly enabled by the project or target files.
| bool FProjectDescriptor::bIsEnterpriseProject |
Indicates if this project is an Enterprise project
| FString FProjectDescriptor::Category |
Category to show under the project browser
| FString FProjectDescriptor::Description |
Description to show in the project browser
| FString FProjectDescriptor::EngineAssociation |
The engine to open this project with. Set this value using IDesktopPlatform::SetEngineIdentifierForProject to ensure that the most portable value for this field is used.
This field allows us to open the right version of the engine when you double-click on a .uproject file, and to detect when you open a project with a different version of the editor and need the upgrade/downgrade UI flow. The normal engine version doesn't work for those purposes, because you can have multiple 4.x branches in various states on one machine.
For Launcher users, this field gets set to something stable like "4.7" or "4.8", so you can swap projects and game binaries between users, and it'll automatically work on any platform or machine regardless of where the engine is installed. You can only have one binary release of each major engine version installed at once.
For Perforce or Git users that branch the engine along with their games, this field is left blank. You can sync the repository down on any platform and machine, and it can figure out which engine a project should use by looking up the directory hierarchy until it finds one.
For other cases, where you have a source build of the engine but are working with a foreign project, we use a random identifier for each local engine installation and use the registry to map it back to the engine directory. All bets are off as to which engine you should use to open it on a different machine, and using a random GUID ensures that every new machine triggers the engine selection UI when you open or attempt to generate project files for it.
For users which mount the engine through a Git submodule (where the engine is in a subdirectory of the project), this field can be manually edited to be a relative path.
| uint32 FProjectDescriptor::EpicSampleNameHash |
A hash that is used to determine if the project was forked from a sample
| EProjectDescriptorVersion::Type FProjectDescriptor::FileVersion |
Descriptor version number.
| TArray<FModuleDescriptor> FProjectDescriptor::Modules |
List of all modules associated with this project
| TArray<FPluginReferenceDescriptor> FProjectDescriptor::Plugins |
List of plugins for this project (may be enabled/disabled)
| FCustomBuildSteps FProjectDescriptor::PostBuildSteps |
Custom steps to execute after building targets in this project
| FCustomBuildSteps FProjectDescriptor::PreBuildSteps |
Custom steps to execute before building targets in this project