World/Udon Bugs & Feature Requests

Post about current World or Udon bugs feature requests. One item per post!
Non-constructive and off-topic posts will be moved or deleted.
Pivot back to WebAssembly-based Udon 2
It was announced on yesterday's developer update that Udon 2 had been scrapped for "Soba". Based on the information we have been given, they're making the equivalent to Udon 1.1. In the words of the VRChat team, specifically Fax: Soba will have comparable or worse performance than current UdonSharp at launch with "promised" improvements in the future. But as we know, VRChat is unreliable with promises, so I'm hesitant to believe that. Soba will lack generics support at launch (no List<T> or Dictionary<T>, among others) Soba will not have everything promised in Udon 2 This is extremely dissapointing for me, and many other VRChat creators. Udon 2 was supposed to be the superfast feature-rich improvement over current Udon To see that they have opted to make a custom VM which, based on the facts we have right now, will not achieve Udon 2's speeds or feature parity is a disappointment to the community and a testament to how easier > better in VRChat's eyes. The reasons for this change are also abysmal. They said that Udon 2 "would have distracted us from adding feature requests that the community had been asking for". This shows how deaf VRChat is around community feedback, since Udon 2 was one of the most exciting features for me and many other creators, plus, this wasn't an issue when you were waving your dick about making stickers, boops and other features nobody asked for. Alongside this, based on VRChat's technical reasoning, it appears that WebAssembly was scrapped because the new engineer(s) working on Soba didn't bother to debug Udon 2, it appears some benchmarks were done, issues were found, and they didn't bother to try and debug it, or just made up some excuse, instead opting for yet another sloppy custom VM. I apologise for my irritated language, but it is growing rather agitating that VRChat cannot competently deliver on a highly anticipated feature without taking years and having a 50/50 chance of scrapping it. Udon 2 was the better choice objectively, so I implore you to rethink this decision and bring back WebAssembly based Udon 2.
30
Add option to mark VRCStation as local-only
I would like a way to mark stations as "local" which prevents stations from doing their own internal "seated" player tracking. This allows us to reuse 1 station for all custom world locomotion systems. Currently stations have their own special handling for making sure that late joiners see a specific person sitting in a station that they were sitting in prior. This handling also prevents you from sitting in a station if your client thinks someone else is already in it. However, if two players enter the same station at the same time, locally they will both be registered as being in the station which means the lock out provided by VRC does not guarantee anything and is essentially useless in practice for much more than a chair that's there for aesthetics since it's trivial to break unintentionally and by extension break any systems that depend on it. Anything involving stations has historically been bug prone and liable to break subtly at the drop of a hat. When issues have been fixed, they have been liable to regress a patch or two later and then get left for months or years. The same goes for the implicit syncing behaviour of stations. Putting aside bugs with station sync aside, even if it worked perfectly 100% of the time, there are many cases where people want to implement their own locomotion in worlds which requires absolute control over the player position and rotation locally. But at the same time does not require a "vehicle" that the player is in and directly attached to. As far as I have heard from VRC staff, stations are the supported way to do this since we cannot control the exact position of the player, only the derivative of it (the velocity), which is janky at best, and we cannot rotate the player on any other axis than Y because the player controller is not made to work correctly with any rotation off the Y axis outside of the context of stations. On the other side, we should also be able to locally assign a remote player to a local station. Many worlds have used this to control the local perception of the location of remote players. Allowing for non-euclidian worlds, worlds where locomotion does not behave exactly the same as VRC where people can stand on walls for instance, or more practically, large "vehicles" where everyone can be located on the vehicle which is "moving" through the world when the world is actually moving around it, but players outside the vehicle see the remote players attached to it properly. This is all possible with how stations are currently synced, but it means that you need to have an object pool for every station in the world which is handled consistently between all clients, and it leaves stations subject to the worryingly common bugs with station sync. I have seen many people try using stations for locomotion and such only to stop because it's way more complex than it should be even though it's the way VRC tells you to do custom locomotion. There are also many worlds that you're leaving to use the jank method of pooling them which is liable to break, and on many of these worlds has broken when the station sync has broken. Despite it being more complex, people will make prefabs, people will make instructions for how to deal with station pooling Because every VRC employee seems to be of the mindset of "man, should we support this basic thing that takes maybe a couple of hours to implement and should be basic to support?" I will reiterate: people already do these things, as time goes on, more people will do these things, you are increasing technical debt by not adding this. And it will only get worse the longer you do not act. When you run a content creation platform, lack of basic things like this pushes technical debt onto your creators, which means they use systems in ways they should not need to be used. This in turn means you need to support these further abstracted systems Stations are the established and supported way to override VRC's built-in locomotion, and they should be able to be treated as such without hacking around to make them kinda work and leaving them subject to sync bugs. Related bug about one of the ways station sync breaks currently: https://feedback.vrchat.com/bug-reports/p/random-user-gets-stuck-in-station-for-new-joiners
1
Load More