{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/uplugin.json","additionalProperties":false,"definitions":{"BuildConfiguration":{"description":"Available build configurations. Mirrored from `UnrealTargetConfiguration`.","type":"string","enum":["Unknown","Debug","DebugGame","Development","Shipping","Test"]},"BuildTargetType":{"description":"Enumerates build target types.","type":"string","enum":["Unknown","Game","Server","Client","Editor","Program"]},"ModuleDescriptor":{"description":"Description of a loadable module.","type":"object","properties":{"AdditionalDependencies":{"description":"List of additional dependencies for building this module.","type":"array","uniqueItems":true,"items":{"type":"string"}},"HasExplicitPlatforms":{"description":"When true, an empty PlatformAllowList is interpreted as 'no platforms' with the expectation that explicit platforms will be added in plugin extensions","type":"boolean","default":false},"LoadingPhase":{"description":"When should the module be loaded during the startup sequence? This is sort of an advanced setting.","type":"string","enum":["EarliestPossible","PostConfigInit","PostSplashScreen","PreEarlyLoadingScreen","PreLoadingScreen","PreDefault","Default","PostDefault","PostEngineInit","None","Max"]},"Name":{"description":"Name of this module","type":"string"},"PlatformAllowList":{"description":"List of allowed platforms","type":"array","uniqueItems":true,"items":{"type":"string"}},"PlatformDenyList":{"description":"List of disallowed platforms","type":"array","uniqueItems":true,"items":{"type":"string"}},"ProgramAllowList":{"description":"List of allowed programs","type":"array","uniqueItems":true,"items":{"type":"string"}},"ProgramDenyList":{"description":"List of disallowed programs","type":"array","uniqueItems":true,"items":{"type":"string"}},"TargetAllowList":{"description":"List of allowed targets","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildTargetType"}},"TargetConfigurationAllowList":{"description":"List of allowed target configurations","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildConfiguration"}},"TargetConfigurationDenyList":{"description":"List of disallowed target configurations","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildConfiguration"}},"TargetDenyList":{"description":"List of disallowed targets","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildTargetType"}},"Type":{"description":"Usage type of module","type":"string","enum":["Runtime","RuntimeNoCommandlet","RuntimeAndProgram","CookedOnly","UncookedOnly","Developer","DeveloperTool","Editor","EditorNoCommandlet","EditorAndProgram","Program","ServerOnly","ClientOnly","ClientOnlyNoCommandlet","Max"]}}},"PluginReferenceDescriptor":{"description":"Descriptor for a plugin reference.","type":"object","properties":{"Enabled":{"description":"Whether it should be enabled by default","type":"boolean","default":true},"HasExplicitPlatforms":{"description":"When true, empty `SupportedTargetPlatforms` and `PlatformAllowList` are interpreted as *no platforms* with the expectation that explicit platforms will be added in plugin platform extensions","type":"boolean","default":false},"Optional":{"description":"Whether this plugin is optional, and the game should silently ignore it not being present","type":"boolean","default":false},"Description":{"description":"Description of the plugin for users that do not have it installed.","type":"string"},"MarketplaceURL":{"description":"URL for this plugin on the marketplace, if the user doesn't have it installed.","type":"string"},"Name":{"description":"Name of the plugin","type":"string"},"PlatformAllowList":{"description":"List of allowed platforms","type":"array","uniqueItems":true,"items":{"type":"string"}},"PlatformDenyList":{"description":"List of disallowed platforms","type":"array","uniqueItems":true,"items":{"type":"string"}},"TargetAllowList":{"description":"List of allowed targets","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildTargetType"}},"TargetConfigurationAllowList":{"description":"List of allowed target configurations","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildConfiguration"}},"TargetConfigurationDenyList":{"description":"List of disallowed target configurations","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildConfiguration"}},"TargetDenyList":{"description":"List of disallowed targets","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/BuildTargetType"}}},"required":["Enabled","Name"]},"URL":{"type":"string","format":"uri","pattern":"^https?://"}},"description":"Descriptor for plugins. Contains all the information contained within a `.uplugin` file.","properties":{"BuiltInInitialFeatureState":{"description":"Determine the initial feature state for a built-in plugin","type":"string","enum":["Installed","Registered","Loaded","Active"],"default":"Active"},"CanContainContent":{"description":"Can this plugin contain content?","type":"boolean","default":false},"CanContainVerse":{"description":"Can this plugin contain Verse code?","type":"boolean","default":false},"ExplicitlyLoaded":{"description":"When true, this plugin's modules will not be loaded automatically nor will it's content be mounted automatically.","type":"boolean","default":false},"HasExplicitPlatforms":{"description":"When true, an empty SupportedTargetPlatforms is interpreted as 'no platforms' with the expectation that explicit platforms will be added in plugin platform extensions","type":"boolean","default":false},"Installed":{"description":"Signifies that the plugin was installed on top of the engine","type":"boolean","default":false},"IsBetaVersion":{"description":"Marks the plugin as beta in the UI","type":"boolean","default":false},"IsExperimentalVersion":{"description":"Marks the plugin as experimental in the UI","type":"boolean","default":false},"IsHidden":{"description":"For auto-generated plugins that should not be listed in the plugin browser for users to disable freely.","type":"boolean","default":false},"bIsPluginExtension":{"description":"If true, this plugin from a platform extension extending another plugin","type":"boolean","default":false},"RequiresBuildPlatform":{"description":"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","type":"boolean","default":false},"Category":{"description":"The name of the category this plugin","type":"string","default":"Other"},"CreatedBy":{"description":"The company or individual who created this plugin.","type":"string"},"CreatedByURL":{"$ref":"#/definitions/URL","description":"Hyperlink URL string for the company or individual who created this plugin. This is optional."},"Description":{"description":"Description of the plugin","type":"string"},"DocsURL":{"$ref":"#/definitions/URL","description":"Documentation URL string."},"EditorCustomVirtualPath":{"description":"Optional custom virtual path to display in editor to better organize.","type":"string"},"EnabledByDefault":{"description":"Whether this plugin should be enabled by default for all projects","type":"boolean","default":false},"EngineVersion":{"description":"Version of the engine that this plugin is compatible with","type":"string"},"FileVersion":{"description":"Descriptor version number.","type":"number","default":3},"FriendlyName":{"description":"Friendly name of the plugin","type":"string"},"LocalizationTargets":{"description":"List of all localization targets associated with this plugin","type":"array","uniqueItems":true,"items":{"type":"object","required":["LoadingPolicy","Name"],"properties":{"LoadingPolicy":{"description":"When should the localization data associated with a target should be loaded?","type":"string","enum":["Never","Always","Editor","Game","PropertyNames","ToolTips","Max"]},"Name":{"description":"Name of this target","type":"string"}}}},"MarketplaceURL":{"description":"Marketplace URL for this plugin.","type":"string"},"Modules":{"description":"List of all modules associated with this plugin","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/ModuleDescriptor"}},"ParentPluginName":{"description":"If specified, this is the real plugin that this one is just extending","type":"string"},"Plugins":{"description":"Plugins used by this plugin","type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/PluginReferenceDescriptor"}},"PostBuildSteps":{"$comment":"Define platform as key, command as value.","description":"Post-build steps for each host platform","type":"object"},"PreBuildSteps":{"$comment":"Define platform as key, command as value.","description":"Pre-build steps for each host platform","type":"object"},"SupportedPrograms":{"description":"List of programs that are supported by this plugin.","type":"array","uniqueItems":true,"items":{"type":"string"}},"SupportedTargetPlatforms":{"description":"Controls a subset of platforms that can use this plugin, and which ones will stage the `.uplugin` file and content files.","type":"array","uniqueItems":true,"items":{"type":"string"}},"SupportURL":{"description":"Support URL/email for this plugin.","type":"string"},"Version":{"description":"Version number for the plugin.","type":"number","default":1},"VersionName":{"description":"Name of the version for this plugin.","type":"string","default":"1.0"}},"required":["FileVersion"],"title":"JSON schema for Unreal Engine uplugin","type":"object"}