Download

Steam Setup Utility

UE4 <-> Steam Setup Utility
version1.3.png

Here is a utility I built to ease the frustrations of configuring Steam with Unreal. Just point to the required directories on your computer and the files will get copied into their appropriate paths. If there are any questions or improvement suggestions please let me know.

Version 1.4 Downloads
Click Here -> Installer](https://www.mediafire.com/?18b355rfhy45t33)
Click Here -> Visual Studio Project](https://www.mediafire.com/?0p0oc2aiywq257v)

Results

UE4 Source with Steamv130 - Fully working
Test overlay in editor: Works!
Test achievements in editor: Works!
Test host game on Steam: Works!
Test Join Game on Steam: Works!
Test shipping build overlay: Works!

UE4 Source with Steamv132 - Fully working
Test overlay in editor: Works!
Test achievements in editor: Works!
Test host game on Steam: Works!
Test Join Game on Steam: Works!
Test shipping build overlay: Works!

Features

  • Update game config file with Steam features
  • Copies Steam binaries to appropriate paths
  • Configures OnlineSubsystemSteam.cpp to enable steam in editor
  • Updated to include status text to guide through the process of enabling steam
  • Verify that changes have been made to settings so it doesn’t force requirement of a full source rebuild
  • Includes simple setup for game projects Build.cs and Target.cs to enable online features
  • Easy access to modified directories
  • Onscreen log of process

**Setup Procedure **

  1. Run the UE4 <> Steam utility and setup the paths to correct directories, press the setup button.
  2. Open the source for Unreal, right click project and select clean
  3. Right click unreal source project and select rebuild
  4. After UE4 source is rebuilt, delete the binaries from the game project folder
  5. Open the game’s .uproject and when it asks to rebuild modules, select yes.

Common Fix Procedures

  • After modifying the source code of unreal, do a clean then a rebuild. This will get rid of any scrap code from previous compiles.
  • When modifying the game project, do a build. You can also do a clean and rebuild to provide extra sense of security that problems will be resolved. By default the game project isn’t modified so a build isn’t necessary. Although config files
  • are modified and may require deleting the contents of the binary folder before starting the project
  • When modifying config files(Adding achievements) delete the contents of the binaries folder of the game project, then open the uproject and have it rebuild the binaries.

Tips

Make sure logged in to Steam before starting the editor(If set to load steam in the editor) otherwise you’ll get an error
The result of having steam loaded in editor, but not logged into steam:
a21059a413bbff31d3ab2213abdeef55e6b0205a.png

When enabling steam in the editor:

  • You can’t open game in ‘New Editor Window’, you have to use ‘Standalone Game’
  • You can open multiple standalone games with the steam overlay
  • Achievements must be published on Steam and require a full restart of the UE4 editor in order to appear in the overlay.

pic4.png

Quick Demonstration of creating a new project using the Binary UE4 build and automatically setting it up for Steam

(Repost from other thread)

Using your program, My “Cache Achievements” seems to work; Even though the Steam overlay isn’t showing at all (Using Binary AND Source of UE4)

And if you look at my output log, You’ll notice that Steam has completely dissapeared 0.0


LogInit: Version: 4.7.6-0+++depot+UE4-Releases+4.7
LogInit: API Version: 0
LogInit: Compiled (64-bit): Apr 22 2015 13:57:02
LogInit: Compiled with Visual C++: 18.00.31101.00
LogInit: Build Configuration: Development
LogInit: Branch Name: ++depot+UE4-Releases+4.7
LogInit: Command line:  
LogInit: Base directory: C:/Users/Ryan/Desktop/UnrealEngine-release/Engine/Binaries/Win64/
LogInit: Rocket: 0
LogTaskGraph: Started task graph with 3 named threads and 6 total threads.
LogInit: WinSock: version 1.1 (2.2), MaxSocks=32767, MaxUdp=65467
LogVoiceEncode:Warning: Voice interface disabled by config
LogVoice:Warning: Failed to initialize voice interface
LogInit: Presizing for 0 objects not considered by GC, pre-allocating 0 bytes.
LogInit: Object subsystem initialized
LogConsoleResponse:Warning: Skipping Unknown console variable: 'TranslucentSortAxis = (X=0.000000,Y=-1.000000,Z=0.000000)'
LogConsoleResponse:Warning:   Found in ini file 'C:/Users/Ryan/Documents/Unreal Projects/SuperDistroBuildX/Saved/Config/Windows/Engine.ini', in section '[/Script/Engine.RendererSettings]'
LogConsoleResponse:Warning: Skipping Unknown console variable: 'UIScaleRule = ShortestSide'
LogConsoleResponse:Warning:   Found in ini file 'C:/Users/Ryan/Documents/Unreal Projects/SuperDistroBuildX/Saved/Config/Windows/Engine.ini', in section '[/Script/Engine.RendererSettings]'
LogConsoleResponse:Warning: Skipping Unknown console variable: 'UIScaleCurve = (EditorCurveData=(Keys=),ExternalCurve=None)'
LogConsoleResponse:Warning:   Found in ini file 'C:/Users/Ryan/Documents/Unreal Projects/SuperDistroBuildX/Saved/Config/Windows/Engine.ini', in section '[/Script/Engine.RendererSettings]'
LogInit: Selected Device Profile: [Windows]
LogInit: Applying CVar settings loaded from the selected device profile: [Windows]
LogInit: Computer: WIN-19IOBOG4PH1
LogInit: User: Ryan
LogInit: CPU Page size=4096, Cores=4
LogInit: High frequency timer resolution =3.417963 MHz
LogMemory: Memory total: Physical=7.9GB (8GB approx) Virtual=131072.0GB
LogMemory: Platform Memory Stats for Windows
LogMemory: Process Physical Memory: 49.07 MB used, 49.07 MB peak
LogMemory: Process Virtual Memory: 26.07 MB used, 26.07 MB peak
LogMemory: Physical Memory: 2884.97 MB used, 8050.69 MB total
LogMemory: Virtual Memory: 314.05 MB used, 134217728.00 MB total
LogD3D11RHI: Found D3D11 adapter 0: NVIDIA GeForce GTX 760 (Feature Level 11_0)
LogD3D11RHI: Adapter has 1989MB of dedicated video memory, 0MB of dedicated system memory, and 4025MB of shared system memory, 1 output[s]
LogD3D11RHI: Found D3D11 adapter 1: Intel(R) HD Graphics 4600 (Feature Level 11_0)
LogD3D11RHI: Adapter has 0MB of dedicated video memory, 0MB of dedicated system memory, and 4025MB of shared system memory, 0 output[s]
LogD3D11RHI: Found D3D11 adapter 2: Microsoft Basic Render Driver (Feature Level 11_0)
LogD3D11RHI: Adapter has 0MB of dedicated video memory, 0MB of dedicated system memory, and 4025MB of shared system memory, 0 output[s]
LogD3D11RHI: Chosen D3D11 Adapter Id = 0
LogRHI: Texture pool is 1361 MB (70% of 1945 MB)
LogD3D11RHI: Async texture creation enabled
LogTextLocalizationManager: The requested culture ('en_GB') has no localization data; parent culture's ('en') localization data will be used.
LogTextLocalizationManager:Warning: Loading localization resources contain conflicting entries for (Namespace:UICommands, Key:Save_ToolTip):
Resource: (C:/Users/Ryan/Desktop/UnrealEngine-release/Engine/Content/Localization/Editor/en/Editor.locres) Hash: (-29098895) String: (Saves the current level to disk)
Resource: (C:/Users/Ryan/Desktop/UnrealEngine-release/Engine/Content/Localization/Engine/en/Engine.locres) Hash: (-1280300587) String: (Save selected data to vlog file)
LogTextLocalizationManager:Warning: Loading localization resources contain conflicting entries for (Namespace:ContentBrowser, Key:ImportAssetToolTip):
Resource: (C:/Users/Ryan/Desktop/UnrealEngine-release/Engine/Content/Localization/Editor/en/Editor.locres) Hash: (-630476809) String: (Import to {0}...)
Resource: (C:/Users/Ryan/Desktop/UnrealEngine-release/Engine/Content/Localization/Editor/en/Editor.locres) Hash: (1271782899) String: (Imports an asset from file to this folder.)
LogContentStreaming: Texture pool size is 0.000000MB
LogTargetPlatformManager:Display: Building Assets For Windows
LogTargetPlatformManager:Display: Building Assets For Windows
LogDerivedDataCache:Display: Max Cache Size: 512 MB
LogDerivedDataCache: Loaded boot cache 0.03s 39MB ../../../../../Documents/Unreal Projects/SuperDistroBuildX/DerivedDataCache/Boot.ddc.
LogDerivedDataCache:Display: Loaded Boot cache: ../../../../../Documents/Unreal Projects/SuperDistroBuildX/DerivedDataCache/Boot.ddc
LogDerivedDataCache: FDerivedDataBackendGraph:  Pak pak cache file ../../../../../Documents/Unreal Projects/SuperDistroBuildX/DerivedDataCache/DDC.ddp not found, will not use a pak cache.
LogDerivedDataCache: Unable to find inner node Pak for hierarchical cache Hierarchy.
LogDerivedDataCache: FDerivedDataBackendGraph:  EnginePak pak cache file ../../../Engine/DerivedDataCache/DDC.ddp not found, will not use a pak cache.
LogDerivedDataCache: Unable to find inner node EnginePak for hierarchical cache Hierarchy.
LogDerivedDataCache: Using Local data cache path ../../../Engine/DerivedDataCache: Writable
LogDerivedDataCache: Shared data cache path not found in *engine.ini, will not use an Shared cache.
LogDerivedDataCache: Unable to find inner node Shared for hierarchical cache Hierarchy.
LogMeshUtilities: No automatic mesh reduction module available
LogMeshUtilities: No automatic mesh merging module available
LogSlate:Warning: Failed to load font data from '../../../Engine/Content/Slate/Fonts/Roboto-Italic.ttf'
UdpMessaging: Initializing bridge on interface 0.0.0.0:0 to multicast group 230.0.0.1:6666.
SourceControl: Info Source control is disabled
SourceControl: Info Source control is disabled
SourceControl: Info Source control is disabled
LogSourceControl: RunCommandInternalRaw: 'git version'
LogSourceControl: RunCommandInternalRaw: ExecProcess ReturnCode=2 OutResults=''
SourceControl: Info Source control is disabled
LogObj: 24229 objects as part of root set at end of initial load.
LogUObjectAllocator: 5137808 out of 0 bytes used by permanent object pool.
LogEngine: Initializing Engine...
LogInit: XAudio2 using 'Speakers (Realtek High Definition Audio)' : 2 channels at 48 kHz using 32 bits per sample (channel mask 0x3)
LogInit: FAudioDevice initialized.
LogAIModule: Creating AISystem for world NewWorld
LogDerivedDataCache: Saved boot cache 0.02s 39MB ../../../../../Documents/Unreal Projects/SuperDistroBuildX/DerivedDataCache/Boot.ddc.
LogInit: Texture streaming: Enabled
LogAnalytics: Creating configured Analytics provider AnalyticsET
LogAnalytics: ET APIKey = UnrealEngine.Release. APIServer = http://etsource.epicgames.com/ET2/. AppVersion = 4.7.6-0+++depot+UE4-Releases+4.7
LogAnalytics: SetUserId ed67ca854420c70ae5b7ee842b098321|d3ba2220a32b4ce2bffdf9c65cd039b6|7604c06c-48a4-444c-86de-cf27f6176e6b
LogAnalytics: AnalyticsET::StartSession [UnrealEngine.Release]
LogInit: Transaction tracking system initialized
BlueprintLog: New page: Editor Load
LogAssetRegistry: FAssetRegistry took 0.0107 seconds to start up
LogDirectoryWatcher:Warning: Failed to begin reading directory changes for ../../../Engine/Plugins/Experimental/CharacterAI/Content/. Error: 0
LogTargetPlatformManager:Display: Building Assets For Windows
LogTargetPlatformManager:Display: Building Assets For Windows
LogSlate:Warning: Failed to load font data from '../../../Engine/Content/Editor/Slate/Fonts/Roboto-Regular.ttf'
LogSlate:Warning: Failed to load font data from '../../../Engine/Content/Editor/Slate/Fonts/Roboto-Bold.ttf'
LogCook:Display: Done creating registry. It took  0.00s.
SourceControl: Info Source control is disabled
Cmd: MAP LOAD FILE="../../../../../Documents/Unreal Projects/SuperDistroBuildX/Content/StarterContent/Maps/Minimal_Default.umap" TEMPLATE=0 SHOWPROGRESS=1 FEATURELEVEL=3
LightingResults: New page: Lighting Build
MapCheck: New page: Map Check
LightingResults: New page: Lighting Build
LogParticles: Destroying 0 GPU particle simulations for FXSystem 0x000000B89B6796C0
LogEditorServer: Finished looking for orphan Actors (0.000 secs)
LogAIModule: Creating AISystem for world Minimal_Default
Cmd: MAP CHECKDEP
MapCheck: New page: Minimal_Default - 22 Apr 2015 15:34:06
MapCheck: Info Map check complete: 0 Error(s), 0 Warning(s), took 48.114ms to complete.
LogFileHelpers: Loading map 'Minimal_Default' took 0.554
LogCollectionManager: Loaded 0 collections in 0.000938 seconds
LogContentBrowser: Native class hierarchy populated in 0.0078 seconds. Added 1696 classes and 261 folders.
LogContentBrowser:Verbose: The content browser source was changed by the sources view to '/Game'
LogContentBrowser: Native class hierarchy updated for 'SceneOutliner' in 0.0027 seconds. Added 1 classes and 2 folders.
LogCrashTracker: Crashtracker disabled due to settings.
LogSlate:Warning: Failed to load font data from 'Veranda'
LogLoad: Full Startup: 8.86 seconds (BP compile: 0.12 seconds)
LogRenderer:Warning: Reallocating scene render targets to support 856x376 (Frame:2).
LogAssetRegistry: Asset discovery search completed in 2.6443 seconds

Interesting tool; I’ve been doing it by hand, will take a look at this later.

I can’t get Overlay to work on Shipping mode too; Only on Debug mode.
But, Kitatus; make sure you are not running FRAPs or alike when testing, these programs may block Steam’s Overlay while your standalone is running.

I’m not running FRAPs or anything like that at the moment.

To fully test, I’m now uploading a build with this install method onto Steam; I’ll report back if it works or not!

Note: Just tested achievements on a hosted Steam build and Achievements aren’t working / It seems the app didn’t work for me :frowning:

Sorry to hear it didnt work straight out of the box, i’ll go over the steps today a few times and record the results then i’ll help to resolve the issues.

Thanks very much! Also, When it’s all done, Throw a donation link my way so I can thank-you! :slight_smile:

Thank you very much!

My objective has been to release my project Battle for Presidency on Steam and I’ve experienced many difficult problems over the years and just would like to share some of the solutions. I can’t accept a donation although I would be very happy if you would check out my project Battle for Presidency on Steam when it’s released and tell your friends about it. Information shouldn’t be behind a paywall, right?

I’m almost done testing and will upload the newer version and results shortly.

Thanks for the patience, please check out the new version and notes that I compiled. If there are still any issues let me know.

Another thing I have found that can mess with the steam overlay are other programs that attempt to add their own overlay such as MSI Afterburner.

Thanks a lot for this, I’m going to test it out asap and provide my feedbacks.

This seems to be a HUGE HELP for a lot of UE-4 pioneers like my team and me.

Of course I will! It’s the least I could do!

Let me download now and give it a spin!

I’m getting this “Unhandled exception” error from the app itself:


See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.UnauthorizedAccessException: Access to the path 'C:\Program Files\Epic Games\4.7\Engine\Source\ThirdParty\Steamworks\Steamworks.build.cs' is denied.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost)
   at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
   at System.IO.File.InternalWriteAllText(String path, String contents, Encoding encoding, Boolean checkHost)
   at System.IO.File.WriteAllText(String path, String contents)
   at WindowsFormsApplication1.Form1.AdjustSource(String sourcePath, String searchParam, String replaceParam) in e:\movies\MyVisualStudioProjects\UE4SteamConnection\WindowsFormsApplication1\Form1.cs:line 773
   at WindowsFormsApplication1.Form1.btnSetupSteam_Click(Object sender, EventArgs e) in e:\movies\MyVisualStudioProjects\UE4SteamConnection\WindowsFormsApplication1\Form1.cs:line 543
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.42.0 built by: NETFXREL1
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
WindowsFormsApplication1
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Users/Ryan/Downloads/Release/WindowsFormsApplication1.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.42.0 built by: NETFXREL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.42.0 built by: NETFXREL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.42.0 built by: NETFXREL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.42.0 built by: NETFXREL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.42.0 built by: NETFXREL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.42.0 built by: NETFXREL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.



Edit, I accidently broke my source so I have redownload it… Again ¬.¬

But your error seems to come from your “Binary” button, It looks for WinAutomation even though it’s not in the Binary build!

So when compiling after using your tool, I’m getting a bunch of random compile errors. I don’t have them on hand at the moment, But I don’t actually think their your tools fault. I just can’t figure out what the errors actually mean, So I’ll try re-downloading source and trying again.

If you can get Epic to add yours or a similar implementation to the engine it would surely save many souls much work in the future! :slight_smile:

These are the compile errors I’ve been getting:


Error	5	error : Failed to produce item: C:\Users\Ryan\Desktop\UnrealEngine-release\Engine\Plugins\Experimental\SteamVR\Binaries\Win64\UE4Editor-SteamVR.dll	C:\Users\Ryan\Documents\Unreal Projects\SuperDistroBuildX\Intermediate\ProjectFiles\ERROR	SuperDistroBuildX
Error	1	error C2059: syntax error : ';'	c:\users\ryan\desktop\unrealengine-release\engine\source\runtime\renderer\private\PrimitiveSceneInfo.h	34	1	SuperDistroBuildX
Error	2	error C2143: syntax error : missing ';' before ')'	c:\users\ryan\desktop\unrealengine-release\engine\source\runtime\renderer\private\PrimitiveSceneInfo.h	34	1	SuperDistroBuildX
Error	3	error C2143: syntax error : missing ';' before '{'	c:\users\ryan\desktop\unrealengine-release\engine\source\runtime\renderer\private\PrimitiveSceneInfo.h	35	1	SuperDistroBuildX
Error	6	error MSB3073: The command "C:\Users\Ryan\Desktop\UnrealEngine-release\Engine\Build\BatchFiles\Rebuild.bat SuperDistroBuildXEditor Win64 Development "C:\Users\Ryan\Documents\Unreal Projects\SuperDistroBuildX\SuperDistroBuildX.uproject"" exited with code 2.	C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.MakeFile.Targets	43	5	SuperDistroBuildX


KitatusStudios, I’m going to take a look at these errors and upload a new package. Thank you for being patient and also the first to test this besides me.

Nah, Thank-YOU for being totally awesome! If this does fix my issues, I’d be more then happy to try and help promote Battle for Presidency for you! I don’t know if my fan-reach is anything like yours - But it never hurts :slight_smile:

Thanks for all this - You’re the best!

SteamVRPrivatePCH.h also had a hardcoded Steam_SDK_Ver and some code to append with conflicting ARRAY_COUNT definition:

The fix has been made and the code compiles fine on my computer, I’m going to test it on a different computer here to make sure.

Excellent! You’re awesome! When you upload 1.4; Let me know so I can test (Also let me know which build you’re using from GitHub so I can test it as you have been!)