Nuke.Unreal
Build Unreal apps in Style.
Loading...
Searching...
No Matches
Nuke.Unreal.Plugins Namespace Reference

Classes

class  AutoRuntimeDependencyGenerator
 
class  RuntimeDependencies
 
class  RuntimeDependenciesExtensions
 
class  RuntimeDependency
 
class  RuntimeLibraryPath
 
class  UnrealPlugin
 A class encapsulating information and tasks around one Unreal plugin. More...
 
class  UnrealPluginExtensions
 

Enumerations

enum  RuntimeDependencyConfig { Debug , Release , All }
 
enum  LocalizationTargetDescriptorLoadingPolicy {
  Never , Always , Editor , Game ,
  PropertyNames , ToolTips
}
 
enum  ModuleHostType {
  Default , Runtime , RuntimeNoCommandlet , RuntimeAndProgram ,
  CookedOnly , UncookedOnly , Developer , DeveloperTool ,
  Editor , EditorNoCommandlet , EditorAndProgram , Program ,
  ServerOnly , ClientOnly , ClientOnlyNoCommandlet
}
 The type of host that can load a module. More...
 
enum  ModuleLoadingPhase {
  Default , PostDefault , PreDefault , EarliestPossible ,
  PostConfigInit , PostSplashScreen , PreEarlyLoadingScreen , PreLoadingScreen ,
  PostEngineInit , None
}
 Indicates when the engine should attempt to load this module. More...
 
enum  PluginDescriptorVersion {
  Invalid = 0 , Initial = 1 , NameHash = 2 , ProjectPluginUnification = 3 ,
  LatestPlusOne , Latest = LatestPlusOne - 1
}
 The version format for .uplugin files. This rarely changes now; plugin descriptors should maintain backwards compatibility automatically. More...
 
enum  PluginBuildMethod { UAT , UBT }
 Method of packaging a plugin. More...
 

Functions

record class LocalizationTargetDescriptor (string Name, LocalizationTargetDescriptorLoadingPolicy LoadingPolicy)
 
record class ModuleDescriptor (string? Name=null, ModuleHostType? Type=null, ModuleLoadingPhase? LoadingPhase=null, List< UnrealPlatform >? PlatformAllowList=null, List< UnrealPlatform >? PlatformDenyList=null, List< UnrealTargetType >? TargetAllowList=null, List< UnrealTargetType >? TargetDenyList=null, List< UnrealConfig >? TargetConfigurationAllowList=null, List< UnrealConfig >? TargetConfigurationDenyList=null, List< string >? ProgramAllowList=null, List< string >? ProgramDenyList=null, List< string >? AdditionalDependencies=null, bool? HasExplicitPlatforms=null)
 Class containing information about a code module.
 
record class PluginDescriptor (int FileVersion=3, int Version=1, string? VersionName=null, string? FriendlyName=null, string? Description=null, string? Category=null, string? CreatedBy=null, string? CreatedByURL=null, string? DocsURL=null, string? MarketplaceURL=null, string? SupportURL=null, string? EngineVersion=null, bool? IsPluginExtension=null, List< UnrealPlatform >? SupportedTargetPlatforms=null, List< string >? SupportedPrograms=null, List< ModuleDescriptor >? Modules=null, List< LocalizationTargetDescriptor >? LocalizationTargets=null, bool? EnabledByDefault=null, bool? CanContainContent=null, bool? CanContainVerse=null, bool? IsBetaVersion=null, bool? IsExperimentalVersion=null, bool? Installed=null, bool? RequiresBuildPlatform=null, bool? IsSealed=null, bool? NoCode=null, bool? ExplicitlyLoaded=null, bool? HasExplicitPlatforms=null, Dictionary< UnrealPlatform, List< string > >? PreBuildSteps=null, Dictionary< UnrealPlatform, List< string > >? PostBuildSteps=null, List< PluginReferenceDescriptor >? Plugins=null, List< string >? DisallowedPlugins=null)
 In-memory representation of a .uplugin file.
 
record class PluginReferenceDescriptor (string? Name=null, bool? Enabled=null, bool? Optional=null, string? Description=null, string? MarketplaceURL=null, List< string >? PlatformAllowList=null, List< string >? PlatformDenyList=null, List< UnrealConfig >? TargetConfigurationAllowList=null, List< UnrealConfig >? TargetConfigurationDenyList=null, List< UnrealTargetType >? TargetAllowList=null, List< UnrealTargetType >? TargetDenyList=null, List< string >? SupportedTargetPlatforms=null, bool? HasExplicitPlatforms=null, int? RequestedVersion=null)
 Representation of a reference to a plugin from a project file.
 
record class PluginDistributionOptions (RelativePath? OutputSubfolder=null, AbsolutePath? OutputOverride=null, bool GenerateFilterPluginIni=true, bool UPluginAssociateEngineVersion=true, bool UPluginIsInstalled=true, Func< PluginDescriptor, PluginDescriptor >? UPluginConfig=null)
 Options for creating a distributable version of this plugin, usually for making it independent of Nuke.
 
record class PluginBuildOptions (RelativePath? OutputSubfolder=null, AbsolutePath? OutputOverride=null, bool UseDistributedPlugin=true, PluginBuildMethod Method=PluginBuildMethod.UBT, UnrealPlatform[]? Platforms=null)
 Options for packaging plugins for binary distribution..
 
record class PluginBuildArguments (Func< UatConfig, UatConfig >? UatConfig=null, Func< UbtConfig, UbtConfig >? UbtConfig=null, PluginBuildOptions? BuildOptions=null, PluginDistributionOptions? DistOptions=null, Func< UnrealPlugin, PluginBuildArguments, PluginBuildArguments?>? DependencyHandler=null)
 Arguments for BuildPlugin.
 

Enumeration Type Documentation

◆ LocalizationTargetDescriptorLoadingPolicy

enum Nuke.Unreal.Plugins.LocalizationTargetDescriptorLoadingPolicy

Definition at line 3 of file LocalizationDescriptor.cs.

◆ ModuleHostType

The type of host that can load a module.

Enumerator
Default 

///

Runtime 

Any target using the UE runtime.

RuntimeNoCommandlet 

Any target except for commandlet.

RuntimeAndProgram 

Any target or program.

CookedOnly 

Loaded only in cooked builds.

UncookedOnly 

Loaded only in uncooked builds.

Developer 

Loaded only when the engine has support for developer tools enabled.

DeveloperTool 

Loads on any targets where bBuildDeveloperTools is enabled.

Editor 

Loaded only by the editor.

EditorNoCommandlet 

Loaded only by the editor, except when running commandlets.

EditorAndProgram 

Loaded by the editor or program targets.

Program 

Loaded only by programs.

ServerOnly 

Loaded only by servers.

ClientOnly 

Loaded only by clients, and commandlets, and editor....

ClientOnlyNoCommandlet 

Loaded only by clients and editor (editor can run PIE which is kinda a commandlet)

Definition at line 8 of file ModuleDescriptor.cs.

◆ ModuleLoadingPhase

Indicates when the engine should attempt to load this module.

Enumerator
Default 

Loaded at the default loading point during startup (during engine init, after game modules are loaded.)

PostDefault 

Right after the default phase.

PreDefault 

Right before the default phase.

EarliestPossible 

Loaded as soon as plugins can possibly be loaded (need GConfig)

PostConfigInit 

Loaded before the engine is fully initialized, immediately after the config system has been initialized. Necessary only for very low-level hooks.

PostSplashScreen 

The first screen to be rendered after system splash screen.

PreEarlyLoadingScreen 

After PostConfigInit and before coreUobject initialized. used for early boot loading screens before the uobjects are initialized.

PreLoadingScreen 

Loaded before the engine is fully initialized for modules that need to hook into the loading screen before it triggers.

PostEngineInit 

After the engine has been initialized.

None 

Do not automatically load this module.

Definition at line 89 of file ModuleDescriptor.cs.

◆ PluginBuildMethod

Method of packaging a plugin.

Enumerator
UAT 

Use vanilla UAT BuildPlugin feature.

UBT 

Nuke.Unreal will use UBT directly in a similar way than UAT does, but with extra features/bugfixes that UAT doesn't have, for example automatically handle plugin dependencies, but in a customizable way. This is the default method.

Definition at line 58 of file UnrealPlugin.cs.

◆ PluginDescriptorVersion

The version format for .uplugin files. This rarely changes now; plugin descriptors should maintain backwards compatibility automatically.

Enumerator
Invalid 

Invalid.

Initial 

Initial version.

NameHash 

Adding SampleNameHash.

ProjectPluginUnification 

Unifying plugin/project files (since abandoned, but backwards compatibility maintained)

LatestPlusOne  

This needs to be the last line, so we can calculate the value of Latest below.

Latest LatestPlusOne - 1 

The latest plugin descriptor version.

Definition at line 10 of file PluginDescriptor.cs.

◆ RuntimeDependencyConfig

enum Nuke.Unreal.Plugins.RuntimeDependencyConfig

Definition at line 18 of file AutoRuntimeDependencies.cs.

Function Documentation

◆ ModuleDescriptor()

record class Nuke.Unreal.Plugins.ModuleDescriptor ( string? Name = null,
ModuleHostType? Type = null,
ModuleLoadingPhase? LoadingPhase = null,
List< UnrealPlatform >? PlatformAllowList = null,
List< UnrealPlatform >? PlatformDenyList = null,
List< UnrealTargetType >? TargetAllowList = null,
List< UnrealTargetType >? TargetDenyList = null,
List< UnrealConfig >? TargetConfigurationAllowList = null,
List< UnrealConfig >? TargetConfigurationDenyList = null,
List< string >? ProgramAllowList = null,
List< string >? ProgramDenyList = null,
List< string >? AdditionalDependencies = null,
bool? HasExplicitPlatforms = null )

Class containing information about a code module.

Parameters
NameName of this module
TypeUsage type of module
LoadingPhaseWhen should the module be loaded during the startup sequence? This is sort of an advanced setting.
PlatformAllowListList of allowed platforms
PlatformDenyListList of disallowed platforms
TargetAllowListList of allowed targets
TargetDenyListList of disallowed targets
TargetConfigurationAllowListList of allowed target configurations
TargetConfigurationDenyListList of disallowed target configurations
ProgramAllowListList of allowed programs
ProgramDenyListList of disallowed programs
AdditionalDependenciesList of additional dependencies for building this module.
HasExplicitPlatformsWhen true, an empty PlatformAllowList is interpreted as 'no platforms' with the expectation that explicit platforms will be added in plugin extensions *‍/

◆ PluginBuildArguments()

record class Nuke.Unreal.Plugins.PluginBuildArguments ( Func< UatConfig, UatConfig >? UatConfig = null,
Func< UbtConfig, UbtConfig >? UbtConfig = null,
PluginBuildOptions? BuildOptions = null,
PluginDistributionOptions? DistOptions = null,
Func< UnrealPlugin, PluginBuildArguments, PluginBuildArguments?>? DependencyHandler = null )

Arguments for BuildPlugin.

◆ PluginBuildOptions()

record class Nuke.Unreal.Plugins.PluginBuildOptions ( RelativePath? OutputSubfolder = null,
AbsolutePath? OutputOverride = null,
bool UseDistributedPlugin = true,
PluginBuildMethod Method = PluginBuildMethod.UBT,
UnrealPlatform?[] Platforms = null )

Options for packaging plugins for binary distribution..

Parameters
OutputSubfolderRelative path to the output folder indicated by UnrealBuild.GetOutput(). Default is Plugins/{Name}/Build
OutputOverrideIf set, this will disregard both UnrealBuild.GetOutput() and OutputSubfolder, and use this as the output of plugin distribution tasks
UseDistributedPluginIf set to true, first make a distributed copy of this plugin and then package it with UAT from that.
MethodSelect the method of packaging the plugin. If you have problems with duplicate types in your module rules, then set this to PluginBuildMethod.UBT.
PlatformsExtra platforms to build this plugin for. UnrealBuild.Platform is always added to this list.

◆ PluginDescriptor()

record class Nuke.Unreal.Plugins.PluginDescriptor ( int FileVersion = 3,
int Version = 1,
string? VersionName = null,
string? FriendlyName = null,
string? Description = null,
string? Category = null,
string? CreatedBy = null,
string? CreatedByURL = null,
string? DocsURL = null,
string? MarketplaceURL = null,
string? SupportURL = null,
string? EngineVersion = null,
bool? IsPluginExtension = null,
List< UnrealPlatform >? SupportedTargetPlatforms = null,
List< string >? SupportedPrograms = null,
List< ModuleDescriptor >? Modules = null,
List< LocalizationTargetDescriptor >? LocalizationTargets = null,
bool? EnabledByDefault = null,
bool? CanContainContent = null,
bool? CanContainVerse = null,
bool? IsBetaVersion = null,
bool? IsExperimentalVersion = null,
bool? Installed = null,
bool? RequiresBuildPlatform = null,
bool? IsSealed = null,
bool? NoCode = null,
bool? ExplicitlyLoaded = null,
bool? HasExplicitPlatforms = null,
Dictionary< UnrealPlatform, List< string > >? PreBuildSteps = null,
Dictionary< UnrealPlatform, List< string > >? PostBuildSteps = null,
List< PluginReferenceDescriptor >? Plugins = null,
List< string >? DisallowedPlugins = null )

In-memory representation of a .uplugin file.

Parameters
FileVersionDescriptor version number
VersionVersion 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.
VersionNameName 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.
FriendlyNameFriendly name of the plugin
DescriptionDescription of the plugin
CategoryThe name of the category this plugin
CreatedByThe company or individual who created this plugin. This is an optional field that may be displayed in the user interface.
CreatedByURLHyperlink URL string for the company or individual who created this plugin. This is optional.
DocsURLDocumentation URL string.
MarketplaceURLMarketplace 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.
SupportURLSupport URL/email for this plugin.
EngineVersionSets the version of the engine that this plugin is compatible with.
IsPluginExtension4 If true, this plugin from a platform extension extending another plugin *‍/
SupportedTargetPlatformsList of platforms supported by this plugin. This list will be copied to any plugin reference from a project file, to allow filtering entire plugins from staged builds.
SupportedProgramsList of programs supported by this plugin.
ModulesList of all modules associated with this plugin
LocalizationTargetsList of all localization targets associated with this plugin
EnabledByDefaultWhether this plugin should be enabled by default for all projects
CanContainContentCan this plugin contain content?
CanContainVerseCan this plugin contain Verse code (either in content directory or in any of its modules)?
IsBetaVersionMarks the plugin as beta in the UI
IsExperimentalVersionMarks the plugin as experimental in the UI
InstalledSet for plugins which are installed
RequiresBuildPlatformFor plugins that are under a platform folder (eg. /IOS/), determines whether compiling the plugin requires the build platform and/or SDK to be available
IsSealedWhen true, prevents other plugins from depending on this plugin
NoCodeWhen true, this plugin should not contain any code or modules.
ExplicitlyLoadedWhen 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
HasExplicitPlatformsWhen true, an empty SupportedTargetPlatforms is interpeted as 'no platforms' with the expectation that explict platforms will be added in plugin platform extensions
PreBuildStepsSet of pre-build steps to execute, keyed by host platform name.
PostBuildStepsSet of post-build steps to execute, keyed by host platform name.
PluginsAdditional plugins that this plugin depends on
DisallowedPluginsPlugins that this plugin should never depend on

◆ PluginDistributionOptions()

record class Nuke.Unreal.Plugins.PluginDistributionOptions ( RelativePath? OutputSubfolder = null,
AbsolutePath? OutputOverride = null,
bool GenerateFilterPluginIni = true,
bool UPluginAssociateEngineVersion = true,
bool UPluginIsInstalled = true,
Func< PluginDescriptor, PluginDescriptor >? UPluginConfig = null )

Options for creating a distributable version of this plugin, usually for making it independent of Nuke.

Parameters
OutputSubfolderRelative path to the output folder indicated by UnrealBuild.GetOutput(). Default is Plugins/{Name}/Distribution
OutputOverrideIf set, this will disregard both UnrealBuild.GetOutput() and OutputSubfolder, and use this as the output of plugin distribution tasks
GenerateFilterPluginIniGenerate a FilterPlugin.ini in the plugin's Config folder, so Unreal tools will not ignore extra files handled with Nuke.
UPluginAssociateEngineVersionWhen set to true, distributing sources of plugins will write engine version to UPlugin file.
UPluginIsInstalledMark plugin as Installed when distributing. Default is true
UPluginConfigModify plugin descriptor for the distributed plugin after all other configuration is done.

◆ PluginReferenceDescriptor()

record class Nuke.Unreal.Plugins.PluginReferenceDescriptor ( string? Name = null,
bool? Enabled = null,
bool? Optional = null,
string? Description = null,
string? MarketplaceURL = null,
List< string >? PlatformAllowList = null,
List< string >? PlatformDenyList = null,
List< UnrealConfig >? TargetConfigurationAllowList = null,
List< UnrealConfig >? TargetConfigurationDenyList = null,
List< UnrealTargetType >? TargetAllowList = null,
List< UnrealTargetType >? TargetDenyList = null,
List< string >? SupportedTargetPlatforms = null,
bool? HasExplicitPlatforms = null,
int? RequestedVersion = null )

Representation of a reference to a plugin from a project file.

Parameters
NameName of the plugin
EnabledWhether it should be enabled by default
OptionalWhether this plugin is optional, and the game should silently ignore it not being present
DescriptionDescription of the plugin for users that do not have it installed.
MarketplaceURLURL for this plugin on the marketplace, if the user doesn't have it installed.
PlatformAllowListIf enabled, list of platforms for which the plugin should be enabled (or all platforms if blank).
PlatformDenyListIf enabled, list of platforms for which the plugin should be disabled.
TargetConfigurationAllowListIf enabled, list of target configurations for which the plugin should be enabled (or all target configurations if blank).
TargetConfigurationDenyListIf enabled, list of target configurations for which the plugin should be disabled.
TargetAllowListIf enabled, list of targets for which the plugin should be enabled (or all targets if blank).
TargetDenyListIf enabled, list of targets for which the plugin should be disabled.
SupportedTargetPlatformsThe list of supported platforms for this plugin. This field is copied from the plugin descriptor, and supplements the user's allowed/denied platforms.
HasExplicitPlatformsWhen true, empty SupportedTargetPlatforms and PlatformAllowList are interpreted as 'no platforms' with the expectation that explicit platforms will be added in plugin platform extensions
RequestedVersionWhen set, specifies a specific version of the plugin that this references.