Expose accurate time data via an Udon API
syncpulse
Currently, we are able to use standard APIs to get the user's system time. However, an issue that I have encountered while building multiple world systems is that this data is often inaccurate and unreliable. Windows time sync seems to only be good +/- several seconds, and we have encountered cases where the user sets the clock on their system to display the correct local time, but their timezone is set incorrectly, which makes it impossible to calculate the correct time in UTC.
In one case where even a few seconds of error was unacceptable, I was forced to build an NTP-like system to sync the current time from a remote server using string loading. This involves a lot of complexity such as error concealment and dealing with the inherent delay/jitter in making HTTP requests. It is also not ideal due to the reliance on a remote server and the user having untrusted URLs enabled.
I would like for VRChat to expose something similar to the existing Networking.GetServerTimeInSeconds() except it would return the current unix time.
An example use-case is a world where some action occurs at the exact same time for all users in every instance, such as a daily reset in a game world, or a synchronized fireworks display on a holiday.
Log In
owlboy
It’s surprising that a computer’s clock can be so incorrect in 2025.
Tools to combat this would be appreciated!