A plugin for Visionaire Studio 5 that provides action parts that help with manipulating particle emitters at runtime.
Use them cleverly to have somewhat interactive particles that react to changes in your scene or game, have emitters follow moving characters, and more…
The following Action Parts are part of this package:
Sets a particle emitter to the position of a scene object.
Sets a particle emitter to a manually defined position.
Permanently glues a particle emitter to a character’s position, using an additional offset to precisely set the emitter position relative to the character.
This will inject a global handler function, and register an EventHandler that updates the emitter position every frame. Don’t forget to use the Action Part “Unglue Particle Emitter from Character” to remove the connection after it’s not needed anymore (e.g. when leaving the scene).
Uncouples a particle emitter’s position from a character. You want to do this at least in the scene’s “At end of scene” action.
The global handler function will be removed, and the EventHandler is unregistered.
Lets you set a particle emitter’s basic properties Maximum, Duration, and Loops.
Lets you set a particle emitter’s plain minimum and maximum values for particle emission rate (particles per second).
Lets you set plain minimum and maximum values for particle birth size.
This lets you set any parameter of a particle emitter by parsing text input.
This is not for the faint-hearted! One mistake, and the whole thing will probably stop working. The parser will not give you an hints at all.
Emitter Object
Link the object that carries the Particle System Component here.
Parameters
Input your particle emitter parameters here. Use the form parameter_name=parameter_value and use only one parameter per line.
Example:
-- Basic parameters
maximum=500
duration=1000,
loops=0,
emissioncount={0.0, 1, 1.0, 1}
emissiondirection={0.0, 90, -10000, 1.0, 360}
sizeoverlife={0.0, 100, 0.5, 80, 1.0, 10} -- Three points in the Size curve
These parameters can be found in the “Emission” tab of a particle emitter in Visionaire Studio.
These parameters can be found in the “Particle” tab of a particle emitter in Visionaire Studio.
Curves consist of control points.
Curves are defined as Lua tables:
{pointpos1, value1, pointpos2, value2, pointpos3, value3, ...}
Point position is always a float value between 0.0 .. 1.0. It defines the point’s position on the X axis.
Value is always a float or integer in the value range shown on the Y axis of the respective curve editor in Visionaire Studio’s Particles section. It defines the point’s position on the Y axis.
Single curves work exactly like the example above. For example:
emissioncount={0, 100, 1.0, 0}
This defines a single curve with two points: The first point it at X=0.0 with a value of 100, and the second point is at X=1.0 with a value of 0.
Double curves are basically like single curves. But of course, you need to define two curves.
Defining two curves works by using a separator value that separates the points for the first curve, and the points for the second curve. The separator value is -10000. Define the minimum curve first, the maximum curve second.
Example:
{0.0, 10, 1.0, 20, -10000, 0.0, 20, 1.0, 50}
This defines a double curve. The first curve has a point at X=0.0 with a value of 10, and a second point at X=1.0 with a value of 20. The second curve has a point at X=0.0 with a value of 20, and a second point at X=1.0 with a value of 50.
Use names of Values as placeholders, like this:
maximum=%my_maximum_value%
The placeholder will be replaced with the contents of Value my_maximum_value. That may be an numeric value, or a string. If a Value contains a string, the string is used automatically. If the Value does not contain a string, the number is used. Conditions are currently not supported.
Use Lua-style comments to document your parameter input. Comments are ignored by the parser.
-- A comment
{0.0, 10, 1.0, 20, -10000, 0.0, 20, 1.0, 50} -- Another comment
These action parts a simplifying the complex matter of particle systems a bit. As you probably know, you can create complex curves that associate (min and max) values over time. Using these action parts to set Min/Max values is the same as defining min/max curves with only one point each. in the Visionaire Studio editor.
If you want to set complex curves, and manipulate all the particle parameters there are, use the “Set Particle Emitter Emission Parameters” action part.
Released under MIT License
Copyright © 2026 Frank Willeke
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.