Interface function replication

In a related question server-only-function-replication-does-not-fire I came across what seemed to be a straightforward task and that was to ensure that my objects could be easily reused. Because they are network capable they needed to run through player controller but also had to account for different player controllers. To best encapsulate them, I used an interface to determine what controllers could click on items. Though this could not replicate because server only replication was not available on interface events.

Is there a reason for interfaces not being able to have server only events? documentations says they should be able to.

Any additional insight into this would be beneficial. Currently, work around is to have all networked functions copied in player controller. interface function just calls a second function directly next to it. This seems unnecessary. Any thoughts?

Almost a week and no comment so far as to if it’s documentation that needs updating because this functionality was removed from interfaces or if it is not in yet. @Steve Allison maybe you can address this? I’ve seen you comment on interface questions in past.

I don’t usually bump posts, but when I do I wait a week :wink:

I just checked 4.8 preview 1 and I don’t see a interface replication option. Can I get a reply (any reply) to this?

I just want to echo that I’ve run into this as well, and so have a LOT of other people. See also: https://answers.unrealengine.com/questions/224340/bug476-interface-functions-cannot-be-replicated.html

I was starting to think that no one could see my post given that I am only one who has posted in it for over 3 weeks now. @BenHalliday. You are always around to help (thanks). Can you point us in right direction of who to ask.

I refuse to allow this to be marked complete due to inactivity when there are so many people with same problem so I’ll just keep adding comments every 4 days or so until end of time. Or until we get a proper answer :slight_smile:

1 Like

Clearing this up would be nice. I looked at docs and tried to find replication option everywhere. If it is there, it must be default. If not it looks like we will have to make a custom replicated event on each blueprint that is fired by interface. Kind of clunky though.

Having same issue, I just can’t get Action interfaces to replicate, no matter how I try and no matter how many times I make posts, I never get an answer.

Well we are basically at a month of updating this thread so hopefully Epic will read it now that more people are replying to it. Some sort of “We are looking into it” or “This functionality was removed because…” would go a very long way.

I played around with some things and easiest way to do it is to pass your target actor (one that has an interface implemented) to a multicast custom event. On same blueprint call that event and pass it into interface. It will replicate just fine and you will not have to worry about setting up custom events in each object if you put that multicast in whatever blueprint is calling interface (i.e. your character). I have this setup in my own project and it works nicely. Every BP that receives an interface call from this character will automatically be replicated. (Be sure to mark your receiving actor as replicated :stuck_out_tongue: )

**Be sure that one who is calling multicast has authority.**With my project there were some issues with server being only one that could make changes to clients without it.

Multicast replicates from server to client and while that might work for some things it only works on objects that exist on server. If you are having a client side effect that is trying to replicate a request up to server then this technique should not work.

Can you give an example of what would do with it?

I assume you mean an example of what would be a client side function that we want to replicate to server where object only exists on client and not on server.

If you spawn in an item on a client and not server (instanced loot perhaps) then any multicast events called on that object will be treated as if it where only on client.

Say a item that drops revives nearby enemies (a trap) enemies would only revive on client as multicast revive function would not run on server.

I guess something you could do is have sever tell clients that it is okay to spawn something on their own with some randomization on what that item is, but that would mean ask clients would be spawning their own. If you wanted to control specific clients spawning items you would probably have to keep a list of connected clients. Unfortunately I haven’t gotten that far in my project. Examples of that are very hard to find if non existent.

Yeah, i’m still not seeing any progress on this issue, there are work arounds but action interface’s would save so much time and effort if we could just get them to work…

Hey Epic, It’s been another week since I last posted. Please let us know you can read this thread.

I too could benefit from an answer to this

Day 44. Still no word from epic regarding this. Starting to think it will simply never happen. And this isn’t even bring a post back from dead. There has been discussion and people talking for that long.