There will be always duplications on the Vault, especially from server makers that will upload their assets into a seperate pack like "MyServerName Content Pack #1" even though the same assets are present in different Asset packs on the vault. And also the fact that on a asset pack, almost no server will use 100% of the assets in a pack, so the storage used becomes useless.
One of the solutions could be that the asset pack will act as a collection of assets and not a pack of assets. In other words, one asset that is the same will be replicated in any other Asset packs, so the user will not have duplicates.
Example :
User1 upload Assets a1,b1,c1,d1.
User 2 upload Assets a2,b2, c2, d2.
Before User 2 finishes uploading since b2, c2 are same as b1, c1, then User can choose wether or not to use the asset already on vault or force to use his own. Then the Vault will change the reference of theses asset to the pack that has been uploaded by User1.
So when User3 will join the server of User2, he will have theses assets to download : a2, b1, c1, d2. And after if User3 want to join server of User1, he will only have to download a1, d1.
Changes + Solutions:
I don't know all of them, but one of wich should be on Asset.toml, and that it the Unreal path should also been mention for each assets, so that the Vault can automatically edit the AssetUnrealBasepath if a reference is modified (Deletetion, not same, ...)
Also the use of Symbolic link will probably be handy.
For all the references of asset, there is the tool called "AssetAudit" that can list all the depencies of a Asset, so theses informations can be stored on a txt file that has the same name as a Asset (material, static mesh, ...) so it will know all references of this asset.
This has advantages:
  • Vault is smarter 😎
  • Way less duplicate assets
  • Less usage of storage
And disadvantages
  • Will need a "Nanos World Unreal engine plugin" to make sure the assets cooked have the exact same parameters (a slight difference for example in compression, game will consider as a whole new asset). And for other stuff like references, ...
  • Lots of different folders
  • References madness
There is probably lot of imperfections on my ideas, so you can comment below 🙂