Reference
Shipping checklist
What to change before you release.
Go through this before you ship. Most of it is one setting.
App ID
Replace 480 with your own App ID in Project Settings > Plugins > SteamForge.
Everything on 480 is shared publicly: stats, leaderboards, lobbies. Its cloud quota is 4096 bytes. Shipping on it means your players share a leaderboard with everyone testing against Spacewar.
Mock Mode
Set it to Editor fallback or Disabled.
Always never touches Steam even in a packaged build, which means no achievements, no cloud, and no Steam features at all for your players. Every initialisation logs which value it read, so check your packaged build's log if you are unsure:
LogSteamForge: Initialising. Mock Mode read as 'EditorFallback'.The overlay
Turn on Restart Through Steam If Needed so the overlay works for players who started the game outside Steam.
It is ignored in the editor and on App ID 480, so it does nothing until your own App ID is set.
Achievements and stats
Confirm every achievement and stat exists on the partner site, with the API Names your Blueprints pass. A typo fails silently.
Check that stat types match: an integer stat written with the float node is rejected.
Test in a packaged build
Several things behave differently outside the editor, and all of them favour the packaged build:
- The overlay works.
- Play In Editor's shared Steam account no longer applies, so multiplayer behaves like it will for players.
steam_appid.txthandling differs.
Test at least once from a packaged build launched through Steam, ideally added as a non Steam game if your app is not published yet.
Every map you reach by name is in the package
The one that catches everybody. Project Settings > Packaging > List of maps to include in a packaged build must name every level you travel to.
Your match map is reached through Map Name on the session settings, which is a string. Nothing in your project references that asset, so the cooker has no reason to include it and quietly does not. Everything works in the editor, where all maps exist regardless.
The symptom is specific and misleading: hosting succeeds, players join, pressing start appears to do nothing, and the host lands back on the menu. It reads like the session layer failing. The travel simply had nowhere to go.
-map= on the command line, which replaces the project setting rather than adding to it, so a profile with one map ticked cooks exactly one map no matter what Project Settings says. Fix it in the profile you are actually using.Content\Paks\*.utoc for your map name. It takes seconds and it is unambiguous, where a successful package tells you nothing.Package Development before you package Shipping
Shipping strips logging. Every UE_LOG the plugin writes, including the lines naming the address a host published and whether a joiner followed, is compiled out, so a Shipping build fails silently by design.
Diagnose in Development, then ship in Shipping.
Multiplayer
Test a real two machine session. One machine cannot show you member lists, join failures, kicks or host migration behaving correctly.
Check that you handle On Lobby Join Requested, or invites will not work.
Pause for the overlay
Bind On Overlay Activated and pause. Two nodes, and the most common purely mechanical Steam review complaint.
Cloud
If you use cloud saves, check Is Cloud Enabled For App and tell the player when it is off. Otherwise they will assume their saves are following them when they are not.