Pickup id scrambles on Cross Platform, Quest
Lhun
It appears that in cross platform worlds (perhaps only in worlds where the user is using a different project pointing at the same files?) the ID of a VRC_Pickup object can get scrambled and potentially other things.
I've observed this several times but it seems to happen in popular cross platform worlds reliably, such as The Black Cat, and Avatar Testing. You can reproduce this bug by picking up the dog or the heart boy above the dark room in a new instance of avatar testing, while standing next to a quest user to tell you what they see, The microphone for a quest user is often a beer bottle for a pc user.
I have a suspicion on what might be causing this: The GUID is potentially registering differently between versions in the .meta file of the project.
With notepad++ you can edit the .meta guid tag, (guid: 8c9c1e4a88e724a60a9ac0b0bb6a52c3) for example.
Normally, for unity projects, you do not need to change Unity GUID. This however is necessary when you are working with several projects and the files in these projects are being overlapped, which is extremely relevant for VRChat cross platform, I suspect.
For some reason, the same file in different projects can have different GUIDs. In this situation, these are considered different files for Unity. When these same files (along with related files) with different GUIDs occur in the same (or new) project, there may be problems. In this case, you need to bring the same files to a single GUID. This is of course relevant when you are dealing with quest worlds
I'm not 100% sure and I need to test this extensively, but this is a documented problem that can happen with modularity.
Perhaps the generated vrc_pickup object ids end up pointing at different guids or generating different ones based on the cross project or even just re-imported assets on a platform change, or there's an indexing order issue.
This script, for example, was designed to regenerate guids for all the files in your project.
This perhaps could be extended to synchronize guids before version upload for people using separate projects?
Alternately (and in addition), you can speed up the platform switch process using the unity cache server:
which may be a recommended process for cross platform builders so that you do not need a separate project file.
Log In