Hello, I am trying to setup DLC for my project. I know the pipeline for steam, however I am not sure how can I set the load path and build path for addressable. I know that on steam we have to create a new DLC depot and then upload the contents of DLC to that depot. I don’t know how to setup addressables to create a bundle to a given location and load from it.
So finally I figured it out. I will try to explain the work flow in case if someone needs it.
Setting up Steam
Follow this link to create DLC and get the appID and packageID. We will use this app id in game to check if player owns this specific DLC or not.
Setting up Addressables(Unity)
In unity, First create an addressable group for the DLC content. For my project, I am using default profile. Change the Build path and Load path to custom and input a folder name. This folder will be outside Assets folder. Now you have to build the addressable.
I manually created another DLC folder and copied all the bundle files into it.
I do this because our load path for addressable group is folder named DLC. If we just put all the bundle files in outer DLC then steam GUI will only upload bundle files and when we download the DLC, steam will put all the bundle files next to executable not into a separate folder called “DLC”.
Once that is done we can use some functions provided by steam to check if player owns the DLC or not. You can use SteamApps.BIsDlcInstalled(new AppId_t(APPID HERE))
to check if player owes DLC or not.
Now all we have to do is upload the game and DLC with it. I use SteamPipeGUI to upload DLC and game.
You can use console commands on steam to simulate to purchasing of DLC.
I hope this helps.
How do you read then these files (dlc-s) from a build? Unity doesn’t allow to read anything other than the StreamingAssets folder, but in your example its just a folder named ‘DLC’.