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.
Users cannot join an instance with more than 6mb of synced data
I am working on a world that uses manual sync to store large amounts of data, potentially up to 16mb. This data is spread across 4*16 Behaviours, each syncing a max of ~260kB of data. When a player joins an instance, they will receive any previously synced data on join, all at once. When the amount of data reaches a certain threshold, about 6mb or so, it becomes too much for either the server or the client to handle, and the player is unable to join: Debug - [Behaviour] Holding recovery payload until all bunches are received. ---------- Repeats 4500 times ------ Error - Got DisconnectMessage. Code: -11 Msg: "SendBufferFull". Debug Info: {} Debug - [Behaviour] Holding recovery payload until all bunches are received. ---------- Repeats 500 times ------ Debug - [Behaviour] OnLeftRoom Debug - [Behaviour] Cleaning up held messages Debug - [Behaviour] OnPlayerLeft Roughy~ (usr_826b49cd-2e24-4a54-8435-3344dfe9512d) Debug - Removed player Roughy~ Debug - [Behaviour] OnDisconnected: DisconnectByDisconnectMessage A full log of multiple join attempts is attached. The same problem was experienced by multiple users. Separating the data into smaller objects ( ~64kb per object instead of 260kb ) yields the same results. The "SendBufferFull" error itself appears to originate in Photon, and as the name suggests it's just trying to send too much data too fast. Players already in the instance do not appear to be affected in any way. This effectively means there's a limit of about 5mb of synced data. Is this an intentional limit or a bug?
1
[1539] Later-Joiner's `OnVariableChanged` can be fired before `Start()` if the object owner syncs variables frequently
On Later-Joiner's client, OnVariableChanged can be fired without OnDeserialization() before OnEnable() and Start() . It will be happened especially if the object owner uses RequestSerialization() frequently (such as per second interval synchronization). It can be critical problem because it makes OnEnable() and Start() are not guaranteed before synced variable changes: firing OnVariableChanged before Start() can breaks Udons that implementing initialization at Start() . This bug seems the reoccurrence of following this Canny: https://feedback.vrchat.com/udon/p/1259-synced-variables-can-be-changed-from-owners-requestserialization-before-lat Build: 1539 ---- I've made the new testing world to check event orders: https://vrchat.com/home/world/wrld_c357c8f1-1d22-4e91-bfdc-e72c04097fe1/info . (Sample screenshot is attached below) Reproduction steps: Make the instance of the world (Player A), join the instance then enable interval sync from "Toggle Sync Interval" buton. (It starts 0.25s interval of synced int increment using manual sync) Join another player to its instance (Player B). See the console UI in the world at Player B. Expected Results: At Player B console UI, "SyncInt change" console message should only be occured before "OnEnable". Actual Results: At Player B console UI, there is small chance to occur "SyncInt change" console message before "OnEnable". - It may sometimes not be occurred, so try re-joining several times.
1
Load More