Hi, physicsService API is server-side only. I am creating a local part that I wish only the local character to interact with. The localPlayer naturally simulates physics interactions of the local cube with other players’ characters, even though it is not there for them.
Repurposing the way old developers figured out how to disable characterOnCharacter collisions (before physicsService filtering API was a thing) may be the best course of action, but I am afraid this loophole will eventually collapse on me and break what will become a core game mechanic, custom physics replication.
If I’m understanding this correctly, the cube can only collide with the client but not other players? If that’s not the case you could just set CanCollide to false. However NoCollisionConstraint help solve your issue.
The only part of PhysicsService which is server-side is the ability to create and delete groups as well as modify the collision relationships between groups. LocalScripts are still able to set a part’s collision group for local collision filtering. So long as the server creates the groups, the client is good to go.
I can not find a function for removing a part from a collision group;
I was intending to have the server set all characters into a group that cannot collide with itself, then when the user creates a local crate have them put it in group and simultaneously extract their localPlayerCharacter from said collisions group.
I can workaround with clients locally setting all other characters collisions in this bin, where the other users could not interact with the cube, but this breaks the philosophy of “don’t trust the client” to some extent. (Ignoring the characterOnCharacter behavior, that’s byproduct for now)
There doesn’t exist a function to remove a part from a collision group because all parts fall under one inherently. If it’s not one that the developer assigns, they fall under the “Default” group. Removing a part from a custom group can be done by setting its group to default.