2.6Shared plugins
Promote a subfolder to a plugin, mount it into your other projects, and update it deliberately.
Section 6 of 7 in this chapter
Studios accumulate things worth reusing: a character controller, a material library, a dialogue system. The usual fate of those things is a copy in every project, three of which have diverged and one of which has the bug fix.
A plugin is a subfolder of one project, promoted so other projects can mount it. The source of truth stays in one place and flows outward.
CombatKit (lives in ToolsProject)
│
┌────────────┼────────────┐
▼ ▼ ▼
MyGame SpaceGame Prototype
/Plugins/ /Plugins/ /Plugins/
CombatKit CombatKit CombatKit
edits flow down, never back upCreating one
The app detects folders containing a .uplugin and offers to promote them. Once promoted, the subtree syncs one way: from the plugin's home project out to everywhere it is mounted.
Updates are explicit, and this is deliberate
Syncing a project checks its plugins and queues what is available, exactly the way incoming file changes are queued. Nothing is written into your working tree until you say so.
A silent plugin update is one of the worst things that can happen mid-session: your project changes underneath you, in code you did not write, while you are debugging something else. The Plugins button in the sidebar carries a badge when a mounted plugin is behind its source, and it waits for you.
Sharing across organizations
A plugin can be granted to another organization by slug — useful for a contractor, a partner studio, or a toolkit you sell. The consumer pays for their own storage of it, and revoking the grant cascades: the plugin stops flowing immediately.