Ali Şahan Yalçın
DocsTesting with two players

Tutorial: a working multiplayer menu

Testing with two players

Set up mock mode and two Play In Editor clients so host, find and join can actually be tested locally.

You cannot test multiplayer with one player, and against real Steam you cannot test it with two windows on one machine either. This page sets up the arrangement that does work.

The problem

One Steam client means one Steam account. Two Play In Editor windows report the same Steam ID, so:

  • The second window joining the lobby is the host joining their own lobby.
  • Every member of the lobby looks like the owner.
  • Nothing about membership, ownership or joining behaves the way it will between two real players.

The fix: mock mode

The mock backend invents identity in the first place, so it can hand out a different one per window.

  1. Go to Edit > Project Settings > Plugins > SteamForge.
  2. Set Mock Mode to Always.

Each Play In Editor client now gets its own Steam ID and persona name, while lobbies stay shared across the editor process. Membership, ownership, chat and joining all behave the way they would between real players.

INFO: Set Mock Mode back to Editor fallback before you package. Always means never touching Steam, even in a shipped build.

Set up two players

  1. Open the dropdown next to the Play button and choose Advanced Settings.
  2. Find Multiplayer Options.
  3. Set Number of Players to 2.
  4. Set Net Mode to Play Standalone.

Play Standalone is the important one. It gives you two completely independent games that have to discover each other through Steam, which is the thing you are testing. The other net modes wire the two windows together before your menu ever runs, which tests something else entirely.

Run the test

Press Play. Two windows appear, each with your menu.

  1. In window 1, click Host. Its status reads Hosting.
  2. In window 2, click Find. The session appears in the dropdown.
  3. In window 2, select it and click Join. Its status reads Joined.

Both players are now in the same session. Neither has travelled anywhere, because you unticked Travel back in step 2, and that is exactly the pre-match lobby state you want before a match starts.

When it does not work

What you seeWhat it means
Find returns nothingThe host window did not actually host. Check its status line.
Find returns a session but Join failsRead the Player Message from the diagnosis. It names which step failed.
Both windows show the same persona nameMock Mode is not set to Always, so both are using the one real Steam account.
Nothing happens at allRun steam.Status. If it reports Available: no, go back to First steps.

Reading the log

Open Window > Output Log and filter for LogSteamForge. Every step of a host or join prints a line, and the failures say why rather than just that.

Testing against real Steam

Mock mode proves your Blueprint logic. It does not prove Steam works. Before shipping, test with two real accounts:

  1. Set Mock Mode back to Editor fallback.
  2. Package the game, or use Standalone Game from the Play dropdown.
  3. Run it on two machines, logged into two Steam accounts, both owning the App ID you set.

Two accounts on one machine will not work. Steam allows one logged-in account per computer.

Where to go next

Step 4: start the match.