Stations: Difference between revisions

From VRChat Wiki
Hackebein (talk | contribs)
bring back trivia
~Pausbe (talk | contribs)
Simplify SDK category.
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[File:Station in unity.webp|thumb|Station example in unity.]]
[[File:Station in unity.webp|thumb|Station example in unity.]]{{Noticebox/Official}}
'''Stations''' (often called '''seats''' or '''chairs''') are interactive objects that place a user at a defined position and rotation, optionally applying seated IK and/or custom animations. Stations are commonly used in [[worlds]], and can also be used on [[avatars]] to create attachable seats.  
'''Stations''' (often called '''seats''' or '''chairs''') are interactive objects that place a user at a defined position and rotation, optionally applying seated IK and/or custom animations. Stations are commonly used in [[worlds]], and can also be used on [[avatars]] to create attachable seats.  


Line 11: Line 11:
=== Entering ===
=== Entering ===
Stations require an interactable area. A Collider on the same GameObject is used as the click/interaction area. A Box Collider may be added automatically if none exists.
Stations require an interactable area. A Collider on the same GameObject is used as the click/interaction area. A Box Collider may be added automatically if none exists.
For avatar stations, the station object itself must be enabled when the avatar is uploaded or the station will not work correctly.


=== Exiting ===
=== Exiting ===
By default, users can typically leave a station by moving. Disabling the Station's GameObject will remove (unseat) users currently using it. Disabling only the Collider prevents new users from entering, but does not remove the current user.
By default, users can typically leave a station by moving. Disabling the Station's GameObject will remove (unseat) users currently using it. Disabling only the Collider prevents new users from entering, but does not remove the current user.
On avatars, creators often animate the collider separately from the station object so they can stop new users from entering without ejecting the current rider.


== World ==
== World ==
=== Adding a Station in a world ===
=== Adding a Station in a world ===
In worlds, Stations are commonly used for chairs, ride seats, and vehicle/ride systems that reposition the user.  
In worlds, Stations are commonly used for chairs, ride seats, and vehicle/ride systems that reposition the user.  
For custom world logic, stations are also commonly paired with Udon, including `OnStationEntered` and `OnStationExited` events.


=== Component options ===
=== Component options ===
Line 55: Line 61:
* `Seated`: true when seated [[IK]] is enabled (only when the station's ''Seated'' option is enabled).
* `Seated`: true when seated [[IK]] is enabled (only when the station's ''Seated'' option is enabled).
* `AvatarVersion`: may be used to branch behavior for SDK2 avatars vs SDK3 avatars.<ref>VRChat's documentation notes that stations behave differently for avatars uploaded with older [[SDK]] versions, and recommends using `AvatarVersion` and `InStation` to branch seated animation logic. See {{VRC link|https://creators.vrchat.com/worlds/components/vrc_station/#detecting-sdk2-avatars| VRC Station - Detecting SDK2 Avatars}} - on [[Creators.vrchat.com|''creators.vrchat.com'']]</ref>
* `AvatarVersion`: may be used to branch behavior for SDK2 avatars vs SDK3 avatars.<ref>VRChat's documentation notes that stations behave differently for avatars uploaded with older [[SDK]] versions, and recommends using `AvatarVersion` and `InStation` to branch seated animation logic. See {{VRC link|https://creators.vrchat.com/worlds/components/vrc_station/#detecting-sdk2-avatars| VRC Station - Detecting SDK2 Avatars}} - on [[Creators.vrchat.com|''creators.vrchat.com'']]</ref>
State behaviors used by a station's custom Animator Controller can only affect parameters that already exist on the avatar. Stations cannot create new Animator parameters on the seated avatar.


== Avatar ==
== Avatar ==
Line 61: Line 69:
=== Notes and limitations ===
=== Notes and limitations ===
* Avatars can have up to 6 stations; additional stations are disabled.
* Avatars can have up to 6 stations; additional stations are disabled.
* Some station settings are less useful on avatars because walking typically exits the station, and "Disable Station Exit" may not behave as expected on avatar stations.
* Entry and exit transforms must be within 2 meters of each other at the time of upload. They can be moved farther apart at runtime through animations.
 
* The ''Disable Station Exit'' option is forced to false on avatar stations; users can always leave by walking. In VR, stations can also be exited by pulling the trigger.
* ''Player Mobility'' has no practical effect on avatar stations because any walking input will exit the station regardless of the setting.
* If an avatar station is enabled by default, it can remain active even when avatar animations are hidden by another user's safety settings.


== Trivia ==
== Trivia ==
Line 75: Line 85:


== References ==
== References ==
* [https://vrc.school/docs/Other/Stations VRC School: Stations]
<references/>
<references/>
[[Category:SDK]]
[[Category:Needs images]]

Latest revision as of 00:54, 16 April 2026

Station example in unity.
V · EThis is an official VRChat information page!
It is reviewed and approved by the VRCWiki Team. Learn how to contribute to this page by reading the Contribution Guide.

Stations (often called seats or chairs) are interactive objects that place a user at a defined position and rotation, optionally applying seated IK and/or custom animations. Stations are commonly used in worlds, and can also be used on avatars to create attachable seats.

Overview

A Station is typically implemented with a creator component that users interact with to "sit" (enter the station). When a user enters a station, the station can:

  • Move the user to a defined entry transform.
  • Optionally treat the user as seated (seated IK) and/or apply a custom animation controller.
  • Optionally restrict movement/exit or allow switching between stations.

General behavior

Entering

Stations require an interactable area. A Collider on the same GameObject is used as the click/interaction area. A Box Collider may be added automatically if none exists.

For avatar stations, the station object itself must be enabled when the avatar is uploaded or the station will not work correctly.

Exiting

By default, users can typically leave a station by moving. Disabling the Station's GameObject will remove (unseat) users currently using it. Disabling only the Collider prevents new users from entering, but does not remove the current user.

On avatars, creators often animate the collider separately from the station object so they can stop new users from entering without ejecting the current rider.

World

Adding a Station in a world

In worlds, Stations are commonly used for chairs, ride seats, and vehicle/ride systems that reposition the user.

For custom world logic, stations are also commonly paired with Udon, including `OnStationEntered` and `OnStationExited` events.

Component options

The VRC_Station component provides the following commonly used options:

Option Description
Player Mobility Controls whether the user can move while in the station (Mobile / Immobilize / Immobilize For Vehicle).
Can Use Station From Station Whether a user can switch directly into another station while currently seated.
Animation Controller (optional) Overrides the default seating animation with a custom controller.
Disable Station Exit Prevents exiting by usual means; creators must provide an explicit way to unseat.
Seated Enables seated behavior (also affects the avatar `Seated` parameter when used).
Station Enter Player Location Transform used as the user's position when entering.
Station Exit Player Location Transform used as the user's position when exiting.
Controls Object Allows the seated user to control a target object (for example, a vehicle seat).

Animator integration

Stations can drive Animator logic using built-in parameters:

  • `InStation`: true when the avatar is using a station (even if seated IK is not enabled).
  • `Seated`: true when seated IK is enabled (only when the station's Seated option is enabled).
  • `AvatarVersion`: may be used to branch behavior for SDK2 avatars vs SDK3 avatars.[1]

State behaviors used by a station's custom Animator Controller can only affect parameters that already exist on the avatar. Stations cannot create new Animator parameters on the seated avatar.

Avatar

Stations can also be placed on avatars to create "seats" that move with the avatar.

Notes and limitations

  • Avatars can have up to 6 stations; additional stations are disabled.
  • Entry and exit transforms must be within 2 meters of each other at the time of upload. They can be moved farther apart at runtime through animations.
  • The Disable Station Exit option is forced to false on avatar stations; users can always leave by walking. In VR, stations can also be exited by pulling the trigger.
  • Player Mobility has no practical effect on avatar stations because any walking input will exit the station regardless of the setting.
  • If an avatar station is enabled by default, it can remain active even when avatar animations are hidden by another user's safety settings.

Trivia

  • Stations were mistakenly enabled on avatars sometime before May 11th 2018, before being disabled on the May 12th 2018 update (2018.1.2) as it was a planned feature released early[2]

See also

Official resources

References

  1. VRChat's documentation notes that stations behave differently for avatars uploaded with older SDK versions, and recommends using `AvatarVersion` and `InStation` to branch seated animation logic. See VRC Station - Detecting SDK2 Avatars - on creators.vrchat.com
  2. "VRChat 2018.1.2" on Steam News Hub. Dated May 10 2018. Retrieved December 7, 2024.