It appears as if dedicated servers don’t have access to the curves defined in an AnimMontage.
Create an AnimNotifyState BP which has a tick function in it. The tick function looks up the curve value and prints it out. GetAnimInstance(Mesh Comp)->GetCurveValue(“Test”)->Print String.
Create a Montage with any animation and add the above AnimNotifyState BP during it. Make a curve with changing values during the length of the AnimNotifyState. Name it so it matches what you used in the BP (above, I used “Test”).
Run with dedicated server and trigger the montage (on both the client and server).
The montage executes. The tick function goes off on both the client and server as it should. However, the server always gets a value of zero for the curve. A snippet of the output log shows this:
[2016.01.27-01.46.47:954][729]LogBlueprintUserMessages: [CharacterMesh0] Client 1: 26.267138
[2016.01.27-01.46.47:968][730]LogBlueprintUserMessages: [CharacterMesh0] Client 1: 47.126152
[2016.01.27-01.46.47:980][731]LogBlueprintUserMessages: [CharacterMesh0] Server: 0.0
[2016.01.27-01.46.47:982][731]LogBlueprintUserMessages: [CharacterMesh0] Client 1: 68.56411
[2016.01.27-01.46.47:995][732]LogBlueprintUserMessages: [CharacterMesh0] Client 1: 90.330643
[2016.01.27-01.46.48:008][733]LogBlueprintUserMessages: [CharacterMesh0] Server: 0.0
[2016.01.27-01.46.48:011][733]LogBlueprintUserMessages: [CharacterMesh0] Client 1: 111.70108
[2016.01.27-01.46.48:024][734]LogBlueprintUserMessages: [CharacterMesh0] Client 1: 133.27063
[2016.01.27-01.46.48:036][735]LogBlueprintUserMessages: [CharacterMesh0] Server: 0.0
It seems like the dedicated server doesn’t get the curve data, which is unexpected.