In this lesson, you will learn how to wrap your custom editor tools and Slate interfaces into portable, engine-level plugins so they can be installed across any of your projects with a single click.
Why Package as an Engine Plugin?
While you’ve learned to create editor modules within your project’s Source folder, those tools are "locked" inside that specific project. By moving your code into an Engine Plugin, you decouple your workflow tools from your game logic. This allows you to build a personal toolkit that you can drop into any new project, keeping your workspace clean and your development velocity consistent.
Moving Logic to the Plugin Structure
To package your editor extension, you must ensure your module definition in the .uplugin file is configured specifically for the editor. Inside your plugin's .uplugin file, you define your module with a Type of Editor:
"Modules": [
{
"Name": "MyCustomTool",
"Type": "Editor",
"LoadingPhase": "PostEngineInit"
}
]
By setting the type to Editor, the Unreal Engine build system ensures that this module is only compiled when you launch the Editor. When you eventually package your game for release, this module will be automatically stripped out, preventing your editor-only Slate widgets or custom menus from causing errors in your shipping build.
Essential Checklist for Distribution
When packaging your extension, ensure you have correctly configured the PublicDependencyModuleNames in your plugin's Build.cs file. You will need to include UnrealEd, Slate, and SlateCore to ensure your UI and editor-specific logic can communicate with the engine correctly.
Once moved to a plugin, you can place this folder in your project's Plugins directory or, for global access, inside your engine installation’s Engine/Plugins folder. Because your logic is now encapsulated, the Editor treats your plugin as a first-class citizen, loading your menus and windows exactly as it does for built-in engine tools.
Key Takeaway: By setting your module type to "Editor" in the .uplugin file, you create a modular, project-agnostic workflow tool that automatically optimizes itself by excluding editor-only code from your final game builds.