This guide explains how to use transformation matrices to scale, move, and rotate custom particles in League of Legends modding. It is based on a system commonly used in 3D rendering and adapted here for particle manipulation.
Ritobin | to convert .bin files to .py files for editing. |
Visual Studio Code | to edit code |
Transformation matrices are a mathematical way to handle:
First, you’ll add a default matrix at the end of your VfxSystemDefinitionData
block. This default matrix doesn’t change anything; it simply acts as a placeholder.
Example:
Transform: mtx44 = {
1, 0, 0, 0
0, 1, 0, 0
0, 0, 1, 0
0, 0, 0, 1
}
This keeps your transformation "neutral" — no scaling, moving, or rotating by default.
To make a particle smaller, use values below 1.
Example (2× smaller):
Transform: mtx44 = {
0.5, 0, 0, 0
0, 0.5, 0, 0
0, 0, 0.5, 0
0, 0, 0, 1
}
To make a particle larger, use values greater than 1.
Example (2× or 4× larger):
Transform: mtx44 = {
2, 0, 0, 0
0, 2, 0, 0
0, 0, 2, 0
0, 0, 0, 1
}
You can move a particle along specific axes by changing values in the last row of the matrix.
Move the VFX upward:
Transform: mtx44 = {
1, 0, 0, 0
0, 1, 0, 0
0, 0, 1, 0
0, 250, 0, 1
}
(Moves 250 units up.)
Move the VFX left or right:
Transform: mtx44 = {
1, 0, 0, 0
0, 1, 0, 0
0, 0, 1, 0
0, 0, 250, 1
}
(Moves 250 units along Z.)
? Tip: You might need to test and tweak values to get the exact placement you want!
(Completly mirrors a particlesystem.)
Transform: mtx44 = {
-1, 0, 0, 0
0, 1, 0, 0
0, 0, -1, 0
0, 0, 0, 1
}