Skip to content

Particles

TheKillerey edited this page Oct 2, 2026 · 4 revisions

Particles

A particle system (VFX) is what draws spell effects, ambient sparkles, smoke and similar — a system is made of one or more emitters, each spawning sprites, meshes or ribbons with their own colour, size and motion curves over their life. Tools ▸ Open in Particle Editor opens a VFX bin (VfxSystemDefinitionData) in its own editor window. Map VFX live inside the map's materials bin; ReyEngine finds them there too, including systems no other tool loads. A champion's effects open from the Character Editor.

The editor

The window has five panes: the system list down the left, emitters across the middle, details on the right, and the curve editor beside the 3D preview along the bottom.

  • The left tree lists systems and their emitters; the cards and inspector edit the selected one. Items in a list can be duplicated and removed from their own row.
  • Field names come from the hash database, so you see birthTranslation instead of hex ids. A coverage badge marks fields the built-in preview does not simulate — the value still saves correctly, the preview just cannot show it.
  • Curve keys, nested definition structs, optional and integer fields are editable in place. Struct rows name their class, because Riot's structs are polymorphic and "(3 fields)" never said which of eleven classes was in front of you. A matrix row says why it is read-only — it is shown rounded, and editing that text back would quietly round the matrix on every save.
  • primitive decides whether an emitter is a billboard, a mesh, a ray or a trail. The editor says which, and warns when the preview cannot draw that shape and falls back to a billboard.
  • Asset links (textures, meshes) are editable. Patch 16.17 turned them into a link type rather than a string; the editor reads and writes both forms.
  • The preview plays the system live and re-extracts after every edit, so changes show immediately. Playback covers sprites, meshes (on Riot's own mesh shaders, with the birth rotation and per-axis scale the effect authors), trails, beams (bound to a target dummy), child systems, force fields, soft particles, distortion, the colour palette and erosion stages, and the run / stop / linger lifecycle. A flipbook with no authored frame rate holds its cell instead of inventing one, and a slow, long-lived emitter warms up to the density the game shows.
  • A field the file leaves out reads the game's own default, as Riot's files omit defaults: an emitter with no rate emits one particle, and one with no lifetime lives 3 seconds.
  • The 3D view draws with the same Direct3D 11 particle renderer as the map viewport (the D3D11 toggle in its header). It falls back to OpenGL, with the reason shown, when Direct3D 11 is not available or a character host is set.

The preview rig

A particle file only describes emitters — nothing in it says whether the effect is a stationary glow, a missile that flies, or a trail with something to lay itself along. The preview has a rig for that: Still leaves the effect where it is, Burst restarts the whole run as soon as it ends, Missile flies it in a straight line at a real speed and stops it emitting where it lands, and Trail circles it so a ribbon has a path to follow. There is a height, a switch to replay the run, a switch to stop the effect halfway through (so its teardown plays without holding Stop), and a seed — the same seed reruns the same random result, and a new one shows the effect playing differently without editing it. The rig opens on a guess from the system's own name (it says why it guessed) unless the effect belongs to a champion, in which case it is read from the champion's own spell record instead — a missile flies at the ability's real speed, and an effect a buff hangs on a bone stands still with that bone named. See Champion VFX below.

Forces

Every emitter card has a forces section listing its acceleration, drag, noise, orbital and attraction forces, with their values by name. Add one and it starts at the value Riot ships most, so it acts the moment it is added; ✕ removes one. S solos a force and M mutes it, in the preview only: while any force is soloed only soloed forces act, and the saved effect keeps every force either way.

Moving emitters and forces

Move on an emitter card, or on a drag, noise or attraction force, puts a gizmo on it in the preview. Drag an arrow and the file is written once, when you let go; a read-only file puts the handle back. Show force shapes in the RIG panel draws each force that acts: a wire ball the size of a force's radius, an arrow for acceleration, a ring for orbital. The handle works on the Still and Burst rigs. A missile or a trail moves every frame, so it has no handle there, and the view says why.

Particles born on a surface

An emitter can name a surface to emit from instead of a point: a mesh (Aatrox's trails, Caitlyn's E), part of a skin, or a skeleton's joints (Shyvana's dragon flames). The preview emits from it, and each emitter card says what its particles are born on. Emitters that mean "the character the effect is on" (Akali's W, Aatrox's dash, the ward pads) need a character: open one in the Character Editor, then CHARACTER HOST ▸ Use character window in the RIG panel; Clear drops it. The host plays its clip on the preview's own clock, so body and particles stay in step. Not applied yet: a surface's normals do not steer the birth velocity, and an emission mesh's own animation is sampled in its bind pose.

The curve editor

The plot beside the 3D view is editable: drag a key to move it, double-click the graph to add one where you clicked, and Delete removes the selected key. A key cannot pass its neighbours; Shift while dragging keeps it on one axis. The wheel zooms both axes, Ctrl zooms time only, Shift zooms the value only, and a right-drag pans. A colour curve's channels can be hidden one at a time, or soloed with Ctrl-click, so you can edit red without grabbing green. A drag applies once you release it, not at every pixel moved. A read-only file shows its keys as rings that cannot be picked up; the typed list beside the plot stays, for an exact number.

Champion VFX

For a champion skin, the preview window plays the skin's effects at the model, grouped by animation events and full spell composites, with the practice-tool target dummy available for targeted spells. See Character Editor.

Your own effects

Legacy .troybin effects and the particles out of any custom bin can be kept on the Workshop's shelf and placed into a map from there — see Workshop and Add Mesh.

Saving

Edits stay in the editor until Save To Override writes them into the project. The original bin in the game stays untouched, as always.

Known limits

  • One emitter field, depthBiasFactors, is still not simulated in the preview. It is narrowed to one hypothesis — a Direct3D rasterizer bias — and the game files cannot settle it.
  • rotationOverride is read but not applied.
  • Riot's newer component-based effect format is recognised, not simulated. Two Summoner's Rift systems use it (HoL_26_CubeGrid and HoL_26_CubeGrid_02), every one of their emitters is disabled, and the game draws nothing from them either; the system card says so.

Clone this wiki locally