Collision masking does not work with humanoids & seats

Bug:

Using collision masking, if you set a VehicleSeat/Seat to a physics group, and a character to another group, and set the groups to not be able to collide via CollisionGroupSetCollidable, the character still sits down in the seat.

  • How often does the bug happen.

100% of the time.

  • Where does the bug happen (www, gametest, etc) Is it level-specific?

Repro place: Microsoft OneDrive - start a test server w/one player. Enable the script in workspace on the server, and walk into the seat. Then, on the server, set the seat to Disabled and then walk into it.

Since the release of collision masking (This feature is awesome by the way, thank you so much to all the people who helped it come to life!)

2 Likes

Minor comment: this should go into Bug Reports > Client Bugs. (#bug-reports:client-bugs)

1 Like

Is this expected behavior? Currently, in much of my vehicle and prop development, I rely on characters not colliding with a seat, but still being able to sit on them when they touch. I’d like to hear what some other devs have to say or think about this.

1 Like

For me, the point of collision masking is to stop people from blocking vehicles when they’re on a race track (Because characters standing still = the end of the line). If I use collision masking, I expect the client to not acknowledge that the seat is there at all (It’s just visible).

1 Like

Oh that’s funny! So a car that ghosts through you will pick you up in an un-occupied passenger seat? I need to think about this one. Lol

1 Like

A workaround could be to set the seats to disabled temporarily on the clients that you want the collisions to be disabled for, this would prevent them from sitting in the seat.

We could change the behavior of Seats with collision filters but I’m not sure if we should for the reason that @Stickmasterluke gave.

To me, it sounds like the core problem usecase is that players can get into seats of cars that are driving or moving fast in your game. I would suggest a script inside each vehicle that disables the seats based on a state of vehicle movement or velocity.

I’m undecided. On one hand, based on the naming of collision filters, you’d expect it to just disable collisions instead of also interactions. On the other, what are collision filters going to be used for most? Pretending the parts aren’t there I imagine – not necessarily just disabling collisions. It makes sense either way.

Should we maybe broaden the scope of collision filters to interaction filters? For instance, I create various interaction filters and between them I can disable entire interaction, collisions, and/or raycasting. This would create a more unified API for the members that use ignore/whitelists and turn this problem into a trivial one. That being said, this would probably be a pretty large project, so I’m not sure it’s worth it.

Intuitively what the OP is requesting is what the expected behavior should be. If you want a player to be able to use a seat then it should also be able to ‘touch’ said seat. Just like if I wanted to open a door, I would need to be able to touch said door.

I don’t think that a seat should be given its own behavior just because it suits game-play.

Yeah, I’m disabling the seats during a race w/collision masking on to fix it, but I think that if a seat has collision masking on, a player shouldn’t be able to sit in it.

2 Likes

It’s happening again… Same bug. Seats forcing lower and upper torso to CanCollide and ignoring collision groups completely. When exiting car, player gets stuck in it, but both car and player has set collision groups to not collide with each other.

1 Like