How to Use

This page covers how to use the features of both Steam and the Epic Games Store in Blueprints. The logic in C++ should be the same.

Some features are engine-segmented and may not be available in older engine versions due to engine API changes and Fab seller policies. All features listed are available in the 3 most recent engine versions.

For Steam

The Steam features as of V4 are available as static functions. There are 10 major functions:

  1. Is DLC Installed

  2. Is Game Installed

  3. Open DLC Store Page With Checkout

  4. Steam Overlay To Web Page

  5. Verify Steam DLL

  6. Is Steam Running

  7. Is Low Violence

  8. Get Steam App Build ID

  9. Enable Steam DLC

  10. Disable Steam DLC

IMPORTANT: App ID 0, 480, and 218 are hardcoded to fail since they are often used for piracy. If you need these to be allowed, you will need to modify that if statement in C++, but you should use your own game or DLC APP ID when possible.

Is DLC Installed:

  1. This node works with branch checks/if statements to determine if a DLC is owned and installed.

  1. Use the App ID of the DLC found in the steamworks developer portal.

  2. This can be used in almost any event graph.

Is Game Installed:

  1. This node functions similarly to "Is DLC Installed," but it is used for full games, primarily the one you are playing. It can be used for ownership verification. However, please note that Valve doesn't prioritize developer protection, so pirates/modders may bypass it with hacked versions of Steam DLLs. I am exploring a way to authenticate with the cloud in a V4 update.

  2. To use, simply insert the app ID of the game you are playing and use it with a branch check/if statement.

Open DLC Store Page(With Checkout):

  1. This node allows you to open the store page for DLC, enabling users to purchase it through Steam's in-game overlay.

  2. To use, simply call it with the App ID of your DLC. After that, the in-game overlay will appear, and the user can checkout in the overlay.

  3. When a user purchases a DLC and sets it to installed (Steam generally does this automatically), the "Is DLC Installed" check will return true.

  4. There are two versions of this node, Open DLC StorePage which does not handle checkout, and Open DLC StorePage With Checkout which has options for automating checkout upon opening. You can choose which one works best for you.

Steam Overlay To Webpage:

  1. This node is unrelated to purchasing but can be used to promote your games by linking to trailers on YouTube, your company website, or any other URL on the internet.

  2. It will open with the In-game overlay when called.

Verify Steam DLL:

  1. This node will check if the Steam DLL is the one that valve provides to epic games for Unreal Engine. Piracy usually involves hacked Steam DLLs, this helps prevent that with most piracy attempts.

  2. To use, just connect it to a branch check, all Steam functions related to purchasing or ownership already have this in C++, you can use it in other places, though.

Is Steam Running:

  1. This node will check if Steam is currently active and running programmatically.

  2. To use, just connect it to a branch check, all Steam functions already have this in C++, you can use it in other places, though.

Is Low Violence:

  1. This node will check if your games depot is marked by Steam as Low Violence. This is useful for regions where violence is illegal in video games or for minor safety features.

  2. To use, just connect it to a branch check. if your game has high violence, then this will return false.

Get Steam App Build ID:

  1. This node will return an integer value provided by steam that indicates which build the player has installed. This can be useful for main menus and Early Access games where updates are frequent.

  2. To use, just connect it to a integer setter variable and then add it to a widget or wherever you would like to display the build number.

  3. If the Steam DLL verification fails, it will return -500 as its value. If you see a streamer have -500, then they may be using a hacked version of the Steam DLL. If any other steam related features are authentic but fail, then they will return 0 and the output Log will be able to give more details.

Enable Steam DLC:

  1. This node will enable a DLC that the user owns directly in-game. Because DLC content is packaged with the full game, no downloads or restarts will be required.

  2. To use, just call the node with the App ID of your DLC. It should enable instantly, and Is DLC Installed will return true. If you have issues, please check the logs or reach out to support.

Disable Steam DLC:

  1. This node will Disable a DLC that the user owns directly in-game and is already installed. Because DLC content is packaged with the full game, no downloads or restarts will be required.

  2. To use, just call the node with the App ID of your DLC. It should Disable instantly, and Is DLC Installed will return false. If you have issues, please check the logs or reach out to support.

For Epic Games Store

The Epic Games Store works a little different from steam but should be relatively simple to implement following this guide:

Please ensure you have the ECOM permissions on your client policy in the Epic Games Developer Portal, by default, Epic Games leaves them as unavailable in newer SDKs.

Getting the EOS SDK Product Details:

To use EOS in our project we need to create a product on EGS, this does cost 100 dollars to publish there.

  1. Once the product is created, go to the Project->Product Settings->SDK Download and Credentials.

  2. Take note of these values, they will be used when setting up the EOS Online Subsystem artifacts.

  1. Epic Games Store uses sandboxes, these are equivalent to steams Developer key, Testing, and Live keys. these are named Dev, Stage, Live. I recommend using Live for the IDs, and then go into Product Settings->Sandboxes->Dev/Stage->Deployments->three dots-> links artifacts->Assign live to each sandbox so it works.

Setting up the EOS Online Subsystem:

  1. Open project settings under Edit->Project Settings.

  2. Scroll until you see Online Subsystem EOS under the "plugins" category.

  3. Enable these settings

  • Enable Overlay

  • Enable Social Overlay

  • Enable Editor Overlay

  1. Create a default artifact name, usually this is your product name in the EOS Developer portal, though with EOS constantly evolving it may be best to use the artifact ID found in the Artifacts page of your game.

  2. Assign the SDK Values for Live Sandbox from the Getting EOS SDK Product Details section to each entry that corresponds with the artifact.

  3. Now you need to generate a hash key for the client encryption key, this can be done via this site here: https://www.browserling.com/tools/random-hex

  4. Once all entries have been filled out in the newly created artifact, ensure thats its name aligns with the Default Artifact name. Here is a image of what it should look like when filled out.

How to access the EGS Nodes:

  1. To find the EOS Subsystem, right-click anywhere in the context menu and search for "EOS Subsystem." This should return a single node with a blue output pin.

  2. Drag from the blue output pin of the subsystem and search for "EOS DLC Nodes".

Login Features(Required):

  1. This node will attempt all 3 login types and pick the one that works best. It will try Launcher login first, then Persistent Auth Login, then Browser Login.

  2. This has a callback which you can get by dragging off of the result pin and clicking "add custom event", it will come with the input parameters if you do it this way.

  3. It may give an error that it failed, if one of the other methods worked. This is expected behavior.

Browser Login(Useful in editor or as backup):

  1. This node will open in either the Epic Games Store overlay or the default web browser, depending on which one EOS detects is available.

  2. This has a callback which you can get by dragging off of the result pin and clicking "add custom event", it will come with the input parameters if you do it this way.

Epic Launcher Login:

  1. This node will automatically log in the user if they launch via the epic games launcher, I recommend using this for production builds over browser login, as its automatic and requires no input from the player.

  2. It must be called when the game starts, typically on event init of the game instance after a 1 second delay since the code it uses to authenticate is short lived.

  3. This login method does not work in editor, the game must be launched from the epic games launcher and it needs to have its sandbox align with the artifact, see Setting up the EOS online Subsystem for how to do this.

Persistent Auth Login:

  1. This node will attempt to use Epic Games Persistent Auth feature, which stores a security token on the device, if a user has already logged into another Epic Games platform or product with this feature, such as the launcher and the token they were given is still valid, then they should be automatically logged in, even outside the launcher.

  2. If this fails, you will need to attempt browser login as a fallback.

  3. Epic Games keeps Persistent Auth Tokens valid for 1 week.

E-Commerce(Purchase/ECOM) Features:

Query DLC:

  1. This node indicates whether a DLC or full game is owned.

  2. It uses the audience item ID, which can be found under the offers tab of the Epic Games Store developer portal on your product details panel.

Query Store Offers:

  1. This node returns the store details of an offer by its offer name, you can build out in game stores using this as it returns description, price, and much more.

  2. This is very easy to use.

Purchase Offer:

  1. This node allows you to check out in-game through the Epic Games Store overlay and returns a success/failure event for the purchase, which you can use to unlock items, add coins, or other transactional code.

  2. This works with DLC, microtransactions, and any type of offer that the Epic Games Store provides.

  3. In Unreal Engine 5.7 and newer, you can test this in editor through the Play In Editor Standalone mode; prior engine versions restricted this feature and will require you to package and launch through Epic Games Store to test.

  4. This node uses the English offer name found in the developer portal, not an Audience ID. For API compatibility, it is recommended to keep the offer name lowercase and alphanumeric with no special characters. You can change the customer-facing name in the offer details.

Helper Functions(Optional):

EOS Editor Check:

  1. This node can be plugged into a branch check and will return whether you are in the editor or not. It can be used outside EOS as well since it is using Unreal Engine PreProcessor Macros not tied to EOS.

Is EOS Running:

  1. This node can be plugged into a branch check and will return whether EOS is currently running, active, and valid.

In V4.0, there is a new actor that can be created and added to your levels that will handle platform-agnostic callbacks.

Setup of the actor:

  1. Right-click in the content browser and choose Create Blueprint Class

  1. in the blueprint class selector, search for "Multi Platform Manager" and Create a blueprint from it.

  1. Open the new blueprint and click the Platform Callbacks Component

  1. In the details panel, find the events category and add the On Platform Overlay Opened event to the graph

  1. Execute any logic you want to happen when the overlay opens or closes. if it is closed the boolean will be false, if it opens, it will be true.

  1. Now you can drag one of this actor into each of your levels for it to work. Please do not add more than one of these per level. If using a world partition, you can set it to be non-spatially loaded.

Last updated