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

Okay, after a series of tests, we have discovered that physics replicate for locally created parts with constraints, but NOT for locally created parts without any constraints.

This doesn’t seem like intended behavior. I think it might be time for a bug report.

but, why would it even know that the other client has a movable wall? Maybe I just want that wall there for 2 people, and not the rest of the server. Just for example.

Are you guys creating an attachment between the character and the hedge?

If so, all character physics replicate, and by default, anything attached to them (though any instances created locally should only be seen locally).

No, its locally created parts not attached to the clients character whatsoever.

Can you send me a place file? This doesn’t seem right.

One sec. I was trying to use Gyazo to send you a recording but it doesn’t record long enough for me to show you whats happening.

I’ll just upload a video.

Hello! This is probably due to something called “Network Ownership.” Roblox uses this to optimize physics for objects (basically it can make physics more seamless for projectiles). By default objects have their network ownership set to be automatic (usually meaning the nearest client will take control)

You’ll want to use BasePart | Documentation - Roblox Creator Hub to enable server ownership of the part.

well, the thing is that everything is a client object. the server never sees any of this stuff.

I’m still working on that upload… my computer works fine when I don’t have a few generous people waiting on me.

So these parts are created on the client then? If not then network ownership will still take place. Double check that the parts are indeed only on each client.

100% just the client.

everything is created by a local script.

I have submitted a bug report. It only occurs for locally created parts connected by constraints, not locally created regular parts. Nothing to do with NetworkOwnership in this case.

Ah that’s actually very interesting. That does sound like a bug. Do you have a repro file for the report? If not can you supply one @XlxLiveLivelyxlX?

I provided steps for re-pro.

It goes as follows:

Create two parts in the workspace and connect them with a constraint. Then, move them to replicated storage. Using a local script on the client, move the parts in replicated storage back to the workspace. The physics will be replicated for all clients, but you cannot see the parts.

1 Like

Wow thank you for the support guys!!

Im almost done uploading:

its now public

1 Like

looks like ill have to make a repro after all :stuck_out_tongue: Give me a few minutes to put it together.

Actually I think I may see what’s happening in that video. I believe the client is simulating physics for the other client. Their Velocity, Position, etc are replicated so possibly what’s happening is that the part’s physics are not actually being replicated, but the interactions with it are making it appear that way. If you disable collisions for the secondary player (on the first player’s client) does the issue still occur?

3 Likes

but as far as the other client is concerned, I dont have a block. If their position is replicated through the server, they should just walk through my block.

So, if they’re pushing their own block, mine doesnt exist in their world; Yet the block is still being moved.

pretty sure he’s right. even though the block is on your client, your client is still applying the other player’s physics onto the block.

i think a solution would be to use collision groups. the block would have a collision group, lets say collision group 1, that collides with everything except collision group 2. your client makes it so every other players’ characters’ parts are in collision group 2. then, only your physics would apply to the block.

The issue is their Velocity is replicated as well. Clients will simulate other client’s physics against client side parts so this sounds like your issue. An easy test would be to simply set the block to CanCollide false on the effected client and walk through the block with the other client. If it moves it is physics replication. If it doesn’t, it’s physics processing (on the client only because CanCollide is only false on the client!)

its worth a shot… but initially it could have been any player touching that brick, and moving it; But Hazania pointed that out to me, so that only the local players character could push it.

Im making a repro