Udon Rules

  • VketMall Proto uses SDK3 and Udon.We set following regulations in addition to the submission rules, as the UdonBehaviour extends your options greatly and it could easily cause fatal errors to the world itself. We appreciate your cooperation.
  • In order to reduce the processing load by Udon, the operation of Udon in the world is controlled by Udon prepared by the organizer. See D. Udon control rules in the world for more information.
  • Please note that if your submitted item does not comply with the regulations, we will take measures such as resubmission request or not placing it.
  • This regulation may be revised even during the submission period.

A. Submission rules

  • Use UdonSharp when creating Udon.
  • Udon created by UdonNodeGraph and other Udon assemblies cannot be used (except prefabs distributed by the organizer).
  • Please use the latest version of UdonSharp at the time of submission. The latest version of UdonSharp can also be imported from VketTools.
  • Include the source script file (extension .cs) in the submission folder.
    • Please put the script file in the Assets / [Exhibitor ID number name] / UdonScripts folder created by VketTools.
    • Please place the Udon program asset (extension .asset) in a location other than the above folder in the submission folder.

B. Udon Behavior Regulations

  • Up to 5 UdonBehaviour components per booth.
  • If you want to use synchronization variables, please set Synchronization Method to Manual.
  • Allow Collision Ownership Transfer should be disabled (if collider is included).
  • When using the UdonBehaviour component, attach the component distributed by the organizer (VketMallUdonControl component) to the object.
  • The following callbacks in D. Udon control rules in the world are Only one UdonBehaviour and only one of the following callbacks can be received
    • VketUpdate
    • VketFixedUpdate
    • VketLateUpdate

C. Script rules

  • Up to 10 synchronization variables (variables with [UdonSynced]) can be used per item.
    • Only the following types can be used for synchronization variables (array and string types are not allowed) bool, byte, sbyte, char, double, float, int, uint, long, ulong, short, ushort
    • Synchronization variable updates (execution of the RequestSerialization function) should only be performed by player actions such as Interact and Collision.Do not implement the update function in such a way that the synchronization variable is updated every frame.
    • Constant synchronization with Continuous setting is not available.
  • All classes should belong to the namespace below.
    • VketMall.Circle[Exhibitor ID]
    • Please replace [Exhibitor ID] with a number. Example: VketMall.Circle9999
    • It is allowed to add namespace after Exhibitor ID. Example: VketMall.Circle9999.Example
  • The following variables, functions, and callbacks cannot be used
    • Prohibited variables
      • Transform transform.root
      • All variables of RenderSettings class
    • Prohibited function
      • UdonSharpBehaviour.VRCInstantiate
      • GameObject.Find
      • Object.Destroy
      • Object.DestroyImmediate
      • VRCPlayerApi.TeleportTo
    • The following #define directives are not allowed
      • #if UNITY_EDITOR
    • Prohibited callback
      • Update
      • LateUpdate
      • FixedUpdate
      • OnPlayerJoined
      • OnPlayerLeft
      • InputJump
      • InputUse
      • InputGrab
      • InputDrop
      • InputMoveHorizontal
      • InputMoveVertical
      • InputLookHorizontal
      • InputLookVertical
      • OnPlayerRespawn

D. Udon control rules in the world

  • The operation of the submitted Udon is partially restricted by the Udon (hereinafter referred to as VketUdonManager) prepared by the organizer.
  • The entire store, where the item is placed, is defined as the Udon update range for the item,on the basis of which VketUdonManager will send a callback to the exhibitor Udon. (See below table) The callback is sent by UdonBehaviour.SendCustomEvent.
  • You can receive the callback from VketUdonManager by following the steps below.
    • Implement the functions in the table below in the script. (Access modifier public, no arguments / return value)
    • Check the callback name you want to receive in the VketUdonControl component.
Function Call timing
void VketUpdate() When updating Update (when the local player is within the Udon update range)
void VketFixedUpdate() When updating FixedUpdate (when the local player is within the Udon update range)
void VketLateUpdate() When updating LateUpdate (when the local player is within the Udon update range)
void VketOnShopEnter() When a local player enters the Udon update range
void VketOnShopExit() When a local player leaves the Udon update range
void VketOnReset() When the reset button in the store is pressed, or when there are no more players in the store.
  • When the reset button in the store is pressed, or when there are no more players in the store, the object will reset its position to the initial point.
  • The position of the pickup object will be reset to its initial position when the player leaves the store.
  • The following components will be disabled when the local player leaves the Udon update range.
    • Camera
    • AudioSource
  • Objects containing the following components will be deactivated when the local player leaves the Udon update range.
    • Projector

E. Gimmick restrictions

  • We will restrict the gimmicks that take the following actions in consideration of the visitor experience and the influence on other exhibitors.
  • Items can only be moved out of the space by a player action such as Interact or Pickup. Also, after the VketOnReset callback is called, the item must remain in the space until it is moved again by the player.
  • Changing the player's settings (WalkSpeed, etc.) and changing the player's Velocity is only allowed when the player is picking up an item.
  • It is prohibited to configure Udon in such a way that processing keeps going outside the Udon update range defined in the D. Udon control rules in the world.
  • Any functions that interfere with objects other than your own item is prohibited.