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.
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)
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.
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.
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.
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?
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.