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.
VRCObjectSync Respawn does not work
I tried this both with udon graph and udon sharp. Both times, when calling the Respawn function, the udon script throws an error and halts. It says that the reference is not set to an instance of an object, even though every time, I check, and there is an object with a VRCObjectSync attached to it that Respawn() is called from. And Respawn() is called from the VRCObjectSync, and not the GameObject. This is the error I get from udon graph: [UdonBehaviour] An exception occurred during Udon execution, this UdonBehaviour will be halted. VRC.Udon.VM.UdonVMException: The VM encountered an error! Exception Message: An exception occurred during EXTERN to 'VRCSDK3ComponentsVRCObjectSync.__Respawn__SystemVoid'. Parameter Addresses: 0x00000000 Object reference not set to an instance of an object ---------------------- Program Counter was at: 28 ---------------------- Stack Dump: ---------------------- Heap Dump: 0x00000000: Microphone (VRC.SDK3.Components.VRCObjectSync) 0x00000001: Microphone (VRC.SDK3.Components.VRCObjectSync) 0x00000002: VRCSDK3ComponentsVRCObjectSync.__Respawn__SystemVoid ---------------------- Inner Exception: ---> VRC.Udon.VM.UdonVMException: An exception occurred during EXTERN to 'VRCSDK3ComponentsVRCObjectSync.__Respawn__SystemVoid'. Parameter Addresses: 0x00000000 ---> System.NullReferenceException: Object reference not set to an instance of an object at VRC.SDK3.ClientSim.ClientSimObjectSyncHelper.RespawnObject (VRC.SDK3.Components.VRCObjectSync sync) [0x00000] in .\Packages\com.vrchat.worlds\Integrations\ClientSim\Runtime\Helpers\ClientSimObjectSyncHelper.cs:18 at VRC.SDK3.Components.VRCObjectSync.Respawn () [0x00009] in <6ff4ff48394b436282bb70dc0ff277c2>:0 at VRC.Udon.Wrapper.Modules.ExternVRCSDK3ComponentsVRCObjectSync.__Respawn__SystemVoid (VRC.Udon.Common.Interfaces.IUdonHeap heap, System.Span`1[T] parameterAddresses) [0x0001d] in <b001fa9908f1453c979dae8b67f4c4f7>:0 at VRC.Udon.VM.UdonVM.Interpret () [0x00273] in <62e4a0d35446446b8fa1f8e5755bcfaa>:0 --- End of inner exception stack trace --- at VRC.Udon.VM.UdonVM.Interpret () [0x0033c] in <62e4a0d35446446b8fa1f8e5755bcfaa>:0 --- End of inner exception stack trace --- at VRC.Udon.VM.UdonVM.Interpret () [0x00436] in <62e4a0d35446446b8fa1f8e5755bcfaa>:0 at VRC.Udon.UdonBehaviour.RunProgram (System.UInt32 entryPoint) [0x00063] in .\Packages\com.vrchat.worlds\Runtime\Udon\UdonBehaviour.cs:1098 UnityEngine.Debug:LogError (object,UnityEngine.Object) VRC.Core.Logger:LogError (string,string,UnityEngine.Object) VRC.Udon.UdonBehaviour:RunProgram (uint) (at ./Packages/com.vrchat.worlds/Runtime/Udon/UdonBehaviour.cs:1112) VRC.Udon.UdonBehaviour:RunEvent (string) (at ./Packages/com.vrchat.worlds/Runtime/Udon/UdonBehaviour.cs:1306) VRC.Udon.UdonBehaviour:ManagedUpdate () (at ./Packages/com.vrchat.worlds/Runtime/Udon/UdonBehaviour.cs:551) VRC.Udon.UdonManager:Update () (at ./Packages/com.vrchat.worlds/Runtime/Udon/UdonManager.cs:354)
12
·
tracked
Can't render over the screen with more than 1 camera on Quest
What I'm going to describe is a very niche bug, that won't bother a lot of people, but it's been preventing me from porting some cool worlds like "Thad Recursive Room" to Quest, because it relies on some render tricks with multiple cameras. If you have a camera without a render target, it will render on screen. And if you set the "depth" parameter greater than 0, it will render after the main camera, effectivly acting like an overlay camera. So far, everything works. But doing that with more than 1 camera does not work. So if you use a second camera with an even higher depth value, it's content won't show up on the screen as long as the first overlay camera is still on (That is, if the content of the second overlay camera is actually performing a z test). But it gets stranger from here: if I open and close the menu a few times and also click on some of the menu tabs like the world menu. Every now and then it causes a glitch that will make the content of the second overlay camera sort of appear from there on out. What I can see then, is that when I move my head, it moves away an invisible shape that was blocking the content of the second overlay camera. And that shape fits perfectly the object it is supposed to render. It is as if the z values of the second overlay camera are already written to the depth buffer before the actual rendering of the second overlay camera begins and then the z test fails against its own values. But after the menu glitch, the occluding depth image seems to be frozen in place and I can partly move it out of the way by changing my view. Also: one time I tried something similar with cameras rendering before the main camera (depth parameter is set to a negative value, and main camera is set to clear nothing). Results were similar, and after I managed to get something visible with the menu glitch, it appeared as if the cameras that render earlier than the main camera were very pixelated, which was also surprising. I've been also experimenting with manually calling render() on multiple cameras that are supposed to render on screen during several render related events (for example in OnPostRender of the first overlay camera), but no luck getting their content to show in any way.
0
Allow VRCURL URL / Dynamic URLs At Runtime, It's Time for a Change
With the Remote string loading and image loading, we should be able to dynamically construct endpoint url's to cater to different scenarios and offer more flexibility. I know other posts about this do exist, but I feel like VRChat won't really pay attention without there being more volume and input from the end users. Please upvote relevant requests and share your thoughts. I'm using this post to potentially share my feedback and idea, and offer a starting point for us to discuss on. I want to be able to kickoff my project in VRChat and the string loading with dynamic URL's will play a major role in making it a reality. I am assuming this was not possible because of "security" concerns, but let's face it that we offer users to block untrusted URL's as is and give them warnings. VRChat is not only a social platform, but a sandbox for creators in terms of avatar, world, and scripting content. I've developed essential tools on Garry's Mod and other sandbox games, and they had no problem letting scripts make API calls, despite the community having a dangerous and toxic userbase. This allowed me to let my clients configure "roles" and preferences from an external web portal. Are you afraid of data exfiltration? There are ways to do that already. Malicious URL calls? Anything on the internet can be malicious as is. We can't keep having this "Carebear" security mindset and keep it locked tight that severely limits our creativity, but look for accountability and flexibility. The security concern is admired, but now its necessary to send dynamic URL's for search queries when we deal with remote strings or images, otherwise we have no choice but to dump the entire dataset. I will just have to create hundreds of VRCURL's and just do a bunch of if/else's and download the entire "database" instead of feeding search queries to get specific datasets to save bandwidth and filter through the data set on the server side. Maybe to meet in the middle, we can be transparent of the requests to be made. Add a prompt to the end user stating that "This World is requesting permission to let your game send/receive content to and from http://xyz.com " and it would be whitelisted to that user individually. Any new URL's not on the list will prompt another permission request. It would Only apply to the domain name, and Subdomain only. Maybe prevent changing the domain/subdomain of the URL entirely. This can also allow the user to feel more confidence knowing that their "Untrusted URLs" is no longer a wildcard, but can consult a list to see which untrusted URL's they're permitting on their client. With your upcoming "Udon" menu implementation, it could be considered to have VRChat built-in user preferences specific to the worlds, and include the whitelist there of URLs the World has requested to communicate with.
3
Load More