This section describes all the
conditions in the built-in System object in Construct 2. They are listed in the order they appear in the
Add Condition dialog.
General
Compare two valuesCompare any two
expressions (which can either numbers or text) with each other. They can be compared as
Equal,
Not equal,
Less,
Less or equal,
Greater or
Greater or equal.
Every tickA condition which is always true. Used on its own, this has the same effect as running every time it is checked, which is once per tick, hence the name "Every tick". This is about 60 times a second on most computers; see
how events work for more information. Adding
Every tick to an event with other conditions is redundant and has no effect at all.
Is between valuesTest if a number is between two values (greater or equal to a lower value and less or equal to a higher value).
Is group activeTest if a
group of events is active or inactive. The name of the group is used to identify it.
Global & local variables
Compare variableCompare the value of a
event variable (a global variable or local variable in scope). Event variables can store both numbers and text. The comparison can be made
Equal,
Not equal,
Less,
Less or equal,
Greater or
Greater or equal.
Layers
Compare opacityCompare the opacity (or semitransparency) of a
layer, from 0 (transparent) to 100 (opaque). A layer's opacity cannot be outside this range.
Layer is visibleTest if a
layer is currently visible or not.
Loops
Loops can be stopped with the
Stop Loop system action.
ForRepeat the event a number of times, using an index variable over a range of values. The index can be retrieved with the
LoopIndex system expression and passing the name of the loop.
For EachFor Each (ordered)Repeat the event once per picked
instance. This only repeats for instances that have been picked by prior conditions. See
how events work for more information on picking.
For Each is commonly mis-used or used redundantly - actions already apply
for each instance picked by conditions, so it often is simply not needed. However, if you fully understand how the event system works, it can be used to force the event to apply once per instance where the event system would not normally do that. The 'ordered' variant allows the order that the instances are iterated in to be defined by an expression. For example, ordering by
Sprite.Y ascending will iterate the top instances on the screen first, moving downwards.
RepeatSimply repeat the event a given number of times. This tests any conditions following it on every repeat, and if those conditions are met also runs the actions and any sub-events on every repeat.
WhileRepeat the event until one of the other conditions in the event becomes false or a
Stop loop action is used. Be careful not to create infinite loops which will cause the game to hang.
Pick instances
Pick allReset the picked objects back to all of them. Subsequent conditions will pick from all instances again instead of filtering from only those meeting all the conditions so far. See
How events work for more information on how instances are picked in events. Useful in subevents to start affecting different instances again.
Pick Nth instancePick the
instance at a given place in the internal list of picked objects. This is most useful used in sub-events to act on separate instances. For example, in a "Sprite collided with Sprite" event,
Pick 0th instance and
Pick 1st instance can be used to act on each instance involved in the collision separately.
If all objects are currently picked, this condition can also be used to pick an object by its index ID (IID). For more information, see
common features.
Pick random instancePick a random instance from the currently picked objects. In other words, if
Pick random instance follows another condition, it will pick a random instance from the instances meeting the prior condition. Otherwise it picks a random instance from all the instances.
Special conditions
ElseRun if the previous event did not run. Note that this condition does not pick any objects: if it follows an event that picks objects, in the
Else event all instances revert to picked again.
Else can only follow normal (non-triggered) events. It can also follow another
Else event with other conditions to make an "if - else if - else" chain.
Is in previewTrue when running the project from a preview in Construct 2, and false when running after being exported. Useful to add debug or diagnostic features for previewing only.
Is on mobile deviceTries to detect whether the current device viewing the project is a mobile (e.g. phone or tablet). It is very difficult to accurately detect this so detection may not be perfect: there may be some mobile systems for which
Is on mobile is not true, and (although less likely) desktop systems for which
Is on mobile returns true. The condition always returns true when packaged via the PhoneGap or AppMobi containers, and always returns true for iOS or Android based devices. Beyond that Construct 2 will test a few other common mobile manufacturers. Otherwise, it will return true if the current system is
not a desktop system, since there are relatively few desktop OSs; the desktop systems it checks for are Windows, Linux, OS 9, OS X, Solaris and BSD.
Trigger once while trueTurn an ordinary event (which is tested every tick) in to a trigger. For example, if an event plays a sound when lives equals 0, normally this event runs every tick. This plays about 60 sounds a second and would sound pretty bad. Adding
Trigger once while true after the other conditions makes the event run just once when it first becomes true. This makes the previous example only play a sound once the first time your lives reaches 0. It must be the last condition in an event.
Start & end
On end of layoutTriggered when the layout is ending. This can happen when the project goes to a different layout or when the project closes.
On start of layoutTriggered when the layout begins.
Time
Compare timeCompare the time, in seconds, since the game began. For example, events can be set up to run when the time reaches (equals) 10 seconds.
Every X secondsRun the event regularly at a given time interval in seconds. This can also be used beneath other conditions to only run the event at a given time interval while the other conditions are true, e.g. "Player is holding spacebar AND every 0.5 seconds: fire laser".