<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.steeveeo.com/index.php?action=history&amp;feed=atom&amp;title=VTI_Drivers</id>
	<title>VTI Drivers - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.steeveeo.com/index.php?action=history&amp;feed=atom&amp;title=VTI_Drivers"/>
	<link rel="alternate" type="text/html" href="https://wiki.steeveeo.com/index.php?title=VTI_Drivers&amp;action=history"/>
	<updated>2026-05-04T06:44:38Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.steeveeo.com/index.php?title=VTI_Drivers&amp;diff=81&amp;oldid=prev</id>
		<title>Steeveeo: Added VTIObjectInstantiate line. Also updated to new behavior on VTIObjectToggle.</title>
		<link rel="alternate" type="text/html" href="https://wiki.steeveeo.com/index.php?title=VTI_Drivers&amp;diff=81&amp;oldid=prev"/>
		<updated>2024-03-26T04:20:28Z</updated>

		<summary type="html">&lt;p&gt;Added VTIObjectInstantiate line. Also updated to new behavior on VTIObjectToggle.&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 04:20, 26 March 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l46&quot;&gt;Line 46:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 46:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| [[VTIAnimTrigger]] || Sets an Animator&amp;#039;s Trigger input when Fired.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| [[VTIAnimTrigger]] || Sets an Animator&amp;#039;s Trigger input when Fired.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| [[VTIObjectToggle]] || When Fired, this Driver will enable the target GameObject, wait for &amp;lt;syntaxhighlight lang=&quot;csharp&quot; inline&amp;gt;ResetTime&amp;lt;/syntaxhighlight&amp;gt; seconds, and then disable it again.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| [[VTIObjectToggle]] || When Fired, this Driver will enable the target GameObject, wait for &amp;lt;syntaxhighlight lang=&quot;csharp&quot; inline&amp;gt;ResetTime&amp;lt;/syntaxhighlight&amp;gt; seconds, and then &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;optionally &lt;/ins&gt;disable it again&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| [[VTIObjectInstantiate]] || Will instantiate a prefab copy when fired within a certain (zero-able) range of either the Streamer or the Target. These copies are not syncable, so do not use them for persistent items&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| [[VTIRadialTripObjectToggle]] || A version of [[VTIObjectToggle]] that will &amp;quot;arm&amp;quot; when Fired, and then wait for a Player to get within a set radius before enabling the target GameObject. Will report unready while Armed and not tripped.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| [[VTIRadialTripObjectToggle]] || A version of [[VTIObjectToggle]] that will &amp;quot;arm&amp;quot; when Fired, and then wait for a Player to get within a set radius before enabling the target GameObject. Will report unready while Armed and not tripped.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key project_wiki:diff:1.41:old-48:rev-81:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Steeveeo</name></author>
	</entry>
	<entry>
		<id>https://wiki.steeveeo.com/index.php?title=VTI_Drivers&amp;diff=48&amp;oldid=prev</id>
		<title>Steeveeo: Initial writeup.</title>
		<link rel="alternate" type="text/html" href="https://wiki.steeveeo.com/index.php?title=VTI_Drivers&amp;diff=48&amp;oldid=prev"/>
		<updated>2024-02-13T07:43:16Z</updated>

		<summary type="html">&lt;p&gt;Initial writeup.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:VTI]]&lt;br /&gt;
&lt;br /&gt;
[[File:VTIDriver Inspector.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
In the [[VTI World Kit]], a Driver is a script that acts as an &amp;quot;Endpoint&amp;quot; for when an [[VTI Events|Event]] is received and fired. When attached to the same GameObject as a [[VTI Targets|VTITarget]] component, it will receive Event data when said target is Fired by [[VRChat Twitch Integration|VTI]].&lt;br /&gt;
&lt;br /&gt;
Multiple Drivers can exist under the same [[VTI Targets|Target]], allowing multiple actions to be taken upon firing without needing a bespoke custom Driver.&lt;br /&gt;
&lt;br /&gt;
All Drivers are, and must be, derived from the &amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot; inline&amp;gt;VTIDriverBase&amp;lt;/syntaxhighlight&amp;gt; base class. The base class includes all the below properties and methods when inherited.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Properties&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Type !! Usage&lt;br /&gt;
|-&lt;br /&gt;
| UserName || string || The Twitch User Name of the user who triggered this [[VTI Events|Event]].&lt;br /&gt;
|-&lt;br /&gt;
| Message || string || The User Message, if applicable, that was sent with this [[VTI Events|Event]].&lt;br /&gt;
|-&lt;br /&gt;
| TriggerCause || string || The reason why this was triggered. Use this when Allow Event Type Rebinding is enabled on the [[VTI Targets|VTITarget]] to dynamically handle user-changed bindings.&lt;br /&gt;
|-&lt;br /&gt;
| TriggerAmount || int || What &amp;quot;value&amp;quot; is associated with this Event, i.e. how many bits cheered, subs gifted, tier subscribed, etc.&lt;br /&gt;
|-&lt;br /&gt;
| IsReady || bool || A helper variable to easily mark a Driver as &amp;quot;busy&amp;quot; and unable to refire. Unless overridden in the derived Driver, &amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot; inline&amp;gt;VTICheckReady()&amp;lt;/syntaxhighlight&amp;gt; will default to just returning this value.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Methods&lt;br /&gt;
|-&lt;br /&gt;
! Method !! Return !! Usage&lt;br /&gt;
|-&lt;br /&gt;
| VTICheckReady() || bool || This method will be called by VTI just before attempting to fire the parent [[VTI Targets|VTITarget]]. Return &amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot; inline&amp;gt;true&amp;lt;/syntaxhighlight&amp;gt; if this is ready to be fired.&lt;br /&gt;
|-&lt;br /&gt;
| VTIEventPlay() || void || This method will be called by VTI when its parent [[VTI Targets|VTITarget]] is Fired.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Packaged Drivers ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Drivers Included With VTI&lt;br /&gt;
|-&lt;br /&gt;
! Driver !! Usage&lt;br /&gt;
|-&lt;br /&gt;
| [[VTIAnimTrigger]] || Sets an Animator&amp;#039;s Trigger input when Fired.&lt;br /&gt;
|- &lt;br /&gt;
| [[VTIObjectToggle]] || When Fired, this Driver will enable the target GameObject, wait for &amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot; inline&amp;gt;ResetTime&amp;lt;/syntaxhighlight&amp;gt; seconds, and then disable it again.&lt;br /&gt;
|-&lt;br /&gt;
| [[VTIRadialTripObjectToggle]] || A version of [[VTIObjectToggle]] that will &amp;quot;arm&amp;quot; when Fired, and then wait for a Player to get within a set radius before enabling the target GameObject. Will report unready while Armed and not tripped.&lt;br /&gt;
|-&lt;br /&gt;
| [[VTIRunMethod]] || Utilizes &amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot; inline&amp;gt;SendCustomEvent()&amp;lt;/syntaxhighlight&amp;gt; to trigger a named method on the target UdonBehaviour when Fired. When User Messaging is enabled, this Driver will attempt to set the string variables &amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot; inline&amp;gt;UserName&amp;lt;/syntaxhighlight&amp;gt; and &amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot; inline&amp;gt;Message&amp;lt;/syntaxhighlight&amp;gt; on the target UdonBehaviour.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Custom Drivers ==&lt;br /&gt;
The [[VTI World Kit]] is designed to be easily extensible by both world designers and programmers alike. To this end, custom Drivers are highly recommended and are built to be fairly simple to create. A custom Driver need only implement one method, &amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot; inline&amp;gt;VTIEventPlay()&amp;lt;/syntaxhighlight&amp;gt;. All other functionality can be added around that, or is already handled by the VTIDriverBase base class.&lt;br /&gt;
&lt;br /&gt;
For an in-depth tutorial on creating a custom Driver, see [[Creating Custom VTI Drivers]].&lt;/div&gt;</summary>
		<author><name>Steeveeo</name></author>
	</entry>
</feed>