Timeline finished dosnt fire on clients

Replicated “Timeline Finished” execute from timeline component does not fire on clients, while timeline update from same exact component does work.

UPD:

timeline not finishing was caused by “set timeline length” not being propagated to all other replicated instances of timeline. So if i set new timeline length < then current timeline length server part would finish before client one but client would not finish his timeline and vice versa.

Client length is 0.3 server is 0.25:

LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.0
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.015428
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.031292
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.047157
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.046678
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.062542
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.064771
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.082865
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.080206
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.095641
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.095148
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.110089
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.110478
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.125419
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.12754
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.144603
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.142781
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.159844
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.158274
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.173767
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.17381
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.189303
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.189448
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.205086
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.204984
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.22052
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.22051
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.236047
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.236127
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.251743
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.25
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: Finished
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: length   0.25
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.267155

Client length is 0.3 server is 0.35:

LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.0
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.014959
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.029918
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.030482
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.046005
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.046726
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.062248
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.061682
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.076638
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.077319
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.092275
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.09232
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.107321
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.107302
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.122303
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.122488
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.137674
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.137946
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.153403
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.153415
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.168873
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.168728
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.184041
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.183973
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.199286
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.19941
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.214847
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.214511
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.229949
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.23013
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.245748
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.245801
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.261419
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.261703
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.277606
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.277519
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.293421
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.292964
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: 0.3
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: Finished
LogBlueprintUserMessages: [BP_Player_controller_C_13] Client 1: length   0.3
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.308347
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.323863
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.338993
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: 0.35
LogBlueprintUserMessages: [BP_Player_controller_C_12] Server: Finished

Hi CriErr,

I wasn’t able to reproduced this in 4.10.2, though I may not be attempting this same way you have. Can you give me some clear steps to reproduce this in a new project, please? Thanks!

Hi CriErr,

We haven’t heard back from you yet, so I’m resolving this post for tracking purposes. If you’re still having some trouble with a timeline firing on clients, please feel free to respond with information requested above and we can look into it further. Thanks!

Hey there,
I cannot create this bug on any other bp or timeline, but I found even more bizarre one, which is actually might be reason for first one.

4.10.2
timeline component does not initialized(exist) if its not represented on event graph
video

That’s a known issue: timeline references don’t work in functions until initialized in Event Graph (UE-6961). We were not aware that you could initialize it by doing an unconnected IsValid check in Event Graph, but I suppose that makes sense. I’ll add some notes to report and bump community interest, but for now you’ll just need to make sure you initialize timeline somehow before using it in a function. Thanks for additional info!

Hey there, i found reason of original bug, check updated first post.

Thanks for additional info, but I’m not certain I’m following what you’re saying. Could you create another video or show some screenshots of your setup? Thanks!

Timeline component set replicate.

When i call Play from Start from event on server, all copies of this timeline play from start, server and client.

But if i call Set timeline length from event on server, server copy of timeline change timeline length, but client one is not.

So when i call Set timeline length and Play from start on Server event, server timeline change length and they both, server and client play from a start, but have different length. Now check log A and log B in original post to see how timelines with different length behave.

Where are you setting timeline variable to replicate? That probably shouldn’t be possible, but I’ll double check if you let me know how you’re setting that. Are you using Set Is Replicated node?

Set timeline Length is ENGINE BUILD IN function which set CURRENT TIMELINE LENGTH and this node NOT replicate this value to other clients, so i need to multicast function with this node to change timeline length on all clients. Which probably means build in timeline length is NOT replicated variable and there are at least should be note about it.

I understand what Set Timeline Length is. You said that you set timeline component to replicate. question is how; I don’t believe that’s intended functionality. If you show me more images of your setup than a screenshot of a single node of which I’m already aware, I might be able to investigate a bit further. As far as I can tell so far, there’s no bug here (beyond one mentioned above regarding intializing timelines); do you still believe there’s a bug?

It sounds like you’re on correct track, though. If you need, you can set a float variable to replicate, and change its value on Server. Use that variable on Server and Client as an input to SetTimelineLength function, which would then be performed locally using replicated value.

Hey there.

I understand how it work and how to make stuff happening.

What im saying, is timeline length is not replicated variable and if server and client have different values, server one is less than client, server would stop timeline on server which would be replicated by engine to client, but event Timeline finished wouldn’t trigger.

I think there are should be any note about it on timeline. If you think its ok, just mark as resolved.

thanks.

Okay, so to make sure I understand you correctly: you have a timeline in a Blueprint that replicates. On Server, you Set Timeline Length to a shorter value. If this is change isn’t replicated to Client, you’re saying Client doesn’t fire its Finished out when it completes?

Yep. Log in original post have print string(current time) on each timeline update and when finished.

Okay, so I attempted it using method I just described, and I’m not able to reproduce problem. It does seem like a bug if you’re getting it to happen, but I’ll need some very specific steps I can take to reproduce this in a new project, please.

If it’s easier for you to make a test project that demonstrates this behavior, you can upload it someplace like Google Drive or Dropbox and get me a download link. Thanks!

https://.com/file/d/0B9-wGP04rKFmVHVRck1CSlEwNVk/view?usp=sharing

press B on client window, code in controller, result in log.

Thanks for test project! I can see what you were talking about now, and have replicated problem in a new project, so I’ve entered a bug report for this behavior (UE-26172). I’ll post here if I see any updates on it. Thanks again!