Blueprint variable replication confusion

So I’ve been racking my brain on this and after looking around everywhere have yet to find a solution to my problem. Below is a description of the issue I am having, I’ve simplified what I’m doing exactly to try to zero in on a possible solution.

I’m making a character sprint using left shift. When left shift is pressed I set character movement ‘max walk speed’ by a float variable called ‘run speed’. When left shift is released I set the max walk speed to another float called ‘walk speed’, which is identical to the max walk speed set in the inherited character movement attributes.

When I play the game as a listen server everything runs as expected. Pressing left shift causes the speed to increase by the amount set in the variable, and releasing it returns it to its default value. However, when playing the game as a client, it seems the variables are ignored entirely. The player speed does not increase and continues to move at the default max walk speed.

Setting the variables to replicated seems to have no effect, and I’m sure the issue is my lack of understanding on how replication in general works. Any help on how exactly I get the clients to follow the same behavior would be greatly appreciated.