Why do I have to change my replicated inventory on the server AND on the client?

Hi all,

I am making an actor component attached to my player character in order to make an inventory system. I got it working all fine but I don’t understand some steps I have to take in order to make it work. And, after looking everywhere I could find similar problems on the forum, it seems some people manage not needing to take the extra steps I take to make it work properly.

For an easy example, when I overlap with my item’s collision sphere, in order to add it to my inventory, I call the followings:

The replicated events are in my inventory actor component:

And just so you understand what’s after, this is my AddtoInventory function in the actor component:

It works as a charm but leaves me unsatisfied because if I don’t add that client call after the server call and print the content of my inventory both server side and client side, I notice that only the server has added the item and it does not replicate to my client automatically even thought the inventory struct array is set to replicate.
Why is that ? Is it because I use structures ?

Thanks in advance