Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

325 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SmokeAPI specially Arma 3

Legit DLC ownership emulation for Steamworks.

✨ Features

  • 🔓 Emulate DLC for Arma 3
  • 🛅 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 Arma 3 (other games are not guaranteed).

: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 1 installation modes: Proxy mode.

🔀 Proxy mode

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

🛠 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.

🔀 Proxy mode

  • Find a steam_api.dll or steam_api64.dll file in game directory (including in the folder ./Launcher), 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.
  • CDLC requires installation on the server to play

🔀 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.

⚙ Configuration

SmokeAPI does not require any manual configuration. By default, it uses the most reasonable options and tries to unlock all DLCs that it can. However, there might be circumstances in which you need more custom-tailored behaviour, such as disabling certain DLCs, or selectively enabling just a few of them. In this case you can use a configuration file SmokeAPI.config.json that you can find here in this repository or in the release zip. To use it, simply place it next to the SmokeAPI DLL. It will be read upon each launch of a game.

The config file is expected to conform to the JSON standard. It is recommended to use a text editor with JSON schema supports. This greatly assists with editing since it warns not just about syntax errors, but also about invalid values. One such editor is Visual Studio Code.

VS Code demo

This example showcases how VS code highlights an invalid value and displays a list of valid values that are accepted. VS Code demo

📄 License

This software is licensed under the Unlicense, terms of which are available in UNLICENSE.txt.

Releases

Packages

Contributors

Languages