### Handle Video Start Event
Source: https://docs.vrchat.com/docs/udon-video-sync-player
This event is triggered locally when the video begins playing. It handles the initial setup for both the owner and other users, with differing logic handled in 'UpdateTimeAndOffset'.
```Udon
// Represents the 'OnVideoStart' event.
// This event is called locally when the video playback begins.
// Further logic for owner vs. non-owner is delegated to 'UpdateTimeAndOffset'.
```
--------------------------------
### QEMU SMBIOS Configuration Example
Source: https://docs.vrchat.com/docs/using-vrchat-in-a-virtual-machine
This example demonstrates how to set various SMBIOS types using QEMU command-line arguments. These settings are often generated by scripts to match real hardware and are important for VM identification and compatibility.
```shell
-smbios 'type=0,version=F31o,vendor=American Megatrends International,, LLC.,uefi=on,release=5.17,date=12/03/2020' \
-smbios 'type=1,version=-CF,sku=Default string,product=X570 AORUS ULTRA,manufacturer=Gigabyte Technology Co.,, Ltd.,uuid=d30dbc2a-d9b0-11ed-afa1-0242ac120002,serial=Default string,family=X570 MB' \
-smbios 'type=2,asset=Default string,version=Default string,product=X570 AORUS ULTRA,location=Default string,manufacturer=Gigabyte Technology Co.,, Ltd.,serial=Default string' \
-smbios 'type=3,asset=Default string,version=Default string,sku=Default string,manufacturer=Default string,serial=Default string' \
-smbios 'type=4,asset=Unknown,version=AMD Ryzen 9 5950X 16-Core Processor ,part=Zen,manufacturer=Advanced Micro Devices,, Inc.,serial=Unknown,sock_pfx=AM4' \
-smbios 'type=11,value=Default string' \
-smbios 'type=17,bank=Bank 0,asset=Not Specified,part=OV_8GR1,manufacturer=OEM_VENDOR,speed=2666,serial=OEM33161,loc_pfx=DIMM 0'
```
--------------------------------
### VRChat Client Installation Paths
Source: https://docs.vrchat.com/docs/using-build-test
Provides common default installation paths for the VRChat client on different platforms (Steam, Oculus, Viveport). These paths are used to configure Unity to find the correct VRChat executable for testing.
```text
Steam: C:\Program Files (x86)\Steam\steamapps\common\VRChat\VRChat.exe
Oculus: C:\Program Files\Oculus\Software\Software\vrchat-vrchat\VRChat.exe
Viveport: C:\Viveport\ViveApps\469fbcbb-bfde-40b5-a7d4-381249d387cd\1597468388\VRChat.exe
```
--------------------------------
### VRChat API Request Example (JSON)
Source: https://docs.vrchat.com/docs/index
Demonstrates a generic GET request to the VRChat API, requiring authentication. It outlines the structure for successful (200) and unsuccessful (400) JSON responses.
```json
{
"api": {
"method": "get",
"url": "",
"auth": "required",
"results": {
"codes": [
{
"name": "",
"code": "{}",
"language": "json",
"status": 200
},
{
"name": "",
"code": "{}",
"language": "json",
"status": 400
}
]
},
"params": [],
"examples": {
"codes": []
}
}
}
```
--------------------------------
### FFmpeg: Enable Fast Start for MP4
Source: https://docs.vrchat.com/docs/video-players
This command snippet demonstrates how to use FFmpeg to enable the 'fast start' option for MP4 files. Fast start optimizes videos for streaming by allowing playback to begin before the entire file is downloaded.
```bash
ffmpeg -i input.mp4 -movflags +faststart output.mp4
```
--------------------------------
### VRChat API GET Request Example (JSON)
Source: https://docs.vrchat.com/docs/index
This snippet shows a typical GET request to the VRChat API. It specifies that authentication is required and provides example JSON responses for both successful (200) and error (400) status codes. The API endpoint and parameters are not detailed in this specific entry.
```json
{
"api": {
"method": "get",
"url": "",
"auth": "required",
"results": {
"codes": [
{
"name": "",
"code": "{}",
"language": "json",
"status": 200
},
{
"name": "",
"code": "{}",
"language": "json",
"status": 400
}
],
"params": []
}
},
"title": "VRChat 2023.1.2p4"
}
```
```json
{
"api": {
"method": "get",
"url": "",
"auth": "required",
"results": {
"codes": [
{
"name": "",
"code": "{}",
"language": "json",
"status": 200
},
{
"name": "",
"code": "{}",
"language": "json",
"status": 400
}
],
"params": []
}
},
"title": "VRChat 2023.1.2p3"
}
```
```json
{
"api": {
"method": "get",
"url": "",
"auth": "required",
"results": {
"codes": [
{
"name": "",
"code": "{}",
"language": "json",
"status": 200
},
{
"name": "",
"code": "{}",
"language": "json",
"status": 400
}
],
"params": []
}
},
"title": "VRChat 2023.1.2p2"
}
```
```json
{
"api": {
"method": "get",
"url": "",
"auth": "required",
"results": {
"codes": [
{
"name": "",
"code": "{}",
"language": "json",
"status": 200
},
{
"name": "",
"code": "{}",
"language": "json",
"status": 400
}
],
"params": []
}
},
"title": "VRChat 2023.1.2p1"
}
```
--------------------------------
### VRChat API GET Request Example (JSON)
Source: https://docs.vrchat.com/docs/index
This snippet demonstrates a typical GET request to a VRChat API endpoint. It includes common parameters like authentication requirements and expected response codes (200 for success, 400 for bad request). The actual URL and specific parameters would vary based on the endpoint.
```json
{
"api": {
"method": "get",
"url": "",
"auth": "required",
"results": {
"codes": [
{
"name": "",
"code": "{}",
"language": "json",
"status": 200
},
{
"name": "",
"code": "{}",
"language": "json",
"status": 400
}
],
"params": []
}
},
"title": "VRChat 2021.4.2p1",
"type": "basic"
}
```
--------------------------------
### VRChat API Request Example (JSON)
Source: https://docs.vrchat.com/docs/index
This snippet demonstrates a typical VRChat API request structure. It includes placeholder JSON for successful (200) and erroneous (400) responses. The API method is GET and requires authentication.
```json
{
"api": {
"method": "get",
"url": "",
"auth": "required",
"results": {
"codes": [
{
"name": "",
"code": "{}",
"language": "json",
"status": 200
},
{
"name": "",
"code": "{}",
"language": "json",
"status": 400
}
],
"params": []
}
}
}
```
--------------------------------
### VRChat API Request (GET)
Source: https://docs.vrchat.com/docs/index
Demonstrates a GET request to the VRChat API. This request requires authentication and has no parameters. The URL is not specified in this example.
```javascript
fetch('', {
method: 'get',
headers: {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
}
});
```
--------------------------------
### VRChat API GET Request Example (JSON)
Source: https://docs.vrchat.com/docs/index
This snippet demonstrates a typical GET request to the VRChat API, including success (200) and error (400) responses. It outlines the structure of the expected JSON payload.
```json
{
"api": {
"method": "get",
"url": "",
"auth": "required",
"results": {
"codes": [
{
"name": "",
"code": "{}",
"language": "json",
"status": 200
},
{
"name": "",
"code": "{}",
"language": "json",
"status": 400
}
],
"params": []
}
},
"title": "VRChat 2021.3.4p3",
"type": "basic",
"slug": "vrchat-202134p3"
}
```
--------------------------------
### PhysBone Parameter Examples
Source: https://docs.vrchat.com/docs/physbones
Examples of how parameters are used within the PhysBone component to control avatar bone behavior like grabbing, posing, angle, stretch, and squish. These parameters are typically booleans or floats representing different states or values.
```VRChat
{parameter}_IsGrabbed
[Bool] Whether the bones currently being grabbed
```
```VRChat
{parameter}_IsPosed
[Bool] Whether the bones been posed after being grabbed
```
```VRChat
{parameter}_Angle
[Float] Range of 0.0-1.0. Normalized angle between the end bone's current position and its original rest position, with a range of 0-180 degrees mapping to a parameter range of 0-1. In other words, if you rotate a bone to completely opposite its start direction, this parameter has a value of 1.0.
```
```VRChat
{parameter}_Stretch
[Float] Range of 0.0-1.0. How close the bones are to their maximum stretch length.
```
```VRChat
{parameter}_Squish
[Float] Range of 0.0-1.0. How close the bones are to their maximum squish length.
```
--------------------------------
### VRChat OSC Avatar Parameter Configuration Example (JSON)
Source: https://docs.vrchat.com/docs/osc-avatar-parameters
An example JSON configuration file snippet for VRChat OSC. It defines avatar parameters, mapping them to OSC input and output addresses and data types. This allows for customization of how OSC messages interact with avatar parameters and other applications.
```json
{
"id" : "avtr_9d58037b-23c7-4c9c-adbd-b1338178cd81",
"name" : "PurpleMomo",
"parameters" : [
{
"name" : "Face",
"input" : {
"address" : "/avatar/parameters/Face",
"type" : "Int"
},
"output" : {
"address" : "/ableton/trackselect",
"type" : "Float"
}
},
{
"name" : "VelocityZ",
"output" : {
"address" : "/avatar/parameters/VelocityZ",
"type" : "Float"
}
}
]
}
```
--------------------------------
### PhysBone Dependency Order Example
Source: https://docs.vrchat.com/docs/vrchat-202513-openbeta
Demonstrates how VRCPhysBone components are ordered by dependency, allowing for nested configurations. The maximum depth for dependencies is limited to 8 levels.
```VRCPhysBone
VRCPhysBone/VRCPhysBoneCollider
```
--------------------------------
### VRChat Configuration Example (JSON)
Source: https://docs.vrchat.com/docs/configuration-file
This is a sample VRChat configuration file in JSON format. It demonstrates various settings that can be adjusted to customize VRChat's behavior, including particle system limits, cache directory, and presence settings. This file must be named 'config.json' and placed in the VRChat application data directory.
```json
{
"betas": [
"particle_system_limiter"
],
"ps_max_particles": 50000,
"ps_max_systems": 200,
"ps_max_emission": 5000,
"ps_max_total_emission": 40000,
"ps_mesh_particle_divider": 60,
"ps_mesh_particle_poly_limit": 50000,
"ps_collision_penalty_high": 50,
"ps_collision_penalty_med": 30,
"ps_collision_penalty_low": 10,
"ps_trails_penalty": 10,
"dynamic_bone_max_affected_transform_count" : 32,
"dynamic_bone_max_collider_check_count" : 8,
"cache_directory" : "C:/VRCCache/"
}
```
--------------------------------
### VRChat OSC Eye Tracking Example Script (Unity)
Source: https://docs.vrchat.com/docs/osc-eye-tracking
An example C# script for Unity to send eye tracking data to VRChat via OSC. This script requires setting up 'eye root' and 'eye target' transforms and the user's interpupillary distance. It's intended as a starting point for prototyping.
```csharp
/*
This script is an example and should be used for educational purposes.
It requires specific transforms to be set up in your Unity project:
- "eye root": The origin point for eye tracking calculations.
- "eye target": A transform representing the target the eyes are looking at.
Ensure you set the user's interpupillary distance (IPD) correctly.
Refer to the VRChat OSC documentation for detailed explanations of each address and data format.
*/
using UnityEngine;
// Assuming you have an OSC library like "VRC OSC Control" or similar integrated
public class VRChatEyeTracker : MonoBehaviour
{
public Transform eyeRoot;
public Transform eyeTarget;
public float ipd = 0.064f; // Interpupillary distance in meters (e.g., 64mm)
// OSC Address mappings (example)
private const string OSC_EYE_CLOSED = "/tracking/eye/EyesClosedAmount";
private const string OSC_EYE_CENTER_PITCH_YAW = "/tracking/eye/CenterPitchYaw";
// Add other OSC addresses as needed
void Update()
{
if (eyeRoot == null || eyeTarget == null)
{
Debug.LogWarning("Eye Root or Eye Target not assigned.");
return;
}
// Calculate Eye Closed Amount (Example: based on a simple visual cue or input)
// In a real scenario, this would come from your eye tracking hardware data.
float eyeClosedAmount = Mathf.Clamp01(Input.GetAxis("Fire1")); // Placeholder
SendOscMessage(OSC_EYE_CLOSED, eyeClosedAmount);
// Calculate Center Pitch and Yaw
Vector3 lookDirection = eyeTarget.position - eyeRoot.position;
lookDirection.Normalize();
// Convert direction to Pitch and Yaw (degrees)
// This calculation might need adjustment based on your coordinate system and definition of pitch/yaw.
float pitch = Vector3.SignedAngle(Vector3.up, lookDirection, eyeRoot.right);
float yaw = Vector3.SignedAngle(Vector3.up, lookDirection, -eyeRoot.forward);
// VRChat expects pitch (down is positive) and yaw (right is positive)
// Adjust signs if your calculations are inverted.
float vrchatPitch = -pitch;
float vrchatYaw = yaw;
SendOscMessage(OSC_EYE_CENTER_PITCH_YAW, vrchatPitch, vrchatYaw);
// Implement sending other data like CenterPitchYawDist, CenterVec, etc. as needed
}
// Placeholder function to send OSC messages
void SendOscMessage(string address, params object[] values)
{
// Replace with your actual OSC sending logic
// Example: OscMessage message = new OscMessage(address, values);
// OscManager.Instance.Send(message);
// Debug.Log($"Sending OSC: {address} with values: {string.Join(", ", values)}");
}
}
```
--------------------------------
### GET /websites/vrchat/vrchat-202231
Source: https://docs.vrchat.com/docs/index
Retrieves information about the VRChat 2022.3.1 release.
```APIDOC
## GET /websites/vrchat/vrchat-202231
### Description
This endpoint retrieves details related to the VRChat 2022.3.1 release. It requires authentication.
### Method
GET
### Endpoint
/websites/vrchat/vrchat-202231
### Parameters
This endpoint does not have any documented parameters.
### Request Example
This endpoint does not require a request body.
### Response
#### Success Response (200)
This endpoint returns a JSON object containing information about the VRChat 2022.3.1 release. The exact structure is not specified but is expected to be a JSON object.
#### Response Example
```json
{}
```
#### Error Response (400)
Returns an empty JSON object indicating a bad request.
#### Response Example
```json
{}
```
```
--------------------------------
### GET /websites/vrchat/vrchat-202231p1
Source: https://docs.vrchat.com/docs/index
Retrieves information about the VRChat 2022.3.1p1 release.
```APIDOC
## GET /websites/vrchat/vrchat-202231p1
### Description
This endpoint retrieves details related to the VRChat 2022.3.1p1 release. It requires authentication.
### Method
GET
### Endpoint
/websites/vrchat/vrchat-202231p1
### Parameters
This endpoint does not have any documented parameters.
### Request Example
This endpoint does not require a request body.
### Response
#### Success Response (200)
This endpoint returns a JSON object containing information about the VRChat 2022.3.1p1 release. The exact structure is not specified but is expected to be a JSON object.
#### Response Example
```json
{}
```
#### Error Response (400)
Returns an empty JSON object indicating a bad request.
#### Response Example
```json
{}
```
```
--------------------------------
### GET /websites/vrchat/vrchat-202231p2
Source: https://docs.vrchat.com/docs/index
Retrieves information about the VRChat 2022.3.1p2 release.
```APIDOC
## GET /websites/vrchat/vrchat-202231p2
### Description
This endpoint retrieves details related to the VRChat 2022.3.1p2 release. It requires authentication.
### Method
GET
### Endpoint
/websites/vrchat/vrchat-202231p2
### Parameters
This endpoint does not have any documented parameters.
### Request Example
This endpoint does not require a request body.
### Response
#### Success Response (200)
This endpoint returns a JSON object containing information about the VRChat 2022.3.1p2 release. The exact structure is not specified but is expected to be a JSON object.
#### Response Example
```json
{}
```
#### Error Response (400)
Returns an empty JSON object indicating a bad request.
#### Response Example
```json
{}
```
```
--------------------------------
### GET /websites/vrchat/vrchat-202241p1
Source: https://docs.vrchat.com/docs/index
Retrieves information about the VRChat 2022.4.1p1 release.
```APIDOC
## GET /websites/vrchat/vrchat-202241p1
### Description
This endpoint retrieves details related to the VRChat 2022.4.1p1 release.
### Method
GET
### Endpoint
/websites/vrchat/vrchat-202241p1
### Parameters
This endpoint does not have any documented parameters.
### Request Example
This endpoint does not require a request body.
### Response
#### Success Response (200)
This endpoint returns a JSON object containing information about the VRChat 2022.4.1p1 release. The exact structure is not specified but is expected to be a JSON object.
#### Response Example
```json
{}
```
```
--------------------------------
### VRChat Website Runtime Script
Source: https://docs.vrchat.com/docs/choosing-your-sdk
Loads the runtime JavaScript for the VRChat website. This script is essential for the initial setup and execution of the website's dynamic features.
```html
```
--------------------------------
### GET /websites/vrchat/vrchat-202241
Source: https://docs.vrchat.com/docs/index
Retrieves information about the VRChat 2022.4.1 release.
```APIDOC
## GET /websites/vrchat/vrchat-202241
### Description
This endpoint retrieves details related to the VRChat 2022.4.1 release. It requires authentication.
### Method
GET
### Endpoint
/websites/vrchat/vrchat-202241
### Parameters
This endpoint does not have any documented parameters.
### Request Example
This endpoint does not require a request body.
### Response
#### Success Response (200)
This endpoint returns a JSON object containing information about the VRChat 2022.4.1 release. The exact structure is not specified but is expected to be a JSON object.
#### Response Example
```json
{}
```
#### Error Response (400)
Returns an empty JSON object indicating a bad request.
#### Response Example
```json
{}
```
```
--------------------------------
### Unity DefaultExecutionOrder for Udon
Source: https://docs.vrchat.com/docs/vrchat-202441p3
Explains how Unity's DefaultExecutionOrder is respected in Udon script initialization, ensuring consistent start order regardless of transform hierarchy.
```csharp
// DefaultExecutionOrder should be respected even in Start events.
// Transform hierarchy no longer plays a role in initialization order.
```
--------------------------------
### Load URL and Handle Success with VRCStringDownloader (C#)
Source: https://docs.vrchat.com/docs/string-loading
This snippet shows a C# UdonSharp script for VRChat. It defines a class ResultBytesExample that inherits from UdonSharpBehaviour. The Start method initiates a URL download using VRCStringDownloader.LoadUrl, and the OnStringLoadSuccess method is designed to handle the successful download, taking an IVRCStringDownload result as input. It requires the VRC.Udon and VRC.SDK3.Components namespaces.
```csharp
using UdonSharp;
using VRC.SDKBase;
using VRC.Udon;
using VRC.Core;
public class ResultBytesExample : UdonSharpBehaviour
{
[SerializeField]
private VRCUrl url;
void Start()
{
VRCStringDownloader.LoadUrl(url, (IUdonEventReceiver)this);
}
public override void OnStringLoadSuccess(IVRCStringDownload result)
{
// Handle successful download here
}
}
```
--------------------------------
### Create Custom LoadUrl Script
Source: https://docs.vrchat.com/docs/string-loading
Guides on creating your own script for the LoadUrl functionality in VRchat. This allows for custom handling of downloaded content.
```csharp
using UnityEngine;
using VRC.SDKBase;
public class CustomLoadUrl : MonoBehaviour
{
public void LoadMyCustomURL(string url)
{
VRCStringDownloader.LoadURL(new System.Uri(url), CustomStringLoadSuccess, CustomStringLoadError);
}
private void CustomStringLoadSuccess(string str, VRC.Networking.RCP.AsyncOperation asyncOp)
{
// Custom logic for handling the downloaded string
Debug.Log("Custom download complete: " + str);
}
private void CustomStringLoadError(string error, VRC.Networking.RCP.AsyncOperation asyncOp)
{
// Custom error handling
Debug.LogError("Custom download failed: " + error);
}
}
```
--------------------------------
### Detecting SDK2 Avatar Version
Source: https://docs.vrchat.com/docs/vrc_station
This example demonstrates how to check the AvatarVersion parameter to differentiate between SDK2 and SDK3 avatars in VRChat. It's crucial for applying correct animations and behaviors.
```VRChat Animator
if (AvatarVersion < 3) {
// Handle SDK2 avatar
} else {
// Handle SDK3 avatar
}
```
--------------------------------
### VRChat API Response Example (JSON)
Source: https://docs.vrchat.com/docs/index
This snippet shows a typical successful (200) and error (400) response from the VRChat API. It is used for general API interactions and does not have specific input requirements.
```json
{}
```
```json
{}
```
--------------------------------
### GET /websites/vrchat/additional-options
Source: https://docs.vrchat.com/docs/index
Retrieves information about Additional Options. This endpoint details various additional options available within VR Chat.
```APIDOC
## GET /websites/vrchat/additional-options
### Description
Retrieves information about Additional Options. This endpoint details various additional options available within VR Chat.
### Method
GET
### Endpoint
/websites/vrchat/additional-options
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Request Example
```json
{}
```
### Response
#### Success Response (200)
- **None** - Description: The response contains information about additional options.
#### Response Example
```json
{
"example": "{}"
}
```
```
--------------------------------
### VRChat API Example (JSON)
Source: https://docs.vrchat.com/docs/index
This snippet shows the expected JSON response structure for VRChat API requests. It includes status codes and an empty JSON object as a placeholder for data.
```json
{}
```
```json
{}
```
--------------------------------
### VRChat String Download Example with Custom Text Encoding (C#)
Source: https://docs.vrchat.com/docs/string-loading
This snippet demonstrates how to download a string from a URL in VRChat and handle custom text encodings using UdonSharp. It utilizes the `IVRCStringDownload` interface to access the downloaded byte array and decode it with a specified encoding.
```csharp
using System;
using System.Text;
using UdonSharp;
using UnityEngine;
using VRC.SDK3.StringLoading;
using VRC.SDKBase;
using VRC.Udon.Common.Interfaces;
```
--------------------------------
### VRChat Release API Response Example (JSON)
Source: https://docs.vrchat.com/docs/index
This snippet shows a typical successful JSON response from the VRChat API when querying release information. It includes status code 200 and a placeholder for data.
```json
{
"name": "",
"code": "{}",
"language": "json",
"status": 200
}
```
--------------------------------
### GET /websites/vrchat/gamepad
Source: https://docs.vrchat.com/docs/index
Retrieves information about Gamepad input. This endpoint details the functionality and usage of gamepads within the VR Chat environment.
```APIDOC
## GET /websites/vrchat/gamepad
### Description
Retrieves information about Gamepad input. This endpoint details the functionality and usage of gamepads within the VR Chat environment.
### Method
GET
### Endpoint
/websites/vrchat/gamepad
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Request Example
```json
{}
```
### Response
#### Success Response (200)
- **None** - Description: The response contains information about gamepad input.
#### Response Example
```json
{
"example": "{}"
}
```
```
--------------------------------
### VRChat RadioMaster Pocket Configuration
Source: https://docs.vrchat.com/docs/drone-legacy-input
An example VRChat configuration file tailored for the RadioMaster Pocket controller. This file maps specific controller inputs to drone functionalities, requiring the RadioMaster Pocket to be connected.
```json
{
"legacy_devices": [
"Radiomaster Pocket Joystick"
],
"drone_left_horizontal": {
"source": "Oculus_GearVR_RThumbstickY",
"min": 1,
"max": -1
},
"drone_left_vertical": {
"source": "Oculus_GearVR_RThumbstickX",
"min": -1,
"max": 1
},
"drone_right_horizontal": {
"source": "Oculus_GearVR_LThumbstickX",
"min": -1,
"max": 1
},
"drone_right_vertical": {
"source": "Oculus_GearVR_LThumbstickY",
"min": 1,
"max": -1
},
"drone_self_level_mod": {
"source": "Fire1",
"min": 0.5,
"max": 1
},
"drone_self_level_toggle": {
"source": "Joy1 Axis 5",
"min": 0.5,
"max": 1
},
"drone_fpv_toggle": {
"source": "Joy1 Axis 7",
"min": 0.5,
"max": 1
},
"drone_turtle": {
"source": "Joy1 Axis 8",
"min": -0.2,
"max": 1
},
"drone_respawn": {
"source": "Joy1 Axis 8",
"min": 0.5,
"max": 1
},
"drone_flight_preset_micro": {
"source": "Joy1 Axis 6",
"min": -1,
"max": -0.5
},
"drone_flight_preset_freestyle": {
"source": "Joy1 Axis 6",
"min": -0.5,
"max": 0.5
},
"drone_flight_preset_racing": {
"source": "Joy1 Axis 6",
"min": 0.5,
"max": 1
}
}
```
--------------------------------
### VRChat Launch Options: System Integration and Monitoring
Source: https://docs.vrchat.com/docs/launch-options
These options manage VRChat's integration with system registries, MIDI devices, and monitoring of SDK build processes.
```command-line
`--skip-registry-install`
This prevents VRChat from installing or updating the `vrchat://` information in your registry and prevents the "VRChat Installation Helper" popup from appearing.
```
```command-line
`--midi=deviceName`
Forces the MIDI drive to search for a connected MIDI device which contains the `deviceName` specified, including partial matches, case-insensitive
```
```command-line
`--watch-worlds`
Watches the location where the VRChat SDK builds worlds, and automatically joins any new local world created.
See [Using Build & Test](doc:using-build-test#build--relaunch)
```
```command-line
`--watch-avatars`
Watches the location where the VRChat SDK builds test avatars, and if wearing a test avatar that's been updated automatically switches to the newer version.
```
--------------------------------
### VRChat Release API Error Response Example (JSON)
Source: https://docs.vrchat.com/docs/index
This snippet illustrates a common error response from the VRChat API, indicating a bad request. It includes status code 400 and a placeholder for error details.
```json
{
"name": "",
"code": "{}",
"language": "json",
"status": 400
}
```
--------------------------------
### VRChat Default Avatar Particle System Configuration (JSON)
Source: https://docs.vrchat.com/docs/avatar-dynamic-bone-limits
This JSON snippet represents a default configuration for VRChat's Avatar Particle System, including limits for particles, systems, emission, and mesh polygons, along with Dynamic Bones settings. It also enables the 'particle_system_limiter' beta feature.
```json
{
"betas": [
"particle_system_limiter"
],
"ps_max_particles": 50000,
"ps_max_systems": 200,
"ps_max_emission": 5000,
"ps_max_total_emission": 40000,
"ps_mesh_particle_divider": 60,
"ps_mesh_particle_poly_limit": 50000,
"ps_collision_penalty_high": 50,
"ps_collision_penalty_med": 30,
"ps_collision_penalty_low": 10,
"ps_trails_penalty": 10,
"dynamic_bone_max_affected_transform_count" : 0,
"dynamic_bone_max_collider_check_count" : 0
}
```
--------------------------------
### EasyQuestSwitch for Cross-Platform Development
Source: https://docs.vrchat.com/docs/vrchat-202241
Recommends using the EasyQuestSwitch tool to simplify managing separate projects for Quest and PC builds. This utility helps in swapping scenes and configurations, reducing the need for entirely distinct projects.
```csharp
/*
* Placeholder for EasyQuestSwitch usage example.
* Actual implementation would involve Unity Editor scripting or runtime checks.
*/
// Example: You might have a script that conditionally loads
// or enables platform-specific assets.
// if (Application.platform == RuntimePlatform.Android) {
// // Use Quest specific settings via EasyQuestSwitch logic
// } else {
// // Use PC specific settings
// }
```
--------------------------------
### VRChat Input Axis Example
Source: https://docs.vrchat.com/docs/drone-legacy-input
This snippet demonstrates how VRChat worlds might read input axes using Input.GetAxisRaw. It's crucial for testing controller compatibility in legacy input environments.
```csharp
Input.GetAxisRaw
```
--------------------------------
### VRC_SyncVideoPlayer Component Overview
Source: https://docs.vrchat.com/docs/vrc_syncvideoplayer
Provides an overview of the VRC_SyncVideoPlayer component, its capabilities, and important considerations.
```APIDOC
## VRC_SyncVideoPlayer
### Description
This component allows a Video Player to be synced with others in the instance, supporting playlists and various URL sources (YouTube, Vimeo, DailyMotion).
**Note:** This component is deprecated and may be removed in future VRChat SDK versions. Consider using "UdonSyncPlayer" or custom Udon graph solutions.
**Incompatibility:** This component does not work on VRChat on Oculus Quest. It should be removed for cross-platform worlds targeting Quest.
### Requires
- Unity Video Player component
### Features
- Syncs video playback across users.
- Supports playlists.
- Accepts YouTube, Vimeo, and DailyMotion URLs.
- Configurable aspect ratio and playback speed.
### Parameters
#### Video Count
- **Description**: How many videos are in the playlist.
- **Type**: Integer
- **Required**: Yes
#### Source
- **Description**: The source of a video. Can be 'Url' or 'Video Clip'.
- **Type**: Enum (Url, Video Clip)
- **Required**: Yes
#### URL (Appears if 'Url' is selected as Source)
- **Description**: The URL for the video. Supports redirect links.
- **Type**: String
- **Required**: Yes (if Source is Url)
#### Video Clip (Appears if 'Video Clip' is selected as Source)
- **Description**: The video clip asset from the Unity project.
- **Type**: VideoClip
- **Required**: Yes (if Source is Video Clip)
#### Aspect Ratio
- **Description**: The aspect ratio adjustment for the video.
- **Options**: No Scaling, Fit Vertically, Fit Horizontally, Fit Inside, Fit Outside, Stretch
- **Type**: Enum
- **Required**: Yes
#### Playback Speed
- **Description**: The playback speed multiplier for the video(s).
- **Type**: Float
- **Required**: Yes
```
--------------------------------
### VRChat IK Launch Options
Source: https://docs.vrchat.com/docs/vrchat-202221
Provides command-line arguments for customizing various aspects of VRChat's Inverse Kinematics (IK) 2.0 features. These options offer fine-grained control over arm ratios, disabling specific tracking types, enabling debug logging, and adjusting the calibration search range.
```bash
--custom-arm-ratio="0.4537"
--disable-shoulder-tracking
--enable-ik-debug-logging
--calibration-range="0.6"
```
--------------------------------
### OSC Resources API - Get Request
Source: https://docs.vrchat.com/docs/index
This section details the GET request for OSC Resources. It requires authentication and returns JSON responses for success (200) and failure (400).
```json
{
"status": 200
}
```
```json
{
"status": 400
}
```
--------------------------------
### VRChat Website Main Script
Source: https://docs.vrchat.com/docs/choosing-your-sdk
Loads the main JavaScript bundle for the VRChat website. This script contains the core functionalities and interactive elements of the site.
```html
```
--------------------------------
### Specify Monitor for Standalone Player
Source: https://docs.vrchat.com/docs/launch-options
Specifies which monitor the VRChat standalone player should run on. The index is 1-based.
```command-line
-monitor N
```
--------------------------------
### VRChat API GET Request with JSON Response
Source: https://docs.vrchat.com/docs/index
This snippet demonstrates a typical VRChat API GET request. It requires authentication and returns a JSON payload. The success status code is 200, while a 400 status code indicates a bad request.
```json
{
"api": {
"method": "get",
"url": "",
"auth": "required",
"results": {
"codes": [
{
"name": "",
"code": "{}",
"language": "json",
"status": 200
},
{
"name": "",
"code": "{}",
"language": "json",
"status": 400
}
]
},
"params": []
}
}
```
--------------------------------
### Launch Options API
Source: https://docs.vrchat.com/docs/index
This API endpoint provides access to VRChat launch options. It requires authentication.
```APIDOC
## GET /websites/vrchat/launch-options
### Description
Provides access to VRChat launch options.
### Method
GET
### Endpoint
/websites/vrchat/launch-options
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Request Example
None
### Response
#### Success Response (200)
- **body** (json) - Response body containing launch options.
#### Response Example
```json
{}
```
```
--------------------------------
### VRChat Focus View Documentation Link
Source: https://docs.vrchat.com/docs/202421
Provides a link to the official VRChat documentation for creators on how to implement Focus View in their worlds using the VRC_UiShape component.
```Markdown
[Check out the full documentation here!](https://creators.vrchat.com/worlds/components/vrc_uishape#focus-view)
```
--------------------------------
### Registry Edit for VRchat SDK Issues
Source: https://docs.vrchat.com/docs/migrating-from-2017-lts-to-2018-lts
This procedure details how to resolve VRchat SDK installation issues by editing the Windows Registry. It involves navigating to a specific Unity Editor path and deleting keys related to 'VRC'. This is a troubleshooting step for persistent installation problems.
```text
Computer\HKEY_CURRENT_USER\Software\Unity Technologies\Unity Editor 5.x
```
--------------------------------
### VRChat Launch Options: Debugging and Logging
Source: https://docs.vrchat.com/docs/launch-options
Options for enabling debug menus, SDK logging, and Udon-specific logging for troubleshooting purposes. Use with caution as they can increase log size and impact performance.
```command-line
`--enable-debug-gui`
Enables debug menu shortcuts, see [Keyboard and Mouse](doc:keyboard-and-mouse) for shortcut keys
```
```command-line
`--enable-sdk-log-levels`
Enables a large amount of additional logging.
**Warning**: Will cause your log to get **VERY** large!
Using this option may reduce performance due to the increased logging, don't leave it on!
```
```command-line
`--enable-udon-debug-logging`
Enable Udon heap and stack dumps in the client. Usually only enabled in editor
**Warning**: May cause your log to get quite large in Udon worlds that are having issues!
Using this option may reduce performance due to the increased logging, don't leave it on!
```
--------------------------------
### Using DownloadString Script
Source: https://docs.vrchat.com/docs/string-loading
Demonstrates how to use the DownloadString script to download a string in VRchat. This is a fundamental utility for fetching external data.
```csharp
using UnityEngine;
using VRC.SDKBase;
public class DownloadStringExample : MonoBehaviour
{
public void DownloadMyString(string url)
{
VRCStringDownloader.LoadURL(new System.Uri(url), OnStringLoadSuccess, OnStringLoadError);
}
private void OnStringLoadSuccess(string str, VRC.Networking.RCP.AsyncOperation asyncOp)
{
Debug.Log("String downloaded successfully: " + str);
}
private void OnStringLoadError(string error, VRC.Networking.RCP.AsyncOperation asyncOp)
{
Debug.LogError("Error downloading string: " + error);
}
}
```
--------------------------------
### VRChat OSC Port Configuration
Source: https://docs.vrchat.com/docs/osc-overview
Demonstrates how to configure VRChat's OSC input and output ports using command-line arguments. This allows customization of network communication for OSC data.
```bash
--osc=9000:127.0.0.1:9001
--osc=9000:192.168.1.42:9001
```
--------------------------------
### VRChat Launch Options: Hardware and Tracking Control
Source: https://docs.vrchat.com/docs/launch-options
Options to manage tracking data from specific devices and control video decoding methods (software vs. hardware).
```command-line
`--ignore-trackers=serial1,serial2`
Ignore tracking data from devices with the specified serial numbers. Comma delimited list.
```
```command-line
`--disable-hw-video-decoding`,
`--enable-hw-video-decoding`
Forces video decoding to be done in software or hardware.
On AMD graphics cards, the default is "software" because there have been issues in the past. You can use the "enable" variant to force hardware decoding.
With other GPU vendors, the default is "hardware", use the "disable" variant to force software decoding.
Warning: Using the "software" option will utilize your CPU to decode video, which can impact your performance.
Most users do not need to use this feature.
```
--------------------------------
### Get Patch Notes - Pre-2018
Source: https://docs.vrchat.com/docs/index
Retrieves patch notes for the period before 2018. This endpoint requires authentication.
```APIDOC
## GET /websites/vrchat/patch-notes-pre-2018
### Description
Retrieves patch notes for the period before 2018. This endpoint requires authentication.
### Method
GET
### Endpoint
/websites/vrchat/patch-notes-pre-2018
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Request Example
None
### Response
#### Success Response (200)
- **code** (json) - The JSON object containing the patch notes.
#### Response Example
```json
{}
```
#### Error Response (400)
- **code** (json) - An error object indicating a bad request.
#### Response Example
```json
{}
```
```
--------------------------------
### Force World Server Checks Launch Argument
Source: https://docs.vrchat.com/docs/vrchat-202531openbeta
Demonstrates how to use a command-line argument to enforce server-side processing checks for worlds, similar to how avatars are handled. This is useful for debugging world processing issues.
```bash
--enforce-world-server-checks
```
--------------------------------
### Extracting System Information with dmidecode
Source: https://docs.vrchat.com/docs/using-vrchat-in-a-virtual-machine
These commands are used to extract hardware information from a system, which can then be used to configure the SMBIOS settings for a virtual machine to improve compatibility with VRChat.
```bash
dmidecode --type bios
```
```bash
dmidecode --type baseboard
```
```bash
dmidecode --type system
```
--------------------------------
### Get Patch Notes - 2018
Source: https://docs.vrchat.com/docs/index
Retrieves patch notes for the year 2018. This endpoint requires authentication.
```APIDOC
## GET /websites/vrchat/patch-notes-2018
### Description
Retrieves patch notes for the year 2018. This endpoint requires authentication.
### Method
GET
### Endpoint
/websites/vrchat/patch-notes-2018
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Request Example
None
### Response
#### Success Response (200)
- **code** (json) - The JSON object containing the patch notes.
#### Response Example
```json
{}
```
#### Error Response (400)
- **code** (json) - An error object indicating a bad request.
#### Response Example
```json
{}
```
```
--------------------------------
### Get Patch Notes - 2019
Source: https://docs.vrchat.com/docs/index
Retrieves patch notes for the year 2019. This endpoint requires authentication.
```APIDOC
## GET /websites/vrchat/patch-notes-2019
### Description
Retrieves patch notes for the year 2019. This endpoint requires authentication.
### Method
GET
### Endpoint
/websites/vrchat/patch-notes-2019
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Request Example
None
### Response
#### Success Response (200)
- **code** (json) - The JSON object containing the patch notes.
#### Response Example
```json
{}
```
#### Error Response (400)
- **code** (json) - An error object indicating a bad request.
#### Response Example
```json
{}
```
```
--------------------------------
### Launch VRChat with World Reloading Enabled
Source: https://docs.vrchat.com/docs/using-build-test
This command launches VRChat with the `--watch-worlds` flag enabled, allowing for automatic world reloading. It also specifies a profile, disables VR mode, enables debug GUI and logging, and sets the screen resolution.
```shell
VRChat.exe --watch-worlds --profile=0 --no-vr --enable-debug-gui --enable-sdk-log-levels --enable-udon-debug-logging -screen-width 1920 -screen-height 1080
```