In this lesson, you will learn how to configure the metadata and build requirements of your plugin to ensure it integrates seamlessly into any professional Unreal Engine project.
When you package a plugin for distribution, you aren't just sending code; you are providing a contract to the engine. This contract is defined primarily in your .uplugin descriptor file, which sits in your plugin’s root directory. This JSON file acts as the "ID card" for your plugin, telling the Unreal Build Tool exactly how to handle it.
Configuring Metadata and Versioning
The .uplugin file contains a Version and VersionName field. The Version is an integer that increments automatically during build processes, while the VersionName is the human-readable string (e.g., "1.2.0") that users see in the Editor. Keeping these accurate is vital for dependency management—if another developer’s project relies on a specific feature, the Engine uses these strings to ensure compatibility.
Defining Build Requirements
Beyond versioning, you must define the Modules block and Whitelist or Blacklist platforms. If your plugin uses specific logic meant only for the Editor or specific consoles, you declare it here:
{
"FileVersion": 3,
"Version": 1,
"VersionName": "1.0",
"FriendlyName": "MyProPlugin",
"Modules": [
{
"Name": "MyProPlugin",
"Type": "Runtime",
"LoadingPhase": "Default",
"PlatformAllowList": ["Win64", "Mac", "Linux"]
}
]
}
By setting the Type (e.g., Runtime, Editor, or Developer), you control whether your code is included in the final shipping build of a game. Setting a module to Editor ensures that your custom toolset doesn't bloat the executable of a packaged game, while Runtime ensures that your gameplay features are available to the engine at all times.
Finally, always remember to verify your public and private module dependencies within the Build.cs file. If your plugin relies on other engine modules, listing them explicitly ensures that when another studio drops your plugin into their project, the Unreal Build Tool knows exactly how to link the necessary libraries.
Key Takeaway: A professional plugin is defined by a strictly versioned .uplugin descriptor that explicitly restricts module types and target platforms to ensure stability and performance in external projects.