UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FPluginDescriptor Struct Reference

#include <PluginDescriptor.h>

Public Member Functions

PROJECTS_API FPluginDescriptor ()
 
PROJECTS_API bool Load (const TCHAR *FileName, FText *OutFailReason=nullptr)
 
PROJECTS_API bool Load (const FString &FileName, FText *OutFailReason=nullptr)
 
PROJECTS_API bool Load (const FString &FileName, FText &OutFailReason)
 
PROJECTS_API bool ReadWithCustomPluginDescriptorReader (const TCHAR *FileName, FText *OutFailReason=nullptr)
 
PROJECTS_API bool Read (const FString &Text, FText *OutFailReason=nullptr)
 
PROJECTS_API bool Read (const FString &Text, FText &OutFailReason)
 
PROJECTS_API bool Read (const FJsonObject &Object, FText *OutFailReason=nullptr)
 
PROJECTS_API bool Read (const FJsonObject &Object, FText &OutFailReason)
 
PROJECTS_API bool Save (const TCHAR *FileName, FText *OutFailReason=nullptr) const
 
PROJECTS_API bool Save (const FString &FileName, FText *OutFailReason=nullptr) const
 
PROJECTS_API bool Save (const FString &FileName, FText &OutFailReason) const
 
PROJECTS_API void Write (FString &Text) const
 
PROJECTS_API void Write (TJsonWriter<> &Writer) const
 
PROJECTS_API void UpdateJson (FJsonObject &JsonObject) const
 
PROJECTS_API bool UpdatePluginFile (const FString &FileName, FText *OutFailReason=nullptr) const
 
PROJECTS_API bool UpdatePluginFile (const FString &FileName, FText &OutFailReason) const
 
PROJECTS_API bool SupportsTargetPlatform (const FString &Platform) const
 
 DECLARE_DELEGATE_RetVal_FourParams (bool, FPluginDescriptorReaderDelegate, const TCHAR *, FText *, TSharedPtr< FJsonObject > &, bool &)
 

Static Public Member Functions

static PROJECTS_API const FString & GetFileExtension ()
 

Public Attributes

int32 Version
 
FString VersionName
 
FString FriendlyName
 
FString Description
 
FString Category
 
FString CreatedBy
 
FString CreatedByURL
 
FString DocsURL
 
FString MarketplaceURL
 
FString SupportURL
 
FString EngineVersion
 
FString EditorCustomVirtualPath
 
TArray< FString > SupportedTargetPlatforms
 
TArray< FString > SupportedPrograms
 
FString ParentPluginName
 
TArray< FModuleDescriptorModules
 
TArray< FLocalizationTargetDescriptorLocalizationTargets
 
FString VersePath
 
FString DeprecatedEngineVersion
 
EVerseScope::Type VerseScope = EVerseScope::PublicUser
 
TOptional< uint32VerseVersion
 
bool bEnableSceneGraph = false
 
bool bEnableVerseAssetReflection = false
 
bool bEnableIAD = false
 
EPluginEnabledByDefault EnabledByDefault
 
bool bCanContainContent
 
bool bCanContainVerse
 
bool bIsBetaVersion
 
bool bIsExperimentalVersion
 
bool bInstalled
 
bool bRequiresBuildPlatform
 
bool bIsHidden
 
bool bIsSealed
 
bool bNoCode
 
bool bExplicitlyLoaded
 
bool bHasExplicitPlatforms
 
bool bIsPluginExtension
 
FCustomBuildSteps PreBuildSteps
 
FCustomBuildSteps PostBuildSteps
 
TArray< FPluginReferenceDescriptorPlugins
 
TArray< FPluginDisallowedDescriptorDisallowedPlugins
 

Static Public Attributes

static PROJECTS_API FPluginDescriptorReaderDelegate CustomPluginDescriptorReaderDelegate
 

Detailed Description

Descriptor for plugins. Contains all the information contained within a .uplugin file.

Constructor & Destructor Documentation

◆ FPluginDescriptor()

FPluginDescriptor::FPluginDescriptor ( )

Constructor.

Member Function Documentation

◆ DECLARE_DELEGATE_RetVal_FourParams()

FPluginDescriptor::DECLARE_DELEGATE_RetVal_FourParams ( bool  ,
FPluginDescriptorReaderDelegate  ,
const TCHAR ,
FText ,
TSharedPtr< FJsonObject > &  ,
bool  
)

◆ GetFileExtension()

const FString & FPluginDescriptor::GetFileExtension ( )
static

Return the .uplugin extension (with dot)

◆ Load() [1/3]

bool FPluginDescriptor::Load ( const FString &  FileName,
FText OutFailReason 
)

Loads the descriptor from the given file.

◆ Load() [2/3]

bool FPluginDescriptor::Load ( const FString &  FileName,
FText OutFailReason = nullptr 
)

Loads the descriptor from the given file.

◆ Load() [3/3]

bool FPluginDescriptor::Load ( const TCHAR FileName,
FText OutFailReason = nullptr 
)

Loads the descriptor from the given file.

◆ Read() [1/4]

bool FPluginDescriptor::Read ( const FJsonObject Object,
FText OutFailReason 
)

Reads the descriptor from the given JSON object

◆ Read() [2/4]

bool FPluginDescriptor::Read ( const FJsonObject Object,
FText OutFailReason = nullptr 
)

Reads the descriptor from the given JSON object

◆ Read() [3/4]

bool FPluginDescriptor::Read ( const FString &  Text,
FText OutFailReason 
)

Reads the descriptor from the given string

◆ Read() [4/4]

bool FPluginDescriptor::Read ( const FString &  Text,
FText OutFailReason = nullptr 
)

Reads the descriptor from the given string

◆ ReadWithCustomPluginDescriptorReader()

bool FPluginDescriptor::ReadWithCustomPluginDescriptorReader ( const TCHAR FileName,
FText OutFailReason = nullptr 
)

◆ Save() [1/3]

bool FPluginDescriptor::Save ( const FString &  FileName,
FText OutFailReason 
) const

Saves the descriptor to the given file.

◆ Save() [2/3]

bool FPluginDescriptor::Save ( const FString &  FileName,
FText OutFailReason = nullptr 
) const

Saves the descriptor to the given file.

◆ Save() [3/3]

bool FPluginDescriptor::Save ( const TCHAR FileName,
FText OutFailReason = nullptr 
) const

Saves the descriptor to the given file.

◆ SupportsTargetPlatform()

bool FPluginDescriptor::SupportsTargetPlatform ( const FString &  Platform) const

Determines whether the plugin supports the given platform

◆ UpdateJson()

void FPluginDescriptor::UpdateJson ( FJsonObject JsonObject) const

Updates the given json object with values in this descriptor

◆ UpdatePluginFile() [1/2]

bool FPluginDescriptor::UpdatePluginFile ( const FString &  FileName,
FText OutFailReason 
) const

Updates the content of the specified plugin file with values in this descriptor (hence preserving json fields that the plugin descriptor doesn't know about)

◆ UpdatePluginFile() [2/2]

bool FPluginDescriptor::UpdatePluginFile ( const FString &  FileName,
FText OutFailReason = nullptr 
) const

Updates the content of the specified plugin file with values in this descriptor (hence preserving json fields that the plugin descriptor doesn't know about)

◆ Write() [1/2]

void FPluginDescriptor::Write ( FString &  Text) const

Writes a descriptor to JSON

◆ Write() [2/2]

void FPluginDescriptor::Write ( TJsonWriter<> &  Writer) const

Writes a descriptor to JSON

Member Data Documentation

◆ bCanContainContent

bool FPluginDescriptor::bCanContainContent

Can this plugin contain content?

◆ bCanContainVerse

bool FPluginDescriptor::bCanContainVerse

Can this plugin contain Verse code?

◆ bEnableIAD

bool FPluginDescriptor::bEnableIAD = false

Use IAD for this plugin

◆ bEnableSceneGraph

bool FPluginDescriptor::bEnableSceneGraph = false

Whether this plugin has SceneGraph enabled, which impacts the generated Verse Asset Digest.

◆ bEnableVerseAssetReflection

bool FPluginDescriptor::bEnableVerseAssetReflection = false

If to generate Verse source code definitions from assets contained in this plugin

◆ bExplicitlyLoaded

bool FPluginDescriptor::bExplicitlyLoaded

When true, this plugin's modules will not be loaded automatically nor will it's content be mounted automatically. It will load/mount when explicitly requested and LoadingPhases will be ignored

◆ bHasExplicitPlatforms

bool FPluginDescriptor::bHasExplicitPlatforms

When true, an empty SupportedTargetPlatforms is interpreted as 'no platforms' with the expectation that explicit platforms will be added in plugin platform extensions

◆ bInstalled

bool FPluginDescriptor::bInstalled

Signifies that the plugin was installed on top of the engine

◆ bIsBetaVersion

bool FPluginDescriptor::bIsBetaVersion

Marks the plugin as beta in the UI

◆ bIsExperimentalVersion

bool FPluginDescriptor::bIsExperimentalVersion

Marks the plugin as experimental in the UI

◆ bIsHidden

bool FPluginDescriptor::bIsHidden

For auto-generated plugins that should not be listed in the plugin browser for users to disable freely.

◆ bIsPluginExtension

bool FPluginDescriptor::bIsPluginExtension

If true, this plugin from a platform extension extending another plugin

◆ bIsSealed

bool FPluginDescriptor::bIsSealed

Prevents other plugins from depending on this plugin.

◆ bNoCode

bool FPluginDescriptor::bNoCode

Prevents this plugin from containing code or modules.

◆ bRequiresBuildPlatform

bool FPluginDescriptor::bRequiresBuildPlatform

For plugins that are under a platform folder (eg. /PS4/), determines whether compiling the plugin requires the build platform and/or SDK to be available

◆ Category

FString FPluginDescriptor::Category

The name of the category this plugin

◆ CreatedBy

FString FPluginDescriptor::CreatedBy

The company or individual who created this plugin. This is an optional field that may be displayed in the user interface.

◆ CreatedByURL

FString FPluginDescriptor::CreatedByURL

Hyperlink URL string for the company or individual who created this plugin. This is optional.

◆ CustomPluginDescriptorReaderDelegate

FPluginDescriptor::FPluginDescriptorReaderDelegate FPluginDescriptor::CustomPluginDescriptorReaderDelegate
static

◆ DeprecatedEngineVersion

FString FPluginDescriptor::DeprecatedEngineVersion

Set when a plugin is loaded that has the DeprecatedEngineVersion set.

◆ Description

FString FPluginDescriptor::Description

Description of the plugin

◆ DisallowedPlugins

TArray<FPluginDisallowedDescriptor> FPluginDescriptor::DisallowedPlugins

Plugins that cannot be used by this plugin

◆ DocsURL

FString FPluginDescriptor::DocsURL

Documentation URL string.

◆ EditorCustomVirtualPath

FString FPluginDescriptor::EditorCustomVirtualPath

Optional custom virtual path to display in editor to better organize. Inserted just before this plugin's directory in the path: /All/Plugins/EditorCustomVirtualPath/PluginName

◆ EnabledByDefault

EPluginEnabledByDefault FPluginDescriptor::EnabledByDefault

Whether this plugin should be enabled by default for all projects

◆ EngineVersion

FString FPluginDescriptor::EngineVersion

Version of the engine that this plugin is compatible with

◆ FriendlyName

FString FPluginDescriptor::FriendlyName

Friendly name of the plugin

◆ LocalizationTargets

TArray<FLocalizationTargetDescriptor> FPluginDescriptor::LocalizationTargets

List of all localization targets associated with this plugin

◆ MarketplaceURL

FString FPluginDescriptor::MarketplaceURL

Marketplace URL for this plugin. This URL will be embedded into projects that enable this plugin, so we can redirect to the marketplace if a user doesn't have it installed.

◆ Modules

TArray<FModuleDescriptor> FPluginDescriptor::Modules

List of all modules associated with this plugin

◆ ParentPluginName

FString FPluginDescriptor::ParentPluginName

If specified, this is the real plugin that this one is just extending

◆ Plugins

TArray<FPluginReferenceDescriptor> FPluginDescriptor::Plugins

Plugins used by this plugin

◆ PostBuildSteps

FCustomBuildSteps FPluginDescriptor::PostBuildSteps

Post-build steps for each host platform

◆ PreBuildSteps

FCustomBuildSteps FPluginDescriptor::PreBuildSteps

Pre-build steps for each host platform

◆ SupportedPrograms

TArray<FString> FPluginDescriptor::SupportedPrograms

List of programs that are supported by this plugin.

◆ SupportedTargetPlatforms

TArray<FString> FPluginDescriptor::SupportedTargetPlatforms

Controls a subset of platforms that can use this plugin, and which ones will stage the .uplugin file and content files. Generally, for code plugins, it should be the union of platforms that the modules in the plugin are compiled for.

◆ SupportURL

FString FPluginDescriptor::SupportURL

Support URL/email for this plugin.

◆ VersePath

FString FPluginDescriptor::VersePath

The Verse path to the root of this plugin's content directory

◆ VerseScope

EVerseScope::Type FPluginDescriptor::VerseScope = EVerseScope::PublicUser

Origin/visibility of Verse code in this plugin's Content/Verse folder

◆ VerseVersion

TOptional<uint32> FPluginDescriptor::VerseVersion

The version of the Verse language that this plugin targets. If no value is specified, the latest stable version is used.

◆ Version

int32 FPluginDescriptor::Version

Version number for the plugin. The version number must increase with every version of the plugin, so that the system can determine whether one version of a plugin is newer than another, or to enforce other requirements. This version number is not displayed in front-facing UI. Use the VersionName for that.

◆ VersionName

FString FPluginDescriptor::VersionName

Name of the version for this plugin. This is the front-facing part of the version number. It doesn't need to match the version number numerically, but should be updated when the version number is increased accordingly.


The documentation for this struct was generated from the following files: