Modifiers: independent or action-controlled?

All modifiers in X-Particles operate in two possible modes, independent or action-controlled. What is the difference, and how do you use action-controlled mode?

Independent mode

'Independent' mode is the default state of all modifiers. In this mode, the modifier works on its own and will work immediately on all particles, as long as they are in its field of effect and they belong to the particle groups that the modifier affects.

Action-Controlled mode

Independent mode is fine, but sometimes you don't want a modifier to work until some requirement is met - such as the particle being above a certain age, or having collided with an object, etc. There are many such conditions in X-Particles where you might want to start a modifier working. In some cases you might also want to turn a modifier off if the required criteria are met. For this, you need 'Action-Controlled' mode.

You could, of course, keyframe a modifier to work (or not work) at certain scene times, but that is a scene-wide effect on all particles and is very crude. Using a modifier in action-controlled mode will allow the modifier to work (or cease to work) on specific particles.

Using action-controlled mode

When you set a modifier to use action-controlled mode, it is essential to realise that it will do nothing until it is enabled to work for a particle. This means that you have to do something to make it work, it won't do so of its own accord, unlike independent mode. For example, suppose you have a Speed modifier added to the scene and you want it to change the speed of all particles right from the start, but stop doing so when the particle speed exceeds a certain value. You could do this by first adding a question to the emitter; this would be a 'Current Time' question with the parameter set to the time being greater than zero frames (assuming zero is the starting frame of the scene). The question would then call an action to turn the modifier on; in this case, a 'Change Speed' action set to 'Control Modifier' and with the effect set to 'Modifier Will Affect Particle'. Now this modifier will work on all particles no matter when they are created.

To turn the modifier off, you would have another question which tests the particle speed. If the speed exceeds the desired value, the question would turn the modifier off for that particle (but not any of the others unless they meet the same criteria). You can actually turn off the modifier in two different ways.

Firstly, you can use an Action to do so (in this case a 'Change Speed' action set to 'Control Modifier' and with the effect set to 'Modifier Will NOT Affect Particle'). Alternatively, in the Question object there is a shortcut: simply drag the modifier into the 'Modifiers to Deactivate' list and this will avoid the need for an action. Whichever method is used, now the speed modifier will no longer affect that particle.

You can turn a modifier on and off using an action wherever actions are used in X-Particles. This includes the Question object, the Collider tag, various modifiers, and so on. If there is an 'Actions' list in any object, you can add an action which will enable or disable a modifier for a particle.

In summary

So to sum up: in independent mode the modifier just works, and you cannot turn it on and off for individual particles. In action-controlled mode you are able to enable and disable it for specific particles but for it to work, you need to turn it on first and then turn it off if desired. There is no way to have a modifier work automatically from the start and then be able to turn it off later; you need to turn it on first.

You can download a file showing the setup described above here.