Stations: Difference between revisions

From VRChat Wiki
jetdog8808 (talk | contribs)
m removing categories
~Pausbe (talk | contribs)
Simplify SDK category.
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Stub|Not much information here! Please expand and proofread, in reference to [[VRCWiki:Manual_of_Style|Manual of Style]].}}
[[File:Station in unity.webp|thumb|Station example in unity.]]{{Noticebox/Official}}
[[File:Station in unity.webp|thumb|Station example in unity.]]
'''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''', or colloquially known as ''seats'', or ''chairs'' are interactive assets in the VRChat World, and Avatar [[SDK]], allowing a user to be seated in the assigned spot. Stations primarily serve the function of being used as chairs but can also be used to build vehicles, manipulate the player's position and rotation or override the player's animations with a custom animation controller.


== Parameters ==
== 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:
{| class="wikitable"
{| class="wikitable"
|+
! Option
!Parameter
! Description
!Description
!Options
|-
|-
|Player Mobility
| Player Mobility
|Determines if the Player can move while seated.
| Controls whether the user can move while in the station (Mobile / Immobilize / Immobilize For Vehicle).
|Mobile, Immobilize, Immobilize for Vehicle
|-
|-
|Can use Station from Station
| Can Use Station From Station
|Allows the user to switch stations whilst seated.
| Whether a user can switch directly into another station while currently seated.
|True/False
|-
|-
|Animation Controller (optional)
| Animation Controller (optional)
|Overrides the player's animations whilst seated.
| Overrides the default seating animation with a custom controller.
|Animation Controller
|-
|-
|Disable Station Exit
| Disable Station Exit
|Disallows the player from exiting by normal means.
| Prevents exiting by usual means; creators must provide an explicit way to unseat.
|True/False
|-
|-
|Seated
| Seated
|Should the player be seated in the station
| Enables seated behavior (also affects the avatar `Seated` parameter when used).
|True/False
|-
|-
|Station Enter Player Location
| Station Enter Player Location
|Transform that determines where the player should be seated.
| Transform used as the user's position when entering.
|Transform
|-
|-
|Station Exit Player Location
| Station Exit Player Location
|Transform that determines where the player should be unseated.
| Transform used as the user's position when exiting.
|Transform
|-
|-
|Controls Object
| Controls Object
|Determine an object controlled by the station such as a vehicle
| Allows the seated user to control a target object (for example, a vehicle seat).
|GameObject
|}
|}
=== 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.<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 ==
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 ==
== 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<ref>https://store.steampowered.com/news/app/438100/view/5318144537297815713</ref>.
* 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<ref>[https://store.steampowered.com/news/app/438100/view/5318144537297815713 "VRChat 2018.1.2"] on ''[https://store.steampowered.com/news/app/438100 Steam News Hub]''. Dated May 10 2018. Retrieved December 7, 2024.</ref>
*
 
== See also ==
* [[Udon]]
 
== Official resources ==
* {{VRC link|https://creators.vrchat.com/worlds/components/vrc_station| VRC Station}} - on [[Creators.vrchat.com|''creators.vrchat.com'']]


== References ==
== References ==
* [https://vrc.school/docs/Other/Stations VRC School: Stations]
<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.