Can Plugins live outside of a project in Perforce source control?

I’m setting up UE5 on a perforce streams server right now, and I plan to have multiple projects alongside the Engine folder. I also plan to develop multiple plugins that I would like to be shared between all projects, so I want to know if it’s possible to host them in a sibling folder and map them into projects from that directory somehow. The folder structure would look like this:

* Engine
* Plugins
    * PluginA
    * PluginB
    * PluginC
* ProjectX
* ProjectY
* ProjectZ

Where ProjectX, ProjectY and ProjectZ all have access to and build PluginA, PluginB and PluginC.

The two options I can see for doing this are:

  1. Map plugins from external directories into the project using configs, similar to how .uprojectdirs files work (I don’t know if this functionality exists, but I can’t find it)
  2. Use virtual streams in Perforce to map the plugin directory to the right place in the project’s internal hierarchy

I know how to do option 2 already, but it has the drawback of only being able to have a single active project, and requiring users to switch virtual streams before they use another project.

Does anyone know if option 1 exists? Any thoughts and help much appreciated!

It turns out that yes, you very much can do this. You can add new ones through the editor and place them in an external folder - this generates a property in the uproject that looks like this:

"AdditionalPluginDirectories": [
		"../Plugins"		
	]

This can be copy-pasted into other uproject files that you want to share the plugins between. It seems it’s not 100% supported but it works, so I’m happy :slight_smile:

1 Like