Spring Arm component replication problem

Hello, ladies and gentlemen!

I am working on a top-down turn-based strategy game, and faced with a peculiar problem with the spring arm component of my camera. My Camera Pawn consists of a sphere for visual debugging purposes, a spring arm attached to it, and the camera on top of it, looking directly down.

When both players are connected, the Level BP gives the command to the both Player Controllers (PlayerCameraControl is my custom PC) to possess two separate Camera Pawns:

They are possessed on the Server side, and the new view target is set, this snippet works fine :

The controls for X and Y axis work fine as well, so the possession goes through alright. But the problem I have is that the zoom in and zoom out that modify the actor’s spring arm length, work only on the Server! If I run the Dedicated server, neither of the two clients can zoom in/out, even though the values of the spring arm length change as intended. The camera does not respond to it’s own arm lengthening. Here is Zoom in and Zoom out BPs (located in my PC class):

Notes:
The replication on both the Pawn and all of it’s components is enabled.
I did not touch the relevance settings as I did not know what they do, but I assume this is not the relevance problem.

Could someone please help me figure out why the zoom in/out does not work?

Looks like maybe " Target arm length " needs to be instance editable ?

I added the ? because replication in unreal Blueprint makes me wanna pull my hair out and I have been wrong before about these things.

If anything I would take a close look at that variable and who has control of it. (does owning player control it or only server )

My Sneaking suspicion is that the server is controlling it and the client cant.

Hope this helps.

I’m having trouble understanding what I should do here.

I can’t edit the properties of Spring Arm Length variable, because it seems to be… I don’t know the word for it, maybe inherent? Like an immutable component of the Spring Arm that I have no control over.

I don’t know how to check the ownership of a variable, either - there is a node for checking actor ownership, but not the variable.

The Spring Arm component itself was giving me a headache, and I realised that since it’s a strategy game, I have no camera collisions with anything, so the Spring Arm was not necessary at all.
I made a pawn without the Spring Arm, and it worked.

So I suppose the question can be closed, however it’s not exactly resolved.

Maybe if you can get the spring are you can use get parent node to find the owner of said spring arm ?

See Below:

You can get parents of something and you should be able to locate your spring arm

You can also get children in a similar fashion.