Legacy/Integrating Steam

-(WIP by Zarkopafilis)- A guide that is actually working Steps required to integrate steam: -Download Steam and the Steam SDK on your computer -On your game's Build.cs add RHI, Slate, SlateCore, On...

-(WIP by Zarkopafilis)-

A guide that is actually working

Steps required to integrate steam:

-Download Steam and the Steam SDK on your computer

-On your game's Build.cs add RHI, Slate, SlateCore, OnlineSubsystem, OnlineSubsystemUtils to your PublicDependencyModuleNames, uncomment the section regarding the module OnlineSubsystemSteam using common sense by reading the rest of the file

-On your game's add Target.cs Type = TargetType.Game , bUsesSteam = true; and UEBuildConfiguration.bCompileSteamOSS = true .

-On your game's project go to /Config/DefaultEngine.ini and :

   -On [/Script/Engine.GameEngine] add !NetDriverDefinitions=ClearArray and +NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver")

   -On [Voice] add bEnabled=true

   -On [OnlineSubsystem] add DefaultPlatformService=Steam , PollingIntervalInMs=20, bHasVoiceEnabled=true

   -On [OnlineSubsystemSteam], add bEnableSteam=true , bEnabled=true, SteamAppId=(Your app id), SteamDevAppId=480, GameServerQueryPort= , bRelaunchInSteam=false, P2PConnectionTimeout=90, bAllowP2PPacketRelay=true, bVACEnabled=1, GameVersion=1.0.0.0 

   -On [OnlineSubsystemSteam] add your achievements in order by the index i, starting from 0, like this:
   Achievement_i_Id=ACH_WHATEVER
   That way, you should have something like Achievement_0_Id=ACH_HELLO_WORLD

   -On [/Script/OnlineSubsystemSteam.SteamNetDriver] , add NetConnectionClassName="/Script/OnlineSubsystemSteam.SteamNetConnection"

-Copy your steam's sdk folder (be careful not to leave credentials in the run_build.bat) to \Engine\Source\ThirdParty\Steamworks\Steam\sdk

-Copy steam_api64.dll from your steam sdk and steamclient64.dll, tier0_s64.dll, vstdlib_s64.dll from your steam's install location to Engine/Binaries/ThirdParty/Steamworks/Win64

-Copy steam_api.dll from your steam sdk and steamclient.dll, tier0_s.dll, vstdlib_s.dll from your steam's install location to Engine/Binaries/ThirdParty/Steamworks/Win64

-On OnlineSubsystemSteam.cpp enable steam in editor by

If you used a different SDK version than the one provided with your UE version of choice, you would need to change references to the version at these locations (you might want to consider grabbing Allar's updated controller classes as well):

-On OnlineSubsystemSteamPrivatePCH.h : STEAM_SDK_VER and STEAM_SDK_VER_PARTH

-On SteamWorks.build.cs : SteamVersion

-On Winplatform.automation.cs : SteamVersion

-On SteamVRPrivatePCH.h : STEAM_SDK_VER

-On UE4BuildConfiguration.cs : SteamVersion

If you have got an appid from greenlight, use that instead of 480 wherever you can. Also, on OnlineSubsystemSteam.cpp, set it at: RelaunchAppId =

Special Notes :

- When you first got Greenlit , replacing your AppID directly in DefaultEngine.ini whether uncooked/cooked/packaged build will result in SteamClient not being able to run as if your appId is not correct. It will not work until you have at least 1 Live Build in the steamworks. To do this follow Steam's instruction to upload at least one working build, and then set it to Live. After that your appID will work even on Uncooked Standalone build.

Hoodini Last updated on