[1248] VRChat crashes when many contacts collide with each other
available in future release
Krysiek
VRChat Version:
1248
Description of the bug:
When multiple contacts collide with each other, VRChat crashes. The crash happens at the same time to most users in the instance. It doesn't matter if tag names of senders matches tag names of receivers or not.
Long story and reproduce info:
Last time me and my friends experienced more crashes than usual during our meets.
The crashes happens to almost all players in the instance e.g. 15 of 20 players were crashed at the same time.
The problem increased when more people added packages with contacts components to their avatars.
After some testing I figured out that there is a problem with maximum number of senders and receivers colliding in the same time.
For testing, I created an avatar with adjustable number of senders and receivers and I checked values that leads VRChat to crash.
Crash occurs when:
1) 40 senders collides with 400 receivers (1st video)
2) 40 senders collides with 220 receivers
3) 100 senders collides with 100 receivers (2nd video)
4) 80 senders collides with 100 receivers and one avatar enters this collision (3rd video)
5) 120 senders collides with 80 receivers
6) 20 senders collides with 360 receivers and one avatar enters this collision (this one I tested with my friend and we both got crashed)
My other observations:
- Contact senders does not need to activate receivers. Crash occurs regardless if "collision tag" match or not.
- Every avatar has built-in about 14 senders and they count in these limits (fingers, foots, head, chest).
These values may look very high, but try to imagine that 10 excellent-rated avatars can crash the whole instance:
10 avatars with 8 receivers each means 80 receivers and 140 senders on the instance in total. It is enough to crash the whole instance if players get too close to each other (140 senders vs 80 receivers) and a few of them has receivers with bigger radius. It's like a ticking bomb.
Log In
Thelvaen
Is that still a thing?
Kiro
available in future release
Issue has been fixed and will go out with a future release.
Lusiiky
Kiro: Hello, thank you for fixing the bug! However, has every possible lag related to this bug or colliders in general been tested? Thank you :)
Kiro
Lusiiky: Performance was a consideration when we looked into this issue. We wouldn't want someone to use a large number of colliders just to lag you instead of crashing.
To address this several limits have been put into place, both inside of the collision system as well as enforced on avatars themselves. Additionally several performance improvements have been made to our base collision system, as well as specific situations that were identified during development.
The full details of these changes will be added to our release notes when it is released. We may also speak about them in an upcoming dev update.
Krysiek
Kiro: Thanks, it works! I modified my debug avatar to have 200 contacts components, so none of them were removed by default. Then I tested the exact same scenario on live and beta. When the live version crashes, the beta works fine.
However, I don't have any easy way to check if they all work correctly when there are many of them. We will try to check that on our group meeting using CuteDancer again, but it will be after the beta becomes stable version.
Kinimara
this bug still being a thing today.. can't use my sync dances avatar because of this bug...
Hoshou Neko
why this bug still a thing after half a year? you do realize it allows people to create malicious avatars?
anatawa12
This can be caused easily by one popular Avatar Gimmick using Contacts, Motchiri Shader (https://booth.pm/ja/items/4108136).
If many (in one my friends case, 5) players with Mottiri Shader come in contact with each other, it causes a crash.
Mottiri Shader uses many contacts (more than 40 contacts) with one sender for each contact and used is by many Japanese users.
sophiа
o so thats how it happens
sophiа
I've had it happen on rare occasion with the item tracking system I have. it's just really infrequent but happens when there's a lot of people around but when it does crash it crashes consistently for everyone at the same time. its a much bigger issue if you have large contacts. as if there's a lot of people around it can hit that point where it just dies for everyone. its really sucks when you accidently crash a lobby using something that you could be using all the time with no problem then everyone dies.
sophiа
the system im talking about has 18 large contact receivers. witch isent to out there for something to have. i just make sure not to pull it out if there's a lot of people around. but now it know the reason.
Lush
tracked bug
Tupper - VRChat Head of Community
Can you please post your testing world/rig?
Krysiek
Tupper - VRChat Head of Community: World doesn't matter in this case, crashes happen on multiple worlds. The debug avatar from the videos is set to private, the ID is avtr_6a1546e2-4e1e-4bc7-a088-05632aa18c35
Krysiek
I hope that with developers team you can grab the copy of the avatar for testing. If no, let me know other way to share.
Basically, you can just create new avatar in Unity, put e.g. 100 contacts senders and 100 contacts receivers in the same place and the game will crash every time you will try to switch to this avatar.
Tupper - VRChat Head of Community
Krysiek: Oh, yes, avatar. That ID works fine.
Patroll
This might seem like an edge case, but all it took to crash an instance was a single prefab based on contacts which got popular and people installed it on their avatars. So it's just a disaster waiting to happen when some other similar prefab gets highly popular or somebody uses this knowledge maliciously.