Legit DLC Unlocker for Epic Online Services
? Download the latest release
Official forum topic
Compatibility spreadsheet (Discontinued)
? Test result form
? DLC database
Hint: Click on spoilers (
▶
) to expand their content
ScreamAPI is a DLC unlocker for the games that are legitimately owned in your Epic Games account. It attempts to fool games that use Epic Online Services Software Development Kit (EOSSDK) into thinking that you own the desired DLCs. However, ScreamAPI does not modify the rest of the EOSSDK, hence features like multiplayer, achievements, etc. remain fully functional.
Only the games that use Epic Online Services Software Development Kit (EOS SDK) for the DLC ownership verification are supported. So if a game's installation directory does not contain any EOSSDK-WinXX-Shipping.dll files, then it's definitely not supported. Even if the game uses EOS SDK DLL, it's not guaranteed to be supported because each game might implement its own additional 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 ScreamAPI and Epic Games Store:
Epic Games or a game publisher will obviously have the right to do so, as modifying game components is a violation of Epic Games store EULA. However, if you keep this to yourself, don't publicize your usage of it and don't try messing with games that have Anti-Cheats like BattleEye, Easy Anti-Cheat, etc. you should be fine. Either way, as mentioned in the license agreement of this project, I take no responsibility for the damages you might sustain. All I can say is that I have tried and used it in several games and have not been banned or punished in any shape or form.
Note: These examples assumes a 64-bit game. If you are interested in a 32-bit game, then repeat the same steams with 32-bit versions of the binaries instead.
ScreamAPI supports 2 modes of operation: Proxy mode, and Hook mode.
In Proxy mode ScreamAPI DLL assumes the role of a proxy DLL that gets loaded by the game which thinks it has loaded the original DLL. ScreamAPI DLL in this mode will redirect most of the function calls to the original DLL. Kind of like how web proxy redirects requests to the original server. This is a classical, time-proven installation method that is stable, but has a number of shortcomings. The primary of them is that the unlocker binaries may be overwritten after a game updated, requiring re-installation of DLL. Another one is that some users don't feel like reading instructions properly, and just go ahead replacing the original DLL, instead of renaming it. Or they rename it incorrectly, for example by adding the number zero, instead of the letter o
. Below are the instructions for the Proxy mode:
In Hook mode ScreamAPI DLL is injected into the game process and dynamically patches the functions of interest in the original DLL, leaving the rest untouched. The unlocker DLL can be loaded automatically by exploiting DLL search order, which is what project Koaloader is used for. Koaloader DLL can be disguised as a system DLL, so that it can be automatically loaded by the game. In turn, Koaloader will load the ScreamAPI DLL. This has the advantage of not modifying any binary files on the disc, hence the unlocker will remain intact after updates. It should be also easier to install for some users. The only disadvantage is that Koaloader requires per-game setup. Below are the instructions for the Hook mode (in combination with Koaloader and its auto_load
feature):
You can also find an example setup here
This completes the installation process. Now you can launch the game from Epic Game Store or using the shortcut created by EGS, and check if all DLCs have been unlocked. Sometimes you may have to accept a game's request to connect your EGS account in order to unlock DLCs, which some games require regardless of ScreamAPI. Keep in mind that you have to repeat this process again if the game gets updated by the Epic Games launcher.
If the game is crashing...
If the game is crashing or not opening as expected after installing ScreamAPI, then try to download and install the latest Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017, 2019, and 2022Download page
ScreamAPI 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. In this case you can use a configuration file ScreamAPI.json
that you can find here in this repository. To use it, just drop it alongside the ScreamAPI dll (EOSSDK-WinXX-Shipping.dll). It will be read upon each launch of a game. Configuration file itself is optional, but options within the file are not. In the absence of the config file, default value specified below will be used.
The description of each available option is presented below:
version
: This field may be used by ScreamAPI to identify how to parse the config file. This allows ScreamAPI to parse older config files in a backward compatible manner. Therefore, this field must not be edited manually! Default: 2
.logging
: Enables or disables logging into a ScreamAPI.log file. Default: false
.eos_logging
: Enables or disables interception of EOS SDK logs. Can cause issues when enabled in hook mode. Default: false
.block_metrics
: Blocks reporting of analytics and usage metrics by the game to Epic Online Services. Metrics sent by EOS SDK itself remain unaffected. Default: false
.catalog_items
: Options in this object specify behaviour when games use EOS_Ecom_QueryOwnership
function.
unlock_all
: Controls if all items should be automatically unlocked. Default: true
.override
: Specifies items ids¹ that override the behaviour of unlock_all
. If unlock_all
is true, then items ids in this array will be locked. If unlock_all
is false, then items ids in this array will be unlocked. Default: []
(empty array).entitlements
: Options in this object specify behaviour when games use EOS_Ecom_QueryEntitlements
function.
unlock_all
: Controls if all entitlements that were requested by their IDs should be automatically unlocked. Default: true
.auto_inject
: Controls if ScreamAPI should fetch from online database a list of all available entitlement IDs, when a game doesn't provide them itself. Default: true
.inject
: Specifies which entitlement ids¹ to inject when a game asks for a list of entitlements that a user owns. Default: []
(empty array).¹ Item/Entitlement IDs can be obtained from https://scream-db.web.app/. The log file will contain the link to the exact page which lists the game's DLCs
ScreamAPI makes use of the following open source projects:
This software is licensed under BSD Zero Clause License, terms of which are available in LICENSE.txt