Skip to main content

Script Execution Order

Execution OrderSystem NameDescription
-InfinityUnityInputSystemUnity InputSystem updates before all MonoBehaviours. Input from user buttons are sent to ClientSimInput and events are dispatched.
-3000TrackingProviderInput is checked to update the TrackignProvider. For example: Desktop head X rotation.
-3000PlayerControllerUpdate Player position before raycasting.
-2000PlayerRaycasterUpdate the position of the PlayerHands to TrackingProvider hand data. Raycast to find interactables in the world. This must happen before EventSystems update.
-1000Unity Event SystemSend mouse events to interact with UI. Order cannot be changed.
0ClientSimBehaviours
0UdonBehaviourSend Update Events to Udon Programs.
1UdonInputThis must happen after UdonBehaviour.Update to ensure proper event order.
10000ClientSimBaseInputUpdate current frame tick for Input Events. Only needed to ensure tests and playmode act the same relating to when Input is processed.
30000PlayerStationManagerUpdate the position of players on a station as late as possible so all other scripts have had time to evaluate first.
30001TooltipManagerUpdate the position of Tooltip visuals after finalizing the player's position.
31000PostLateUpdaterVRChat's PostLateUpdate event sent to UdonBehaviours.