What are the best practices when using Unreal plugins?
Answer
Devs often start out installing plugins in the Unreal Engine editor and build locally from the Editor - which works. Builds are often dependent on plugins, and cloud builds often fail because they have not been set up right with all the Project data (including the plugin) correctly checked into the repository.
Here are the best practices for using Unreal plugins on your project:
In Unreal Engine, plugins can be installed to either the engine itself (Engine-level) or directly into a specific project (Project-level). There are several reasons one might want to copy a plugin from the engine installation into their project:
-
Version Compatibility: If you're working with multiple versions of the Unreal Engine and you want to ensure that your project always uses a specific version of a plugin, you should include it with your project. This ensures that even if you update or change your engine version, the project still uses the version of the plugin you intended.
-
Project Portability:
If you're sharing your project with other developers or team members, including plugins in the project makes it more self-contained. This ensures that when someone opens your project, they have all the required plugins, even if they don't have them installed at the engine level. -
Modifications to the Plugin: If you need to modify a plugin's source code for some specific functionality or fixes, it's a good idea to have that plugin copied to the project. This ensures your modifications don't affect other projects or the default engine installation. Reducing Engine Dependence: Including plugins in the project can help reduce dependencies on specific engine installations. If you ever need to migrate your project to another PC or share it, including the necessary plugins can save a lot of hassle.
-
Plugin Deprecation: Sometimes, plugins get deprecated or removed in newer versions of the engine. If your project relies on such a plugin, it's a good idea to have it included at the project level to ensure future compatibility.
-
Archiving and Backup: For long-term archiving or backup, it's helpful to include everything your project depends on. This way, if you or someone else revisits the project in the future, it's less likely that they'll be missing dependencies.