Addressables - changing load paths for built-in shaders & monoscripts

Hello,

I am trying to provide the ability to create custom maps for my game using Addressables.

At the moment, I am giving users a custom project with all the assets and asset groups from the game, having them build the content, and the game loads the catalog. This failed to load due to duplicate shaders between the unitybuiltinshaders bundles, as there is one in the game’s own catalog and one generated when building the modded one.

In the custom level project, I set the default addressable group to one from the game, after which Addressables started to use the correct unitybuiltinshaders bundle from the game, seemingly because it takes the load path from the default group. Unfortunately, this also changed the load path for the monoscript bundle, which breaks external DLL plugins being used in the modded catalogs.

My conclusion from this have the built-in shaders to load from the game’s addressable folder, and the monoscript bundle to load from the modded catalog, but there is no way to set the load path for these two (seemingly only possible for BundledAssetGroupSchema asset groups). I have tried to manually edit the catalog.json in order to change the monoscript load path, but this had no effect.

Is there any way to fix this? Thanks.

(I am on 2019.4.40f1 and Addressables 1.21.19)

I first always point folks to this documentation about building and loading content from multiple projects. It goes into a little bit of discussion of the duplicate shaders issue.

I don’t completely follow your example project, but one thing you might look into is adding a new path pair. Once you have a new path pair you can assign groups to the different pairs in the “Build & Load Paths” setting.

Gave the documentation a try, which seemingly leads to all of the built in shaders being magenta in game, and with the error 'Material doesn't have a color property '_Color'.
image
(here are some particles using Mobile/Particles/Additive)

This even occurs for shaders used on prefabs from the main project, which previously worked fine and are now magenta.

I feel like there are a lot of moving parts here. Is it possible to create two small test projects that demonstrate the issue? Or potentially even just sharing a build report (Library\com.unity.addressables\BuildReports) from each project as well as the output catalogs for each project.