Client only objects being controlled by other clients... why?

Alright my friends, have at it :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue:
PushProblemRepro.rbxl (19.2 KB)

and thank you so much for taking interest and aiding me in this. :slight_smile:

this is it at its very core.

Derp

:slight_smile: How can i set something to not collidable, that doesn’t exist to me? :wink: :slight_smile:

another way to look at it, is im pushing their brick, and they’re pushing mine - But neither one of us know about each others brick.

OHHH I SEE WHAT YOUR SAYING. Im sorry!

and you were right!! by setting it to can collide, the other client will walk through it.

2 Likes

The reference to the brick is the same on both clients (instances store an id internally I believe). Try these steps:

  1. Setup client 1 and 2
  2. Have client 1 and 2 meet at the brick
  3. In studio disable collisions of the brick on client 1 only
  4. Have client 2 push the brick

This is a (thankfully) pretty straightforward test which tells you exactly where physics replication is occuring. We know it occurs on client 2 because the brick moves. On the server the part is located in a non physics location so we know the server is not able to handle physics for the block. That leaves two possibilities:

  1. Client 1 is receiving physics replication
  2. Client 1 is simulating client 2’s character

Edit:
Yay! :smile:

now, how do i make it so that its only collidable by the local player?
with collision groups as was suggested earlier… Alright, now I have my solution :slight_smile:
I feel like both of you deserve the solution… how can I split it in half lol.

However, Hexcede Gets the solution, as he was the one who led Lightning_Splash to his suggestion.

I don’t care too much about being marked as solution. I just enjoy helping out. I’m glad this was resolved! @KeysOfFate can you confirm the bug you’re experiencing is truly a bug using this test as well?

1 Like

I confirmed it with the repro. It’s not a bug. Its just a lack of realization. It makes so much sense now. :slight_smile:
Thank you guys so much for all your help!! I don’t think the solution would have come to be so quickly if not for all of you. Your time is highly appreciated!

1 Like

Actually, when he posted his video, the parts were visible to both clients. This wasn’t the case with my test.

I went in and tried it, and the second client could not affect the part.

However, because this only occurs with constrained objects, I would still call this a bug. It can be used as a game ruining exploit, blocking all players from passing through an area if used with two large bricks.

Collision groups will fix intended physics behavior, but not exploits.

The parts are unique to the client.
How did you do it?

Collision groups can only be set on the server side of things, making it seemingly impossible for the other players to ignore the unique pushobject

with my aforementioned conundrum, I’m not sure how to get around this…

I am going to test all possible scenarios with both of our repros, and get back to you.

1 Like

You can use the Stepped event and set CanCollide of other Humanoid’s BodyParts to false. Additionally you don’t need the server to set collision groups, just need to make the groups and set their collidability. After that the client can set CollisionGroupId to whatever the server has (the number id not the string id)

1 Like

edit: (moved to dms thirtycharacters)