On windows, you can use symbolic links to share assets from 1 project with all the others without the need to duplicate or migrate content. This dramatically reduces the data footprint for shared assets.
Typical setup looks like this:
[Asset_Vault]
[content]
[assets] ← The stuff you want to share
[Small_Project #1]
[content]
[assets] ← symbolic link
[Small_Project #2]
[content]
[assets] ← symbolic link
Follow these steps:
1.) Create a folder called “assets” in your “Asset_Library\Content” folder
2.) Open command prompt and navigate to the small project’s “content” folder
3.) Run this command:
mklink /j “assets” “D:\Projects\UE5_Projects\Asset_Library\Content\assets”
mklink (make symbolic link)
/j (make it a junction)
“assets” the name of the new folder in your smaller project(must match)
“D:\Projects\UE5_Projects\Asset_Vault\Content\assets” (location you want to link assets to)
IMPORTANT:
Make sure you put the file path in quotes so it will respect spaces in the file path. Best practice is to develop a naming convention that uses underscores instead of spaces for everything.
Also, make sure the names of the linked folders exactly match, or everything will break when Unreal looks for materials / references.
For example:
Asset_Library\Content\assets
Small_Project\Content\assets
Make sure the engine versions are the same for all projects and asset library.
Be careful with source control like Perforce, as the repository will not respect symbolic links. If prompted to “re-import” new assets after pulling from a repository, decline this action. Otherwise, it will flag old assets as new, causing bloat in the repository.
Either flag out the symbolic links on a push, or delete the links before pushing and use a BAT file to re-create the links when needed.
NOTES:
A symbolic link folder will look like a shortcut, but it does not act the same way. It makes windows think the folder exists somewhere it doesn’t without having to duplicate it.
The junction flag (/j) tells the symbolic link to act like a 2-way street. This means if you modify the assets in the smaller project, it will update the source files from the asset library folder as well. Be careful with this so you don’t modify the assets for all projects.
If you need to modify a library asset for a single smaller project, just duplicate it, and move it to a new folder in the local project and make changes there. Also, best practice is to set all the library assets to read-only and assign a person to oversee any changes to the asset library.
You can create a .BAT file in each small project’s content folder. Simply edit a text file, plug in the command, and save as a .BAT extension. Then, double click the .BAT file to execute the commands.
You can safely delete the symbolic linked folder without removing the source data files it was linked to.
By the way, this works for many other use cases besides Unreal Engine.