SkillAgentSearch skills...

SmokeAPI

Legit DLC Unlocker for Steamworks

Install / Use

/learn @acidicoala/SmokeAPI
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<!-- Generated by KoalaBox::sync tool. Manual changes to this file will be lost. -->

SmokeAPI

Legit DLC ownership emulation for Steamworks.

✨ Features

  • 🔓 Emulate DLC ownership in legitimately owned games
  • 🛅 Emulate Inventory item ownership
  • 📄 Optional configuration
  • 🐧 Support for 32-bit and 64-bit Windows and Linux systems

🔗 Links

📖 Introduction

❓ What is SmokeAPI?

SmokeAPI is a tool for Steamworks DLC ownership emulation in games that are legitimately owned in Steam. It attempts to fool games that use Steamworks SDK (Steamworks) into thinking that you own the game's DLCs. However, SmokeAPI does not modify the rest of the Steamworks, hence features like multiplayer, achievements, and so on remain fully functional.

❔ Which games are supported?

Only games that use Steamworks SDK for the DLC ownership verification are supported. Hence, if a game's installation directory does not contain any steam_api.dll or steam_api64.dll files then it's definitely not supported. Even if a game uses Steamworks DLL, it's not guaranteed to be supported because each game might implement additional custom verification checks. Therefore, you have to first research the game's topic, to see if it supports unlocking.

Additionally, there are several points to bear in mind when it comes to unlocking DLCs with SmokeAPI:

  • SmokeAPI most definitely will not work with games that use 3rd party DRM, such as games from Ubisoft, Rockstar, etc.
  • SmokeAPI most likely will not work with games that use Denuvo SecureDLC.
  • SmokeAPI is unlikely to unlock anything in Free-To-Play games since they typically store all player data on the corresponding game server and hence all the checks are server-side.
  • SmokeAPI will not work with games that employ additional ownership protection or if the game is using alternative DLC verification mechanism.
  • SmokeAPI is unlikely to work with games that use an anti-cheat, since they typically detect any DLL/EXE that has been tampered with. Sometimes it is possible to disable an anti-cheat, but that typically entails the loss of online capabilities. Search in the respective game topic for more information about how to disable anti-cheat.
  • Some games include DLC files in their base game, regardless of whether you own the DLC or not. However, some games download additional DLC files only after a user has bought the corresponding DLC. In this case, not only will you need to install SmokeAPI, but you also have to get the additional DLC files from somewhere else and put them into the game folder. Up-to-date DLC files often can be found in corresponding game topics.
  • Some games don't use any DRM at all, in which case SmokeAPI is useless. All you need to do is to download the DLC files and place them in the game folder.

:shipit: Usage

[!WARNING] Please proceed with usage at your own risk. Usage of this unlocker entails breaking one or more terms of service, which might result in a permanent loss of your account.

To use SmokeAPI, you need to install it into the game folder following the instructions below. Once installed, SmokeAPI is automatically loaded by a game every time you launch the game. SmokeAPI supports 2 installation modes: Hook mode and Proxy mode.

↔️ Mode comparison

🪝 Hook mode

  • Advantages:
    • Persists after game updates
    • Can be loaded by other injectors
    • Can sometimes bypass DLL integrity checks
  • Disadvantages:
    • Might need an additional DLL to get injected (like [Koaloader])

🔀 Proxy mode

  • Advantages:
    • Guaranteed to load
  • Disadvantages:
    • Might need reinstallation after a game update

My advice is to try installing the unlocker in hook mode first. If it doesn't work, try installing it in proxy mode instead. If that didn't work, refer to the Troubleshooting section below.

🛠 Installation instructions (🪟 Windows)

[!NOTE] To determine the bitness of a game you can open Task Manager, navigate to Details tab, right-click on the column headers, click Select columns, tick checkbox next to Platform and click OK. This will allow you to see a game's bitness in the Details tab while a game is running.

🪝 Hook mode

Hook mode itself has two sub-modes: Self-Hook and Hook with injector.

🪝 Self-Hook mode

In self-hook mode SmokeAPI is injected automatically without the help of third-party injectors. It works best when a game doesn't have any protections against DLL injection. The main advantage of this mode is its minimal setup, which adds only 1 new DLL to the game folder.

  • Download the latest SmokeAPI release zip.
  • From this downloaded zip extract smoke_api32.dll or smoke_api64.dll, depending on a game's bitness.
  • Rename the unzipped DLL to version.dll or winhttp.dll or winmm.dll.
  • Place this version.dll or winhttp.dll or winmm.dll next to the game's .exe file.

🪝 Hook mode with Koaloader

If a game doesn't load version.dll or winhttp.dll or winmm.dll, you can use an alternative injector to load SmokeAPI into the game process. One such injector is [Koaloader], which supports different DLLs that a typical game might load. For example, assuming that the game loads d3d11.dll:

  • Install Koaloader:
    • Download the latest Koaloader release zip.
    • From this downloaded zip extract d3d11.dll from d3d11-32 or d3d11-64, depending on a game's bitness.
    • Place d3d11.dll next to the game's .exe file.
  • Install SmokeAPI
    • Download the latest SmokeAPI release zip.
    • From this downloaded zip extract smoke_api32.dll or smoke_api64.dll, depending on a game's bitness.
    • Place smoke_api32.dll or smoke_api64.dll next to the game's .exe file.

🪝 Hook mode with Special K

There are games which have extra protections that break hook mode. In such cases, it might be worth trying Special K, which can inject SmokeAPI as a custom plugin.


🔀 Proxy mode

  • Find a steam_api.dll or steam_api64.dll file in game directory, and rename it to steam_api_o.dll or steam_api64_o.dll.
  • Download the latest SmokeAPI release zip.
  • From this downloaded zip extract smoke_api32.dll or smoke_api64.dll, depending on a game's bitness.
  • Rename this extracted DLL to steam_api.dll or steam_api64.dll, depending on a game's bitness.
  • Place this renamed unlocker DLL next to the steam_api_o.dll or steam_api64_o.dll file.

🛠️ Installation instructions (🐧 Linux)

[!NOTE] Linux support in SmokeAPI is highly experimental/unstable and has known issues. If none of the methods below work for you, then consider running a Windows version of a game via Proton compatibility layer and follow the instructions in the Windows section.

✔️ Requirements

Linux builds of SmokeAPI depend on several libraries. These libraries are usually included in the Steam Linux Runtime 3.0 (sniper), so nothing is required to be installed on the system. But when launching a game directly via its executable (such as in case of hook mode) your system needs to have the following required libraries installed.

The following list features links in Arch Linux repositories, but if you are using a different distribution, you should use the equivalent package for your distro.

Required libraries:

Optional libraries:


Just like on Windows, SmokeAPI features 32 and 64-bit Linux builds. In release archive they are named as libsmoke_api32.so or libsmoke_api64.so respectively. However, unlike Windows, it is recommended to use proxy mode, rather than hook mode. This is because the current hook mode installation method has to directly launch game executable. However, by default Steam doesn't do that, instead it launches certain wrappers that setup game environment with optimal parameters. Hence, launching a game without those wrappers might cause issues in theory. However, in practice real tests show that hook mode has higher chance of success compared to proxy mode. So, at the end of the day, try both modes to see which one works best for you.

🔀 Proxy mode (🐧 Linux)

Same as on Windows:

  1. Rename the original libsteam_api.so to libsteam_api_o.so
  2. Extract and paste the libsmoke_api32.so or libsmoke_api64.so to the same directory, renaming it to libsteam_api.so.

🪝 Hook mode (🐧 Linux)

Linux doesn't have the same easily exploitable library inject

View on GitHub
GitHub Stars2.0k
CategoryDevelopment
Updated17h ago
Forks114

Languages

C++

Security Score

95/100

Audited on Apr 5, 2026

No findings