Tutorial
Documentation for the Osero Suite: Plugin Sync Tool update 1.1 (5.2+)
Last updated
Documentation for the Osero Suite: Plugin Sync Tool update 1.1 (5.2+)
Last updated
The Osero Suite Plugin Sync Tool offers an easy solution for plugin management across multiple projects. By entering a project’s details and "Plugins" folder path, easily sync plugins from one project to another with a click of a button! The Plugin Sync Tool saves the hassle of using File Explorer to copy files from one place to another and also handles related Revision Control actions.
Once the Osero Suite: Plugin Sync Tool plugin is installed, the Plugin Sync Tool can be accessed via the Osero Suite menu in the Level Editor Toolbar or the Window menu.
Before we begin, we need to make these two definitions clear: “Target Project” means a project other than the current project running the Plugin Sync Tool. “This Project” means the host project that is currently running the Plugin Sync Tool.
First we begin by defining a Target Project. Clicking the “Add” button will present a new empty Target Project.
The Project Display Name is for your reference only - the tool internally uses indexes, not this name, so it can be anything you want.
The Project Plugin Directory is the path to the Target Project’s Plugins folder, located in the same directory as the uproject file.
If Reverse Sync is ticked, the Target Project will be considered This Project and This Project will be considered the Target Project when syncing.
You can then select the plugins you wish to sync from This Project to the Target Project.
Target Projects can be managed via these buttons.
The Target Project Data can also be exported to a json file and imported into another project using these buttons here.
A Target Project can also be set to disabled using the tickbox on the Target Project’s tab. This means that Sync All will skip this Target Project.
The Plugin Sync Tool allows you to define Ignore Directories, Ignore File Types, and Ignore Files. By default, the tool ignores common directories and files that are not necessary to copy. Entries in Ignore Files do not have to be a full file name, they can include a single word, such as the default “patch”, which will exclude any files with this word in their name.
The Plugin Sync Tool has a number of options that modify how the syncing process is carried out.
Force update will re-copy EVERYTHING regardless of date and time. If this is ticked off, it will only sync files that have a more recent timestamp than the equivalent file in the Target Project.
When the sync is executed, any files in the Target Project which have a newer timestamp than This Project will appear in a prompt, asking you how you want to handle the sync. If Skip Newer Check is ticked on, it will ignore this check and simply overwrite the files in the Target Project with the files in This Project regardless of date and time.
When the sync is executed, any files found in the Target Project that do not exist in This Project will appear in a prompt, asking you how you want to handle the sync. If Skip Delete Check is ticked, it will simply delete any files in the Target Project that do not exist in This Project.
If Copy Binaries is ticked, the files in the Binaries folder of the plugin in This Project will be copied to the Target Project too. This is necessary if copying a C++ plugin to a Blueprint project as the Blueprint project has no way to rebuild the binaries.
If Fix Plugin Engine Versions is ticked, all uplugin files being copied will have their engine version tag updated to match the Target Project’s engine version.
The Plugin Sync Tool handles Revision Control if Check Revision Control is enabled. This will include Checking Out, Marking For Add, and Marking For Delete.
Push Binaries to Revision Control will tell the tool that any dll files copied need to be added to Revision Control. This is not advised when copying to a C++ Target Project as recompiling the project will recreate the binary files.
Push pdb to Revision Control will tell the tool that any pdb files copied need to be added to Revision Control. This is usually not advised as pdb files tend to be quite big, though sometimes it might be necessary for debugging purposes.
There are three ways that a sync can be executed.
The green button will sync the focused Target Project only.
The blue Sync All button will sync all Target Projects.
The dropdown menu allows you to sync just the selected plugin in This Project if the Target Project has this plugin set to sync.
When the sync is started, the tool will find all files in This Project’s Plugins directory and all files in the Target Project’s Plugins directory. Then, based on the settings, the tool compares all the files to determine which files need to be synced.
If the file in the Target Project is older than the matching file in This Project, or Force Update is ticked on, the file will be overwritten.
If the file in the Target Project does not exist, the file from This Project will be copied to the Target Project.
If the file in the Target Project is newer than the file in This Project, the user will be prompted to either copy the file back to This Project, or overwrite the file in the Target Project with the older file from This Project.
If the file exists in the Target Project but does not exist in This Project, the user will be prompted to either copy the file back to This Project, or delete the file in the Target Project.
As the tool runs, it will also perform the appropriate Revision Control actions, depending on your settings.
The Osero Suite: Plugin Sync Tool also includes its own project settings. In these settings, the colours for the selected and unselected plugins can be set to cater for those who may have difficulty differentiating between red and green.
A question that may arise when looking at the Plugin Sync Tool is, “why would I even need such a tool, given that I can just copy files in File Explorer?” Well, I’ve personally been using versions of this tool for a few years now as it removed the monotony of manually updating plugins.
The first use case is developing a C++ plugin for a Blueprint project.
For a cinematic pipeline, for example, artists don’t need the worry about the hassle of dealing with Visual Studio and compilation times. The Plugin Sync Tool allows C++ content to be developed in a separate C++ test project and synced easily with a Blueprint project so the artists aren’t affected by updates to the C++ code. It also means the C++ project can be lightweight without all the heavy cinematics, levels, and VFX, improving loading times and efficiency for the engineering team. Because the tool handles Revision Control, especially if using Perforce, it saves the hassle of checking out, marking for add, and deleting appropriate files, especially when needing to push minor hotfixes in plugins with thousands of lines of code.
Developing a plugin for Fab has some specific rules in Epic Games’ guidelines. One of these rules, unlike with Blueprint assets, is that each engine version needs to uploaded separately. And so, when developing the Osero Suite plugins, the Plugin Sync Tool has been extremely useful in keeping the plugins in different engine versions synced.
I have my workflow set up so that the 5.2 version is the main host project with all the Target Project data, and the Plugin Sync Tool then allows me to edit code in any of the engine versions and easily sync it back to 5.2 and then out to all other versions. This also includes keeping it synced in testing projects, such as the Blueprint Slay Project.
The final use case is copying a plugin from another project into This Project. Sometimes when purchasing or downloading assets online, especially those outside Fab, the functionality is in a plugin in a host project.
Having the Plugin Sync Tool in a working project allows for a quick setup with a reverse sync, allowing the plugin to be copied back to This Project, while also handling Revision Control and automatically modifying the engine version tag in the uplugin. This saves time and effort mucking around in File Explorer and Revision Control such as Perforce, so that the focus can be on the working project, not on tedious tasks. It also means if the Target Project was synced from somewhere such as GitHub, if the plugin is updated, it’s super easy to update again in the working project.
At first glance it can be easy to dismiss the usefulness of the Plugin Sync Tool, but, as outlined in this video, there are many use cases where this tool can improve efficiency and cut out monotonous tasks. For more information, visit .