Reference
Troubleshooting
Every common failure and what actually causes it.
Steam is not connected
Run steam.Status. The Failure line names the cause. The usual ones:
Steam is not running. Start the Steam client and log in. The plugin cannot provide Steam features by itself.
No App ID configured. Set one in Project Settings > Plugins > SteamForge.
Could not find steam_api64.dll. Set a Steamworks SDK path in Project Settings, or enable OnlineSubsystemSteam so the engine stages its own copy.
Run steam.Doctor for the full checklist with fix buttons.
Achievements do not unlock
The name is wrong. The node takes the API Name from the partner site, not the display name. This fails silently, because Steam simply rejects an ID it does not know.
The achievement does not exist yet. They are created on the partner site, not in the engine. Run steam.Achievements to list what this App ID actually defines.
You are on App ID 480. Spacewar has its own achievements, not yours.
Nothing happens when I search for lobbies
Different App IDs. Both players must be on the same one.
The lobby is not Public. Friends Only and Private lobbies never appear in searches.
Filters are excluding it. Clear all filters and try again.
Both clients share one Steam account. Two Play In Editor clients are one Steam user. Set Mock Mode to Always to give each client a distinct identity, or run two Standalone Game instances.
Invites do nothing
You are not handling On Lobby Join Requested. Steam does not join anything when a player accepts an invite. It asks your game to. Bind that event and call Join Lobby (Async).
No connect string published. For a Join Game button on a friends list, you must call Set Presence Connect String. Without it there is no way in.
The overlay does not appear
You are in Play In Editor. It cannot work there, ever. See The Steam overlay.
Run `steam.Overlay`. The RHI at Steam init line tells you whether Steam got in before the graphics device.
The player disabled it. Steam > Settings > In Game.
Steam says my game is running when I am only in the editor
Once the editor has initialised Steam, Steam sees your App ID as running until the editor exits. Stopping Play In Editor does not clear it. This is a property of how Steam tracks processes and cannot be fixed from inside one.
To avoid it entirely, set Mock Mode to Always for everyday editor work. Steam is then never initialised, so nothing shows as running and no playtime accrues.
Steam Input does nothing
No action manifest. Every handle is 0 without one. See Steam Input.
A space in an API name. The file format accepts it, your lookups will not match it. Run Validate Manifest.
A gamepad emulation layout. If the player's chosen configuration emulates a gamepad rather than driving Steam Input actions, every action reads as unbound and input arrives through Unreal's ordinary gamepad path instead. SteamForge logs a warning when it sees this, because it is indistinguishable from a missing manifest.
Cloud saves are not syncing
Cloud is off. Check Is Cloud Enabled For App. Writes succeed regardless, so a write that returned success proves nothing.
Quota is full. Check Get Cloud Quota. Going over makes writes fail rather than evicting anything.
You are on App ID 480, whose quota is 4096 bytes.
Some features report themselves unavailable
Run steam.Missing. If the loaded Steam library is older than the SDK SteamForge's bindings were generated from, functions added since then are not exported and the features needing them are disabled. Everything else works normally.
This is by design. A missing function costs you one feature instead of breaking your build.