VRChat Safety and Trust System: Changes and Feedback

VRChat
5 min readSep 26, 2018

--

We released a blog post recently alongside our Open Beta push, showing off a new system we’ve been working on for quite some time. The Trust and Safety system is designed to give control to the VRChat user as far as being able to select what avatar features they want to see. This system relies on an internally-calculated Trust rating, which then translates into a “Trust Rank” — essentially, a measure of how much VRChat trusts you based on your activity in the application.

Although the first Open Beta is now closed, feedback from our users proved very useful! We have found a few bugs and issues in the Open Beta that we are working on squashing right now. We’ve also received some feedback about the Trust Rank system, as well as concerns about how it is calculated.

As a result of your feedback, we’ve decided to make a few changes to the way that the Trust and Safety system work. Here’s a quick run-down:

“Safety Modes” (as in Maximum, Normal, and None) have been renamed to “Shield Level”. This rename is intended to focus the purpose of the Safety System — to Shield you from features or avatars you don’t want to see.

The “Veteran” Trust Rank has been removed. Trust Ranks are about how much VRChat trusts a particular user, and not about achievements, levels, or “XP”. This rank shared settings with “Trusted Users” in all default Shield Levels, and at Trusted level, you were already trusted. Veteran was intended to show users who have contributed greatly to VRChat, and to give them something to show off. However, the implementation wasn’t perfect and a bit out of scope considering the purpose of the Trust and Safety System, so we’re pulling it back into design.

Veteran users are still highly valued, and we will store the data necessary to identify them.

Friends are actually the ultimate level of Trust — by friending someone, you are telling VRChat that you explicitly trust that person, even more so than the previous “Veteran” rank implied. So…

“Friends” Trust Rank has been added. Since Friends are the most Trusted users you know, they have all features on in all default Shield Levels, and their nameplates will now show as gold. Some users wanted to hide features on everyone (including Friends) in crowded events or situations, so we added the ability to do so in the Custom Shield Level. The Trust Rank text below the nameplate will read “Friend (Trust Rank)”, so you can still see what Rank your Friends are.

For testing purposes, all ranks in Beta versions are visible. Here’s how it will work when we release to Live. By default, if you are a Known or Trusted User your Trust Rank will be hidden, and you will show as a User. You will still be able to toggle your higher Trust Rank on as before.

The final documentation for the Trust and Safety System will reside on the VRChat Documentation page once the System is on Live.

Ongoing Development

It is important to note that the Trust and Safety System is still in Beta (as labeled in the menu), and we’re still testing and adjusting things within the Trust Rank calculation system. As time goes on, we will continue to adjust these calculations. Further testing will revolve around making sure that the rank system is working as intended. This means that you may see your Trust Rank shift as we adjust these calculations.

Additionally, once the patch is Live, you will continue to see ranks shift as the system learns, and we tweak the way the calculations are done. The system is neither perfect nor done — this is a new approach to User-Generated Content management that has never been done before. It will take some time for us to determine the right values to adjust, and how much to adjust them.

We’ve already made some adjustments to the way Trust is calculated. More Trust has been assigned to users that have been members of the VRChat Community for a long period of time. As a reminder, playtime or the age of the account is not the only factor in Trust calculations.

We’ve also noticed that many users are uploading low-quality or low-effort worlds and submitting them to be Public. Please note that this will not raise your Trust Rank. The system is designed to know when an activity is performed for the express purpose of gaming the Trust System, and will ignore content like this. Worlds that are deemed low-quality or low-effort may be denied from the Public process.

To dispel some rumors and mystery about the Trust System, here are some things that we wish to point out that will not raise a user’s Trust.

  • Standing or idling in a room (AFKing)
  • Uploading a large amount of low-effort content
  • Mass-friending large amounts of users of any Trust Rank

As we’ve stated before with the initial introduction of the Trust System and in our recent post, we will not release details of how Trust is calculated, although we may inform users of parts of the system when we see need for it (as we have above).

Shader Fallback and Remapping System

As an additional point, shader fallback behavior has changed. This is a somewhat technical point, but we’ll try to sum it up here:

If you have shaders blocked for a particular Trust Rank, VRChat will attempt to map shader properties as well as it can to the Unity Standard shader. If the shader uses “_MainTex”, it will be mapped as the Diffuse texture for the remapped shader. The “Color” property attached to “_MainTex” is also used.

The system looks at the shader name, and attempts to map a fallback shader that has similar characteristics, like “Toon”, “Outline”, “Transparent”, or “Particle”. We’ll be tuning this to work better as we go, and will release more info on how to name your shader as we move forward.

If a shader fails to remap gracefully (as in, MainTex and Color is not detected), we replace it with a “matcap” style Standard Shader setting that is tinted the color of the user’s Trust Rank.

If you are a shader author and you want your shader to fall back gracefully when it is being blocked, ensure you are mimicking the naming scheme that Standard shader uses for the MainTex and Color properties.

To reiterate, this system is not final, and will likely change as time goes on. We will document any changes as we move forward to keep shader authors informed.

Again, we plan on providing more in-depth documentation for shader fallback behavior upon release. If you are curious about how to write your shader to remap gracefully, we ask that you wait on this documentation.

Further Beta Testing and Feedback

We’d like to offer a sincere thank you to our Open Beta testers. Your feedback and bug reports are always immensely valuable, and make our launches as smooth as possible. We plan on releasing another Open Beta this week before launching the Safety System into Live. Please keep an eye out on our Discord server for more news regarding the Open Beta and Live launch!

--

--