Help with Multiplayer shop visibility and functionality

Godot Version

Godot v4.2.2

Question

Hi, I’m new to Godot and struggling to tackle a particular issue. At the moment I have a local multiplayer game that can be joined by 2 players, Player 1 on the left and Player 2 on the right. Both animate and move independently while accurately updating their positions on both screens which is great.

When Player 1 walks over the “shop” it triggers a collision and opens the shop menu however this menu is also visible on Player 2’s screen which it shouldn’t be. On top of that, Player 2 can click the menu buttons to change the item within the shop which only updates locally on Player 2’s screen. I would like for each player to be able to open the shop with independent menus and be able to browse without affecting the others.



I’ve read multiple articles and seen many videos relating to multiplayer networking, rpc, client and server visibility functions and so on but am struggling to identify how to apply the information to solve the problem. As a result there are multiple scenes and scripts involved so I’ve attached a github link for the whole project. Relevant information can be found within the Game Manager, Player and Shop nodes/scenes.

Any assistance would be greatly appreciated.

I would usually put a check for such things in the scene that manges them. Like

If is_multiplayer_authority:
  # show ui

Thanks for the reply,

I’ve implemented your suggestion in the location where the signal and shop is shown, however now it only shows for player 1, regardless of who entered the area to open the shop. Do you think it’s because of the way I’m using visibility of a 2d scene?