Difference between revisions of "Action Parts"

From The Official Visionaire Studio: Adventure Game Engine Wiki
 
(27 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Introduction==
+
'''Action parts''' are an essential part of Visionaire Studio's [[Action System|action system]].
{| class="ts"
 
|- valign="top"
 
| width="100%" |
 
Most action parts are generally selected via the "select action parts" pop-up box & the available actions are subjected to change depending on the area you call the "select action parts" pop-up box from.
 
  
Open up a list of available actions by clicking on one of the buttons on the right hand side of the select action part pop-up box; the action parts you use the most will be listed on the left hand side for quick & easy access.
+
[[File:actionpart_box_en.png|thumb|300px|Action part selection dialog]]
|| [[File:actionpart_box_en.png|thumb|right|100px|...]]
+
By default, the action part selection dialog (see image) pops up when adding a new action part to an action (you can disable this in the options). The dialog shows all 100+ available action parts grouped by categories on the right hand side. Click on one of the buttons to open up a category list and choose the desired action part. The action parts you use the most will be listed on the left hand side for quick & easy access (double-click to select). There is also a search field available.
|}
 
  
==Character==
+
Another way of adding new action parts is by clicking somewhere in the action part list and press the "Enter" key. You can then start typing the name of the desired action part and select it from the auto-complete list that pops up; or just write the full action part name and press "Enter" again.
  
===Display text===
+
You can always change the type of action part after you added it. Just choose another part from the list at the top of the action part properties area.
  
Displays the included text over the top of the linked characters head & plays an audio file - if included - & automatically plays the characters talk animation - if one was included in the current characters outfit. By default, unless displayed text was set as "background text" or the mouse cursor was hidden - prior to calling the display text action part; then the displayed text can be skipped by clicking the left mouse button! All actions listed after the displayed text will not be performed until the displayed text has finished being displayed unless the displayed text was set as "background text" - in which case actions can be performed while displayed text is being displayed.
+
Visionaire Studio offers the possibility to create your own action parts through [[Plugins|plugins]]. Members of the community have shared plugins they developed; you can download them from the [[Action Part Plugins|list of action part plugins]]. If you have installed such plugins, you will find them in the "Custom" section of the action part selection dialog.
  
If '''Show as background text''' is selected then the user can perform actions while the text is being displayed & all listed actions after the displayed text will continue to be performed. Background-text can not be skipped via the left mouse button! Background text can be used for displaying conversations by people in the background or you could use it for displaying text while being allowed to perform actions, walk around the scene or manually change which character actions to display.
 
  
 +
You can find a complete list of available action parts below.
  
===Send character to position===
+
<hr>
  
Send the selected character to a specified position; make sure the specified position is not outside of the way borders.
 
  
If "<b>wait until character reached destination</b>" is selected then: all action parts listed after this, will not be performed until the character has reached the specified destination.
+
== Character ==
  
 +
=== Display text ===
  
===Send character to object===
+
Displays the included <span class="inlinecode">Text</span> over the top of the linked <span class="inlinecode">Character</span>'s head. If the current outfit includes a talking animation, it is automatically started. If an audio file has been included, it is played. The "Text alignment" for all characters is defined globally in the game properties.
  
Send the selected character to the linked object; make sure the character & object are on the same scene.
+
* If <span class="inlinecode">"Show as background text"</span> is not checked, the cursor gets hidden while the text is displayed. The user may then skip the text by clicking the left mouse button (unless the cursor was manually hidden prior to calling the action part). All action parts listed after "Display text" will not be performed until the displayed text has finished being displayed.
 +
* If <span class="inlinecode">"Show as background text"</span> is checked, the user can perform actions while the text is being displayed. Use it to implement conversations by people in the background. Background text cannot be skipped. All action parts listed after "Display text" will continue to be executed without waiting for the text display to finish. You can use the [[#Wait_until_character_stops_speaking|"Wait until character stops speaking"]] action part to prevent this.
  
If "<b>wait until character reached destination</b>" is selected then: all action parts listed after this, will not be performed until the character has reached the linked object.
 
  
 +
=== Wait until character stops speaking ===
  
===Wait until character stops===
+
Prevents action parts listed after this one from being performed until the selected <span class="inlinecode">Character</span> has stopped talking. This is especially useful when dealing with background text.
  
This prevents action parts listed after this one from being performed until the selected character has stopped walking. This action part should only really be used during cut-scenes; when the player has no control over the character or it's position &/or destination.
 
  
 +
=== Send character to position ===
  
===Stop character===
+
Send the selected <span class="inlinecode">Character</span> to a specified <span class="inlinecode">Position</span>. Make sure the position is inside of the way border polygon.
  
If the selected character is walking to a destination; then this action part will cancel the destination & stop the character at its current position.
+
If <span class="inlinecode">"Wait until character reached destination"</span> is checked, all action parts listed after this, will not be performed until the character has reached the specified destination.
  
  
===Align character===
+
=== Send character to object ===
  
This action part allows you to realign the selected character towards a new direction.
+
Send the selected <span class="inlinecode">Character</span> to the linked <span class="inlinecode">Object</span>s position. Make sure the character and object are on the same scene.
  
 +
If <span class="inlinecode">"Wait until character reached destination"</span> is checked, all action parts listed after this, will not be performed until the character has reached the linked object.
  
===Set character to position===
 
  
This action part allows you to teleport the selected to character to a specified position in the selected scene & control the direction the character should be facing.
+
=== Wait until character stops ===
  
 +
Prevents action parts listed after this one from being performed until the selected <span class="inlinecode">Character</span> has stopped walking. This action part should only really be used during cut-scenes; when the player has no control over the character or its position and/or destination.
  
===Set character to object===
 
  
This action part allows you to teleport the selected character to a linked object & control the direction the character should be facing; the character & object should be in the same scene.
+
=== Stop character ===
  
 +
This action part will cancel the linked <span class="inlinecode">Character</span>s destination and stop it at its current position. It has no effect, if the character is currently not walking.
  
===Change character===
 
  
This action part allows you to change the current playable character; if the new playable character is in the same scene as the previously used playable character then select the "<b>Immediately show scene</b>" option, otherwise select the "<b>Fade to scene</b>" option.
+
=== Align character ===
  
 +
This action part allows you to realign the selected <span class="inlinecode">Character</span> towards a new <span class="inlinecode">Direction</span> or towards an <span class="inlinecode">Object</span>. If you link an object, the linked direction is ignored.
  
===Change outfit===
 
  
This action part allows you to change the linked characters outfit to another one; if "<b>Do not unload old outfit animations</b>" is selected then: the previous outfits animations will be stored in memory so they don't have to be reloaded if you change back to them later on.
+
=== Set character to position ===
  
 +
This action part allows you to instantly teleport the selected <span class="inlinecode">Character</span> to a specified <span class="inlinecode">Position</span> in the selected <span class="inlinecode">Scene</span> and control the <span class="inlinecode">Direction</span> the character should be facing.
  
===Change comment set===
 
  
This action part allows you to change the default comment sets of what is to be displayed when a character performs an invalid action; this could be changed to display comments which reflect the characters current mood.
+
=== Set character to object ===
  
 +
This action part allows you to instantly teleport the selected <span class="inlinecode">Character</span> to a linked <span class="inlinecode">Object</span>'s position and control the <span class="inlinecode">Direction</span> the character should be facing. The character and object should be in the same scene.
  
===Change walking sound===
 
  
This action part allows you to change the footstep sounds of the selected character to the linked audio file.
+
=== Change character ===
 +
 
 +
This action part allows you to change the current playable <span class="inlinecode">Character</span>. If the new playable character is in a different scene than the previous one, the engine will automatically switch scenes.
 +
 
 +
You can switch to the new scene instantly or you can fade out of the current scene and into the next. If you choose the latter, you may adjust the transition effect and duration through the [[#Set_fade_effect_to_new_scene|"Set fade effect to new scene"]] action part.
 +
 
 +
 
 +
=== Change outfit ===
 +
 
 +
This action part allows you to change the linked <span class="inlinecode">Character</span>s <span class="inlinecode">Outfit</span>. If <span class="inlinecode">"Do not unload old outfit animations"</span> is checked, the previous outfits animations will be stored in memory so they don't have to be reloaded if you change back to them later on.
 +
 
 +
 
 +
=== Change comment set ===
 +
 
 +
This action part allows you to change the default comment set of what is to be displayed when a character performs an invalid action. This could be changed to display comments which reflect the character's current mood.
 +
 
 +
 
 +
=== Change walking sound ===
 +
 
 +
This action part allows you to change the footstep sounds of the selected <span class="inlinecode">Character</span> to the linked <span class="inlinecode">Sound file</span>.
  
 
   
 
   
===Change font of a character===
+
=== Change font of a character ===
  
This action part allows you to change the default font (displayed text) for the selected character.
+
This action part allows you to change the default <span class="inlinecode">Font</span> for the selected <span class="inlinecode">Character</span>. That's the font that is used for displaying texts when the character speaks.
  
  
===Change character speed===
+
=== Change character speed ===
  
This action part allows you to control the selected characters walking speed; this could be used for controlling when a character walks, runs or the speed the character should move over a specific area of terrain.
+
This action part allows you to control the selected <span class="inlinecode">Character</span>s walking speed. This could be used for controlling when a character walks, runs or the speed the character should move over a specific area of terrain.
  
  
===Change character animation index===
+
=== Change character animation index ===
  
Changes the animation index of a character (default is 0 when the game is started). This index is used for talk-, random- and stand-animations. If more than 1 animation exists for a direction then this index decides which animation is shown.
+
Changes the animation index of a <span class="inlinecode">Character</span> (default is 0 when the game is started). This index is used for talk, random and stand animations. If more than 1 animation exists for a direction then this index decides which animation is shown.
  
Example: A character has 8 talk animations, 2 for each direction (0, 90, 180, 270 degrees). If the index is 0 then the first of the two animations (for a direction) is shown. If the index is 1 then the second animation is shown.
+
''Example: A character has 8 talk animations, 2 for each direction (0, 90, 180, 270 degrees). If the index is 0 then the first of the two animations (for a direction) is shown. If the index is 1 then the second animation is shown.''
  
 
With this index it is possible to have different animations (e.g. talking friendly / neutral / angry) without changing the complete outfit.
 
With this index it is possible to have different animations (e.g. talking friendly / neutral / angry) without changing the complete outfit.
  
  
===Chase character===
+
=== Chase character ===
 +
 
 +
Allows you to make a character follow/chase another <span class="inlinecode">Character</span> (or vice versa). Both characters must be in the same scene. The chasing character will keep the distance set in <span class="inlinecode">"Range"</span>. If it gets closer, the linked <span class="inlinecode">Action</span> gets executed. Use the [[#Stop_chase|"Stop chase"]] action part to stop the chase.
  
Allows you to make a character follow/chase another character around a scene; if the character doing the following/chasing enters the set <span style="color:green"><b>radius</b></span> then a linked "called by other action" can be performed - if an action is linked.
 
  
The two characters must be in the same scene!
+
=== Stop chase ===
  
 +
Stops the selected <span class="inlinecode">Character</span> from chasing another character (as started through the [[#Chase_character|"Chase character"]] action part).
  
===Stop chase===
 
  
Stops character(s) from chasing the selected character.
+
=== Show/Hide character ===
  
 +
Show or hide the selected <span class="inlinecode">Character</span>. A hidden character is not only invisible but completely disabled, i.e. you cannot interact with it, whereas a character with 0% visibility (see the [[#Set_character_visibility|"Set character visibility"]] action part) still gets recognized by the cursor.
  
===Show/Hide character===
 
  
Show or hide the selected character.
+
=== Set character visibility ===
  
 +
Allows you to set the visibility (opacity) of the selected <span class="inlinecode">Character</span> in percent. By setting the <span class="inlinecode">Delay [ms]</span>, you can also control how long it should take (in milliseconds) to change from the current opacity to the new opacity amount. If a value is linked to <span class="inlinecode">Visibility (value)</span>, it will be used instead of the <span class="inlinecode">Visibility [%]</span> value.
  
===Set character visibility===
+
A character with 0% visibility is invisible, but the user can still interact with it. If you want to completely disable a character (remove it from the scene), use the [[#Show.2FHide_character|"Show/Hide character"]] action part.
 +
 
 +
 +
=== Start dialog/dialog-layer ===
  
Allows you to set the opacity of the selected character by using the <span style="color:green"><b>Visibility [%]</b></span> & control the amount of time (in ms) with the <span style="color:green"><b>Delay [ms]</b></span> as to how long it should take to change from current opacity to new opacity amount.
+
Starts a dialog between the current character and a partner. You can link a <span class="inlinecode">Dialog</span> that has been created on the "Dialogs" tab of the addressed character. Following action parts will be executed immediately so take care if this is not the last action part of the listed actions.
  
If a <span style="color:red">value</span> is linked to <span style="color:green"><b>Visibility (value)</b></span> then it will be used instead of the <span style="color:red">value</span> set in <span style="color:green"><b>Visibility [%]</b></span>.
 
  
This could be used for creating a semi-transparent character: like a ghost for instance or maybe to suggest the character is invisible because they are wearing a special item; like the ring in: [http://en.wikipedia.org/wiki/The_Lord_of_the_Rings The Lord of the Rings] or [http://www.gog.com/gamecard/simon_the_sorcerer Simon the Sorcerer].
+
=== Stop dialog ===
  
+
Allows you to manually stop and close the currently running dialog.
===Start dialog/dialog-layer===
 
  
Starts dialog between the current character and a partner. The dialog has to be created under the dialog option of the addressed character. Following action parts will be executed immediately so take care if this is not the last action part of the listed actions.
 
  
 +
== Scene ==
  
===Stop dialog===
+
=== Start color overlay ===
  
Allows you to manually stop & close the currently opened dialog.
+
Covers the screen with a color panel. You can set the <span class="inlinecode">Color</span>, the <span class="inlinecode">Visibility</span> (opacity) value, and the amount of time in <span class="inlinecode">milliseconds</span> that the fading should take. The overlay does not only cover the scene but the entire game screen, including interfaces and cursor. It is not limited to the current scene; if you change to another scene or menu, the color overlay will stay. Even if at 100% opacity the user will still be able to play the game, although he won't see anything. Use this action part with a visibility setting of 0% to remove the overlay.
  
  
==Scene==
+
=== Change scene ===
  
===Change scene===
+
Allows you to change to a new scene and teleport the selected <span class="inlinecode">Character</span> (usually the current character). You set the new scene indirectly by choosing an object on that scene for <span class="inlinecode">"Character stands at"</span>. You may also define the direction the character should be facing.
  
Allows you to change to a new scene & teleport the selected character to the linked object of a scene & set the direction the character should be facing; you can switch to new scene instantly or you can fade out of current scene & into the next.
+
You can switch to the new scene instantly or you can fade out of the current scene and into the next. If you choose the latter, you may adjust the transition effect and duration through the [[#Set_fade_effect_to_new_scene|"Set fade effect to new scene"]] action part.
 
   
 
   
  
===Show scene/menu===
+
=== Show scene/menu ===
  
Allows you to switch to a new scene or menu without having to teleport a character; useful for switching to menus or a scene in which you want to show a cut-scene.
+
Allows you to switch to a new scene or menu without having to teleport a character. This is useful for switching to menus or to a scene in which you want to show a cut-scene.
  
 +
You can switch to the new scene instantly or you can fade out of the current scene and into the next. If you choose the latter, you may adjust the transition effect and duration through the [[#Set_fade_effect_to_new_scene|"Set fade effect to new scene"]] action part.
  
===Scroll scene to position===
 
  
This action part: scrolls the current scene to the specified position.
+
=== Scroll scene to position ===
  
 +
This action part scrolls the current scene to the specified <span class="inlinecode">Position</span>. The scene must be scrollable, i.e. it has to be larger than the game resolution. If you use this action part in a scene where the playable character is located, the scene may immediately scroll back to center on the current character again which is the default behaviour. You can stop centering on the current character through the [[#Center_scene_on_character_permanently|"Center scene on character permanently"]] action part.
  
===Scroll scene to object (centered)===
 
  
This action part: scroll the current scene until the linked object is in the center of the scene; the linked object must be in the current scene.
+
=== Scroll scene to object (centered) ===
 +
 
 +
This action part scrolls the current scene until the linked <span class="inlinecode">Object</span> is in the center of the scene. The object must be in the current scene and the scene must be scrollable, i.e. it has to be larger than the game resolution. If you use this action part in a scene where the playable character is located, the scene may immediately scroll back to center on the current character again which is the default behaviour. You can stop centering on the current character through the [[#Center_scene_on_character_permanently|"Center scene on character permanently"]] action part.
  
 
   
 
   
===Center scene on character permanently===
+
=== Center scene on character permanently ===
  
Scene is centered on the selected characters position unless the "<span style="color:green"><b>Clear centering</b></span> checkbox is selected; this action part is intended for using in cut-scenes or when you don't want the scene to be focused on the currently playable character.
+
By default, a scrollable scene is centered on the current character's position. With this action part you can choose any <span class="inlinecode">Character</span> to have the scene centered on or stop centering the scene on a character at all by checking <span class="inlinecode">"Clear centering"</span>. This action part is intended for using in cut-scenes or when you don't want the scene to be focused on the currently playable character.
  
  
===Change to scene of a character===
+
=== Change to scene of a character ===
  
Changes to the scene where the selected character is located; this is mostly used to switch back from menu scenes to the scene where your playable character is located.
+
Changes to the scene where the selected <span class="inlinecode">Character</span> is located. This action part is mostly used to switch back from menu scenes to the scene where your playable character is located.
  
You can fade out from current scene into the one where the selected character is located or you can show the scene instantly.
+
You can switch to the new scene instantly or you can fade out of the current scene and into the next. If you choose the latter, you may adjust the transition effect and duration through the [[#Set_fade_effect_to_new_scene|"Set fade effect to new scene"]] action part.
  
 
   
 
   
===Set fade effect to new scene===
+
=== Set fade effect to new scene ===
 +
 
 +
Let's you control the transition <span class="inlinecode">Effect</span> and the amount of time (<span class="inlinecode">"Delay"</span>) in milliseconds that the transition should take when changing from one scene to another using the fade option. The settings of this action part apply to all forthcoming scene changes until you use the action part again.
 +
 
 +
 
 +
=== Set object visibility ===
 +
 
 +
Allows you to set the visibility (opacity) of the selected <span class="inlinecode">Object</span> in percent. By setting the <span class="inlinecode">Delay [ms]</span>, you can also control how long it should take (in milliseconds) to change from the current opacity to the new opacity amount. If a value is linked to <span class="inlinecode">Visibility (value)</span>, it will be used instead of the <span class="inlinecode">Visibility [%]</span> value.
 +
 
 +
An object with 0% visibility is invisible, but the user can still interact with it. If you want to completely disable an object, you have to work with a [[Conditions and Values|condition or value]].
 +
 
 +
 
 +
=== Move object ===
  
Let's you control the transition effects from one scene to another & the amount of time (in ms) that the transition should take.
+
This action part moves a scene <span class="inlinecode">Object</span> by the given amount of <span class="inlinecode">X</span> and <span class="inlinecode">Y</span> distance. You can set the speed of movement by defining the <span class="inlinecode">Duration</span> in milliseconds. The movement is linear.
  
  
===Set object visibility===
+
=== Move object to ===
  
This action part allows you to control the opacity of the linked object in any scene & the amount of time it should take (in ms) to change from current opacity to the set opacity amount.
+
This action part moves a scene <span class="inlinecode">Object</span> to the selected <span class="inlinecode">position</span>. You can set the speed of movement by defining the <span class="inlinecode">Duration</span> in milliseconds. The movement is linear.
  
  
===Change way system===
+
=== Change way system ===
  
Allows you to change the current way system for any scene by linking to another way system; this could be used to change to another way system which has a different border or different paths due to something being changed in a scene; for example: maybe an earthquake or explosion blocked part of the scene & as a result we need to change the walkable paths of a scene!
+
Allows you to change the current way system for any scene by linking to another <span class="inlinecode">Way system</span>. This could be used to change the walkable area due to something being changed in a scene; for example: an earthquake or explosion blocks part of the scene.
  
  
===Set lightmap===
+
=== Set lightmap ===
  
Sets the light map (see Light map in Scene <-- need to add page for this later!) for the selected scene.
+
Sets the linked <span class="inlinecode">Image file</span> as the new lightmap for the selected <span class="inlinecode">Scene</span>. You can define the transition duration in milliseconds.
  
 +
Note that transition only works when switching from one lightmap to another, i.&nbsp;e. there has to be a lightmap already active when switching to the new one. Otherwise the new lightmap will affect the scene immediately.
  
===Set brightness===
 
  
Allows you to control the brightness of the selected scene; currently the brightness can only be set, one scene at a time.
+
=== Set brightness ===
  
 +
Allows you to control the <span class="inlinecode">Brightness</span> of the selected <span class="inlinecode">Scene</span> in percent.
  
===Fade "snoop" animations in/out===
 
  
This action part allows you to fade in/out the snoop (hotspot) animations over x time (in ms) for the current scene; in general it's a good idea to add the show snoop action to an on key input & then hide on key input (release).
+
=== Fade "hotspot" animations in/out ===
  
 +
This action part allows you to fade in/out the objects' hotspot (formerly known as "snoop") animations for the current scene. The fading time (<span class="inlinecode">"Delay"</span>) can be set in milliseconds. In general it's a good idea to add this action part to a "key pressed" action (fade in) and to a "key released" action (fade out).
  
===Set horizontal scroll area===
 
  
By default the scene can be scrolled from the left to the right border of the scene background image. With this action part it is possible to limit the horizontal scroll area. Left border sets the left border of the background image where the scene can be scrolled to (default is 0), Right border the right border analogous (default is width of background image). E.g. it is possible to limit the scroll area and let a character walk from outside into the scene.
+
=== Set horizontal scroll area ===
  
 +
By default, a scene wider than the game's width can be scrolled from the left to the right border of the scene background image. With this action part it is possible to limit the horizontal scroll area of the <span class="inlinecode">Scene</span>. <span class="inlinecode">"Left border"</span> sets the left border of the background image where the scene can be scrolled to (default is 0), <span class="inlinecode">"Right border"</span> the right border analogous (default is width of background image).
  
===Set vertical scroll area===
 
  
By default the scene can be scrolled from the top to the bottom border of the scene background image. With this action part it is possible to limit the vertical scroll area. Top border sets the top border of the background image where the scene can be scrolled to (default is 0), Bottom border the bottom border analogous (default is height of background image).
+
=== Set vertical scroll area ===
  
 +
By default, a scene higher than the game's height can be scrolled from the top to the bottom border of the scene background image. With this action part it is possible to limit the vertical scroll area of the <span class="inlinecode">Scene</span>. <span class="inlinecode">Top border</span> sets the top border of the background image where the scene can be scrolled to (default is 0), <span class="inlinecode">Bottom border</span> the bottom border analogous (default is height of background image).
  
===Keep scene in memory===
 
  
This action part allows you to store various things from the current scene into memory for the set amount of scene changes; this is useful for when you want to change to a new scene (cut-scene maybe) & then back again without having to wait for the images & animations etc to reload.
+
=== Keep scene in memory ===
 +
 
 +
This action part allows you to store various things from the current scene into memory for the set amount of scene changes. This is useful for when you want to change to a new scene (cut-scene maybe) & then back again without having to wait for the images & animations etc. to reload.
  
  
 
==Condition, If, Value==
 
==Condition, If, Value==
  
===Change condition===
+
=== If character has item ===
 +
 
 +
Only perform the actions wrapped in the query, if the selected <span class="inlinecode">Character</span> owns the selected <span class="inlinecode">Item</span> (has it in his inventory); else continue with the next "else if" or "else" criteria (if provided) or end the query. See the [[Conditions_and_Values#Build_.22if.E2.80.A6else.22_queries|conditions and values page]] on how to build "if…else" queries.
 +
 
 +
You can turn this action part into an "else if" by checking <span class="inlinecode">ElseIf</span>.
 +
 
 +
 
 +
=== If Lua result ===
 +
 
 +
Only perform the actions wrapped in the query, if the entered Lua <span class="inlinecode">Script</span> returns "true"; else continue with the next "else if" or "else" criteria (if provided) or end the query. See the [[Conditions_and_Values#Build_.22if.E2.80.A6else.22_queries|conditions and values page]] on how to build "if…else" queries.
 +
 
 +
<syntaxhighlight lang="lua">
 +
-- Example: returns "true" if the cave scene is the current scene
 +
return game.CurrentScene == Scenes["cave"]
 +
</syntaxhighlight>
 +
 
 +
You can turn this action part into an "else if" by checking <span class="inlinecode">ElseIf</span>.
 +
 
 +
 
 +
=== Wait until value was changed ===
 +
 
 +
Prevents action parts listed after this one from being performed until the selected <span class="inlinecode">Value</span> has changed as defined by the following <span class="inlinecode">Operator</span>s.
 +
 
 +
* [ ValueChanged ] queries if the current <span class="inlinecode">Value</span> has changed
 +
* [ = ] queries if the current <span class="inlinecode">Value</span> equals the second linked <span class="inlinecode">Value</span> or the <span class="inlinecode">number</span> provided
 +
* [ != ] queries if the current <span class="inlinecode">Value</span> does not equal the second linked <span class="inlinecode">Value</span> or the <span class="inlinecode">number</span> provided
 +
* [ <= ] queries if the current <span class="inlinecode">Value</span> is less than or equal to the second linked <span class="inlinecode">Value</span> or the <span class="inlinecode">number</span> provided
 +
* [ < ] queries if the current <span class="inlinecode">Value</span> is less than the second linked <span class="inlinecode">Value</span> or the <span class="inlinecode">number</span> provided
 +
* [ >= ] queries if the current <span class="inlinecode">Value</span> is more than or equal to the second linked <span class="inlinecode">Value</span> or the <span class="inlinecode">number</span> provided
 +
* [ > ] queries if the current <span class="inlinecode">Value</span> is more than the second linked <span class="inlinecode">Value</span> or the <span class="inlinecode">number</span> provided
 +
 
  
Allows you to change the boolean value of the linked condition to <span style="color:blue">true</span> or <span style="color:blue">false</span>.
 
  
 +
=== Wait until condition was changed ===
  
===Set value===
+
Prevents action parts listed after this one from being performed until the linked <span class="inlinecode">Condition</span> has changed to "true" or "false" – or has just changed.
  
Allows you to change the value of the linked value with one of the <b>Operators</b> listed below.
 
  
<div class="toccolours mw-collapsible mw-collapsed ts">
+
=== Start tween on value ===
<b>Operators</b>
+
 
<div class="mw-collapsible-content">
+
This action part increases or decreases the linked <span class="inlinecode">Value</span> over time (defined in milliseconds) to match a target value, provided as a fixed <span class="inlinecode">Target</span> number or by linking another value (<span class="inlinecode">"TargetValue"</span>). The value tween can be used with the sound system to control volumes, for example.
<div style="background:#ebebeb" width="100%">Equal[=] allows you to set the value to the linked value <span style="color:green">or number</span> provided</div>
+
 
<div>Add[+] allows you to add the linked value <span style="color:green">or number</span> provided to the current value</div>
+
 
<div style="background:#ebebeb" width="100%">Subtract[-] allows you to subtract from the current value with the linked value <span style="color:green">or number</span> provided</div>
+
=== Change condition ===
<div>Multiply[*] allows you to multiply the current value with the linked value <span style="color:green">or number</span> provided</div>
+
 
<div style="background:#ebebeb" width="100%">Divide[/] allows you to divide the current value with the linked value <span style="color:green">or number</span> provided</div>
+
Allows you to change the boolean value of the linked <span class="inlinecode">Condition</span> to "true" or "false" or to toggle the state (set the value opposite to the current one).
</div></div>
+
 
 +
 
 +
=== Set value ===
 +
 
 +
Allows you to change the integer value of the linked <span class="inlinecode">Value</span> with one of the <span class="inlinecode">Operator</span>s listed below.
 +
 
 +
* [ = ] allows you to set the current <span class="inlinecode">Value</span> to the second linked <span class="inlinecode">Value</span> or <span class="inlinecode">number</span> provided
 +
* [ + ] allows you to add the second linked <span class="inlinecode">Value</span> or <span class="inlinecode">number</span> provided to the current <span class="inlinecode">Value</span>
 +
* [ - ] allows you to subtract the second linked <span class="inlinecode">Value</span> or <span class="inlinecode">number</span> provided from the current <span class="inlinecode">Value</span>
 +
* [ * ] allows you to multiply the current <span class="inlinecode">Value</span> with the second linked <span class="inlinecode">Value</span> or <span class="inlinecode">number</span> provided
 +
* [ / ] allows you to divide the current <span class="inlinecode">Value</span> with the second linked <span class="inlinecode">Value</span> or <span class="inlinecode">number</span> provided
  
 
   
 
   
===Set random value===
+
=== Set random value ===
 +
 
 +
Allows you to set the linked <span class="inlinecode">Value</span> to a random value from the defined range of numbers.
 +
 
 +
 
 +
=== If condition ===
 +
 
 +
Only perform the actions wrapped in the query, if the linked <span class="inlinecode">Condition</span> equals the boolean "true" or "false" value you selected; else continue with the next "else if" or "else" criteria (if provided) or end the query. See the [[Conditions_and_Values#Build_.22if.E2.80.A6else.22_queries|conditions and values page]] on how to build "if…else" queries.
 +
 
 +
You can turn this action part into an "else if" by checking <span class="inlinecode">ElseIf</span>.
 +
 
 +
 
 +
=== If value ===
 +
 
 +
Only perform the actions wrapped in the query, if the linked <span class="inlinecode">Value</span> matches one of the specified criteria in the <span class="inlinecode">Operators</span> listed below; else continue with the next "else if" or "else" criteria (if provided) or end the query. See the [[Conditions_and_Values#Build_.22if.E2.80.A6else.22_queries|conditions and values page]] on how to build "if…else" queries.
 +
 
 +
* [ = ] queries if the current <span class="inlinecode">Value</span> equals the second linked <span class="inlinecode">Value</span> or the <span class="inlinecode">number</span> provided
 +
* [ != ] queries if the current <span class="inlinecode">Value</span> does not equal the second linked <span class="inlinecode">Value</span> or the <span class="inlinecode">number</span> provided
 +
* [ <= ] queries if the current <span class="inlinecode">Value</span> is less than or equal to the second linked <span class="inlinecode">Value</span> or the <span class="inlinecode">number</span> provided
 +
* [ < ] queries if the current <span class="inlinecode">Value</span> is less than the second linked <span class="inlinecode">Value</span> or the <span class="inlinecode">number</span> provided
 +
* [ >= ] queries if the current <span class="inlinecode">Value</span> is more than or equal to the second linked <span class="inlinecode">Value</span> or the <span class="inlinecode">number</span> provided
 +
* [ > ] queries if the current <span class="inlinecode">Value</span> is more than the second linked <span class="inlinecode">Value</span> or the <span class="inlinecode">number</span> provided
 +
 
 +
 
 +
You can turn this action part into an "else if" by checking <span class="inlinecode">ElseIf</span>.
  
Allows you to set a random value; <span style="color:green">from</span> min <span style="color:green">to</span> max or by linking to another value.
 
  
 +
=== If character is on scene ===
  
===If condition===
+
Only perform the actions wrapped in the query if the selected <span class="inlinecode">Character</span> is on the selected <span class="inlinecode">Scene</span>; else continue with the next "else if" or "else" criteria (if provided) or end the query. See the [[Conditions_and_Values#Build_.22if.E2.80.A6else.22_queries|conditions and values page]] on how to build "if…else" queries.
  
Only perform the actions wrapped in the query, if the linked condition equals the boolean <span style="color:blue">true</span> or <span style="color:blue">false</span> value you selected; else perform actions listed after the next <span style="color:blue">else</span> (if provided) or <span style="color:blue">end if</span>.
+
You can turn this action part into an "else if" by checking <span class="inlinecode">ElseIf</span>.
  
  
===If value===
+
=== If character is current character ===
  
Only perform the actions wrapped in the query, if the linked value matches one of the specified criteria in the <b>Operators</b> listed below; else perform actions listed after the next <span style="color:blue">else</span> (if provided) or <span style="color:blue">end if</span>.
+
Only perform the actions wrapped in the query, if the selected <span class="inlinecode">Character</span> is the character you are currently controlling; else continue with the next "else if" or "else" criteria (if provided) or end the query. See the [[Conditions_and_Values#Build_.22if.E2.80.A6else.22_queries|conditions and values page]] on how to build "if…else" queries.
  
<div class="toccolours mw-collapsible mw-collapsed ts">
+
You can turn this action part into an "else if" by checking <span class="inlinecode">ElseIf</span>.
<b>Operators</b>
 
<div class="mw-collapsible-content">
 
<div style="background:#ebebeb" width="100%">Equal to[=] queries if the current value equals the linked value <span style="color:green">or number</span> provided</div>
 
<div>Does not equal[!=] queries if the current value does not equal the linked value <span style="color:green">or number</span> provided</div>
 
<div style="background:#ebebeb" width="100%">Less than or equal to[<=] queries if the linked value <span style="color:green">or number</span> provided is less than or equal to the current value</div>
 
<div>Less than[<] queries if the linked value <span style="color:green">or number</span> provided is less than the current value</div>
 
<div style="background:#ebebeb" width="100%">More than or equal to[>=] queries if the linked value <span style="color:green">or number</span> provided is more than or equal to the current value</div>
 
<div>More than[>] queries if the linked value <span style="color:green">or number</span> provided is more than the current value</div>
 
</div></div>
 
  
  
===If character is on scene===
+
=== If character is aligned to ===
  
Only perform the actions wrapped in the query if the selected character is on the selected scene; else perform actions listed after the next <span style="color:blue">else</span> (if provided) or <span style="color:blue">end if</span>.
+
Only perform the actions wrapped in the query, if the selected <span class="inlinecode">Character</span> is facing in the given <span class="inlinecode">Direction</span>. You can define a <span class="inlinecode">Range</span> of direction angles, either around the direction set in the widget ("+/-") or starting at that direction ("from-to"). See the [[Conditions_and_Values#Build_.22if.E2.80.A6else.22_queries|conditions and values page]] on how to build "if…else" queries.
  
  
===If character is current character===
+
=== If language is current language ===
  
Only perform the actions wrapped in the query, if the selected character is the character you are currently controlling; else perform actions listed after the next <span style="color:blue">else</span> (if provided) or <span style="color:blue">end if</span>.
+
Only perform the actions wrapped in the query, if the selected <span class="inlinecode">Language</span> equals the current language being used; else continue with the next "else if" or "else" criteria (if provided) or end the query. See the [[Conditions_and_Values#Build_.22if.E2.80.A6else.22_queries|conditions and values page]] on how to build "if…else" queries.
  
 +
You can turn this action part into an "else if" by checking <span class="inlinecode">ElseIf</span>.
  
===If language is current language===
 
  
Only perform the actions wrapped in the query, if the selected language equals the current language being used; else perform actions listed after the next <span style="color:blue">else</span> (if provided) or <span style="color:blue">end if</span>.
+
=== If command is current command ===
  
 +
Only perform the actions wrapped in the query, if the current command being used equals the selected <span class="inlinecode">Command</span>; else continue with the next "else if" or "else" criteria (if provided) or end the query. See the [[Conditions_and_Values#Build_.22if.E2.80.A6else.22_queries|conditions and values page]] on how to build "if…else" queries.
  
===If command is current command===
+
You can turn this action part into an "else if" by checking <span class="inlinecode">ElseIf</span>.
  
Only perform the actions wrapped in the query, if the current command being used equals the selected command; else perform actions listed after the next <span style="color:blue">else</span> (if provided) or <span style="color:blue">end if</span>.
 
  
 +
=== If current object ... ===
  
===If current object ...===
+
Only perform the actions wrapped in the query if the current position of the mouse cursor meets the selected criteria listed in <span class="inlinecode">Object</span>s below; else continue with the next "else if" or "else" criteria (if provided) or end the query. See the [[Conditions_and_Values#Build_.22if.E2.80.A6else.22_queries|conditions and values page]] on how to build "if…else" queries.
  
Only perform the actions wrapped in the query if the current position of the mouse cursor meets the selected criteria listed in <b>Objects</b> below; else perform actions listed after the next <span style="color:blue">else</span> (if provided) or <span style="color:blue">end if</span>.
+
* "exists": only perform the listed actions if an object is under the mouse cursor
 +
* "does not exist": only perform the listed actions if an object is not under the mouse cursor
 +
* "is a scene object": only perform the listed actions if a scene object is below the mouse cursor
 +
* "is an item": only perform the listed actions if an item is under the mouse cursor
 +
* "is a character": only perform the listed actions if a character is under the mouse cursor
  
<div class="toccolours mw-collapsible mw-collapsed ts">
 
<b>Objects</b>
 
<div class="mw-collapsible-content">
 
<div style="background:#ebebeb" width="100%"><span style="color:green">exists</span>: only perform the listed actions if an object is under the mouse cursor</div>
 
<div><span style="color:green">does not exist</span>: only perform the listed actions if an object is not under the mouse cursor</div>
 
<div style="background:#ebebeb" width="100%"><span style="color:green">is a scene object</span>: only perform the listed actions if a scene object is below the mouse cursor</div>
 
<div><span style="color:green">is an item</span>: only perform the listed actions if an item is under the mouse cursor</div>
 
<div style="background:#ebebeb" width="100%"><span style="color:green">is a character</span>: only perform the listed actions if a character is under the mouse cursor</div>
 
</div></div>
 
  
 +
You can turn this action part into an "else if" by checking <span class="inlinecode">ElseIf</span>.
  
===If savegame/autosave exists===
 
  
Only perform the actions wrapped in the query, if a save game or the specified auto-save number exists; else perform actions listed after the next <span style="color:blue">else</span> (if provided) or <span style="color:blue">end if</span>.
+
=== If savegame/autosave exists ===
  
This query is very useful & can be used for checking if a player can resume game on start or the auto-saves can be used for checking if a certain achievement/bonus content has been obtained without having to use lua to read from an external file.
+
Only perform the actions wrapped in the query, if a savegame or the specified autosave number exists; else continue with the next "else if" or "else" criteria (if provided) or end the query. See the [[Conditions_and_Values#Build_.22if.E2.80.A6else.22_queries|conditions and values page]] on how to build "if…else" queries.
 +
 
 +
You can turn this action part into an "else if" by checking <span class="inlinecode">ElseIf</span>.
  
 
   
 
   
===Else===
+
=== Else ===
  
Allows you to add additional <span style="color:blue">if else</span> queries after the previous <span style="color:blue">if</span>; if no <span style="color:blue">if</span> is added after the <span style="color:blue">else</span> then any actions added to the else part will only be performed if the initial <span style="color:blue">if</span> query criteria was not met.
+
Only perform the following actions if neither the initial "if" criteria of this "if…else" query nor any following "else if" criterias are met. See the [[Conditions_and_Values#Build_.22if.E2.80.A6else.22_queries|conditions and values page]] on how to build "if…else" queries.
  
  
===End if===
+
=== End if ===
  
This action part is used to end an <span style="color:blue">if else</span> query; there should be the same amount of <span style="color:blue">end if</span>, as <span style="color:blue">if</span> queries.
+
This action part is used to end an "if…else" query. There should be the same amount of "end if", as "if" action parts (with additional "if else" action parts optionally in-between). In other words: always end your "if…else" queries with this action part. See the [[Conditions_and_Values#Build_.22if.E2.80.A6else.22_queries|conditions and values page]] on how to build "if…else" queries.
  
  
  
==Interface==
+
== Interface ==
  
===Add/Remove item===
+
=== Add/Remove item ===
  
Adds or removes the selected item to/from the selected characters inventory; if the item is already part of the users inventory/or not currently part of the users inventory then do nothing.
+
Adds or removes the selected <span class="inlinecode">Item</span> to/from the selected <span class="inlinecode">Character</span>'s inventory. If <span class="inlinecode">"Scroll to added item"</span> is checked, the items in the inventory interface will scroll to the end so that the newly added item is visible (this option has no effect when removing an item).
  
If <b>scroll to added item</b> is checked then show the inventory & scroll to the newly added item; this should only be checked for the current player & if an item was added & not removed.
+
There can only be one instance of an item per inventory, so if you try to add an item that is already part of the inventory, nothing happens. The inventory won't scroll to that already present item either. If you try to remove an item that is not part of the inventory, again nothing happens.
  
 
   
 
   
===Remove all items from character===
+
=== Remove all items from character ===
  
Removes all items from the selected character.
+
Removes all items from the selected <span class="inlinecode">Character</span>.
  
  
===Give all items to other character===
+
=== Give all items to other character ===
  
Transfers all items from the selected character to another character.
+
Transfers all items from the selected <span class="inlinecode">Character</span>'s inventory' to another <span class="inlinecode">Character</span>'s inventory.
  
 
   
 
   
===Save object===
+
=== Save object ===
 +
 
 +
Saves the object which is currently under the mouse cursor to memory.
 +
 
 +
This action part is usually used in conjunction with the [[#Set_command|Set command]], [[#Execute_command_on_saved_object|Execute command on saved object]] and [[#Clear_saved_object|Clear saved object]] action parts. You may use them to build a "coin" type interface.
  
Saves the object which is currently under the mouse cursor to memory; this action part is used in conjunction with <span style="color:green">Execute command on saved object</span>.
 
  
 +
=== Execute command on saved object ===
  
===Execute command on saved object===
+
The currently set command is being executed on a previously saved object.
  
The saved command is being executed on a previously saved object. This action part is essential if you are using a coin/ring interface.
+
This action part is usually used in conjunction with the [[#Set_command|Set command]], [[#Save_object|Save object]] and [[#Clear_saved_object|Clear saved object]] action parts. You may use them to build a "coin" type interface.
  
  
===Clear saved object===
+
=== Clear saved object ===
  
Removes the currently saved object from memory; if no object is currently stored/saved, then do nothing.
+
Removes the currently saved object from memory. If no object is currently stored/saved, then this action part will have no effect.
  
 +
This action part is usually used in conjunction with the [[#Set_command|Set command]], [[#Save_object|Save object]] and [[#Execute_command_on_saved_object|Execute command on saved object]] action parts. You may use them to build a "coin" type interface.
  
===Show/Hide interfaces===
 
  
This allows you to globally show or hide all interfaces at the same time.
+
=== Enable/Disable all interfaces ===
  
 +
This allows you to globally enable or disable all interfaces at the same time. Currently visible interfaces get hidden when being disabled and shown again when being enabled again. "Enabling all interfaces" does not mean that all the game's interfaces are shown at once.
  
===Show/Hide interface===
 
  
Allows you to show, hide or toggle if the selected <span style="color:green">interface class</span> is shown or hidden.
+
=== Show/Hide interface ===
  
 +
Allows you to show, hide or toggle the interfaces of the selected <span class="inlinecode">Interface class</span>.
  
===Set interface visibility===
 
  
Allows you to set the opacity for the selected <span style="color:green">interface class</span> & set a delay time, for how long it should take to change opacity; set as "0ms" if you want it to instantly change to the new opacity.
+
=== Set interface visibility ===
  
 +
Allows you to set the <span class="inlinecode">Visibility</span> (opacity) for the interfaces of the selected <span class="inlinecode">Interface class</span> in percent and set a <span class="inlinecode">Delay</span> time (in milliseconds), for how long it should take to change opacity.
  
===Set active/inactive image===
+
Even if set to 0% opacity, the interface is accessible. Use the [[#Show.2FHide_interface|Show/Hide interface]] action part, if you want to really hide it from the user.
  
Allows you to set the active or inactive image for the linked <span style="color:green">button</span>; this would normally be used in conjunction with <span style="color:green">on cursor enters</span>/<span style="color:green">on cursor leaves</span>, to show the linked <span style="color:green">button</span> is active or inactive.
 
  
 +
=== Set active/inactive image ===
  
===Set interface of a character===
+
Allows you to set the active or inactive image for the linked interface <span class="inlinecode">Button</span>. This would normally be used in actions with "Cursor enters object area"/"Cursor leaves object area" execution type, to show the button is active or inactive.
  
Allows you to change the default interface of a character.
 
  
 +
=== Set interface of a character ===
  
===Set command===
+
Allows you to assign an <span class="inlinecode">Interface</span> to a character. Since only one interface per interface class can be active/assigned, using this action part will automatically set any other interface from the same interface class inactive.
 +
 
 +
 
 +
=== Set command ===
  
 
Saves the selected command to memory to be executed later on.
 
Saves the selected command to memory to be executed later on.
  
 +
This action part can be used in conjunction with the [[#Save_object|Save object]], [[#Execute_command_on_saved_object|Execute command on saved object]] and [[#Clear_saved_object|Clear saved object]] action parts to build a "coin" type interface.
  
===Set item===
 
  
Sets the currently held item to the selected item; if <span style="color:green">Dragged item</span> is checked then the item can be dragged.
+
=== Set cursor ===
  
 +
Allows you to change the current mouse <span class="inlinecode">Cursor</span> to another one.
  
==Animation==
 
  
===Play/Hide animation===
+
=== Set item ===
  
Play or Stop the linked <span style="color:green">animation</span>; the animation will play forward unless <span style="color:green">Play in reverse order</span> is checked.
+
Sets the currently held item to the selected <span class="inlinecode">Item</span>. If <span class="inlinecode">"Dragged item"</span> is checked, then the item is shown as if dragged from the inventory (replaces the mouse cursor).
  
If <span style="color:green">Wait until animation is finished</span> is checked then the action parts listed after this one will not be performed until the animation has finished; it will never end if animation is being looped unless you manually hide/stop the animation.
 
  
 +
== Animation ==
  
===Wait until animation is finished===
+
=== Play/Hide animation ===
  
This action part prevents all other actions listed after this one from being performed until the linked <span style="color:green">animation</span> finishes or is manually stopped; this action part should be used if you set an animation playing but wanted to perform a few action parts after the animation & then wait until the linked <span style="color:green">animation</span> has finished playing before carrying on with the rest of the listed actions.
+
Play (and show) or stop (and hide) the linked <span class="inlinecode">Animation</span>. The animation will play forward unless <span class="inlinecode">"Play in reverse order"</span> is checked.
  
 +
If <span class="inlinecode">"Wait until animation is finished"</span> is checked then the action parts listed after this one will not be performed until the animation has finished; it will never end if the animation is being looped unless you manually hide/stop the animation.
  
===Preload/Unload animation===
 
  
Stores or removes the linked <span style="color:green">animation</span> to/from memory; the animation will be stored to memory, so you don't have to reload it each time you enter the scene - until you unload the animation.
+
=== Wait until animation is finished ===
  
 +
This action part prevents all other actions listed after this one from being performed until the linked <span class="inlinecode">Animation</span> finishes or is manually stopped.
  
===Preload/Unload character===
+
This action part should be used if you set an animation playing but wanted to perform a few action parts after the animation and then wait until the linked animation has finished playing before carrying on with the rest of the listed actions.
  
Stores or removes the selected <span style="color:green">character</span> to/from memory; all the characters animations (for each outfit) will be stored to memory so you can instantly switch between outfits without having to wait for them to load - until you unload the character.
 
  
 +
=== Preload/Unload animation ===
  
===Change position of an animation===
+
Stores or removes the linked <span class="inlinecode">Animation</span> to/from memory. The animation will be stored to memory, so you don't have to reload it each time you enter the scene – until you unload the animation.
  
Set the current <span style="color:green">position</span> (x,y) of the linked <span style="color:green">animation</span> via one the <b>Operators</b> & the specified <span style="color:green">value</span>.
+
The engine usually handles the loading and unloading of animations automatically, so use this action part only if you know what you are doing. Manually preloaded animations will stay in memory until manually unloaded again.
  
<div class="toccolours mw-collapsible mw-collapsed ts">
 
<b>Operators</b>
 
<div class="mw-collapsible-content">
 
<div style="background:#ebebeb" width="100%">Equals[=] absolutely position the animation to the x,y <span style="color:green">position</span> provided</div>
 
<div>Add[+] add the x,y <span style="color:green">position</span> values to the current x,y position of the animation</div>
 
<div style="background:#ebebeb" width="100%">Subtract[-] remove the x,y <span style="color:green">position</span> values from the current x,y position of the animation</div>
 
</div></div>
 
  
 +
=== Preload/Unload character ===
  
==Action, Script==
+
Stores or removes the selected <span class="inlinecode">Character</span> to/from memory. All the characters animations (for each outfit) will be stored to memory so you can instantly switch between outfits without having to wait for them to load – until you unload the character.
  
===Call/Quit action===
+
The engine usually handles the loading and unloading of animations automatically, so use this action part only if you know what you are doing. Manually preloaded animations will stay in memory until manually unloaded again.
  
Performs or Stops the linked <span style="color:red">called by other action</span>.
 
  
 +
=== Change position of an animation ===
  
===Quit current action===
+
Set the <span class="inlinecode">Position</span> of the linked <span class="inlinecode">Animation</span> via one the <span class="inlinecode">Operators</span> and the specified x,y values.
  
All action parts listed after this one will be cancelled!
+
* [ = ] absolutely position the animation to the x,y position provided
 +
* [ + ] add the x,y position values to the current x,y position of the animation
 +
* [ - ] subtract the x,y position values from the current x,y position of the animation
  
  
===Jump to action part===
+
== Action, Script ==
  
Allows you to jump forwards or backwards to a certain action part via the value you set in <span style="color:green">Skip action parts</span>; this action part can be used to create a loop by wrapping it inside of an <span style="color:green">if else</span> query & having it jump back to the action part containing the <span style="color:green">if</span> condition or value & will only continue the action parts listed after the <span style="color:green">jump to action part</span> if the condition/value criteria are met.
+
=== Call/Quit action ===
  
<span style="color:green">Jump relative</span> allows you to skip x action parts forward or backwards, whereas ... <br/>
+
Executes or stops the linked <span class="inlinecode">Action</span>. If <span class="inlinecode">"Wait until action is finished"</span> is checked then the action parts listed after this one will not be performed until the action has finished.
<span style="color:green">Jump absolute</span> allows you to jump to the action part value you set in <span style="color:green">Skip action parts</span>.
 
  
 +
This action part is mostly used in conjunction with actions of the "Called by other action" execution type, because that's what this execution type is for. But you can link other actions, too. For example, if you have two commands "Look" and "Use" and want to perform the same (extensive) action for both of them with an object, you could create the action only once for the "Look" command and then link that action from the "Use" action via this action part.
  
===Call script===
 
  
Allows you to call a script which is assigned as an <span style="color:green">execution script</span>.
+
=== Quit current action ===
  
 +
All action parts listed after this one will be cancelled.
  
===Execute a script===
 
  
Allows you to call a global function or variable function or even write a custom script inside of the action part editor section.
+
=== Jump to action part ===
 +
 
 +
Allows you to jump forwards or backwards to a certain action part via the value you set in <span class="inlinecode">"Skip action parts"</span>. This action part can be used to create a loop by wrapping it inside of an "if…else" query and having it jump back to the action part containing the "if". It would only continue the action parts listed after the "Jump to action part", if the condition/value criteria are met. Beware of infinite loops!
 +
 
 +
* "Jump relative" allows you to skip x action parts forward or backwards
 +
* "Jump absolute" allows you to jump to the action part you set in "Skip action parts" (counted from the top, starting with 1).
 +
 
 +
 
 +
=== Call script ===
 +
 
 +
Allows you to call a <span class="inlinecode">Script</span> which is assigned as an "execution script".
 +
 
 +
 
 +
=== Execute a script ===
 +
 
 +
Allows you to execute script. You may call a global function or variable function or even write a custom script inside of the action part editor section.
 +
 
 +
 
 +
=== Comment ===
 +
 
 +
Allows you to add a comment to help you document your project. This action part does not have any impact on the game; it's like adding comments to source code when writing script.
 +
 
 +
 
 +
=== If ilios script true ===
 +
 
 +
Only perform the actions wrapped in the query, if the entered Ilios <span class="inlinecode">Code</span> returns "true"; else continue with the next "else if" or "else" criteria (if provided) or end the query. See the [[Conditions_and_Values#Build_.22if.E2.80.A6else.22_queries|conditions and values page]] on how to build "if…else" queries.
 +
 
 +
 
 +
=== Run ilios script ===
 +
 
 +
Allows you to execute Ilios script.
 +
 
 +
 
 +
== Multimedia ==
 +
 
 +
=== Set audio bus ===
 +
 
 +
<abbr title="to be done">tbd</abbr>
 +
 
 +
 
 +
=== Fade audio container in/out ===
 +
 
 +
<abbr title="to be done">tbd</abbr>
  
Example of calling a global function or variable function:
 
<syntaxhighlight>
 
-- this is how we call a global function assigned in a definition script
 
function_name() -- yes, it's as simple as calling the function name & adding closed brackets afterwards
 
</syntaxhighlight>
 
  
<syntaxhighlight>
+
=== Fade sound ===
-- now let's call a variable function which should also be assigned in a definition script!
 
function_name("string", integer, bool) -- text should be wrapped in " or ' & integers are number values, bool = true or false!
 
  
-- let's say we have a function which allows us to add a number to an integer variable
+
Fades the linked <span class="inlinecode">Sound file</span> to the specified target <span class="inlinecode">Volume</span>. You can control how long the fading should take (in milliseconds). This action part does not start the linked sound but only affects already playing sound files.
addValue(10) -- this adds 10 to the current integer value
 
  
-- the function inside of the definition script may look something like this ...
 
function addValue(i) -- "i" being what we replaced with "10" (above)
 
count = count + i -- this adds the value stored in i to the current value!
 
print('the old value was ' .. count - i .. ', the new value is ' .. count .. '!') -- print old/new values to the log file
 
end
 
</syntaxhighlight>
 
  
 +
=== Play sound ===
  
 +
Play the linked <span class="inlinecode">Sound file</span> through the selected <span class="inlinecode">Output bus</span>. You can set the <span class="inlinecode">Volume</span> and the left/right audio <span class="inlinecode">Balance</span>; only mono channel sounds can be panned.
  
==Multimedia==
+
If <span class="inlinecode">"Wait until sound is finished"</span> is checked then the action parts listed after this one will not be performed until the sound has finished playing.
  
===Play sound===
 
  
Play the selected <span style="color:green">sound file</span> & set the <span style="color:green">volume</span> & left/right audio <span style="color:green">balance</span>; only mono channel sounds can be panned.
+
=== Play and loop sound infinitely ===
  
 +
This action part acts like the [[#Play_sound|Play sound]] action part, apart from the linked <span class="inlinecode">Sound file</span> will continue to loop until it is stopped via the [[#Stop_currently_playing_sound|Stop currently playing sound]] action part.
  
===Play sound and loop infinitely===
 
  
Same as <span style="color:red">Play sound</span> action part, apart from the <span style="color:green">selected sound</span> will continue to loop until it is stopped via the <span style="color:red">Stop currently playing sound</span> action part.
+
=== Stop currently playing sound ===
  
 +
Stops the selected <span class="inlinecode">Sound file</span> from playing. If the sound file is not currently playing then this action part will have no effect.
  
===Stop currently playing sound===
 
  
Stops the selected <span style="color:green">sound file</span> from playing; if the selected <span style="color:green">sound file</span> is not playing then do nothing.
+
=== Wait until sound is finished ===
  
 +
This action part prevents all other actions listed after this one from being performed until the linked <span class="inlinecode">Sound file</span> has finished playing.
  
===Wait until sound is finished===
 
  
Wait until the selected <span style="color:green">sound file</span> has finished playing; all action parts listed after this action will not be performed until the <span style="color:green">sound file</span> has finished playing.
+
=== Change background music ===
  
 +
Allows you to change the background <span class="inlinecode">Music file</span> for the selected <span class="inlinecode">Scene</span>. You can set the <span class="inlinecode">Volume</span> and the left/right audio <span class="inlinecode">Balance</span>; only mono channel sounds can be panned. The currently running background music and the new track will crossfade for the given time (in milliseconds).
  
===Change background music===
 
  
Allows you to change the background <span style="color:green">music file</span> for the selected <span style="color:green">scene</span> & set the <span style="color:green">volume</span> & left/right audio <span style="color:green">balance</span>; only mono channel sounds can be panned.
+
=== Change volume ===
  
 +
Change the volume level for sound, music, speech, video & global by using one of the <span class="inlinecode">Operators</span> and setting a <span class="inlinecode">Volume</span> value.
  
===Change volume===
+
* [ = ] set the selected volume level to the value provided
 +
* [ + ] add the volume value to the currently selected volume level
 +
* [ - ] remove the volume value from the currently selected volume level
  
Change the <span style="color:green">volume</span> level for: <span style="color:green">music</span>, <span style="color:green">sound</span>, <span style="color:green">speech</span>, <span style="color:green">movies</span> & <span style="color:green">global</span> by using one of the <span style="color:green">operators</span> & setting a <span style="color:green">volume</span> value.
 
  
<div class="toccolours mw-collapsible mw-collapsed ts">
 
<b>Operators</b>
 
<div class="mw-collapsible-content">
 
<div style="background:#ebebeb" width="100%">Equals[=] set the selected <span style="color:green">volume</span> level to the value provided</div>
 
<div>Add[+] add the <span style="color:green">volume</span> value to the currently selected <span style="color:green">volume</span> level</div>
 
<div style="background:#ebebeb" width="100%">Subtract[-] remove the <span style="color:green">volume</span> value from the currently selected <span style="color:green">volume</span> level</div>
 
</div></div>
 
  
 +
=== Change settings of currently playing sound ===
  
===Change settings of currently playing sound===
+
Allows you to edit the <span class="inlinecode">Volume</span> level and left/right audio <span class="inlinecode">Balance</span> of a currently playing sound. If the selected <span class="inlinecode">Sound file</span> is not currently playing, then this action part will have no effect.
  
Allows you to edit the <span style="color:green">volume</span> level & left/right audio <span style="color:green">balance</span> of a currently playing sound; if the selected <span style="color:green">sound file</span> is not currently playing, then this action part will have no effect.
 
  
 +
=== Play video ===
  
===Play video===
+
Allows you to play the selected <span class="inlinecode">Video file</span>. You can choose to scale the video to the user's screen resolution by checking <span class="inlinecode">"Scale fullscreen"</span> and have to decide how to handle <span class="inlinecode">Active sounds</span>:
  
Allows you to play the selected <span style="color:green">video file</span>, declare if video should be <span style="color:green">scaled</span> to users screen resolution & decide what the currently playing <span style="color:green">active sounds</span> should do while video is playing or after it has finished!
+
* "Only resume in same scene": all active sounds will be paused and only resumed if the scene is not changed after the video has finished playing
 +
* "Pause and resume": all active sounds will be paused and resumed after the video has finished regardless of if the scene has been changed or not
 +
* "Continue": all active sounds will continue playing throughout and after the video has finished playing
 +
* "Stop": all active sounds will be stopped and not resumed after video has finished playing
  
<div class="toccolours mw-collapsible mw-collapsed ts">
 
<b>Active sounds</b>
 
<div class="mw-collapsible-content">
 
<div style="background:#ebebeb" width="100%"><span style="color:green">Only resume in same scene</span>: all active sounds will be paused & only resumed if the scene is not changed after the video has finished playing</div>
 
<div><span style="color:green">Pause and resume</span>: all active sounds will be paused & resumed after the video has finished regardless of if the scene has been changed or not</div>
 
<div style="background:#ebebeb" width="100%"><span style="color:green">Continue</span>: all active sounds will continue playing throughout & after the video has finished playing</div>
 
<div><span style="color:green">Stop</span>: all active sounds will be stopped & not resumed after video has finished playing</div>
 
</div></div>
 
  
  
 +
== Savegame ==
  
==Savegame==
+
=== Load/Execute autosave ===
  
===Load/Execute autosave===
+
Allows you to load or save (execute) from/to the currently allocated <span class="inlinecode">Autosave</span> number.
  
Allows you to load or save from/to the currently allocated autosave value.
 
  
===Load/Save game===
+
=== Load/Save game ===
  
Allows you to load or save from/to the currently selected save slot; bearing in mind that all new saves will automatically be added to the first empty save slot as opposed to the actual selected one, if the currently selected save slot doesn't already contain a save game.
+
Allows you to load or save from/to the currently selected save slot; that's the save slot the user clicked on. Bear in mind that – unless the user chooses to overwrite an existing savegame – all new saves will automatically be added to the first empty save slot as opposed to the actual selected one to leave no gaps in the list of savegames.
  
  
===Show next/previous savegames===
+
=== Show next/previous savegames ===
  
This action part allows you to scroll through the save slots; providing you decide not use a set amount of save slots.
+
This action part allows you to scroll through the save slots, providing you decide not to use a set amount of save slots. You will use this action part on scroll buttons.
  
  
===Delete savegame/autosave===
+
=== Delete savegame/autosave ===
  
Allows you to delete a save from the currently selected save game slot or to delete the allocated autosave value; if provided.
+
Allows you to delete a <span class="inlinecode">Save</span> from the currently selected savegame slot ("Current savegame") or to delete the allocated <span class="inlinecode">Autosave</span> number if provided.
  
  
 +
== Miscellaneous ==
  
==Miscellaneous==
+
=== Begin/End of cutscene ===
  
 +
Allows you to start or stop a cutscene. Cutscenes are scenes containing none-playable scenarios in which the player has no control over what is happening on the screen, because the cursor will be hidden. The user can always skip the cutscene by pressing the "Esc" key.
  
===Begin/End of cutscene===
+
Action parts changing conditions or values within the cutscene are usually executed even if the user skips the cutscene, but actions that would have been called during the cutscene may not have been called at all. So when creating a cutscene, ensure that skipping that scene by the user does not break your game.
  
Allows you to start or stop a cut-scene; cut-scenes are scenes containing none playable scenarios in which the player has no control over what is happening on the screen.
 
  
 +
=== Pause ===
  
===Pause===
+
Allows you to set a pause/delay between action parts; in other words all action parts listed after this one will not be resumed until after the pause time value has been reached. You can define the <span class="inlinecode">Pause length</span> or link a <span class="inlinecode">Value</span> instead.
  
Allows you to set a pause/delay between action parts; in other words all action parts listed after <span class="green">pause</span> will not be resumed until after the pause time value has been reached. This is especially useful for controlling loops & what is happening on the screen.
 
  
 +
=== Set text and voice output ===
  
===Set text and voice output===
+
This action part allows you to determine if both spoken text (subtitles) and speech (audio) should be shown/played or whether to only show the spoken text or play the speech.
  
This action part allows you to determine if both spoken text (subtitles) & speech (audio) should both be shown/played or whether to only show the spoken text or play the speech.
 
  
<div class="toccolours mw-collapsible mw-collapsed ts">
+
=== Display narration text ===
<b>Output options</b>
 
<div class="mw-collapsible-content">
 
<div style="background:#ebebeb" width="100%"><span style="color:green">Text and speech output</span>: both text (subtitles) & speech (audio) will be shown/played</div>
 
<div><span style="color:green">Only speech output</span>: only speech (audio) will be played</div>
 
<div style="background:#ebebeb" width="100%"><span style="color:green">Only text output</span>: only text (subtitles) will be displayed</div>
 
</div></div>
 
  
 +
This action part displays <span class="inlinecode">Text</span> that is not spoken by characters. It can be positioned anywhere on the screen and you have to select the <span class="inlinecode">Font</span> to use. The "Narration text alignment" is defined globally in the game properties.
  
===Display narration text===
+
* If <span class="inlinecode">"Show as background text"</span> is not checked, the cursor gets hidden while the text is displayed. The user may then skip the text by clicking the left mouse button (unless the cursor was manually hidden prior to calling the action part). All action parts listed after "Display narration text" will not be performed until the displayed text has finished being displayed.
 +
* If <span class="inlinecode">"Show as background text"</span> is checked, the user can perform actions while the text is being displayed. Background text cannot be skipped. All action parts listed after "Display narration text" will continue to be executed without waiting for the text display to finish.
  
This is essentially narration text & is not spoken by characters. The text in this action part can be manually positioned anywhere on the screen unlike the character > display text action part.
 
<div class="toccolours mw-collapsible mw-collapsed ts">
 
<b>Additional Info</b>
 
<div class="mw-collapsible-content">
 
<div style="ts" width="100%">'''Display narration text''', formerly known as ''Display speaker text''</div>
 
</div></div>
 
  
 +
=== Display object text ===
  
===Display object text===
+
Allows you to assign a display text to a scene <span class="inlinecode">Object</span> or interface button. The text will be bound to the object, so it will get hidden if the object is being disabled. Apart from that, object text is displayed indefinitely. It can be hidden with the [[#Hide_object_text|Hide object text]] action part though.
Allows you to assign a display text to a scene object or interface button & display indefinitely; or at least until the displayed text is hidden with the <span class="green">Hide object text</span> action part.
 
  
 +
Object and text do not have to share a position on the screen; object text can be positioned anywhere. You have to define the <span class="inlinecode">Text alignment</span> and select the <span class="inlinecode">Font</span> to use.
  
===Hide object text===
+
You cannot bind more than one object text to an object.
  
Use this to hide a displayed text created with the <span class="green">Display object text</span> action part.
 
  
 +
=== Hide object text ===
  
===Skip current text===
+
Use this action part to hide a displayed text created with the [[#Display_object_text|Display object text]] action part by selecting the <span class="inlinecode">Object</span>.
  
Skips the currently displayed spoken text or narration text; not applicable to <span class="red">background texts</span>.
 
  
 +
=== Skip current text ===
  
===Set speed for text output===
+
Skips the currently displayed spoken text or narration text. This action part has no effect on background texts.
  
Allows you to speed up or slow down the text output by x percentage based on whatever pause value you add to your displayed text.
 
  
 +
=== Set speed for text output ===
  
===Show/Hide cursor===
+
Allows you to globally speed up or slow down the text output by x percentage based on whatever pause value you add to your displayed text or on the engine's automatically calculated text duration. You may specify a <span class="inlinecode">percentage</span> factor or link a <span class="inlinecode">Value</span>.
  
Show or hide the mouse cursor. Warning! hiding the mouse cursor kills all input methods; meaning that neither the mouse, nor keyboard will work until the cursor is unhidden.
 
  
 +
=== Show/Hide cursor ===
  
===Set cursor===
+
Show or hide the mouse cursor.
  
Allows you to change the current mouse cursor to another one.
+
Bear in mind that hiding the mouse cursor kills all input methods; meaning that neither the mouse, nor keyboard will work until the cursor is unhidden. Ensure not to break your game because of a hidden cursor.
  
  
===Start/Stop earthquake===
+
=== Start/Stop earthquake ===
  
Play god by starting or stopping an earthquake. You can also control the force & speed of the screen shake.
+
Play god by starting or stopping an earthquake. You can control the <span class="inlinecode">Force</span> and <span class="inlinecode">Speed</span> of the screen shake.
  
  
===Change language===
+
=== Change language ===
  
Allows you to change between the languages you have setup; language controls which text & speech files will be displayed/played.
+
Allows you to change between the languages you have set up. The language setting controls which text and speech files will be displayed/played.
  
  
===Quit game===
+
=== Quit game ===
  
Allows you quit the game executable & go back to the desktop.
+
Allows you to quit the game executable and go back to the desktop.
 
{{toc}}
 
{{toc}}

Latest revision as of 23:38, 15 January 2024

Action parts are an essential part of Visionaire Studio's action system.

Action part selection dialog

By default, the action part selection dialog (see image) pops up when adding a new action part to an action (you can disable this in the options). The dialog shows all 100+ available action parts grouped by categories on the right hand side. Click on one of the buttons to open up a category list and choose the desired action part. The action parts you use the most will be listed on the left hand side for quick & easy access (double-click to select). There is also a search field available.

Another way of adding new action parts is by clicking somewhere in the action part list and press the "Enter" key. You can then start typing the name of the desired action part and select it from the auto-complete list that pops up; or just write the full action part name and press "Enter" again.

You can always change the type of action part after you added it. Just choose another part from the list at the top of the action part properties area.

Visionaire Studio offers the possibility to create your own action parts through plugins. Members of the community have shared plugins they developed; you can download them from the list of action part plugins. If you have installed such plugins, you will find them in the "Custom" section of the action part selection dialog.


You can find a complete list of available action parts below.



Character

Display text

Displays the included Text over the top of the linked Character's head. If the current outfit includes a talking animation, it is automatically started. If an audio file has been included, it is played. The "Text alignment" for all characters is defined globally in the game properties.

  • If "Show as background text" is not checked, the cursor gets hidden while the text is displayed. The user may then skip the text by clicking the left mouse button (unless the cursor was manually hidden prior to calling the action part). All action parts listed after "Display text" will not be performed until the displayed text has finished being displayed.
  • If "Show as background text" is checked, the user can perform actions while the text is being displayed. Use it to implement conversations by people in the background. Background text cannot be skipped. All action parts listed after "Display text" will continue to be executed without waiting for the text display to finish. You can use the "Wait until character stops speaking" action part to prevent this.


Wait until character stops speaking

Prevents action parts listed after this one from being performed until the selected Character has stopped talking. This is especially useful when dealing with background text.


Send character to position

Send the selected Character to a specified Position. Make sure the position is inside of the way border polygon.

If "Wait until character reached destination" is checked, all action parts listed after this, will not be performed until the character has reached the specified destination.


Send character to object

Send the selected Character to the linked Objects position. Make sure the character and object are on the same scene.

If "Wait until character reached destination" is checked, all action parts listed after this, will not be performed until the character has reached the linked object.


Wait until character stops

Prevents action parts listed after this one from being performed until the selected Character has stopped walking. This action part should only really be used during cut-scenes; when the player has no control over the character or its position and/or destination.


Stop character

This action part will cancel the linked Characters destination and stop it at its current position. It has no effect, if the character is currently not walking.


Align character

This action part allows you to realign the selected Character towards a new Direction or towards an Object. If you link an object, the linked direction is ignored.


Set character to position

This action part allows you to instantly teleport the selected Character to a specified Position in the selected Scene and control the Direction the character should be facing.


Set character to object

This action part allows you to instantly teleport the selected Character to a linked Object's position and control the Direction the character should be facing. The character and object should be in the same scene.


Change character

This action part allows you to change the current playable Character. If the new playable character is in a different scene than the previous one, the engine will automatically switch scenes.

You can switch to the new scene instantly or you can fade out of the current scene and into the next. If you choose the latter, you may adjust the transition effect and duration through the "Set fade effect to new scene" action part.


Change outfit

This action part allows you to change the linked Characters Outfit. If "Do not unload old outfit animations" is checked, the previous outfits animations will be stored in memory so they don't have to be reloaded if you change back to them later on.


Change comment set

This action part allows you to change the default comment set of what is to be displayed when a character performs an invalid action. This could be changed to display comments which reflect the character's current mood.


Change walking sound

This action part allows you to change the footstep sounds of the selected Character to the linked Sound file.


Change font of a character

This action part allows you to change the default Font for the selected Character. That's the font that is used for displaying texts when the character speaks.


Change character speed

This action part allows you to control the selected Characters walking speed. This could be used for controlling when a character walks, runs or the speed the character should move over a specific area of terrain.


Change character animation index

Changes the animation index of a Character (default is 0 when the game is started). This index is used for talk, random and stand animations. If more than 1 animation exists for a direction then this index decides which animation is shown.

Example: A character has 8 talk animations, 2 for each direction (0, 90, 180, 270 degrees). If the index is 0 then the first of the two animations (for a direction) is shown. If the index is 1 then the second animation is shown.

With this index it is possible to have different animations (e.g. talking friendly / neutral / angry) without changing the complete outfit.


Chase character

Allows you to make a character follow/chase another Character (or vice versa). Both characters must be in the same scene. The chasing character will keep the distance set in "Range". If it gets closer, the linked Action gets executed. Use the "Stop chase" action part to stop the chase.


Stop chase

Stops the selected Character from chasing another character (as started through the "Chase character" action part).


Show/Hide character

Show or hide the selected Character. A hidden character is not only invisible but completely disabled, i.e. you cannot interact with it, whereas a character with 0% visibility (see the "Set character visibility" action part) still gets recognized by the cursor.


Set character visibility

Allows you to set the visibility (opacity) of the selected Character in percent. By setting the Delay [ms], you can also control how long it should take (in milliseconds) to change from the current opacity to the new opacity amount. If a value is linked to Visibility (value), it will be used instead of the Visibility [%] value.

A character with 0% visibility is invisible, but the user can still interact with it. If you want to completely disable a character (remove it from the scene), use the "Show/Hide character" action part.


Start dialog/dialog-layer

Starts a dialog between the current character and a partner. You can link a Dialog that has been created on the "Dialogs" tab of the addressed character. Following action parts will be executed immediately so take care if this is not the last action part of the listed actions.


Stop dialog

Allows you to manually stop and close the currently running dialog.


Scene

Start color overlay

Covers the screen with a color panel. You can set the Color, the Visibility (opacity) value, and the amount of time in milliseconds that the fading should take. The overlay does not only cover the scene but the entire game screen, including interfaces and cursor. It is not limited to the current scene; if you change to another scene or menu, the color overlay will stay. Even if at 100% opacity the user will still be able to play the game, although he won't see anything. Use this action part with a visibility setting of 0% to remove the overlay.


Change scene

Allows you to change to a new scene and teleport the selected Character (usually the current character). You set the new scene indirectly by choosing an object on that scene for "Character stands at". You may also define the direction the character should be facing.

You can switch to the new scene instantly or you can fade out of the current scene and into the next. If you choose the latter, you may adjust the transition effect and duration through the "Set fade effect to new scene" action part.


Show scene/menu

Allows you to switch to a new scene or menu without having to teleport a character. This is useful for switching to menus or to a scene in which you want to show a cut-scene.

You can switch to the new scene instantly or you can fade out of the current scene and into the next. If you choose the latter, you may adjust the transition effect and duration through the "Set fade effect to new scene" action part.


Scroll scene to position

This action part scrolls the current scene to the specified Position. The scene must be scrollable, i.e. it has to be larger than the game resolution. If you use this action part in a scene where the playable character is located, the scene may immediately scroll back to center on the current character again which is the default behaviour. You can stop centering on the current character through the "Center scene on character permanently" action part.


Scroll scene to object (centered)

This action part scrolls the current scene until the linked Object is in the center of the scene. The object must be in the current scene and the scene must be scrollable, i.e. it has to be larger than the game resolution. If you use this action part in a scene where the playable character is located, the scene may immediately scroll back to center on the current character again which is the default behaviour. You can stop centering on the current character through the "Center scene on character permanently" action part.


Center scene on character permanently

By default, a scrollable scene is centered on the current character's position. With this action part you can choose any Character to have the scene centered on or stop centering the scene on a character at all by checking "Clear centering". This action part is intended for using in cut-scenes or when you don't want the scene to be focused on the currently playable character.


Change to scene of a character

Changes to the scene where the selected Character is located. This action part is mostly used to switch back from menu scenes to the scene where your playable character is located.

You can switch to the new scene instantly or you can fade out of the current scene and into the next. If you choose the latter, you may adjust the transition effect and duration through the "Set fade effect to new scene" action part.


Set fade effect to new scene

Let's you control the transition Effect and the amount of time ("Delay") in milliseconds that the transition should take when changing from one scene to another using the fade option. The settings of this action part apply to all forthcoming scene changes until you use the action part again.


Set object visibility

Allows you to set the visibility (opacity) of the selected Object in percent. By setting the Delay [ms], you can also control how long it should take (in milliseconds) to change from the current opacity to the new opacity amount. If a value is linked to Visibility (value), it will be used instead of the Visibility [%] value.

An object with 0% visibility is invisible, but the user can still interact with it. If you want to completely disable an object, you have to work with a condition or value.


Move object

This action part moves a scene Object by the given amount of X and Y distance. You can set the speed of movement by defining the Duration in milliseconds. The movement is linear.


Move object to

This action part moves a scene Object to the selected position. You can set the speed of movement by defining the Duration in milliseconds. The movement is linear.


Change way system

Allows you to change the current way system for any scene by linking to another Way system. This could be used to change the walkable area due to something being changed in a scene; for example: an earthquake or explosion blocks part of the scene.


Set lightmap

Sets the linked Image file as the new lightmap for the selected Scene. You can define the transition duration in milliseconds.

Note that transition only works when switching from one lightmap to another, i. e. there has to be a lightmap already active when switching to the new one. Otherwise the new lightmap will affect the scene immediately.


Set brightness

Allows you to control the Brightness of the selected Scene in percent.


Fade "hotspot" animations in/out

This action part allows you to fade in/out the objects' hotspot (formerly known as "snoop") animations for the current scene. The fading time ("Delay") can be set in milliseconds. In general it's a good idea to add this action part to a "key pressed" action (fade in) and to a "key released" action (fade out).


Set horizontal scroll area

By default, a scene wider than the game's width can be scrolled from the left to the right border of the scene background image. With this action part it is possible to limit the horizontal scroll area of the Scene. "Left border" sets the left border of the background image where the scene can be scrolled to (default is 0), "Right border" the right border analogous (default is width of background image).


Set vertical scroll area

By default, a scene higher than the game's height can be scrolled from the top to the bottom border of the scene background image. With this action part it is possible to limit the vertical scroll area of the Scene. Top border sets the top border of the background image where the scene can be scrolled to (default is 0), Bottom border the bottom border analogous (default is height of background image).


Keep scene in memory

This action part allows you to store various things from the current scene into memory for the set amount of scene changes. This is useful for when you want to change to a new scene (cut-scene maybe) & then back again without having to wait for the images & animations etc. to reload.


Condition, If, Value

If character has item

Only perform the actions wrapped in the query, if the selected Character owns the selected Item (has it in his inventory); else continue with the next "else if" or "else" criteria (if provided) or end the query. See the conditions and values page on how to build "if…else" queries.

You can turn this action part into an "else if" by checking ElseIf.


If Lua result

Only perform the actions wrapped in the query, if the entered Lua Script returns "true"; else continue with the next "else if" or "else" criteria (if provided) or end the query. See the conditions and values page on how to build "if…else" queries.

-- Example: returns "true" if the cave scene is the current scene
return game.CurrentScene == Scenes["cave"]

You can turn this action part into an "else if" by checking ElseIf.


Wait until value was changed

Prevents action parts listed after this one from being performed until the selected Value has changed as defined by the following Operators.

  • [ ValueChanged ] queries if the current Value has changed
  • [ = ] queries if the current Value equals the second linked Value or the number provided
  • [ != ] queries if the current Value does not equal the second linked Value or the number provided
  • [ <= ] queries if the current Value is less than or equal to the second linked Value or the number provided
  • [ < ] queries if the current Value is less than the second linked Value or the number provided
  • [ >= ] queries if the current Value is more than or equal to the second linked Value or the number provided
  • [ > ] queries if the current Value is more than the second linked Value or the number provided


Wait until condition was changed

Prevents action parts listed after this one from being performed until the linked Condition has changed to "true" or "false" – or has just changed.


Start tween on value

This action part increases or decreases the linked Value over time (defined in milliseconds) to match a target value, provided as a fixed Target number or by linking another value ("TargetValue"). The value tween can be used with the sound system to control volumes, for example.


Change condition

Allows you to change the boolean value of the linked Condition to "true" or "false" or to toggle the state (set the value opposite to the current one).


Set value

Allows you to change the integer value of the linked Value with one of the Operators listed below.

  • [ = ] allows you to set the current Value to the second linked Value or number provided
  • [ + ] allows you to add the second linked Value or number provided to the current Value
  • [ - ] allows you to subtract the second linked Value or number provided from the current Value
  • [ * ] allows you to multiply the current Value with the second linked Value or number provided
  • [ / ] allows you to divide the current Value with the second linked Value or number provided


Set random value

Allows you to set the linked Value to a random value from the defined range of numbers.


If condition

Only perform the actions wrapped in the query, if the linked Condition equals the boolean "true" or "false" value you selected; else continue with the next "else if" or "else" criteria (if provided) or end the query. See the conditions and values page on how to build "if…else" queries.

You can turn this action part into an "else if" by checking ElseIf.


If value

Only perform the actions wrapped in the query, if the linked Value matches one of the specified criteria in the Operators listed below; else continue with the next "else if" or "else" criteria (if provided) or end the query. See the conditions and values page on how to build "if…else" queries.

  • [ = ] queries if the current Value equals the second linked Value or the number provided
  • [ != ] queries if the current Value does not equal the second linked Value or the number provided
  • [ <= ] queries if the current Value is less than or equal to the second linked Value or the number provided
  • [ < ] queries if the current Value is less than the second linked Value or the number provided
  • [ >= ] queries if the current Value is more than or equal to the second linked Value or the number provided
  • [ > ] queries if the current Value is more than the second linked Value or the number provided


You can turn this action part into an "else if" by checking ElseIf.


If character is on scene

Only perform the actions wrapped in the query if the selected Character is on the selected Scene; else continue with the next "else if" or "else" criteria (if provided) or end the query. See the conditions and values page on how to build "if…else" queries.

You can turn this action part into an "else if" by checking ElseIf.


If character is current character

Only perform the actions wrapped in the query, if the selected Character is the character you are currently controlling; else continue with the next "else if" or "else" criteria (if provided) or end the query. See the conditions and values page on how to build "if…else" queries.

You can turn this action part into an "else if" by checking ElseIf.


If character is aligned to

Only perform the actions wrapped in the query, if the selected Character is facing in the given Direction. You can define a Range of direction angles, either around the direction set in the widget ("+/-") or starting at that direction ("from-to"). See the conditions and values page on how to build "if…else" queries.


If language is current language

Only perform the actions wrapped in the query, if the selected Language equals the current language being used; else continue with the next "else if" or "else" criteria (if provided) or end the query. See the conditions and values page on how to build "if…else" queries.

You can turn this action part into an "else if" by checking ElseIf.


If command is current command

Only perform the actions wrapped in the query, if the current command being used equals the selected Command; else continue with the next "else if" or "else" criteria (if provided) or end the query. See the conditions and values page on how to build "if…else" queries.

You can turn this action part into an "else if" by checking ElseIf.


If current object ...

Only perform the actions wrapped in the query if the current position of the mouse cursor meets the selected criteria listed in Objects below; else continue with the next "else if" or "else" criteria (if provided) or end the query. See the conditions and values page on how to build "if…else" queries.

  • "exists": only perform the listed actions if an object is under the mouse cursor
  • "does not exist": only perform the listed actions if an object is not under the mouse cursor
  • "is a scene object": only perform the listed actions if a scene object is below the mouse cursor
  • "is an item": only perform the listed actions if an item is under the mouse cursor
  • "is a character": only perform the listed actions if a character is under the mouse cursor


You can turn this action part into an "else if" by checking ElseIf.


If savegame/autosave exists

Only perform the actions wrapped in the query, if a savegame or the specified autosave number exists; else continue with the next "else if" or "else" criteria (if provided) or end the query. See the conditions and values page on how to build "if…else" queries.

You can turn this action part into an "else if" by checking ElseIf.


Else

Only perform the following actions if neither the initial "if" criteria of this "if…else" query nor any following "else if" criterias are met. See the conditions and values page on how to build "if…else" queries.


End if

This action part is used to end an "if…else" query. There should be the same amount of "end if", as "if" action parts (with additional "if else" action parts optionally in-between). In other words: always end your "if…else" queries with this action part. See the conditions and values page on how to build "if…else" queries.


Interface

Add/Remove item

Adds or removes the selected Item to/from the selected Character's inventory. If "Scroll to added item" is checked, the items in the inventory interface will scroll to the end so that the newly added item is visible (this option has no effect when removing an item).

There can only be one instance of an item per inventory, so if you try to add an item that is already part of the inventory, nothing happens. The inventory won't scroll to that already present item either. If you try to remove an item that is not part of the inventory, again nothing happens.


Remove all items from character

Removes all items from the selected Character.


Give all items to other character

Transfers all items from the selected Character's inventory' to another Character's inventory.


Save object

Saves the object which is currently under the mouse cursor to memory.

This action part is usually used in conjunction with the Set command, Execute command on saved object and Clear saved object action parts. You may use them to build a "coin" type interface.


Execute command on saved object

The currently set command is being executed on a previously saved object.

This action part is usually used in conjunction with the Set command, Save object and Clear saved object action parts. You may use them to build a "coin" type interface.


Clear saved object

Removes the currently saved object from memory. If no object is currently stored/saved, then this action part will have no effect.

This action part is usually used in conjunction with the Set command, Save object and Execute command on saved object action parts. You may use them to build a "coin" type interface.


Enable/Disable all interfaces

This allows you to globally enable or disable all interfaces at the same time. Currently visible interfaces get hidden when being disabled and shown again when being enabled again. "Enabling all interfaces" does not mean that all the game's interfaces are shown at once.


Show/Hide interface

Allows you to show, hide or toggle the interfaces of the selected Interface class.


Set interface visibility

Allows you to set the Visibility (opacity) for the interfaces of the selected Interface class in percent and set a Delay time (in milliseconds), for how long it should take to change opacity.

Even if set to 0% opacity, the interface is accessible. Use the Show/Hide interface action part, if you want to really hide it from the user.


Set active/inactive image

Allows you to set the active or inactive image for the linked interface Button. This would normally be used in actions with "Cursor enters object area"/"Cursor leaves object area" execution type, to show the button is active or inactive.


Set interface of a character

Allows you to assign an Interface to a character. Since only one interface per interface class can be active/assigned, using this action part will automatically set any other interface from the same interface class inactive.


Set command

Saves the selected command to memory to be executed later on.

This action part can be used in conjunction with the Save object, Execute command on saved object and Clear saved object action parts to build a "coin" type interface.


Set cursor

Allows you to change the current mouse Cursor to another one.


Set item

Sets the currently held item to the selected Item. If "Dragged item" is checked, then the item is shown as if dragged from the inventory (replaces the mouse cursor).


Animation

Play/Hide animation

Play (and show) or stop (and hide) the linked Animation. The animation will play forward unless "Play in reverse order" is checked.

If "Wait until animation is finished" is checked then the action parts listed after this one will not be performed until the animation has finished; it will never end if the animation is being looped unless you manually hide/stop the animation.


Wait until animation is finished

This action part prevents all other actions listed after this one from being performed until the linked Animation finishes or is manually stopped.

This action part should be used if you set an animation playing but wanted to perform a few action parts after the animation and then wait until the linked animation has finished playing before carrying on with the rest of the listed actions.


Preload/Unload animation

Stores or removes the linked Animation to/from memory. The animation will be stored to memory, so you don't have to reload it each time you enter the scene – until you unload the animation.

The engine usually handles the loading and unloading of animations automatically, so use this action part only if you know what you are doing. Manually preloaded animations will stay in memory until manually unloaded again.


Preload/Unload character

Stores or removes the selected Character to/from memory. All the characters animations (for each outfit) will be stored to memory so you can instantly switch between outfits without having to wait for them to load – until you unload the character.

The engine usually handles the loading and unloading of animations automatically, so use this action part only if you know what you are doing. Manually preloaded animations will stay in memory until manually unloaded again.


Change position of an animation

Set the Position of the linked Animation via one the Operators and the specified x,y values.

  • [ = ] absolutely position the animation to the x,y position provided
  • [ + ] add the x,y position values to the current x,y position of the animation
  • [ - ] subtract the x,y position values from the current x,y position of the animation


Action, Script

Call/Quit action

Executes or stops the linked Action. If "Wait until action is finished" is checked then the action parts listed after this one will not be performed until the action has finished.

This action part is mostly used in conjunction with actions of the "Called by other action" execution type, because that's what this execution type is for. But you can link other actions, too. For example, if you have two commands "Look" and "Use" and want to perform the same (extensive) action for both of them with an object, you could create the action only once for the "Look" command and then link that action from the "Use" action via this action part.


Quit current action

All action parts listed after this one will be cancelled.


Jump to action part

Allows you to jump forwards or backwards to a certain action part via the value you set in "Skip action parts". This action part can be used to create a loop by wrapping it inside of an "if…else" query and having it jump back to the action part containing the "if". It would only continue the action parts listed after the "Jump to action part", if the condition/value criteria are met. Beware of infinite loops!

  • "Jump relative" allows you to skip x action parts forward or backwards
  • "Jump absolute" allows you to jump to the action part you set in "Skip action parts" (counted from the top, starting with 1).


Call script

Allows you to call a Script which is assigned as an "execution script".


Execute a script

Allows you to execute script. You may call a global function or variable function or even write a custom script inside of the action part editor section.


Comment

Allows you to add a comment to help you document your project. This action part does not have any impact on the game; it's like adding comments to source code when writing script.


If ilios script true

Only perform the actions wrapped in the query, if the entered Ilios Code returns "true"; else continue with the next "else if" or "else" criteria (if provided) or end the query. See the conditions and values page on how to build "if…else" queries.


Run ilios script

Allows you to execute Ilios script.


Multimedia

Set audio bus

tbd


Fade audio container in/out

tbd


Fade sound

Fades the linked Sound file to the specified target Volume. You can control how long the fading should take (in milliseconds). This action part does not start the linked sound but only affects already playing sound files.


Play sound

Play the linked Sound file through the selected Output bus. You can set the Volume and the left/right audio Balance; only mono channel sounds can be panned.

If "Wait until sound is finished" is checked then the action parts listed after this one will not be performed until the sound has finished playing.


Play and loop sound infinitely

This action part acts like the Play sound action part, apart from the linked Sound file will continue to loop until it is stopped via the Stop currently playing sound action part.


Stop currently playing sound

Stops the selected Sound file from playing. If the sound file is not currently playing then this action part will have no effect.


Wait until sound is finished

This action part prevents all other actions listed after this one from being performed until the linked Sound file has finished playing.


Change background music

Allows you to change the background Music file for the selected Scene. You can set the Volume and the left/right audio Balance; only mono channel sounds can be panned. The currently running background music and the new track will crossfade for the given time (in milliseconds).


Change volume

Change the volume level for sound, music, speech, video & global by using one of the Operators and setting a Volume value.

  • [ = ] set the selected volume level to the value provided
  • [ + ] add the volume value to the currently selected volume level
  • [ - ] remove the volume value from the currently selected volume level


Change settings of currently playing sound

Allows you to edit the Volume level and left/right audio Balance of a currently playing sound. If the selected Sound file is not currently playing, then this action part will have no effect.


Play video

Allows you to play the selected Video file. You can choose to scale the video to the user's screen resolution by checking "Scale fullscreen" and have to decide how to handle Active sounds:

  • "Only resume in same scene": all active sounds will be paused and only resumed if the scene is not changed after the video has finished playing
  • "Pause and resume": all active sounds will be paused and resumed after the video has finished regardless of if the scene has been changed or not
  • "Continue": all active sounds will continue playing throughout and after the video has finished playing
  • "Stop": all active sounds will be stopped and not resumed after video has finished playing


Savegame

Load/Execute autosave

Allows you to load or save (execute) from/to the currently allocated Autosave number.


Load/Save game

Allows you to load or save from/to the currently selected save slot; that's the save slot the user clicked on. Bear in mind that – unless the user chooses to overwrite an existing savegame – all new saves will automatically be added to the first empty save slot as opposed to the actual selected one to leave no gaps in the list of savegames.


Show next/previous savegames

This action part allows you to scroll through the save slots, providing you decide not to use a set amount of save slots. You will use this action part on scroll buttons.


Delete savegame/autosave

Allows you to delete a Save from the currently selected savegame slot ("Current savegame") or to delete the allocated Autosave number if provided.


Miscellaneous

Begin/End of cutscene

Allows you to start or stop a cutscene. Cutscenes are scenes containing none-playable scenarios in which the player has no control over what is happening on the screen, because the cursor will be hidden. The user can always skip the cutscene by pressing the "Esc" key.

Action parts changing conditions or values within the cutscene are usually executed even if the user skips the cutscene, but actions that would have been called during the cutscene may not have been called at all. So when creating a cutscene, ensure that skipping that scene by the user does not break your game.


Pause

Allows you to set a pause/delay between action parts; in other words all action parts listed after this one will not be resumed until after the pause time value has been reached. You can define the Pause length or link a Value instead.


Set text and voice output

This action part allows you to determine if both spoken text (subtitles) and speech (audio) should be shown/played or whether to only show the spoken text or play the speech.


Display narration text

This action part displays Text that is not spoken by characters. It can be positioned anywhere on the screen and you have to select the Font to use. The "Narration text alignment" is defined globally in the game properties.

  • If "Show as background text" is not checked, the cursor gets hidden while the text is displayed. The user may then skip the text by clicking the left mouse button (unless the cursor was manually hidden prior to calling the action part). All action parts listed after "Display narration text" will not be performed until the displayed text has finished being displayed.
  • If "Show as background text" is checked, the user can perform actions while the text is being displayed. Background text cannot be skipped. All action parts listed after "Display narration text" will continue to be executed without waiting for the text display to finish.


Display object text

Allows you to assign a display text to a scene Object or interface button. The text will be bound to the object, so it will get hidden if the object is being disabled. Apart from that, object text is displayed indefinitely. It can be hidden with the Hide object text action part though.

Object and text do not have to share a position on the screen; object text can be positioned anywhere. You have to define the Text alignment and select the Font to use.

You cannot bind more than one object text to an object.


Hide object text

Use this action part to hide a displayed text created with the Display object text action part by selecting the Object.


Skip current text

Skips the currently displayed spoken text or narration text. This action part has no effect on background texts.


Set speed for text output

Allows you to globally speed up or slow down the text output by x percentage based on whatever pause value you add to your displayed text or on the engine's automatically calculated text duration. You may specify a percentage factor or link a Value.


Show/Hide cursor

Show or hide the mouse cursor.

Bear in mind that hiding the mouse cursor kills all input methods; meaning that neither the mouse, nor keyboard will work until the cursor is unhidden. Ensure not to break your game because of a hidden cursor.


Start/Stop earthquake

Play god by starting or stopping an earthquake. You can control the Force and Speed of the screen shake.


Change language

Allows you to change between the languages you have set up. The language setting controls which text and speech files will be displayed/played.


Quit game

Allows you to quit the game executable and go back to the desktop.


Contents