VRC Mirror Reflection is capable of changing the shader of non-editable materials
If you throw down a default plane and put mirror reflection on it, it will change the shader of the standard material. You can fix this by setting the custom shader to the standard shader, but if someone doesn't know this they could very easily break their project if they wanted to use that material elsewhere. This seems like something a script shouldn't be able to do....
[SDK 2019.06.25.21.13] Build Control Panel lags Unity for large scenes
I am using Unity 2017.4.28f1 and just updated an old but large project to VRCSDK-2019.06.25.21.13_Public. Opening the Build Control Panel or switching to it from another window lags unity for 3 or more seconds. This only happens in large scenes as creating a new scene has no issues in the same project. This scene has 8500 GameObjects for reference.
Improve eye tracking information
Please include the information in this document https://docs.google.com/document/d/1BvX_OdEilbJ7wEcvd5MRA1g29NGCAp3G3nHGp73t_CQ/edit in the avatar rig requirements documentation. In particular the requirements that for eye movement and blinking to work: 1. Bones MUST be named Hips, Spine, Chest, Neck, Head, LeftEye, RightEye 2. Each MUST be the first child of the parent 3. The mesh MUST be named Body 4. The vrc.blink_left, vrc.blink_right, vrc.lowerlid_left and vrc.lowerlid_right blendshapes MUST be the first 4 blend shapes in that order. Nowhere in the documentation is it indicated that bone names matter and while you get a warning if your arms and legs aren't parented properly, no warning is given for eyes and hips/spine/chest/etc. names.
PlayerLocal collision should remain on players in stations
It has been this way for a long time, that PlayerLocal colliders are effectively turned off when the player is in a station. World builders could normally work around this, but with avatar chairs, now this behavior breaks many worlds where a player riding another player will have issues with not locally enabling intended effects because they arrived in the area in a station. (This behavior is unexpected and that's why I'm putting this in bugs, not feature requests.)
 Teleport Player with align room to destination false can rotate the player
Using TeleportPlayer triggers and math, we can get the location of the player base. Doing this requires two teleports. When using align room to destination set to false, this will cause the player to rotate in unexpected ways. Setting align room to destination to true does not have the same issue. https://gyazo.com/1ffa2e007d07fed5eae86cabd464e043 Sample world using 2 teleports per frame that will cause the unexpected rotation on certain head angles. wrld_1c962617-81ff-4d14-926e-8408404176da
Audio bank throws an exception trying to repeat
VRCSDK-2019.09.18.12.05 When an audio bank set to continuous finishes the last clip, it throws an exception, stopping all audio. Based on the exception below, it appears it tries to access the clip array without mod'ing the index. IndexOutOfRangeException: Array index is out of range. VRCSDK2.VRC_AudioBank.get_Current () VRCSDK2.VRC_AudioBank.play (Int32 idx) VRCSDK2.VRC_AudioBank.PlayNext () VRCSDK2.VRC_AudioBank.Update () Example world: wrld_539dc16a-7f4c-436d-a994-925bd8cc7f8a There is a single button and an audio bank. The audio bank has 2 sound clips and is set to continuous. Pressing the play button will play both audio clips (Crow caw and tiger growl), but will not repeat until hitting the play button again.
SendRPC EnableKinematic only works locally
Using SendRPC EnableKinematic and DisableKinematic only sets the object locally. The broadcast settings have no affect. When setting an object kinematic, this also breaks syncing as the owner will see it stationary, but other players can move the object around with other objects. The logs show that all players are receiving the event, but nothing happens.
Rigidbody objects do not respawn unless they have ObjectSync
If a rigidbody object falls off the world and "Object Behavior At Respawn Height" is set to "Respawn" in the VRC_Scene Descriptor, it will not respawn unless it has a VRC_Object Sync component on it. In other words, unsynced physics objects do not respawn if they fall off the world. This affects things like Local Pickups that shouldn't be synced but can still fall off the world and be lost forever. It should be noted that setting "Object Behavior At Respawn Height" to "Destroy" will still destroy an unsynced object, it is only respawning that doesn't work.
[SDK][2019.08.23.13.45] VRC_SceneResetPosition generates garbage
Also reproduced with the latest beta SDK 2019.12.06.19.26 I've been using the VRC_Scene Reset Position script a lot for some of my worlds, and have found that it will generate around 0.6KB of garbage in the editor each time ResetPosition() is called. I assume this acts the same in game. This allocation happens when the reset velocity option is turned off, but the allocation can be removed by putting a kinematic rigidbody component on the same game object as the reset. So I assume there's a GetComponent/s<RigidBody> being called until a rigidbody component is found so that it can reset the velocity on the rigidbody, even if you tell it to not reset the velocity. There's also some performance overhead. An artificial test calling ResetPosition() 90 times per frame took about 0.3ms without a rigidbody, and about 0.12ms with a rigidbody.
[SDK] "Offline Test" option is broken with multiple clients
Please fix multi-client "Offline Testing" or provide a better way to test networking without a full world upload. The SDK provides two buttons for testing. One is for local testing and the other is for full uploads. Local testing, or "Offline Testing", still requires a network connection and also provides an option for the number of clients. While some things appear to work with only one client, when using more than one client, local testing breaks and behavior is unreliable. Since this is built right into the SDK, people believe that it is correct functionality and think that their world is broken, wasting many hours of debugging and more bad testing. Known issues: -Network IK only sends for master -OnPlayerJoined/OnPlayerLeft triggers do not fire -Sitting in stations force all clients to the same position -Object ownership does not act properly between clients -Sometimes only the master can execute ANY triggers -Some clients do not make it to the same instance -Some clients are kicked to home Previous canny relating to multi-client local testing was closed with the response that using the same account for the same instance is not supported. Users are required to log into different accounts. This is not a solution. The general user does not know they are required to have multiple accounts to test their own worlds properly. Multiple accounts can only enter the same world if the world has been fully uploaded. Some users also have a very slow or limited connection and uploading a full world is impractical. https://vrchat.canny.io/bug-reports/p/multi-client-bugs