Downloadable Content
Introduction
Steam Downloadable Content aka DLC allows you to sell expansions, seasons and other add-ons for your game through the Steam store and reliably and securely detect when a user owns that add-on
Quick Start
First, you need to create your DLC on the Steam Developer portal. https://partner.steamgames.com/
Create
Log into your Steam Developer Portal and access your app's admin page. Look for the Technical Tools section and select the Edit Steamworks Settings option.

From there scroll down until you find the All DLC section and click Add New DLC button

Populate the form with the names of the DLC you would like to create making sure to start the name with the name of your game. For example, our game's name is Túatha Legends so we might a DLC something like Túatha Legends - The Iron King
Publish
You **MUST** publish your changes in the Steam Developer Portal before they will be accessible via Steam API. In the Steam Developer Portal when you have pending changes you will see a red banner at the top of the screen ... click it and follow the instructions.

Examples
Code Free
coming soon
C#
if(SteamTools.Game.DLC.ticket_test_DLC.IsSubscribed)
{
// The DLC is owned and enabled
}
// Get the DLC's name as the user sees it
string displayName = SteamTools.Game.DLC.ticket_test_DLC.Name;
// Open the Steam Overlay to this DLC's store page
SteamTools.Game.DLC.ticket_test_DLC.OpenStore();Modern DLC are not content that you download, they are far more often locked content that you unlock through a purchase.
Is Subscribed

In Steam, you don't "own" a game or app; you are "subscribed" to it. So, to check for ownership of a given DLC, use the Steam Is Subscribed App node.
For C++ source:
Assuming the app is a valid AppId_t note that AppId_t is a Steamworks typedef for uint32.
bool result = SteamApps()->BIsSubscribedApp(app);Iterate over DLC

It's often handy to iterate over all your DLC, such as to list them in the game or open the Overlay to the store pages. We have provided several nodes to help you do just that.
For C++ source:
You can get the count of all the DLC for the app via
int32 count = SteamApps()->GetDLCCount();With that, you can iterate through each and fetch details about a DLC via
AppId_t appId;
bool available;
char name[128];
if (SteamApps()->BGetDLCDataByIndex(index, &appId, &available, name, 128))
{
//Use the results
}DLC Installation

Finally, if you are doing traditional DLC that is installed we provide you with node to check for installation, start the installation and uninstall. Note that install and uninstall is a request, Steam will attempt it if it can but if the user doesn't own the DLC, or the files are locked by the game running them, etc. then it may not complete.
For C++ source:
To install DLC
SteamApps()->InstallDLC(appId);Check if a DLC is installed
bool result = SteamApps()->BIsDlcInstalled(appId);Uninstall a DLC
SteamApps()->UninstallDLC(appId);Comming Soon
Last updated