DocsUOSConfiguration

Configuration

UOS exposes one consolidated settings page at Edit > Project Settings > Plugins > Universal Online Services. Everything is also editable on disk in Config/DefaultEngine.ini under [/Script/UniversalOnlineServices.UOSSettings].

Steam settings

SettingTypeDefaultNotes
bEnableSteambooltrueDisable to skip SteamAPI_Init even on Win64.
SteamAppIdint32480Replace with your real Steamworks AppID before shipping. 480 is Valve's public Spacewar test app.
bAutoWriteSteamAppIdFilebooltrueWrites steam_appid.txt next to the executable on startup. Only matters for Editor/Development. Shipping builds get the AppID from Steam at launch.

On startup, UUOSSteamSubsystem calls SteamAPI_Init. If it fails (Steam not running, wrong AppID, no steam_appid.txt) the subsystem stays in a not-ready state and every Steam call returns a sentinel without crashing.

EOS settings

SettingTypeNotes
bEnableEOSboolToggles EOS_Initialize / EOS_Platform_Create.
EOSProductNamestringFree-form display name passed to EOS_Initialize.
EOSProductVersionstringDefault "1.0". Surfaces in EOS dashboards.
EOSProductIdstringFrom the Epic Dev Portal -> your product.
EOSSandboxIdstringSandbox under that product (e.g. dev / live).
EOSDeploymentIdstringDeployment within that sandbox.
EOSClientIdstringClient credentials Client ID.
EOSClientSecretstringClient credentials Client Secret. Treat as dev-only - do not ship a real secret in client builds. For production use Encryption Keys / runtime auth tokens.
EOSPlatformFlagsint32EOS_PF_* bitfield. Common: 0 (default), 2 (LOADING_IN_EDITOR - allows PIE to keep the platform up).
Heads up
Never ship the EOS Client Secret in a packaged client build that goes to players. It belongs on a trusted server or in an authentication backend. The settings field is provided so dev / debug builds can run end-to-end without extra plumbing - but for production the auth flow should hand back tokens that don't need the secret.

Logging

SettingTypeNotes
LogLevelenumVerbose / Log / Display / Warning / Error / Fatal. Forwards to UE_LOG with a UOS category.
LogRingBufferSizeint3216 - 2048. The in-memory ring buffer that backs the debug overlay; larger values keep more history at the cost of memory.

Debug

SettingTypeNotes
bShowDebugOverlayByDefaultboolIf true, the in-game debug HUD opens on PIE / standalone start.
SimulatedPingMsint320 - 1000. Adds artificial latency to packets in PIE for testing.
SimulatedPacketLossPercentint320 - 100. Percentage of packets to drop in PIE.

Editing on disk

Programmers and CI usually edit Config/DefaultEngine.ini directly. Example:

[/Script/UniversalOnlineServices.UOSSettings]
bEnableSteam=True
SteamAppId=480
bAutoWriteSteamAppIdFile=True

bEnableEOS=True
EOSProductName=My Game
EOSProductVersion=1.0
EOSProductId=00000000000000000000000000000000
EOSSandboxId=00000000000000000000000000000000
EOSDeploymentId=00000000000000000000000000000000
EOSClientId=xyza1234
EOSClientSecret=hidden-in-prod
EOSPlatformFlags=0

LogLevel=Info
LogRingBufferSize=256

Dedicated server flags

UOS subsystems detect the build target. On a server build:

  • -The UUOSSteamGameServerSubsystem is responsible for SteamGameServer_Init; the regular Steam subsystem does not call SteamAPI_Init on a server.
  • -EOS is the same code path on client and server, but a server should set bIsServer = EOS_TRUE when calling EOS_Platform_Create. UOS reads this flag automatically if you mark your build target as Server.
  • -The UUOSEOSAntiCheatServerSubsystem is the only EOS subsystem that should be called on a dedicated build; the client variant lives on player builds.

Next

With config in place, browse the Steam Reference or EOS Reference for the per-subsystem API, or jump to the Blueprint Examples cookbook.