VTI Compatibility

From WaffleSlapper's Project Wiki


If you are reading this article, you may be wondering something along the lines of, "If I implement VTI in my World, will I have to constantly fix it every time the VTI Companion App gets updated?"

The short answer is "No". The longer answer is "No, as long as VRChat updates don't break anything and there are no blocking issues that prevent everything written below."

General Approach

When it comes to backwards compatibility, VTI will follow a simple premise: Old Worlds will be Supported by New Apps, but Old Apps will not Support New Worlds.

Specifically, this means that the goal of the VTI project is to allow any World built on any version of the VTI World Kit to work in the latest version of the VTI Companion App, but that no effort will be made to have any sort of "underclocking" or "feature lockout" if it detects a user using an older version of the application than that world was built for. This is because the VTI World Kit is a premium, for-purchase asset, but the VTI Companion App will always be free.

Versioning

There are two versions that are checked when the VTI connection is made in a VTI-capable VRChat world: VTIVersion and APIVersion.

VTIVersion is the specific interconnect version number between the VTI World Kit and the VTI Companion App. This version number will increment if a feature is added that requires more communication between the two sides. It will not increment if a World Kit or Companion update is made that only adds features to that specific side. For example: the VTI World Kit updates to add more Driver Types, which the VTI Companion App doesn't need any new info to deal with. In this case, the VTIVersion is not incremented.

APIVersion refers to the backend communication library that VTI uses, called VRChat App Link (VAL). This will only ever increment if the way that the VTI World Kit and the VTI Companion App communicate needs to change. For example: VRChat implements OSC for Worlds, and VTI updates to utilize that rather than the current method detailed in VTI Function Overview. In this hypothetical update, APIVersion will increment.