Reproduction Steps
In a server script:
- Create a collision group
- Assign some parts to it
- Set the group collidable to false with another group or itself
Expected Behavior
The CollisionGroupId property of the assigned parts should replicate to all clients, and the collisions should behave accordingly.
Actual Behavior
The CollisionGroupId property of the assigned parts are not replicated to all clients, and the collisions do not behave accordingly.
I noticed the bug in my game, where I have two collision groups. An invisible part is placed in the middle of the scene (first collision group). The boss’ parts are part of the second collision group. These two collision groups are not collidable with each other.
By printing the CollisionGroupId and the name of it on both players, I get different results:
On my device (computer, correctly replicated):
On the tester’s device (iOS app, not replicated):
As we can see in the video below, the boss tries to get to the centre, and the tester (which has the wrong CollisionGroupId) is the network owner of the boss, so the boss cannot reach the centre. When I get closer to the boss, I get the network ownership, and the boss gets the correct collision behaviour and can reach the centre:
Workaround
I can think of two workarounds:
- Set the the parts’ collision group on the client
- Set the network ownership to the server
None of the two are convenient.
Issue Area: Engine
Issue Type: Other
Impact: High
Frequency: Constantly
Date Last Experienced: 2022-07-01 00:07:00 (+02:00)