Multiplayer Problem: Works in PIE and standalone, not in packaged client and server

I have two objects (actors) in the level, each with an Activate blueprint interface. Players can interact with the first object, which can be moved about, and once it is activated, it will search the nearby area (sphere trace) for the second object class and then send an interface call to activate the second object, which will change its decal material from a blank one to one that has text.

I have this working fine in PIE with dedicated server checked and there is also no problem also when using Standalone Game.

However, when I build the client and server, the first object activates as expected (spawns fx, sends debug notices), but the second object does nothing.

I have thought that perhaps this has something to do with ownership, but it seems odd that it works in the editor but not in the game.

There is clearly something that I am missing here and I have been unable to generate search terms that would lead to a solution.

Would anyone have any suggestions?

Hey there :slight_smile:

Add Print Strings at every steps of your process.

Make a debug package version (nothing you have to do, just don’t check “Shipping Build”).

See what it says.

Print things such as function entries and material references.

I have two leads:
1 - the material your box is supposed to switch to is not properly tagged for Static Meshes
2 - your actor setup is based on events such as “Event Begin Play” and do not work in packaged verison because it loads slower (leading to different map and actor loading order)

Quote me and let me know what’s going on.

Thanks :slight_smile:

That’s always the first thing that I do. The second object is passive until activated. In the editor, it prints out everything properly when activated, but like the fx, in the development build it’s silent as a church mouse. For whatever reason, it’s not receiving the interface function call.

My use of “packaged” was likely misleading. We’re autobuilding the development versions of the client and server through Jenkins.

Thanks, I’ll check into #1. As for #2, as all our character data is loaded from an online db, we enforce a strict startup sequence in the GameMode with wait loops and progress checks, so the game will shut down if everything is not in the correct order.

Thanks again :slight_smile:

Maybe your sphere trace is empty.

Maybe there’s something wrong with your setup regarding actors already in the scene.

Is the problem on all machine? Nobody see it activating?

Hi, I have in fact isolated the error to the sphere trace. The default value of the objects array is not being picked up in the development build and so the trace is returning nothing. Working on that now. :slight_smile:

In the end, it proved to be a simple error on my part. I created a custom object type to trace for and failed to commit the DefaultEngine.ini file to source control. I wrongly assumed that changing the file in the editor would commit the file.