Steam shipping build only works when adding steam_appid.txt

It should go adjacent to binary that runs your server (not GameName.sh script in root, but actual binary that it runs). I don’t know why your layout is different, my stuff is all based on ShooterGame.

In my GameName.Build.cs I just add this now:

    if (Target.Platform == UnrealTargetPlatform.Linux && Target.Type == TargetType.Server)
    {
        RuntimeDependencies.Add("$(ProjectDir)/Binaries/Linux/steamclient.so");
        RuntimeDependencies.Add("$(ProjectDir)/Binaries/Linux/steam_appid.txt");
    }

That causes files to get copied during packaging. Your paths may be different.

And add $(ProjectDir)/Binaries/Linux/steam_appid.txt into source control (it might not be desireable to have that in source control if you are running linux clients as well as servers on some checkouts as it may get overwritten).

You can find instructions elsewhere on how to get right steamclient.so file for 64bit.

3 Likes