Source 2 Particle System Properties

From Valve Developer Community
Jump to: navigation, search

Particle System Properties (referred to as Base Properties within the Source 2 Particle Editor Tool) are default properties that all particle systems have. Source 2's PET offers a large range of particle properties, some of which are altered/modified versions of Source 1 versions, or are new and non-existent in previous versions of the Source engine.


Below are a list of all the base properties and their functions. Note that not all properties have official help documentation/descriptions within the tools (in which case an estimate of their usage is temporarily put in place). Some properties may potentially be deprecated or legacy functions ported from previous Source engine versions, or new/under development and may be noted as such.


Base Properties

Initial Particles <int>
  • Number of additional particles that should be emitted the moment the effect is created, independent of any emitter operators. Default value is set to 0.
Maximum Particles <int>
  • The maximum number of individual particles that can exist at any time for this system. Any attempts to emit additional particles beyond this maximum will fail. The particle engine reserves memory for this maximum, so set this as low as you can once you've finished working on your effect. Default value is set to 1000.
Note.pngNote: This setting is local to the particle effect - any child particles attached to this (or parent particles that this particle effect is a child of) will use their own max particles setting.


Bounding Box Min <vector3>
  • The bounding box for the particle system. Default value is set to -10 -10 -10.


Bounding Box Max <vector3>
  • The bounding box for the particle system. Default value is set to 10 10 10.
Note.pngNote: Both min and max are required for the bounding box to encompass the particle(s) completely and for the particle to be culled correctly.


Snapshot Control Point <int>
  • The control point used by the snapshot that has been assigned to the particle system. The snapshot control point is utilized by initializers such as "Init from CP snapshot" and "Position skin to bones from CP snapshot" to send/read data sent to/from the specified control point (such as position, color, life duration, radius, etc.). Default value is set to 0.


Snapshot <string>
  • A .vsnap (valve particle snapshot file) that is used by the particle system as a reference for control point data. Generally a .vsnap is a collection of vectors such as vertices from a model, and can be used - for example - to position particles in a certain manner. The .vsnap directory path should be included in the field (ie. particles/particle_snapshots/good_barracks_melee002_lvl1.vsnap). A .vsnap can be generated in the model editor tool after importing a model and specifying a "fx" version of that model (usually a .obj file). Default value is set to blank.


Target Layer ID For Rendering <string>
  • Defines the target layer ID for rendering the particle on. Default value is set to blank.
Note.pngNote: Actual use is unknown, but is presumed to be used for rendering particles under/over certain parts of the GUI. Possibly Legacy. Generally unused by most particles.


Topology <int>
  • Defines the topology of the particles in the particle system. May affect different renderers according to the topology selected (Points, Line Segments, Triangles, Quadrilaterals, Cubes). Default value is set to "Points". Currently can be used by the Render Sprite Trails and Render Rope renderers to change how each of these renderers utilize different topology methods in their effect rendering.
Note.pngNote: Relatively new function, may not be fully functional


This attribute is hidden by default Reference Replacement Definition <string>
  • Defines the particle's reference replacement. Default value is set to blank.
Note.pngNote: Actual use is unknown, but is presumed to be for if the particle's reference (content source) is lost, then the assigned definition can be used as a replacement. Takes a .vpcf and its directory as a value (ie. particles/example.vpcf).


This attribute is hidden by default Cull Replacement Definition <string>
  • Defines the particle's cull replacement. Default value is set to blank.
Note.pngNote: Actual use is unknown, but is presumed to be for if the particle is culled, then the assigned definition can be used as a replacement. Takes a .vpcf and its directory as a value (ie. particles/example.vpcf).


This attribute is hidden by default Cull Radius <float>
  • Any other value is hardcoded; 0 uses particle bounding box; -1 disables fog of war and is always on; -2 do not shrink bounds. Default value is set to 0.


This attribute is hidden by default Cull Cost <float>
  • The fill cost/how much of the particle's bounds must be obscured for a particle to be culled. 1 being fully obscured. Default value is set to 1.


This attribute is hidden by default Cull Control Point <int>
  • The control point that's used as a reference for culling the particle. Default value is set to 0.


Time to recreate <float>
  • Defines the time it takes to recreate the particle. Default value is set to 0.
Note.pngNote: Low-level engine property. Rarely changed, possibly for performance reasons.


This attribute is hidden by default Fallback Replacement Definition <string>
  • Depending on a user's settings, the replacement defined here will be used as a fallback to render. Takes a .vpcf and its directory as a value (ie. particles/example.vpcf). Default value is set to blank.
Note.pngNote: Possibly also used if the current particle cannot load.


This attribute is hidden by default Fallback Max Count <int>
  • The max amount of the fallback particle allowed to be rendered at once. Default value is set to -1.


This attribute is hidden by default Low Violence Definition <string>
  • Used to replace a particle with a "low violence" equivalent if a user has a low violence setting enabled for their client. Takes a .vpcf and its directory as a value (ie. particles/example.vpcf). Default value is set to blank.


Color <vector4>
  • Base color tint for each particle. Has an alpha range that can affect the transparency value of the particle. Default value is set to 255 255 255 255 (White - Fully Opaque).
Note.pngNote: Can be overridden and be used as input by/for operators and initializers.


Normal <vector3>
  • Particle normal alignment. Values range between 0 and 1. For most effects this should remain unchanged from its default (0,0,1). This field is ignored unless the orientation type property in the effect's renderer is set to "Particle Normal Align" or "Screen & Particle Normal Align".
Note.pngNote: Can be overridden and be used as input by/for operators and initializers.


Radius <float>
  • Radius for each particle, in world units. Default value is set to 5.
Note.pngNote: Can be overridden and be used as input by/for operators and initializers.


Rotation <float>
  • Defines the rotation of a particle. Default value is set to 0.
Note.pngNote: Does not use the standard 360 degrees of rotation for input. Most particle systems override this base property instead of using it directly. Can be overridden and be used as input by/for operators and initializers.


Rotation Speed <float>
  • Defines the rotation speed of a particle. Default value is set to 0.
Note.pngNote: Can be enabled for use if the particle system has a "Rotation Basic" operator attached. Most particle systems override this base property instead of using it directly. Can be overridden and be used as input by/for operators and initializers.


Lifetime <float>
  • The amount of time, in seconds, that each particle will exist before being destroyed. Default value is set to 1.
Note.pngNote: Can be overridden and be used as input by/for operators and initializers.


Sequence Number <int>
  • Defines which part of the sequence a particle starts with, if that particle's renderer(s) uses sprite sheets or if using a sequence number as input/output through a control point. Default value is set to 0.
Note.pngNote: If a particle uses a sprite sheet with sequences, all renderers within the particle system that use sprite sheets will use this sequence number, even though only the top-most listed renderer in the Renderer area of the Functions panel will show its sprite sheet when selecting a sequence from the dropdown menu (no sheet will show if the top-most renderer does not contain a sprite sheet, but a value can still be input). Can be affected and overridden by operators and initializers.


Sequence Number 1 <int>
  • Defines which part of the sequence a particle can end with if, that particle's renderer(s) uses sprite sheets or if using a sequence number as input/output through a control point. Default value is set to 0.
Note.pngNote: If a particle uses a sprite sheet with sequences, all renderers within the particle system that use sprite sheets will use this sequence number, even though only the top-most listed renderer in the Renderer area of the Functions panel will show its sprite sheet when selecting a sequence from the dropdown menu (no sheet will show if the top-most renderer does not contain a sprite sheet, but a value can still be input). Selecting a value different from "Sequence Number" can randomize which sequence is chosen between the two values (ie. if 1 and 3 are chosen, chosen sequence can be 1, 2 or 3). Can be affected and overridden by operators and initializers.


This attribute is hidden by default Group ID <int>
  • Defines the Group ID of the particle. Particles with the same ID will be grouped together when emitted and can be affected by functions which require or reference a Group ID. Default value is set to 0.


This attribute is hidden by default Maximum Time Step <float>
  • Defines the maximum time step for the simulation of the particle. Default value is set to 0.1.
Note.pngNote: Low-level engine property. Usually untouched and left at default value.


This attribute is hidden by default Maximum Sim Tick Rate <float>
  • Defines the maximum rate at which the particle is simulated in real time. Default value is set to 0.
Note.pngNote: Low-level engine property. Usually untouched and left at default value.


This attribute is hidden by default Minimum Sim Tick Rate <float>
  • Defines the minimum rate at which the particle is simulated in real time. Default value is set to 0.
Note.pngNote: Low-level engine property. Usually untouched and left at default value.


This attribute is hidden by default Minimum Simulation Time Step <float>
  • Defines the minimum time step for the simulation of the particle. Default value is set to 0.
Note.pngNote: Low-level engine property. Usually untouched and left at default value.


This attribute is hidden by default Minimum Rendered Frames <float>
  • Defines the minimum amount of frames rendered by the particle. Default value is set to 0.
Note.pngNote: Low-level engine property. Usually untouched and left at default value.


This attribute is hidden by default Minimum CPU Level <int>
  • This property relies on settings in a game config file, and is best left alone. Default value is set to 0.
Note.pngNote: Low-level engine property. Usually untouched and left at default value.


This attribute is hidden by default Minimum GPU Level <int>
  • This property relies on settings in a game config file, and is best left alone. Default value is set to 0.
Note.pngNote: Low-level engine property. Usually untouched and left at default value.


This attribute is hidden by default View Model Effect <bool>
  • Used for effects that are attached to player weapons/hands in first-person games. Default value is set to false.
Note.pngNote: Deprecated/Legacy attribute.


This attribute is hidden by default Screen Space Effect <bool>
  • Tells the effect to render in screen space (2d; on the length/width of the screen) rather than in world space (3d; within the confines of the map). Default value is set to false.
Note.pngNote: Enabling a particle for screen space effects changes its behavior and how initalizers and operators (such as gravity) affect it. Particle normals, rotations, positions and other properties behave differently for screen space particles compared to regular world space particles (for example, a particle with a gravity of 0 0 10 in a "Movement Basic" operator would move towards the player's screen, rather than float upwards in 3d world space).


Time To Sleep When Not Drawn <float>
  • Defines the time, after not being drawn, before the particle goes to sleep. Default value is set to 8.
Note.pngNote: Low-level engine property. Usually untouched and left at default value, possibly for performance reasons.


Maximum Draw Distance <float>
  • Defines the maximum distance (in game units) at which the particle will draw. Default value is set to 100000.
Note.pngNote: Low-level engine property. Usually untouched and left at default value.


Start Fade Distance <float>
  • Defines the distance (in game units) at which the particle will start to fade. Default value is set to 200000.
Note.pngNote: Low-level engine property. Usually untouched and left at default value.


Control Point To Disable Rendering If It Is The Camera <int>
  • Defines which control point is used to skip rendering, if it is assigned to the camera. Default value is set to -1.
Note.pngNote: New property. May or not be functional.


Control Point To Only Enable Rendering If It Is The Camera <int>
  • Defines which control point is used to allow rendering, if it is assigned to the camera. Default value is set to -1.
Note.pngNote: New property. May or not be functional.


Minimum Free Particles To Aggregate <int>
  • Defines the minimum amount of free particles to aggregate. Default value is set to 0.
Note.pngNote: Low-level engine property. Usually untouched and left at default value.


Aggregation Radius <float>
  • Defines the radius in which to aggregate the minimum particle amount set in the minimum free particles to aggregate value. Default value is set to 0.
Note.pngNote: Low-level engine property. Usually untouched and left at default value.


Freeze Simulation After Time <float>
  • Sets the maximum amount of time until the particle cease to simulate. Default value is set to 1e+09 (999999999).