Avatar Particle System Limits

A description of the limits placed on particle systems on avatars

To prevent abuse and heavy particle use affecting performance, Particle Systems can be limited when used on avatars. Here are the limits we recommend as of June 19, 2018.

🚧

Enabled on Quest

This system is enabled by default on Quest with the default settings and cannot be disabled. This is for performance and safety reasons.

Please note that the limiter will prevent any particles from colliding with PlayerLocal. There is no setting to disable this without disabling the limiter.

This feature is in beta. This feature may be changed, modified, or removed with future releases.

We encourage users to experiment with these settings to find and share setups that allow legitimate uses of particle systems, but stop systems that cause performance issues or crash the application.

Default Particle Limiter Setup

{
	"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
}

Particle Limiter Configuration Description

Value NameDescription
betasAdding or removing the string "particle_system_limiter" will enable/disable the Limiter system
ps_max_particlesMax particles a single particle system can spawn
ps_max_emissionMax emission a single particle system is allowed
ps_max_total_emissionMax emission allowed between all particle systems on an avatar
ps_mesh_particle_dividerThe mesh particle penalty is calculated using the highest poly mesh on them divided by this value, the resulting value divides the max particle allowance for the particle system
ps_mesh_particle_poly_limitThe max poly count a mesh on a particle system can be
ps_collision_penalty_highThe penalty for high quality collision on a particle system, the resulting value divides the max particle allowance for the particle system
ps_collision_penalty_medThe penalty for medium quality collision on a particle system, the resulting value divides the max particle allowance for the particle system
ps_collision_penalty_lowThe penalty for low quality collision on a particle system, the resulting value divides the max particle allowance for the particle system
ps_trails_penaltyThe penalty for having trails enabled on the particle system, the resulting value divides the max particle allowance for the particle system

Modifying the VRChat Particle Limiter Configuration

If you prefer, you can change the particle limiter system for your own local view. Changing these settings from the default is only recommended for advanced users.

Editing these values will require an application restart before they take effect.

You can override all settings or disable the Limiter system completely by adding a file into the following directory:

%AppData%\..\LocalLow\VRChat\vrchat

Name the file as such:

config.json

Ensure that the file extension is json, and not txt. It is best to edit the configuration file with an editor like Notepad++.

Copy and paste the contents of the default configuration at the top of this page into your file, and then edit it to your whims! You could, for example, increase ps_max_particles to allow more particles per individual system, or remove the string "particle_system_limiter" from the beta section to disable the system entirely without deleting the file.

Pre-filled Default Configuration File

You can also download a file pre-filled with the default configuration here. If the file displays rather than downloads when you click it, right click the link, click Save As, and download it. You must rename the file to config.json. Place the file into the directory specified above (%AppData%\..\LocalLow\VRChat\vrchat), and you'll be good to go. Remember, the file must be named config.json precisely.