For most studios, put third-party plugins inside the project's Plugins folder, so they are versioned with the game and visible to review. Epic's documentation defines both locations, but an engine-level install lives outside your repository and is easy to forget.
The two locations
Epic's plugin documentation says that for plugins to be found, they must sit in one of the search paths, either in your project or in the engine itself.
| Plugin type | Search path |
|---|---|
| Engine | The engine root, in Engine/Plugins/PluginName |
| Game | The project root, in Plugins/PluginName |
The documentation also says you can group plugins into subdirectories under the base Plugins folder, and that the engine scans sub-folders for plugins to load but never scans below a plugin it has already found. A plugin is found by its .uplugin descriptor, which is a text file with basic information.
Why project level is easier to control
- It is in your repository. A pull request shows when a plugin is added or changed.
- A new team member gets the same plugin version by cloning the project.
- CI builds the same code that developers use.
- Your scanner and your reviewers can see the Source folder and Build.cs files.
- A rollback is a revert.
Engine-level installs share one copy across projects, which suits a studio that has a validated engine build and a controlled set of plugins. But an engine-level plugin installed by one developer through a launcher is not visible in your repository at all. Another machine may build with a different version, or none.
When engine level makes sense
- A studio-maintained engine fork where the platform team owns every plugin and ships the engine build as an internal artifact.
- Large shared plugins used by many projects, with one owner and a release process.
In that case, treat the engine build as a versioned product with its own inventory and changelog.
Steps to decide
- List every plugin in use across projects.
- Mark each as project level or engine level.
- For engine level ones, write down who installed them, from where and which version.
- Move anything without an owner to project level or remove it.
- Add a CI check that fails if the plugin list in the build differs from the committed list.
Plugins with code are compiled with the game, as covered in the post on plugin build behavior.
Practical tips for the move
If you decide to move engine-level plugins into projects, do it one project at a time. Copy the plugin folder into the project's Plugins folder, remove the engine copy on a test machine so you can confirm the project loads the project copy, and commit. Epic's page says the engine scans for descriptors in the search paths, so a plugin present at both levels is a source of confusion, and it is better to have one copy.
Keep a short note beside the plugin in your inventory about which engine version it was built for. Epic's documentation says plugins with code keep compiled code in a Binaries folder, so check with the vendor whether a rebuild is needed after an engine upgrade.
Try it yourself
Click through it at your own pace, or open it full screen.
Open the inventory and check that every entry has a visible source. An engine-level plugin installed by hand often lacks one.
Quick check
Where does Unreal look for game plugins?
In the project root, under Plugins, followed by the plugin name, per Epic's documentation.
How does Unreal find a plugin?
By searching for .uplugin descriptor files on disk.
Sources
Last reviewed: 19 October 2026.