ULTIMATE DLC TOOLKIT
Ultimate DLC Toolkit is coming soon to the Unity asset store.
An initial release discount will be available for the first 2 weeks of sales!
Support | Suggestions | Feedback | Bug Report | Discord
Documentation | Scripting Reference | Samples | Asset Store
Ultimate DLC Toolkit is designed to be a complete DLC authoring, creation, management and runtime tool making it trivial to add extra downloadable content, add-ons, expansion packs or similar to your game. DLC Toolkit implements a complete and fully featured build pipeline for creating a custom DLC content with full support for Unity assets, scenes and scripts (On some platforms). On top of that, there also a complete runtime system available for loading DLC content, DRM verification, content evaluation and so much more.
Asset bundles are the usual go to when you want to implement DLC in to your game, and they have their uses but are not a complete system in our opinion. Our toolkit takes the asset bundle approach as a base and expands on it greatly to offer a true DLC toolkit to cover both the editor and runtime features that are a must. Some of these features include but are not limited to:
- Support proper versioning for the DLC content version, Unity version and Toolkit version to ensure that the DLC is compatible with the current version of your game.
- Per DLC and per platform build options when creating the DLC means that the content can be optimized in many ways for different platforms from build size, to load time and more.
- Extensive metadata both general and per asset including global values such as name, unique key, developer publisher, and then on a per asset basis information such as name, path, extension, type information and much more.
- DLC signing means that the content will only be loadable by your game project despite DLC toolkit being a generic solution for all use cases.
- DRM (Digital Rights Management) implementations provided for common services such as Steamworks and Google Play Asset Delivery so you can quickly and easily check user ownership status, install DLC on demand and more.
- One click build means that the entire project DLC’s can be built as a batch in one operation for all enabled platforms with per DLC and per platform options respectivley.
- Complete runtime analysis, evaluation, management and loading API’s available to make managing and using your DLC content in game as simple as possible.
- Additional scripting support for Desktop Mono platforms means that DLC content can now include new scripts that were not part of the base game and they will just work. That includes full serialization support when adding scripts to game objects and prefabs for example, no hassle.
- Platform specific folders allow you to include assets in the DLC only for certain platforms. Works like a Unity
specialfolder where for example any content placed inside theWindowsfolder will only be included on windows versions of the DLC. - Many more impressive features to be covered later.
Complete Build Pipeline
DLC Toolkit implements a complete and fully featured custom build pipeline to convert your source assets into a single DLC file that can be loaded into you game at runtime on any platform. Asset bundles are used internally for some aspects, but we also build so much more on top to make sure that all the hard work is already done, and you can just focus on the content rather than making custom tools.

DLC profiles allow you to quickly and easily setup new DLC content to be built, and all DLC assets should simply be placed in their own folder to distinguish them from normal game assets. All asset collection, management and depdencencies are handled automatically by our build pipeline so it really is just a case of create your assets and go.
One click build allows you to build all DLC profiles in your project for all supported platforms, and incremental build support means that it will usually take only a few seconds per DLC platform (Depending upon content size) to build the DLC file.

Build Pipeline API
For those more advanced users who need finer control or need to run Unity in batch/headless mode as part of a build pipeline: Don’t fear, we have exposed the full DLC build API for you to use from editor code so you can easily integrate it into your custom build pipeline with no worries. That also includes a number of build events for you to hook into during the build process. Plus full C# source code for all runtime and editor code (Including the build tools) means that you can always quickly check out what is happening or make changes if needed.
DLC Build Code Example
public void BuildDLC()
{
// Select platforms or null for all
BuildTarget[] platforms =
{
BuildTarget.StandaloneWindows64,
BuildTarget.Android,
};
// Select options
DLCBuildOptions options = DLCBuildOptions.ForceRebuild;
options |= DLCBuildOptions.DebugScripting;
// Build all content
DLCBuildPipeline.BuildAllDLCContent("Build/DLC Content", platforms, options);
}
Complete Runtime Management
DLC Toolkit inclues a complete runtime aspect for loading and managing DLC content as part of your games lifecycle. This includes things as trivial as checking if a given file is a valid DLC file, accessing metadata or icons, to much more advanced feratures like providing full async loading support or on demand async installation all while your game continues to run normally.
DLC Load Example
public IEnumerator LoadDLC(List<Material> alternateSkins)
{
// Get first listed DLC key
string dlcKey = DLC.DRMProvider.DLCUniqueKeys[0];
// Try to load and install if necessary
DLCAsync<DLCContent> async = DLC.LoadDLCAsync(dlcKey, installOnDemand: true);
// Wait for installed/loaded
yield return async;
// Check for success
if(async.IsSuccessful == true)
{
// Get the content - the main API for working with an individual DLC content
DLCContent content = async.Result;
foreach(DLCSharedAsset asset in content.SharedAssets.EnumerateAllOfType<ScriptableInfo>())
{
// Load some game scriptable object type
ScriptableInfo info = asset.Load();
// Get alternate skin materials for example
alternateSkins.Add(info.alternateSkinMaterial);
}
}
else
{
Debug.LogError(async.Status);
}
}
Digital Rights Management
DLC Toolkit provides a DRM interface to perform common DLC operations such as check for ownership of the content, request install the content on demand, check if the content is available and more. Currently the supported DRM services are Steamworks for desktop (Steamworks.Net and Facepunch.Steamworks are both implemented) and Google Play Asset Delivery for Android. Additional or custom DRM providers can be easily added for other services and platforms in the future simply by implementing a small C# interface.
DRM Check Example
public IEnumerator CheckDRM()
{
// Get a list of DLC unique keys that are listed by the DRM provider (Steamworks store for example).
// Note that this can list dlc contents that the game is not aware of so it is possible to load new dlc content without requiring any game update.
string[] dlcKeys = DLC.DRMProvider.DLCUniqueKeys;
// Check for available (Owned and installed)
// Async because some providers may need to make a web request
DLCAsync<bool> availableAsync = DLC.IsAvailable(dlcKeys[0]);
// Wait for completed
yield return availableAsync;
// Check for available
if(availableAsync.IsSuccessful == true && availableAsync.Result == true)
{
Debug.Log("DLC is available: " + dlcKeys[0]);
}
else
{
// Request that the DLC is installed if we own it
// For platforms like Android that support install on demand. Steamworks for example will install DLC automatically
DLCAsync installAsync = DLC.RequestInstall(dlcKeys[0]);
// Wait for installed
yield return installAsync;
// Check for available now
if(installAsync.IsSuccessful == true)
{
Debug.Log("DLC is now installed: " + dlcKeys[0]);
}
else
{
Debug.Log("Could not install DLC: " + installAsync.Status);
}
}
}
Platforms
Windows | Mac | Linux | Android | IOS | WebGL | Console
Console - Theoretical support only (No access to dev kits). The asset contains no platform/architecture specific code or plugins, and does not use any features not available on consoles. Testers with access to console dev kits are welcome to get in touch.
Scripting - Including new script content (Not available in base game) is supported on desktop platforms (Windows, Mac, Linux) requiring Mono backend (IL2CPP not supported).
Additional Details
Fully commented C# source code included for both runtime and editor, including build pipeline.
Script debugging support for windows platform (Mono).
Long term support from a trusted publisher.
Render pipeline independant - DLC content will be build using materials from your installed pipeline.
Supports Unity 2022 LTS and newer.








