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
| Setting | Type | Default | Notes |
|---|---|---|---|
| bEnableSteam | bool | true | Disable to skip SteamAPI_Init even on Win64. |
| SteamAppId | int32 | 480 | Replace with your real Steamworks AppID before shipping. 480 is Valve's public Spacewar test app. |
| bAutoWriteSteamAppIdFile | bool | true | Writes 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
| Setting | Type | Notes |
|---|---|---|
| bEnableEOS | bool | Toggles EOS_Initialize / EOS_Platform_Create. |
| EOSProductName | string | Free-form display name passed to EOS_Initialize. |
| EOSProductVersion | string | Default "1.0". Surfaces in EOS dashboards. |
| EOSProductId | string | From the Epic Dev Portal -> your product. |
| EOSSandboxId | string | Sandbox under that product (e.g. dev / live). |
| EOSDeploymentId | string | Deployment within that sandbox. |
| EOSClientId | string | Client credentials Client ID. |
| EOSClientSecret | string | Client credentials Client Secret. Treat as dev-only - do not ship a real secret in client builds. For production use Encryption Keys / runtime auth tokens. |
| EOSPlatformFlags | int32 | EOS_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
| Setting | Type | Notes |
|---|---|---|
| LogLevel | enum | Verbose / Log / Display / Warning / Error / Fatal. Forwards to UE_LOG with a UOS category. |
| LogRingBufferSize | int32 | 16 - 2048. The in-memory ring buffer that backs the debug overlay; larger values keep more history at the cost of memory. |
Debug
| Setting | Type | Notes |
|---|---|---|
| bShowDebugOverlayByDefault | bool | If true, the in-game debug HUD opens on PIE / standalone start. |
| SimulatedPingMs | int32 | 0 - 1000. Adds artificial latency to packets in PIE for testing. |
| SimulatedPacketLossPercent | int32 | 0 - 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
UUOSSteamGameServerSubsystemis responsible forSteamGameServer_Init; the regular Steam subsystem does not callSteamAPI_Initon a server. - -EOS is the same code path on client and server, but a server should set
bIsServer = EOS_TRUEwhen callingEOS_Platform_Create. UOS reads this flag automatically if you mark your build target asServer. - -The
UUOSEOSAntiCheatServerSubsystemis 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.