Steam · Windows
SmokeAPI
Today I'm going to introduce SmokeAPI and show you how to use it.
Introduction
I recently realised that many people don't know about this kind of software, which is why I'm introducing it here!
SmokeAPI is one of the many tools created by acidicoala that let you unlock DLC for games you have bought on the best-known platforms.
SmokeAPI unlocks DLC for games bought on Steam. There are also equivalents for Epic Games, Uplay, Origin and other platforms, which I may introduce here too if people are interested.
Historically, CreamAPI has been used to unlock DLC for games bought on Steam since 2016, and it still works. Since I also plan to introduce acidicoala's other tools, I thought I'd cover SmokeAPI, which has been active since 2022.
SmokeAPI therefore lets you unlock DLC for games you have bought. It doesn't work with every game, but it does work with a good number of them.
Do you need the DLC files?
One more thing applies to all DLC unlockers: they make the game think you own the DLC, but they don't download any extra files. In many games, such as Payday 2, the DLC files are included even if you haven't bought them. Unlocking them is then enough to make them work.
In other games, such as Ark Survival, DLCs consist of tens of gigabytes of separate files. With SmokeAPI, the DLC may appear as owned, but starting a game on a DLC map can crash when the game tries to read files that aren't on your disk. In that case, you need to find the DLC files, for example in the game's CS.RIN.RU topic, and place them in the game's directory.
To find out which situation applies to your game, look it up on SteamDB and open the Depots tab. DLC-related depots indicate that those files are distributed separately. Payday 2, for example, has several depots: the game itself, different languages and soundtracks. Its many DLCs don't have separate depots; their files are included with the base game.

Useful links
Now for the tutorial
SmokeAPI supports Windows and Linux, but I'll only cover Windows installation here. Linux support is still described as highly experimental and unstable in the project's documentation. For Linux, follow the instructions on GitHub.
This unlocker supports two installation modes: Hook and Proxy. Below are three ways to use Hook mode. My advice is to try Self-Hook first, as it is the easiest to set up. If it doesn't work, try the other methods.
To tell whether your game is 32-bit or 64-bit, look at the Steam DLL in its folder. If it is steam_api.dll, use the 32-bit smoke_api32.dll. If it is steam_api64.dll, use smoke_api64.dll instead.
Hook mode: 1. Self-Hook
This is the simplest method. It adds just one DLL to the game's folder and works well when the game has no protection against DLL injection:
- Download the latest version of SmokeAPI.
- Extract
smoke_api32.dllorsmoke_api64.dll, depending on your game. - Rename that DLL to
version.dll(orwinhttp.dllorwinmm.dllif the game does not loadversion.dll). - Place this DLL next to the game's
.exe. - That's it: launch the game and check that the DLC is unlocked.
Hook mode: 2. Koaloader
If the game loads neither version.dll, winhttp.dll nor winmm.dll, you can use an injector such as Koaloader. The idea is simple: when a game requests a DLL such as d3d11.dll, it can load a local copy from the game's folder before the system copy. Koaloader's DLL loads SmokeAPI and forwards calls to the real system DLL, allowing the game to run normally.
You don't delete or replace the game's files: you add the loader and SmokeAPI. Don't overwrite an existing DLL. The following example assumes the game loads d3d11.dll:
- Download the latest version of Koaloader.
- Extract
d3d11.dllfrom the appropriate 32-bit or 64-bit folder and place it next to the game's.exe. - Download the latest version of SmokeAPI.
- Extract
smoke_api32.dllorsmoke_api64.dll, depending on the game, and place it next to the game's.exe, without renaming it this time. - That's it: launch the game and check that the DLC is unlocked.
Hook mode: 3. Special K
Some games have protections that prevent Hook mode from working. In that case, you can try Special K, which can inject SmokeAPI as a custom plugin. Once configured, launch the game and check the DLC.
The optional configuration file
The SmokeAPI ZIP also includes a README in English if you need more details, plus a SmokeAPI.config.json file if you want to disable particular DLCs or enable only certain ones. By default, DLC unlocking is automatic, so you don't normally need to change anything. Leave the configuration file out unless you need to customise the settings and understand the options.
Proxy mode
- Find
steam_api.dllorsteam_api64.dllin the game's directory and rename it by adding_obefore.dll, for examplesteam_api64_o.dll. Be careful: that is the lettero, not a zero. - Download the latest version of SmokeAPI.
- Extract
smoke_api32.dllorsmoke_api64.dll, depending on your game. - Rename that DLL exactly like the original (
steam_api.dllorsteam_api64.dll) and place it beside the renamed original file. - That's it: launch the game and check that the DLC is unlocked.
If the game crashes or won't start in Proxy mode, try installing the latest Visual C++ Redistributable. This can resolve missing runtime dependencies.
Visual C++ Redistributable