Replication options for interface events are missing despite documentation

https://docs.unrealengine.com/latest/INT/Engine/Blueprints/UserGuide/Types/Interface/index.html

At the bottom of this link, it is said that You can use the Replicates checkbox for any Interfaces containing functions that need to replicate across the server. This is found within the Details tab by first clicking the Blueprint Props button, however this entire section is missing when editing the interface and its functions/events.

This is incredibly frustrating, as I use interfaces heavily in my project, and since it is a multiplayer project…this just puts a big ol’ brick wall in my way.

Hopefully epic games have noticed and can fix this up ASAP as I believe it’s going to cause a huge headache for people working on multiplayer games, since interfaces are such a huge importance, even for something so simple as having interactivity.

In my example, player implements a “interactivity” interface which simply has a “Use” function. Every interactive object implements the interactivity interface. But because the Use function doesn’t have any replication, it’s pretty much useless for multiplayer.

Currently, the only way around this I have found is to put a Has Authority check after the function event, and have it call another event within the same blueprint with replication properties.

For my case, the player hits the USE key on a door, the player does a line trace, checks to see if the object it hits implements my interactivity interface, before calling the “Used” interface function on that object.
Inside of the object itself…so, the door, straight after the “Used” event, it does a Has Authority check, which then calls an event inside of the same blueprint called “ToggleDoor”, which has it’s replication set to “Run on server” and Reliable ticked (since it would be pretty important).

This seems to work, however I’m really not 100% sure if this is the best method…but it works…for now :stuck_out_tongue:

I don’t understand how your method works, I thought Run on server only worked on things such as playercharater/controller as it only worked if the client had ownership ? and a has switch authority would check if it’s the server running it or the client, since an action interface cant be called on the server from a client then how would you get it to work as authority, the server doesn’t call it?

What worked for me was that the caller (third person character in my case) uses a line trace to detect another actor (a door in my case) and then calls a run at server custom event - and passes the reference to the other actor.
so,
the line trace happens on the client and the client calls the runatserver event passing the reference.
the interface call actually happens on the server.
The door is set to replicate and replicate movement.
It only required two nodes to be added to a single player graph to change it to work in a multiplayer game.

This is a very late answer but perhaps it will help someone else searching for the same thing.