“Particle Emitter Helpers” action part plugin

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…

Action Parts

The following Action Parts are part of this package:

Set Particle Emitter to Object

Sets a particle emitter to the position of a scene object.

Set Particle Emitter to Position

Sets a particle emitter to a manually defined position.

Glue Particle Emitter to Character

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).

Unglue Particle Emitter from Character

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.

Set Particle Emitter Basic Parameters

Lets you set a particle emitter’s basic properties Maximum, Duration, and Loops.

Set Particle Emitter Emission Rate

Lets you set a particle emitter’s plain minimum and maximum values for particle emission rate (particles per second).

Set Particle Emitter Size

Lets you set plain minimum and maximum values for particle birth size.

Set Particle Emitter Emission Parameters

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.

Supported parameters

Emission properties

These parameters can be found in the “Emission” tab of a particle emitter in Visionaire Studio.

Particle properties (over life)

These parameters can be found in the “Particle” tab of a particle emitter in Visionaire Studio.

How to define curves

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

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

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.

Get values from Visionaire Values

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.

Comments

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

Remarks

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.

Version history

1.0.1

Copyright / license

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.