[Avatar SDK 3.8.1-beta.4] Per-platform Overrides unstable with Prefabs
available in future release
Spiro Renard
Per-platform overrides are currently unstable when used with prefabs. Prefabs fail to apply override data correctly, and any changes made are either not applied at all or are lost—reverting to "None" as if no option was selected.
Log In
This post was marked as
available in future release
Spiro Renard
orels
Spiro Renard: Thanks for the video!
Yeah I think I got this handled. There was an issue with how we saved data that broke with prefabs in a very odd way.
We should be able to get it into the next beta release
Spiro Renard
orels Using the 3.8.1 SDK release, the issue appears to be only partially resolved. The avatar prefab still fails to fully apply its changes—often defaulting back to "none." A workaround is to open the prefab and manually drag the prefab asset into the slot, rather than dragging it from the scene.
orels
Spiro Renard Hey! Something to note here, Unity prefabs cannot reference objects from outside the prefab's hierarchy itself. That's just a unity limitation. So my general suggetstion would be to _not_ apply overrides for the vrc per platform override component. As it will not be able to copy over references to other avatars in the scene into the prefab itself.
But you can safely leave them un-applied so that the data is saved within the scene itself
orels
We might improve this behaviour in the future with some kind of lookup system if the all the avatars are present in the scene. But for now that's the suggested workflow
Spiro Renard
orels Well the problem with this is because Unity keeps telling me there are unapplyed changes to my prefab because of the way VRChat currently does it. The behavior should simply be corrected to look for prefabs if avaliable, regardless of what scene they are in. This would correct the behavior.
orels
in progress
orels
Hey!
Thanks for the report.
I think I need to clarify something to investigate whats going on.
Are you adding prefabs from the project view (your assets folders) or from the current scene into the list of per-platform overrides?
Spiro Renard
orels I've tried both, the behavior seems consistent. I'll do some more testing when I get home
RavenWorks
orels I've been adding them from the current scene.
StormRel
tracked
RavenWorks
Also, the fact that this is happening at all makes me tempted to ask: is this not the intended workflow for per-platform overrides? The fact that this even got to beta suggests that it's not how people were working with it internally, so what was?
RavenWorks
This also prevents the user from re-assigning the per-platform overrides until they've deleted the now-empty entries from the prefab override; the entry being empty prevents anything from appearing in the per-platform override UI, but the empty entry being
present
still contributes to the count of permitted overrides before the "add override" button disappears!Spiro Renard
RavenWorks You bring up some really good points. The current behavior definitely feels like it hasn't been stress-tested with prefabs in common scenarios. Personally, I rely heavily on prefabs—especially prefab variants. They let me propagate changes efficiently; for example, if I update the PC version of my model and apply the prefab, those changes automatically carry over to the Quest version. From there, I can make Quest-specific adjustments and apply them to that variant without affecting the PC one. This makes it almost a requirment for this bug to be fixed, because I need prefab sprefab-specificpecific configurations for Per-Platform Overrides.. Otherwise I need to specifiy EVERY SINGAL TIME I want to upload the avatar because stuff doesn't change. At that point why have the feature? I might as well just switch scenes manually and upload like that to be honest.