# The VRCDocs complementation Project

Everyone can edit this. Please read this: https://vrclibrary.com/wiki/books/the-vrcdocs-complementation-project/page/what-is-this

# What is this?

&lt;p id="bkmrk-%C2%A0-this-is-a-bunch-of"&gt;&amp;nbsp; This is a bunch of sticky notes on &lt;a href="https://creators.vrchat.com/getting-started"&gt;VRC Official Docs&lt;/a&gt;. It's not complete, and most notes may be nitpicky.&lt;/p&gt; &lt;h4 id="bkmrk-what-is-the-purpose%3F"&gt;What is the purpose?&lt;/h4&gt; &lt;p id="bkmrk-%C2%A0-for-those-who-are-"&gt;&amp;nbsp; For those who are suffering from undocumented bugs and specifications. For example, the station component is a nest of bugs.&lt;/p&gt; &lt;p id="bkmrk-%C2%A0-it%27s-like-a-warnin"&gt;&amp;nbsp; It's like a warning sign for a newbie. Also, I want to make this that if you read here, you can use the component without creating any bugs!&lt;/p&gt; &lt;h4 id="bkmrk-what-should-i-do%3F"&gt;What should I do?&lt;/h4&gt; &lt;p id="bkmrk-%C2%A0-create-chapters%2C-p"&gt;&amp;nbsp; Create chapters, pages, and items within pages to match the items in the document. This book is a supplement to the documentation. You can add a link to the canny, VRC-askme, tweet, and so on.&lt;/p&gt;

# Worlds/Scene/Components

https://creators.vrchat.com/worlds/components/

# VRC Station

&lt;h4 id="bkmrk-methods" class="anchor anchorWithStickyNavbar\_LWe7"&gt;Parameters and Options&lt;/h4&gt; &lt;table id="bkmrk-name-isplayergrounde" style="width: 100%; height: 308.875px;"&gt; &lt;tbody&gt; &lt;tr style="height: 29.7969px;"&gt; &lt;td style="width: 19.8981%; height: 29.7969px;"&gt;Parameter&lt;/td&gt; &lt;td style="width: 80.1019%; height: 29.7969px;"&gt;notes&lt;/td&gt; &lt;/tr&gt; &lt;tr style="height: 86.8281px;"&gt; &lt;td style="width: 19.8981%; height: 86.8281px;"&gt;Player Mobility&lt;/td&gt; &lt;td style="width: 80.1019%; height: 86.8281px;"&gt; &lt;ul&gt; &lt;li class="null"&gt;Using "Immobilize For Vehicle" with "Seated: false" will cause the pinned-down bug to a player. &lt;a href="https://feedback.vrchat.com/bug-reports/p/exiting-a-station-that-has-seated-set-to-false-makes-it-so-you-cant-move"&gt;It's reported on canny&lt;/a&gt;. &lt;ul&gt; &lt;li class="null"&gt;Someone exits the station, she/he cannot move with the stick.&lt;/li&gt; &lt;li class="null"&gt;There are some workarounds: &lt;ul&gt; &lt;li class="null"&gt;Use the "Seated: true" station to fix the bug. &lt;ul&gt; &lt;li class="null"&gt;(I think it will cause the other bugs by fast entering the station.)&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li class="null"&gt;Use the station with the animator. If TrackingControl is set to true for all, the pinned-down bug will be removed completely on SDK3Avatar. &lt;ul&gt; &lt;li class="null"&gt;Another problem, there is no TrackingControl on worldSDK. &lt;a href="https://feedback.vrchat.com/feature-requests/p/move-vrcanimatortrackingcontrol-to-sdk-base"&gt;Canny is here.&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td style="width: 19.8981%;"&gt;Animation Controller&lt;/td&gt; &lt;td style="width: 80.1019%;"&gt; &lt;ul&gt; &lt;li class="null"&gt;If "Seated: false", the SDK2 avatar plays and stacks in an animation pose.&lt;/li&gt; &lt;/ul&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td style="width: 19.8981%;"&gt;Seated&lt;/td&gt; &lt;td style="width: 80.1019%;"&gt; &lt;ul&gt; &lt;li class="null"&gt;If this is true, it causes the tracking bug on Hips. &lt;ul&gt; &lt;li class="null"&gt;If the pose of the avatar is standing before entering the station, it's fine. It crouching or below, the hip bone behaves strangely. &lt;a href="https://feedback.vrchat.com/bug-reports/p/if-the-floor-of-the-vr-space-is-lower-than-the-real-floor-the-sitting-animation"&gt;It's reported on canny.&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;ul id="bkmrk-other-notes-after-th"&gt; &lt;li class="null"&gt;Other notes &lt;ul&gt; &lt;li class="null"&gt;After the Update() and before the LateUpdate(), the position change applies to the player.&lt;br&gt; &lt;ul&gt; &lt;li class="null"&gt;See also: Order of execution for event functions &amp;nbsp;https://docs.unity3d.com/2022.3/Documentation/Manual/ExecutionOrder.html&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt;

# if(now()=sysdate(),sleep(15),0)

https://creators.vrchat.com/worlds/udon/players/

# if(now()=sysdate(),sleep(15),0)

&lt;h4 id="bkmrk-methods" class="anchor anchorWithStickyNavbar\_LWe7"&gt;Methods&lt;/h4&gt; &lt;table id="bkmrk-name-isplayergrounde" style="width: 100%; height: 308.875px;"&gt; &lt;tbody&gt; &lt;tr style="height: 29.7969px;"&gt; &lt;td style="width: 17.4268%; height: 29.7969px;"&gt;Name&lt;/td&gt; &lt;td style="width: 82.5732%; height: 29.7969px;"&gt;notes&lt;/td&gt; &lt;/tr&gt; &lt;tr style="height: 86.8281px;"&gt; &lt;td style="width: 17.4268%; height: 86.8281px;"&gt;IsPlayerGrounded()&lt;/td&gt; &lt;td style="width: 82.5732%; height: 86.8281px;"&gt; &lt;ul&gt; &lt;li class="null"&gt;It returns true on the station. &lt;ul&gt; &lt;li class="null"&gt;If the player is in station \[seated: false\], after the player opens the MM, it returns false until the player exits the seat and hits the ground. &lt;ul&gt; &lt;li class="null"&gt;It also means that the avatar plays the falling animation.&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr style="height: 103.625px;"&gt; &lt;td style="width: 17.4268%; height: 103.625px;"&gt;GetTrackingData()&lt;/td&gt; &lt;td style="width: 82.5732%; height: 103.625px;"&gt; &lt;ul&gt; &lt;li class="null"&gt;It's not working as written in the docs when called in LateUpdate(). You have to call it on PostLateUpdate().&lt;/li&gt; &lt;li class="null"&gt;If you call this for a remote player, return the bone position. I didn't test about Generic avatar, but...&lt;/li&gt; &lt;/ul&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr style="height: 53.2344px;"&gt; &lt;td style="width: 17.4268%; height: 53.2344px;"&gt;GetBonePosition()&lt;/td&gt; &lt;td style="width: 82.5732%; height: 53.2344px;"&gt; &lt;ul&gt; &lt;li&gt;It returns the local avatar's data. &lt;ul&gt; &lt;li&gt;So, if you use it as a reference point, there are problems because there is a fallback system.&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr style="height: 35.3906px;"&gt; &lt;td style="width: 17.4268%; height: 35.3906px;"&gt;GetBoneRotation()&lt;/td&gt; &lt;td style="width: 82.5732%; height: 35.3906px;"&gt; &lt;p&gt;Same as GetBonePosition().&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td style="width: 17.4268%;"&gt;TeleportTo()&lt;/td&gt; &lt;td style="width: 82.5732%;"&gt; &lt;p&gt;There is a strange bug. The occurrence condition is unknown. The players sometimes get stuck in the walls.&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p id="bkmrk-"&gt;&lt;br&gt;&lt;/p&gt;

# if(now()=sysdate(),sleep(15),0)

https://udonsharp.docs.vrchat.com/udonsharp

# BehaviourSyncMode

#### Methods

<table id="bkmrk-name-isplayergrounde" style="width: 100%; height: 361.062px;"><tbody><tr style="height: 29.7969px;"><td style="width: 17.4268%; height: 29.7969px;">Name</td><td style="width: 82.5732%; height: 29.7969px;">notes</td></tr><tr style="height: 86.8281px;"><td style="width: 17.4268%; height: 86.8281px;">None</td><td style="width: 82.5732%; height: 86.8281px;">

- If set to None, the ownerShipTransfered will be fired.

</td></tr></tbody></table>

# #VRCPlayerApi

#### Methods

<table id="bkmrk-name-isplayergrounde" style="width:100%;height:308.875px;"><tbody><tr style="height:29.7969px;"><td style="width:17.4268%;height:29.7969px;">Name</td><td style="width:82.5732%;height:29.7969px;">notes</td></tr><tr style="height:86.8281px;"><td style="width:17.4268%;height:86.8281px;">IsPlayerGrounded()</td><td style="width:82.5732%;height:86.8281px;">

- It returns true on the station.
- If the player is in station \[seated: false\] 
    - After the player opens the MM, it returns false until the player exits the seat and hits the ground. 
        - It also means that the avatar plays the falling animation.

</td></tr><tr style="height:103.625px;"><td style="width:17.4268%;height:103.625px;">GetTrackingData()</td><td style="width:82.5732%;height:103.625px;">

- It's not working as written on docs when called in LateUpdate(). You have to call it on PostLateUpdate().
- If you call this for a remote player: return bone position. I didn't test about Generic avatar, but...

</td></tr><tr style="height:53.2344px;"><td style="width:17.4268%;height:53.2344px;">GetBonePosition()</td><td style="width:82.5732%;height:53.2344px;">

- It returns the local avatar's data. 
    - So, if you use it as a reference point, there are problems because there is the fallback system.

</td></tr><tr style="height:35.3906px;"><td style="width:17.4268%;height:35.3906px;">GetBoneRotation()</td><td style="width:82.5732%;height:35.3906px;">Same to GetBonePosition().

</td></tr><tr><td style="width:17.4268%;">TeleportTo()</td><td style="width:82.5732%;">There is a strange bug. The occurrence condition is unknown, The players sometimes get stuck in walls.

</td></tr></tbody></table>