Expose unique user IDs to Udon
Merlin
Now that web connectivity will likely require some form of consent from the user when using Udon, I think it's a reasonable request to ask for an actual unique user ID that we can use to identify users. This could be used to do things like enable a debug console in the world, or when web connectivity is back, save progress or settings in a world.
Right now people are using display names as "unique" identifiers which isn't good and already has issues since it's a display name. One issue is https://vrchat.canny.io/vrchat-udon-closed-alpha-bugs/p/onplayerjoined-doesnt-get-full-displayname-for-steam-users
Another issue is that "special" characters like "." get replaced in the display name with lookalikes which breaks string comparisons.
Relying on display name to "uniquely" identify people will become more prevalent as time goes on and people make commonly used systems that depend on them. You should expose this sooner rather than later to avoid this issue.
The potential for abuse is obviously possible, but there's no reason to kneecap the systems and introduce potential issues by leaving only display names visible. Right now I can reasonably target people with just their display names, it's just possible that there will be some more people with the same name that get targeted. Worlds abusing names to harass people is something that should be reported on a world basis.
Log In
П J П Λ
I've honestly been hoping for a feature like this for years. The few times I've changed my display name has caused major havoc for all the venues I perform at. Having to manually contact each of the world owners and have them update their whitelists is tedious at best.
Cøzen
World creators can already "blacklist" people based on their displaynames. If the reason this hasn't been implemented is the fear of blacklisting based on user ID instead, that could simply be reported if it's being abused. The more pressing security issue is obviously that worlds can't protect against spoofing at all without unique IDs! I would much rather let users have the IDs and deal with reporting the few world creators that abuse the system than leave every world/udon asset unprotected against the most basic displayname spoofing attack.
Invertex
If the VRChat team is worried about data-collection concerns from having a unique ID exposed between different worlds, or the creation of ID-based ban lists, there is an alternative solution:
Add a secondary private ID to all accounts (not exposed to the account owner either), and then the Worlds API can have a function to request "getWorldUniqueUserID()".
VRC central server would then respond with an ID that is generated based on that internal hidden private ID, plus the world ID, and a secret global key only VRC knows about.
This would provide an ID that remains consistent for each user in a per-world context, but would prevent reverse-engineering to expose any cross-world trackable information.
It would allow save files to be created in a world that can be both secure and still be restored even if a user completely resets their persistent data (or it gets corrupted). Only breaking if a world is deleted and uploads to a new World ID.
This would also not add any significant load on VRChat's servers, as it would only calculate it if the call is even made, and cache the result to prevent further calls.
-----------------------------------------------
Thinking further into the future, this system could be expanded by replacing the "world ID" part of the unique ID generation with a "shared world ID", allowing a set of worlds to have a secondary "shared ID" value if approved to be linked together. This way if some experiences need to be split across multiple worlds, they can still share the same per-world unique ID for the user.
(But that is something that would have to be approved for linking to avoid large networks of linked worlds just to force shared IDs.)
Kyrah Abattoir
So many maps are grossly insecure due to this, and most scripted moderation tools are incapable to deal with something as simple as a display name change.
I get the fear of people making ban lists, but there are already reporting functions for this, it isn't something that need to be solved on the technical side.
It even hinders the ability for games to keep track of players that leave the instance and rejoin.
DoomRater
It's insane this issue has still not been addressed after 5 years. Being able to spoof whitelists by changing display name is starting to become a legitimate security concern.
`Alex`
This seriously needs to be a thing, creating custom systems for worlds and only being able to use DisplayName is crazy when there is already a UUID available
Deantwo
This is just a guess. But one of the reasons we don't have access to user IDs, might be because VRChat thinks it will limit the chance of people making blacklists.
PS: Why is this document so hard to find? I could not find it before I knew it existed.
HcgRandon
Merlin Since you are internal now, can you campaign for this?
Litе
Support, no clue why this isn’t already a thing.
Deantwo
I don't understand why the unique user ID isn't exposed to Udon. The unique user ID isn't secret, I can easily use the VRChat website to get the unique user ID from the URL of any player I want.
Has VRChat devs given a reason for it not being available?
Load More
→