(My apologies for weird formatting, couldn't get newlines to appear properly when I wrote this out).
I wouldn't use UIDs, as they differ depending on when objects are created
Say player 1 plays a game, then goes back to title screen and decides to host. And player 2 has freshly opened the game and joins immediately. Then player 1's UIDs will be higher numbers than player 2's. Even more true if you use the project setting to randomise UIDs.
Its best to make your own ID system with instance variables.
If you want a very basic "on click, send mouse x and y" then have some events:
On click, and Is host
multiplayer>broadcast message:
Tag: ClickXY
Message: mouse.x & "," & mouse.y
----------
On click, and Is host (negated)
multiplayer>send message:
Tag: ClickXY
Message: mouse.x & "," & mouse.y
----------
Lets say you clicked at x=100 and y=200, the above expression will send a message that might look like this, two numbers with a comma between:
100,200
----------
Then add another event block for "on message ClickXY received", when it's host, let them broadcast the message so it reaches other players (if more than 2 players exist in your game).
And on message ClickXY received (no need for "is host" as we want this event to apply to anyone), set instance variables for storing the coordinates, say we have variables called XMouse and YMouse:
Set XMouse to float(tokenat(multiplayer.message,0,","))
----------
Set YMouse to float(tokenat(multiplayer.message,1,","))
----------
The tokenat() expression looks at the message (say the message is 100,200 ) and uses a comma as the separator, and the number 0 or 1 is "which part of the message to get", 0 being before the comma, and 1 being after the comma. "Float" means that we want this message to be read as a number rather than text (If you send messages that you want to store as text, you can remove "float()")
Hope this helps!