Configuration File
There are a few systems in VRChat that have configurable options or properties. These systems aren't customized with settings you can set in the application, as the default settings are sufficient for the vast majority of VRChat players.
However, we have provided a way for you to customize some of these values in case you want to change how they work!
Configuration File Location
VRChat doesn't create a configuration file by default. You can create your configuration file in %LocalAppdata%Low\VRChat\VRChat
. The file must be named config.json
and must consist of a valid JSON structure.
PC-Only Feature
These settings can only be adjusted on PC. They cannot be changed on Quest.
An example configuration file might look like this:
{
"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/"
}
Not all of the available properties are listed above. These properties will be described below.
Configuration File Uses
The configuration file may be used to customize several systems in VRChat.
Rich Presence
You can disable the Discord and Steam Rich Presence functionality by adding this value to your configuration file.
Property Name | Purpose | Valid Values |
---|---|---|
disableRichPresence | Disables the Steam and Discord Rich Presence integration. | Bool, true or false |
Cache Settings
Location
Normally, VRChat stores its cache in %AppData%\..\LocalLow\VRChat\VRChat
in several sub-folders. This is the location that Microsoft Windows expects temporary program files to be stored, but advanced users may wish to move this cache in case of smaller OS drives or some other reason.
Property Name | Purpose | Valid Values |
---|---|---|
cache_directory | Defines the location where VRChat should store its cache data. | Any valid path. Do not use \ as a path symbol-- this indicates an escape symbol in JSON. Use \\ or / instead. |
The config file and output logs will still be present in the default location, but all cache will be stored in the defined directory by this property.
When this value is not present, the default value of %AppData%\..\LocalLow\VRChat\VRChat
is used.
Size and Expiry Time
By default, the cache will limit itself to 20 gigabytes in size. It may drift slightly above or below this value depending on the size of the assets present in the cache. Files will be removed based on how long it has been since that file has been accessed. If a file has not been accessed in 30 days, it will be removed.
You can adjust both of these settings using the following configuration options. Please note that the values cannot be adjusted below their default values.
Property Name | Purpose | Valid Values |
---|---|---|
cache_size | Maximum size, in gigabytes, of the cache | Greater than or equal to 30 |
cache_expiry_delay | Maximum age, in days, of files in the cache | Greater than or equal to 30 |
This system is enabled on Quest and cannot be disabled.
To prevent abuse and heavy particle use affecting performance, Particle Systems can be limited when used on avatars. Click the section header to see the documentation page describing this system.
Since we've replaced Dynamic Bones with PhysBones, this isn't really a relevant setting anymore.
Dynamic Bone is a very performance-heavy component, and it is easy for an avatar creator to overuse the component. VRChat has provided a method by which users can limit the number of Dynamic Bones permitted on avatars. Click the section header to see the documentation page describing this system.
Camera and Screenshot Settings
As of VRChat 2022.2.2, the camera's resolution can be set via an in-app option. However, you can also choose "Config" as an option.
You can adjust the resolution of your camera's images and screenshot settings with some configuration options. The minimum resolution is 1280x720 pixels, and the maximum resolution is 7680x4320 pixels.
Property Name | Purpose | Valid Values |
---|---|---|
camera_res_height | Adjusts the height of images taken with the VR camera. Only used if "Config File" is selected in the camera for the resolution setting. | 720 to 4320 |
camera_res_width | Adjusts the width of images taken with the VR camera. Only used if "Config File" is selected in the camera for the resolution setting. | 1280 to 7680 |
screenshot_res_height | Adjusts the height of images taken with the F12 key. | 720 to 2160 |
screenshot_res_width | Adjusts the width of images taken with the F12 key. | 1280 to 3840 |
picture_output_folder | Defines the folder where images are saved when taken with the VR camera. | Any valid path. Do not use \ as a path symbol-- this indicates an escape symbol in JSON. Use \\ or / instead. |
picture_output_split_by_date | If false , photos will be dumped directly into the output folder without being sorted into YYYY-MM folders. | true (default) or false |
camera_spout_res_width | Adjusts the width of the Stream Camera Spout2 output. | Width x Height can be any pixel value between 720p and 4k |
camera_spout_res_height | Adjusts the height of the Stream Camera Spout2 output. | Width x Height can be any pixel value between 720p and 4k |
First-Person Steadycam FOV
In addition, you can adjust the field of vision for the first-person Steadycam option, which is available in the Camera menu when you're in VR. This will allow you to increase the field of vision when using this option, letting your stream viewers have a better view of the action while preventing jerky movement.
Property Name | Purpose | Valid Values |
---|---|---|
fpv_steadycam_fov | Adjusts the field of view of the first person view steadycam. The value represents the vertical FOV. Most HMDs have a default value of 50-55. If you're looking to visibly increase this FOV for your viewers, try values of 65-70. Keep in mind this can be highly subjective! | 30 to 110 |
Updated about 1 month ago