Editing Event Reference

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 76: Line 76:
'''Examples'''  
'''Examples'''  
* <code>is char_facing_char npc_maple,player</code>
* <code>is char_facing_char npc_maple,player</code>
=== char_facing_tile ===
Check to see if a character is facing a tile position.
'''Parameters'''
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
'''Examples'''
* <code>is char_facing_tile npc_maple</code> 
=== char_in ===
Check to see if the character is at the condition position on a specific set of tiles.
'''Parameters''' 
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>value</code>: value (eg surfable) inside the tileset.
'''Examples'''
* <code>is char_in npc_maple,surfable</code>
=== char_moved ===
Check to see the character has just moved into this tile. Using this condition will prevent a condition like "char_at" from constantly being true every single frame.
'''Parameters'''
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
'''Examples'''
* <code>is char_moved player</code>
=== char_sprite ===
Check the character's sprite
'''Parameters'''
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>sprite</code>: NPC's sprite (eg maniac, florist, etc.)
'''Examples'''
* <code>is char_sprite player,adventurer</code> 


=== check_char_parameter ===
=== check_char_parameter ===
Line 135: Line 97:
* <code>is check_evolution player</code>
* <code>is check_evolution player</code>


=== check_max_tech ===
=== check_mission ===
Check to see the player has at least one tuxemon with more than the max number of techniques in its party. If yes, then it saves automatically the monster_id and inside the dictionary event_data.
Check to see the player has failed or completed a mission. Check to see if a mission is still pending.
 
'''Parameters'''
* <code>nr</code>: Number of tech, default the constant
 
'''Examples'''
* <code>is check_max_tech</code>
* <code>is check_max_tech 2</code>
 
=== check_mission ===
Check to see the player has failed or completed a mission. Check to see if a mission is still pending.


'''Parameters'''  
'''Parameters'''  
Line 158: Line 110:
* <code>is check_mission player,mission1:mission2,completed</code>
* <code>is check_mission player,mission1:mission2,completed</code>
* <code>is check_mission player,all,completed</code>
* <code>is check_mission player,all,completed</code>
=== check_party_parameter ===
Check to see the player has failed or completed a mission. Check to see if a mission is still pending.
'''Parameters'''
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>attribute</code>: Name of the monster attribute to check (e.g. level).
* <code>value</code>: Value to check (related to the attribute) (e.g. 5 - level).
* <code>operator</code>: Numeric comparison operator. Accepted values are "less_than", "less_or_equal", "greater_than", "greater_or_equal", "equals" and "not_equals".
* <code>times</code>: Value to check with operator (how many times in the party?).
'''Examples'''
* <code>check_party_parameter player,level,5,equals,1</code> (is there 1 monster in the party at level 5? True/False)
=== check_world ===
Check some world's parameter against a given value.
'''Parameters'''
* <code>parameter</code>: Name of the parameter to check (eg. "layer", etc.).
* <code>value</code>: Given value to check.
'''Supported parameters'''
* '''layer''': color value which is used to overlay the world
* '''bubble''': speech bubble of an npc
'''Examples'''
* <code>is check_world</code>
* <code>is check_world layer,255:255:255:0</code>


=== current_state ===
=== current_state ===
Line 235: Line 159:


=== has_monster ===
=== has_monster ===
Check to see if a character has a monster in its party.
Checks to see the player has a monster in his party.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>monster_slug</code>: The slug of the monster to check for.
* <code>monster_slug</code>: Monster slug name (e.g. "rockitten").


'''Examples'''  
'''Examples'''  
* <code>is has_monster player,rockitten</code>
* <code>is has_monster txmn_pigabyte</code>


=== has_party_breeder ===
=== has_party_breeder ===
Check to see if the character has a male and female monsters not basic (first evolution stage) in the party.
Check to see if the player has a male and female monster in the party (monster not basic, basic is the first step in the evolution stage).


'''Parameters'''  
'''Examples'''
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>is has_party_breeder</code>
 
=== has_sprite ===
Check to see if a NPC has a specific sprite.
 
'''Parameters'''  
* <code>sprite</code>: Sprite slug (eg. adventurer, heroine, swimmer, etc.)


'''Examples'''  
'''Examples'''  
* <code>is has_party_breeder player</code>
* <code>is has_sprite swimmer</code>


=== has_tech ===
=== has_tech ===
Line 293: Line 222:
'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>operator</code>: Numeric comparison operator. Accepted values are "less_than", "less_or_equal", "greater_than", "greater_or_equal", "equals" and "not_equals".
* <code>operator</code>: One of "==", "!=", ">", ">=", "<" or "<=".
* <code>amount</code>: Amount of money or value stored in variable.
* <code>amount</code>: Amount of money.


'''Examples'''  
'''Examples'''  
* <code>is money_is player,>=,500</code>
* <code>is money_is player,>=,500</code>
* <code>is money_is player,equals,name_variable</code> (name_variable:75)


=== monster_flair ===
=== monster_flair ===
Line 310: Line 238:
'''Examples'''  
'''Examples'''  
* <code>to be defined</code>
* <code>to be defined</code>
=== monster_property ===
Check to see if a monster in the party has one of the following property.
'''Parameters'''
* <code>property</code>: Property of the monster to check (e.g. "level"). Valid values are: slug, level, level_reached, stage, shape, taste_cold, taste_warm, type, gender and tech.
* <code>value</code>: Value to compare the property with.
'''Examples'''
* <code>is monster_property level,15</code>
* <code>is monster_property gender,male</code>
* <code>is monster_property stage,standalone</code>
* <code>is monster_property shape,aquatic</code>


=== music_playing ===
=== music_playing ===
Line 319: Line 260:
'''Examples'''  
'''Examples'''  
* <code>is music_playing 472452_8-Bit-Ambient.ogg</code>   
* <code>is music_playing 472452_8-Bit-Ambient.ogg</code>   
=== npc_facing_tile ===
Check to see if the npc is facing a particular tile. This event will check the event object's <code>X</code>, <code>Y</code> coordinates for the tile to check for.
'''Parameters'''
* <code>name</code>: The name of the NPC.   
'''Examples'''
* <code>is npc_facing_tile Maple</code> 


=== once ===
=== once ===
Line 344: Line 294:


=== party_infected ===
=== party_infected ===
Check to see how many monster are infected in the character's party.
Check to see how many monster are infected and stores the iids.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>value</code>: all, some or none.
* <code>value</code>: all, some or none.


Line 354: Line 303:


=== party_size ===
=== party_size ===
Check the character's party size. The <code>check</code> parameter can be: <code>equals</code>, <code>less_than</code>, or <code>greater_than</code>.
Perform a check on the player's party size. The <code>check</code> parameter can be: <code>equals</code>, <code>less_than</code>, or <code>greater_than</code>.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>operator</code>: Numeric comparison operator. Accepted values are <code>less_than</code>, <code>less_or_equal</code>, <code>greater_than</code>, <code>greater_or_equal</code>, <code>equals</code> and <code>not_equals</code>.
* <code>operator</code>: Numeric comparison operator. Accepted values are <code>less_than</code>, <code>less_or_equal</code>, <code>greater_than</code>, <code>greater_or_equal</code>, <code>equals</code> and <code>not_equals</code>.
* <code>party_size</code>: The size of the party to check against.
* <code>party_size</code>: The size of the party to check against.
Line 366: Line 314:
* <code>is party_size greater_than,4</code>
* <code>is party_size greater_than,4</code>


=== to_use_tile ===
=== player_facing_tile ===
Check if we are attempting interact with a map condition tile.
Check to see if the player is facing a particular tile. This event will check the event object's <code>X</code>, <code>Y</code> coordinates for the tile to check for.


'''Parameters'''  
'''Parameters'''  
* <code>None</code>
* <code>value</code>: value (eg surfable) inside the tileset (optional)


'''Examples'''  
'''Examples'''  
* <code>is to_use_tile</code>
* <code>is player_facing_tile</code>
* <code>is player_facing_tile surfable</code>


=== true ===
=== player_facing ===
The <code>true</code> condition will always evaluate to *True* (unless the "not" operator is used)
Check to see where an NPC is facing.


'''Parameters'''  
'''Parameters'''
* <code>None</code>
* <code>direction</code>: One of "up", "down", "left" or "right".


'''Examples'''  
'''Examples'''  
* <code>is true</code> 
* <code>is player_facing right</code>
* <code>not true</code>


=== tuxepedia ===
=== player_in ===
Check Tuxepedia's progress.
Check to see if the player is at the condition position on a specific set of tiles.


'''Parameters'''  
'''Parameters'''
* <code>operator</code>: Numeric comparison operator. Accepted values are "less_than", "less_or_equal", "greater_than", "greater_or_equal", "equals" and "not_equals".
* <code>value</code>: value (eg surfable) inside the tileset.
* <code>percentage</code>: Number between 0.1 and 1.0
* <code>total</code>: Total, by default the total number of tuxemon.


'''Examples'''  
'''Examples'''  
* <code>is tuxepedia less_than,0.2</code>
* <code>is player_in surfable</code>
* <code>is tuxepedia less_than,0.2,10</code>


=== variable_is ===
=== player_moved ===
Check an operation over a variable.
Check to see the player has just moved into this tile. Using this condition will prevent a condition like "player_at" from constantly being true every single frame. Check if player destination collides with event, if it collides, wait until destination changes. It become True after collides and destination has changed. These rules ensure that the event is true once player in in the tile and is only true once.


'''Parameters'''  
'''Parameters'''  
* <code>value1</code>: Either a variable or a number.
* <code>None</code>
* <code>operation</code>: Numeric comparison operator. Accepted values are "less_than", "less_or_equal", "greater_than", "greater_or_equal", "equals" and "not_equals".
* <code>value2</code>: Either a variable or a number.


'''Examples'''  
'''Examples'''  
* <code>is variable_is [value1],operator,[value2]</code>
* <code>is player_moved</code>


=== variable_set ===
=== to_talk ===
Check to see if <code>variable_name</code> has been set to <code>value</code>.
Check if we are attempting interact with a map condition tile.


'''Parameters'''  
'''Parameters'''  
* <code>variable_name:value</code>: A key, value pair of the variable to look up and the expected value.
* <code>character</code>: Npc slug name (e.g. "npc_maple").


'''Examples'''  
'''Examples'''  
* <code>is variable_set battle_won:yes</code>
* <code>is to_talk npc_maple</code>
* <code>not variable_set current_badges:4</code> 
 
* <code>is variable_set talked_to_prof:false</code>
=== to_use_tile ===
Check if we are attempting interact with a map condition tile.


== Action Reference ==
'''Parameters'''
* <code>None</code>


Here is a list of currently supported actions. New event actions can be created by creating a new page under the '''tuxemon/event/actions''':
'''Examples'''  
* <code>is to_use_tile</code>


=== add_collision ===  
=== true ===
Adds a collision defined by a specific label. With numbers, it blocks a specific tile.
The <code>true</code> condition will always evaluate to *True* (unless the "not" operator is used)


'''Parameters'''  
'''Parameters'''  
* <code>label</code>: Name of the obstacle.
* <code>None</code>
* <code>coord</code>: Coordinates map (single coordinate). (optional)


'''Examples'''  
'''Examples'''  
* <code>add_collision obstacle,6,8</code>
* <code>is true</code>
* <code>add_collision wall</code> (in this case must exist a collision zone in the .tmx file)
* <code>not true</code>


=== add_contacts ===  
=== tuxepedia ===
Add contact to the app (Nu Phone). The slug must have the msgid inside the PO.
Check Tuxepedia's progress.


'''Parameters'''  
'''Parameters'''  
* <code>slug</code>: slug name (e.g. "npc_maple").
* <code>operator</code>: Numeric comparison operator. Accepted values are "less_than", "less_or_equal", "greater_than", "greater_or_equal", "equals" and "not_equals".
* <code>phone_number</code>: 3 digits
* <code>percentage</code>: Number between 0.1 and 1.0
* <code>total</code>: Total, by default the total number of tuxemon.


'''Examples'''  
'''Examples'''  
* <code>add_contacts npc_maple,123</code>
* <code>is tuxepedia less_than,0.2</code>
* <code>is tuxepedia less_than,0.2,10</code>


=== add_item ===
=== variable_is ===
Add the specified item to the player's inventory.
Check an operation over a variable.


'''Parameters'''  
'''Parameters'''  
* <code>item_name</code>: Monster slug to look up in the monster database or name variable where it's stored the mon_slug.
* <code>value1</code>: Either a variable or a number.
* <code>quantity</code>: Quantity of the item to add or to reduce. By default it is 1. (optional)
* <code>operation</code>: Numeric comparison operator. Accepted values are "less_than", "less_or_equal", "greater_than", "greater_or_equal", "equals" and "not_equals".
* <code>trainer_slug</code>: Slug of the trainer that will receive the item. It defaults to the current player. (optional)
* <code>value2</code>: Either a variable or a number.


'''Examples'''  
'''Examples'''  
* <code>add_item hatchet</code>
* <code>is variable_is [value1],operator,[value2]</code>
* <code>add_item hatchet,2</code>
* <code>add_item hatchet,2,npc_maple</code>


=== add_monster ===
=== variable_set ===
Add the specified monster to the player's party.
Check to see if <code>variable_name</code> has been set to <code>value</code>.


'''Parameters'''  
'''Parameters'''  
* <code>monster_slug</code>: Monster slug to look up in the monster database.
* <code>variable_name:value</code>: A key, value pair of the variable to look up and the expected value.
* <code>monster_level</code>: Level of the added monster.
* <code>trainer_slug</code>: Slug of the trainer that will receive the monster. It defaults to the current player. (optional)
* <code>exp_mod</code>: Experience modifier. (optional)
* <code>money_mod</code>: Money modifier. (optional)


'''Examples'''  
'''Examples'''  
* <code>add_monster fruitera,10</code>
* <code>is variable_set battle_won:yes</code>
* <code>add_monster fruitera,10,npc_maple,10,27</code>
* <code>not variable_set current_badges:4</code>
* <code>is variable_set talked_to_prof:false</code>
 
== Action Reference ==
 
Here is a list of currently supported actions. New event actions can be created by creating a new page under the '''tuxemon/event/actions''':


=== add_tech ===
=== add_collision ===  
Adds a tech to a specific monster.
Adds a collision defined by a specific label. With numbers, it blocks a specific tile.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id.
* <code>label</code>: Name of the obstacle.
* <code>technique</code>: Slug of the technique (e.g. "bullet").
* <code>coord</code>: Coordinates map (single coordinate). (optional)
* <code>power</code>: Power between 0.0 and 3.0. (optional)
* <code>potency</code>: Potency between 0.0 and 1.0. (optional)
* <code>accuracy</code>: Accuracy between 0.0 and 1.0. (optional)


'''Examples'''  
'''Examples'''  
* <code>get_player_monster name_variable</code>
* <code>add_collision obstacle,6,8</code>
* <code>add_tech name_variable,bullet</code>
* <code>add_collision wall</code> (in this case must exist a collision zone in the .tmx file)


=== breeding ===
=== add_contacts ===  
Select a monster in the player party filtered by gender and store its id in a variables (breeding_father or breeding_mother)
Add contact to the app (Nu Phone). The slug must have the msgid inside the PO.


'''Parameters'''
'''Parameters'''  
* <code>gender</code>: Gender (male or female).
* <code>slug</code>: slug name (e.g. "npc_maple").
* <code>phone_number</code>: 3 digits


'''Examples'''  
'''Examples'''  
* <code>breeding male</code>
* <code>add_contacts npc_maple,123</code>
* <code>breeding female</code>


=== call_event ===
=== add_item ===
Executes the actions from another event, ignoring its conditions. This can be especially useful for scenarios where you might need multiple sets of conditions that could be true, such as executing an action when the player is at a certain position OR has a certain item in their inventory.
Add the specified item to the player's inventory.


'''Parameters'''  
'''Parameters'''  
* <code>event_name</code>: The name of the event whose actions should be executed.
* <code>item_name</code>: Monster slug to look up in the monster database or name variable where it's stored the mon_slug.
* <code>quantity</code>: Quantity of the item to add or to reduce. By default it is 1. (optional)
* <code>trainer_slug</code>: Slug of the trainer that will receive the item. It defaults to the current player. (optional)


'''Examples'''
'''Examples'''  
* <code>call_event name_event</code>  
* <code>add_item hatchet</code>
* <code>add_item hatchet,2</code>
* <code>add_item hatchet,2,npc_maple</code>


=== change_bg ===
=== add_monster ===
Change the background.
Add the specified monster to the player's party.


'''Parameters'''
'''Parameters'''  
* <code>background</code>:
* <code>monster_slug</code>: Monster slug to look up in the monster database.
* it can be the name of the file (see below note)
* <code>monster_level</code>: Level of the added monster.
* it can be a RGB color separated by ":" (eg 255:0:0)
* <code>trainer_slug</code>: Slug of the trainer that will receive the monster. It defaults to the current player. (optional)
* <code>image</code>: monster_slug or template_slug or path
* <code>exp_mod</code>: Experience modifier. (optional)
* if path, then "gfx/ui/background/"
* <code>money_mod</code>: Money modifier. (optional)
* if template (eg. ceo) in "gfx/sprites/player"
* note: the background or image (if not monster or template) must be inside the folder (gfx/ui/background/)
* background size: 240x160


'''Examples'''
* <code>add_monster fruitera,10</code>
* <code>add_monster fruitera,10,npc_maple,10,27</code>


'''Examples'''
=== add_tech ===
* <code>change_bg gradient_blue,rockitten</code>
Adds a tech to a specific monster.
* <code>change_bg gradient_blue,ceo</code>
* <code>change_bg gradient_blue</code>
* <code>change_bg</code> (stop)


=== change_taste ===
'''Parameters'''  
hanges tastes monster.
* <code>monster_id</code>: Id of the monster (name of the variable).
 
* <code>technique</code>: Slug of the technique (e.g. "bullet").
'''Parameters'''
* <code>power</code>: Power between 0.0 and 3.0. (optional)
* <code>variable</code>: Name of the variable where to store the monster id.
* <code>potency</code>: Potency between 0.0 and 1.0. (optional)
* <code>taste</code>: Warm or cold.
* <code>accuracy</code>: Accuracy between 0.0 and 1.0. (optional)
* <code>npc_slug</code>: npc slug name (e.g. "npc_maple") - if absent default "player" (optional)


'''Examples'''  
'''Examples'''  
* <code>change_taste name_variable,warm</code>
* <code>get_player_monster name_variable</code>
* <code>add_tech name_variable,bullet</code>


=== change_state ===
=== battles_print ===
Change to the specified state.
Print the current value of battle history to the console. If no variable is specified, print out values of all battles.


'''Parameters'''
'''Parameters'''  
* <code>state_name</code>: The state name to switch to (e.g. PCState).
* <code>character</code>: Npc slug name (e.g. "npc_maple"). (optional)
* <code>optional</code>: Variable related to specific states (e.g. variable with monster_id for '''MonsterInfo''', monster slug for '''JournalInfoState''' and character slug for '''CharacterState'''). (Optional)
* <code>result</code>: One among "won", "lost" or "draw". (optional)


'''Examples'''  
'''Examples'''  
* <code>change_state PCState</code>
* <code>battles_print</code>
* <code>change_state JournalInfoState,rockitten</code>
* <code>battles_print [character,result]</code>


=== char_face ===
=== breeding ===
Make the character face a certain direction.
Select a monster in the player party filtered by gender and store its id in a variables (breeding_father or breeding_mother)


'''Parameters'''   
'''Parameters'''   
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>gender</code>: Gender (male or female).
* <code>direction</code>: Direction to make the character's face. Can be set to: <code>left</code>, <code>right</code>, <code>up</code>, or <code>down</code>.


'''Examples'''  
'''Examples'''  
* <code>char_face player,down</code>
* <code>breeding male</code>
* <code>char_face npc_maple,right</code>
* <code>breeding female</code>


=== char_look ===
=== call_event ===
Make a character look around.
Executes the actions from another event, ignoring its conditions. This can be especially useful for scenarios where you might need multiple sets of conditions that could be true, such as executing an action when the player is at a certain position OR has a certain item in their inventory.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>event_name</code>: The name of the event whose actions should be executed.
* <code>frequency</code>: Frequency of movements. 0 to stop looking. If set to a different value it will be clipped to the range [0.5, 5]. If not passed the default value is 1.   
* <code>directions</code>: the direction the npc is going to look, by default all. (optional)


'''Examples'''  
'''Examples'''   
* <code>char_look character</code>  
* <code>call_event name_event</code>  
* <code>char_look character,,right:left</code>


=== char_move ===
=== change_bg ===
Relative tile movement for character.
Change the background.
 
'''Parameters''' 
* <code>background</code>:
* it can be the name of the file (see below note)
* it can be a RGB color separated by ":" (eg 255:0:0)
* <code>image</code>: monster_slug or template_slug or path
* if path, then "gfx/ui/background/"
* if template (eg. ceo) in "gfx/sprites/player"
* note: the background or image (if not monster or template) must be inside the folder (gfx/ui/background/)
* background size: 240x160


'''Parameters'''
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").


'''Examples'''  
'''Examples'''  
* <code>char_move spyder_homemakerpapertown, down 1, right 1, up 1, left 1</code>
* <code>change_bg gradient_blue,rockitten</code>
* <code>change_bg gradient_blue,ceo</code>
* <code>change_bg gradient_blue</code>
* <code>change_bg</code> (stop)


=== char_plague ===
=== change_state ===
Set the character as infected, inoculated or healthy.
Change to the specified state.


'''Parameters'''  
'''Parameters'''
* <code>condition</code>: Infected, inoculated or healthy.
* <code>state_name</code>: The state name to switch to (e.g. PCState).
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple"). (optional)
* <code>optional</code>: Variable related to specific states (eg slug for JournalInfoState). (optional)


'''Examples'''  
'''Examples'''  
* <code>char_plague infected,npc_maple</code>
* <code>change_state PCState</code>
* <code>change_state JournalInfoState,rockitten</code>


=== char_run ===
=== char_face ===
Set the character movement speed to the global run speed.
Make the character face a certain direction.


'''Parameters'''  
'''Parameters'''
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>direction</code>: Direction to make the character's face. Can be set to: <code>left</code>, <code>right</code>, <code>up</code>, or <code>down</code>.


'''Examples'''  
'''Examples'''  
* <code>char_run npc_mom</code>
* <code>char_face player,down</code>
* <code>char_face npc_maple,right</code>


=== char_speed ===
=== char_look ===
Set the character movement speed to a custom value.
Make a character look around.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>speed</code>: Speed amount.
* <code>frequency</code>: Frequency of movements. 0 to stop looking. If set to a different value it will be clipped to the range [0.5, 5]. If not passed the default value is 1.   
* <code>directions</code>: the direction the npc is going to look, by default all. (optional)


'''Examples'''  
'''Examples'''  
* <code>char_speed npc_mom,0.2</code>
* <code>char_look character</code> 
* <code>char_look character,,right:left</code>


=== char_stop ===
=== char_move ===
Make the character stop moving.
Relative tile movement for character.


'''Parameters'''  
'''Parameters'''  
Line 613: Line 571:


'''Examples'''  
'''Examples'''  
* <code>char_stop npc_mom</code>
* <code>char_move spyder_homemakerpapertown, down 1, right 1, up 1, left 1</code>


=== char_walk ===
=== char_plague ===
Set the character movement speed to the global walk speed.
Set the character as infected, inoculated or healthy.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>condition</code>: Infected, inoculated or healthy.
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple"). (optional)


'''Examples'''  
'''Examples'''  
* <code>char_walk npc_mom</code>
* <code>char_plague infected,npc_maple</code>


=== char_wander ===
=== char_run ===
Make a character wander around the map.
Set the character movement speed to the global run speed.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>frequency</code>: Frequency of movements. 0 to stop wandering. If set to a different value it will be clipped to the range [0.5, 5]. If not passed the default value is 1.
* <code>t_bound</code>: Coordinates top_bound vertex (e.g. 5,7)
* <code>b_bound</code>: Coordinates bottom_bound vertex (e.g. 7,9)


'''Examples'''  
'''Examples'''  
* <code>char_wander npc_maple</code>
* <code>char_run npc_mom</code>
* <code>char_wander npc_maple,,5,7,7,9</code>


=== choice_item ===
=== char_speed ===
Ask the player to make a choice among items.
Set the character movement speed to a custom value.


'''Parameters'''
'''Parameters'''  
* <code>choices</code>: List of possible choices (item slugs eg: potion:tea), separated by a colon ":".
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>variable</code>: Variable to store the result of the choice.
* <code>speed</code>: Speed amount.


'''Examples'''  
'''Examples'''  
* <code>choice_monster potion:tea,name_variable</code>
* <code>char_speed npc_mom,0.2</code>


=== choice_monster ===
=== char_stop ===
Ask the player to make a choice among monsters.
Make the character stop moving.


'''Parameters'''
'''Parameters'''  
* <code>choices</code>: List of possible choices (monster slugs eg: rockitten:apeoro), separated by a colon ":".
-
* <code>variable</code>: Variable to store the result of the choice.


'''Examples'''  
'''Examples'''  
* <code>choice_monster apeoro:rockitten,name_variable</code>
* <code>char_stop</code>


=== choice_npc ===
=== char_walk ===
Ask the player to make a choice among NPCs.
Set the character movement speed to the global walk speed.


'''Parameters'''
'''Parameters'''  
* <code>choices</code>: List of possible choices (npc slugs eg: maple:billie), separated by a colon ":".
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>variable</code>: Variable to store the result of the choice.


'''Examples'''  
'''Examples'''  
* <code>choice_monster billie:maple,name_variable</code>
* <code>char_walk npc_mom</code>


=== clear_kennel ===
=== char_wander ===
Clear a kennel. It advisable to save the game and check twice. Remember the main kennel is "Kennel" and without destination (transfer) the monster will be deleted as well as the kennel.
Make a character wander around the map.


'''Parameters'''
'''Parameters'''  
* <code>kennel</code>: The kennel to clear.
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>transfer</code>: The kennel to transfer the monsters. (optional)
* <code>frequency</code>: Frequency of movements. 0 to stop wandering. If set to a different value it will be clipped to the range [0.5, 5]. If not passed the default value is 1.
* <code>t_bound</code>: Coordinates top_bound vertex (e.g. 5,7)
* <code>b_bound</code>: Coordinates bottom_bound vertex (e.g. 7,9)


'''Examples'''  
'''Examples'''  
* <code>clear_kennel name_kennel, new_kennel</code>
* <code>char_wander npc_maple</code>
* <code>char_wander npc_maple,,5,7,7,9</code>


=== clear_tuxepedia ===
=== choice_item ===
Clear the key and value in the Tuxepedia dictionary.
Ask the player to make a choice among items.


'''Parameters'''   
'''Parameters'''   
* <code>monster_slug</code>: Monster slug name (e.g. "rockitten").
* <code>choices</code>: List of possible choices (item slugs eg: potion:tea), separated by a colon ":".
* <code>variable</code>: Variable to store the result of the choice.


'''Examples'''  
'''Examples'''  
* <code>clear_tuxepedia rockitten</code>
* <code>choice_monster potion:tea,name_variable</code>


=== clear_variable ===
=== choice_monster ===
Clear the value of a variable from the game.
Ask the player to make a choice among monsters.


'''Parameters'''  :  
'''Parameters'''   
* <code>variable</code>: The variable to clear.
* <code>choices</code>: List of possible choices (monster slugs eg: rockitten:apeoro), separated by a colon ":".
* <code>variable</code>: Variable to store the result of the choice.


'''Examples'''  
'''Examples'''  
* <code>clear_variable name_variable</code>
* <code>choice_monster apeoro:rockitten,name_variable</code>


=== copy_variable ===
=== choice_npc ===
Copy the value of var2 into var1 (e.g. var1 = var 2).
Ask the player to make a choice among NPCs.


'''Parameters'''  :
'''Parameters'''   
* <code>var1</code>: The variable to copy to.
* <code>choices</code>: List of possible choices (npc slugs eg: maple:billie), separated by a colon ":".
* <code>var2</code>: The variable to copy from.
* <code>variable</code>: Variable to store the result of the choice.


'''Examples'''  
'''Examples'''  
* <code>copy_variable new_variable,old_variable</code>
* <code>choice_monster billie:maple,name_variable</code>


=== create_npc ===
=== clear_kennel ===
Creates an NPC and places them on the current map.
Clear a kennel. It advisable to save the game and check twice. Remember the main kennel is "Kennel" and without destination (transfer) the monster will be deleted as well as the kennel.


'''Parameters'''  
'''Parameters'''   
* <code>name</code>: The name of the NPC to create. This NPC should exist in <code>resources/db/npc</code> in JSON format.  
* <code>kennel</code>: The kennel to clear.
* <code>tile_pos_x</code>: The X-tile coordinate to place the NPC.
* <code>transfer</code>: The kennel to transfer the monsters. (optional)
* <code>tile_pos_y</code>: The Y-tile coordinate to place the NPC. 
* <code>behavior</code>: The NPC's movement behavior. Currently not implemented. 


'''Examples'''  
'''Examples'''  
* <code>create_npc Maple,2,3</code> 
* <code>clear_kennel name_kennel, new_kennel</code>
* <code>create_npc Pine,1,6,stand</code>


=== delayed_teleport ===
=== clear_tuxepedia ===
Set teleport information. Teleport will be triggered during screen transition. Only use this if followed by a transition.
Clear the key and value in the Tuxepedia dictionary.


'''Parameters'''  
'''Parameters'''
* <code>map_name</code>: Name of the map to teleport to.
* <code>monster_slug</code>: Monster slug name (e.g. "rockitten").
* <code>position_x</code>: X position to teleport to.
* <code>position_y</code>: Y position to teleport to.


'''Examples'''  
'''Examples'''  
* <code>delayed_teleport cotton_town,10,10</code>
* <code>clear_tuxepedia rockitten</code>


=== evolution ===
=== clear_variable ===
Checks, asks and evolves. It's the action responsible for evolving monster when one or more conditions are met. It's advisable to use it with the condition <code>is/not check_evolution player</code>
Clear the value of a variable from the game.


'''Parameters'''  
'''Parameters''' :
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>variable</code>: The variable to clear.


'''Examples'''  
'''Examples'''  
* <code>evolution player</code>
* <code>clear_variable name_variable</code>


=== fadeout_music ===
=== copy_variable ===
Fades out music over <code>x</code> milliseconds.
Copy the value of var2 into var1 (e.g. var1 = var 2).


'''Parameters'''  
'''Parameters''' :
* <code>time_seconds</code>: Time in milliseconds to fade out the currently playing music.
* <code>var1</code>: The variable to copy to.
* <code>var2</code>: The variable to copy from.


'''Examples'''  
'''Examples'''  
* <code>fadeout_music 2</code>
* <code>copy_variable new_variable,old_variable</code>


=== format_variable ===
=== create_npc ===
Format the value of a variable from the game (eg. float or int).
Creates an NPC and places them on the current map.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: The variable to format.
* <code>name</code>: The name of the NPC to create. This NPC should exist in <code>resources/db/npc</code> in JSON format.
* <code>type_format</code>: Kind of format (float or int).
* <code>tile_pos_x</code>: The X-tile coordinate to place the NPC. 
* <code>tile_pos_y</code>: The Y-tile coordinate to place the NPC. 
* <code>behavior</code>: The NPC's movement behavior. Currently not implemented.


'''Examples'''  
'''Examples'''  
* <code>format_variable name_variable,int</code>
* <code>create_npc Maple,2,3</code>
* <code>format_variable name_variable,float</code>
* <code>create_npc Pine,1,6,stand</code>


=== get_monster_tech ===
=== delayed_teleport ===
Select a tech among the monster's moves. It allows filtering: slug, element, range.
Set teleport information. Teleport will be triggered during screen transition. Only use this if followed by a transition.


'''Parameters'''  
'''Parameters'''  
* <code>variable_name</code>: Variable where to store the technique id.
* <code>map_name</code>: Name of the map to teleport to.
* <code>monster_id</code>: Variable where is stored the monster id.
* <code>position_x</code>: X position to teleport to.
* <code>filter_name</code>: the name of the first filter (optional)
* <code>position_y</code>: Y position to teleport to.
* <code>value_name</code>: the actual value to filter (optional)
 
* <code>extra</code>: used to filter more (optional)
'''Examples'''
* <code>delayed_teleport cotton_town,10,10</code>
 
=== evolution ===
Checks, asks and evolves. It's the action responsible for evolving monster when one or more conditions are met. It's advisable to use it with the condition <code>is/not check_evolution player</code>
 
'''Parameters'''
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
 
'''Examples'''
* <code>evolution player</code>
 
=== fadeout_music ===
Fades out music over <code>x</code> milliseconds.
 
'''Parameters'''
* <code>time_seconds</code>: Time in milliseconds to fade out the currently playing music.


'''Examples'''  
'''Examples'''  
* <code>get_monster_tech name_variable,monster_id</code>
* <code>fadeout_music 2</code>
* <code>get_monster_tech name_variable,monster_id,element,water</code>
* <code>get_monster_tech name_variable,monster_id,power,less_than,1.6</code>


=== get_party_monster ===
=== get_party_monster ===
Line 807: Line 777:
* <code>get_player_monster name_variable,shape,serpent</code>
* <code>get_player_monster name_variable,shape,serpent</code>


=== give_experience ===
=== kennel_print ===
Gives experience points to the monster.
Print all the kennels or one. It returns <name, qty, visible/hidden>, where *qty = number of monsters inside.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id.
* <code>kennel</code>: Name of the kennel. (optional)
* <code>exp</code>: Name of the variable where to store the experience points or directly the number of points. Negative value will result in 0.


'''Examples'''  
'''Examples'''  
* <code>give_experience name_variable,steps_variable"</code>
* <code>kennel_print</code>
* <code>give_experience name_variable,420</code>
* <code>kennel_print name_kennel</code>


=== info ===
=== load_game ===
Records monster's attribute values inside a game variable. It allows to record the monster's owner attribute values too.
 
'''Parameters'''
* <code>variable</code>: Name of the variable where to store the monster id.
* <code>attribute</code>: The attribute to check (level, speed, etc.).
 
'''Examples'''
* <code>info name_variable,level</code> -> if the monster is lv 4, then it'll create a variable called: "info_level:4"
* <code>info name_variable,owner_steps</code> -> if the owner walked 69 steps, then it'll create a variable called: "info_owner_steps:69"
 
=== input_variable ===
Set a code and checks if it's correct or not. The player's output will be by default lowercase.
 
'''Parameters'''
* <code>question</code>: The question the player needs to reply. (eg. "access_code") then you create the msgid "access_code" inside the English PO file, as follows: msgid "access_code" and msgstr "Here the actual question?"
* <code>variable</code>: Name of the variable where to store the output.
* <code>escape</code>: Whether the input can be closed or not. Default False.
 
'''Examples'''
* <code>input_variable access_code,response_question</code>
* <code>input_variable access_code,response_question,escape</code>
 
=== load_game ===
Loads the game. If the index parameter is absent, then it'll load slot4.save (index = 0 > slot 1, index = 1 > slot 2, index = 2 > slot 3)
Loads the game. If the index parameter is absent, then it'll load slot4.save (index = 0 > slot 1, index = 1 > slot 2, index = 2 > slot 3)


Line 870: Line 816:
* <code>menu disable,menu_bag</code>
* <code>menu disable,menu_bag</code>


=== modify_char_attribute ===
=== modify_monster_stats ===
Modify the given attribute of the character by modifier. By default this is achieved via addition, but prepending a '%' will cause it to be multiplied by the attribute.
Change the stats of a monster in the current player's party.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>variable</code>: Name of the variable where to store the monster id. If no variable is specified, all monsters are touched. (Optional)
* <code>attribute</code>: Name of the attribute to modify.
* <code>stat</code>: A stat among armour, dodge, hp, melee, speed and ranged. If no stat, then all the stats. (Optional)
* <code>value</code>: Value of the attribute modifier.
* <code>amount</code>: A/an float/int value, if no amount, then default 1 (+). (Optional)


'''Examples'''  
'''Examples'''  
* <code>modify_char_attribute character,attribute,value</code>
* <code>modify_monster_stats</code>
 
* <code>modify_monster_stats ,,0.25</code>
=== modify_money ===
* <code>modify_monster_stats name_variable,speed,25</code>
Add or remove an amount of money for a wallet (slug).
* <code>modify_monster_stats name_variable,dodge,-12</code>
* <code>modify_monster_stats name_variable,dodge,-0.4</code>
 
=== modify_char_attribute ===
Modify the given attribute of the character by modifier. By default this is achieved via addition, but prepending a '%' will cause it to be multiplied by the attribute.


'''Parameters'''  
'''Parameters'''  
* <code>slug</code>: Slug name (e.g. player or NPC, etc.).
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>amount</code>: Amount of money to add/remove (-/+)
* <code>attribute</code>: Name of the attribute to modify.
* <code>variable</code>: Name of the variable where to store the amount.
* <code>value</code>: Value of the attribute modifier.


'''Examples'''  
'''Examples'''  
* <code>modify_money npc_maple,100</code>
* <code>modify_char_attribute character,attribute,value</code>
* <code>modify_money npc_maple,-50</code>
* <code>modify_money player,,name_variable</code>


=== modify_monster_bond ===
=== money_print ===
Add or remove an amount of money for a wallet (slug).
Print the current value of money dictionary to the console. If no entity is specified, print out values of all money dictionary.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id. If no variable is specified, all monsters are touched.
* <code>slug</code>: Slug name (e.g. player or NPC, etc.). (optional)
* <code>amount</code>: An int or float value, if no amount, then default 1 (int).


'''Examples'''
'''Examples'''  
* <code>modify_monster_bond</code>
* <code>money_print</code>
* <code>modify_monster_bond name_variable,25</code>
* <code>money_print player</code>
* <code>modify_monster_bond name_variable,-0.5</code>


=== modify_monster_health ===
=== open_shop ===
Modify the hp of a monster in the current player's party.
Open the shop menu for a NPC.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id. If no variable is specified, all monsters are healed.
* <code>npc_slug</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>health</code>: A float value between 0 and 1, which is the percent of max hp to be restored to. A int value, which is the number of HP to be restored to. If no health is specified, the hp is maxed out.
* <code>menu</code>: Either "buy", "sell" or "both". Default is "both". (optional)


'''Examples'''  
'''Examples'''  
* <code>modify_monster_health</code>
* <code>open_shop npc_maple</code>  
* <code>modify_monster_health ,0.25</code>


 
=== pathfind ===
=== modify_monster_stats ===
Moves an NPC to a certain tile on the map.
Change the stats of a monster in the current player's party.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id. If no variable is specified, all monsters are touched. (Optional)
* <code>name</code>: The name of the NPC to be moved.
* <code>stat</code>: A stat among armour, dodge, hp, melee, speed and ranged. If no stat, then all the stats. (Optional)
* <code>tile_pos_x</code>: The X-tile coordinate to have the NPC to walk to.
* <code>amount</code>: A/an float/int value, if no amount, then default 1 (+). (Optional)
* <code>tile_pos_y</code>: The Y-tile coordinate to have the NPC to walk to.    


'''Examples'''  
'''Examples'''  
* <code>modify_monster_stats</code>
* <code>pathfind Maple,2,3</code>  
* <code>modify_monster_stats ,,0.25</code>
* <code>pathfind Pine,1,6</code>
* <code>modify_monster_stats name_variable,speed,25</code>
* <code>modify_monster_stats name_variable,dodge,-12</code>
* <code>modify_monster_stats name_variable,dodge,-0.4</code>


=== open_shop ===
=== pathfind_to_player ===
Open the shop menu for a NPC.
Pathfind NPC close the player.


'''Parameters'''  
'''Parameters'''  
* <code>npc_slug</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>npc_slug</code>: Npc slug name (e.g. "npc_maple").
* <code>menu</code>: Either "buy", "sell" or "both". Default is "both". (optional)
* <code>direction</code>: Approaches the player from up, down, left or right.
* <code>distance</code>: How many tiles (2, 3, 4, etc.)


'''Examples'''  
'''Examples'''  
* <code>open_shop npc_maple</code>  
* <code>pathfind_to_player spyder_route2_roddick</code>
* <code>translated_dialog spyder_route2_roddick1</code>
* <code>start_battle spyder_route2_roddick</code>  


=== overwrite_tech ===
=== pause_music ===
Overwrite / replace a technique with another.
Pauses the currently playing music.


'''Parameters'''  
'''Parameters'''  
* <code>removed</code>: Name of the variable where to store the tech id.
* <code>None</code>
* <code>added</code>: Slug technique.


'''Examples'''  
'''Examples'''  
* <code>overwrite_tech name_variable,peck</code>  
* <code>pause_music</code>


=== pathfind ===
=== play_map_animation ===
Moves an NPC to a certain tile on the map.
Plays an animation on the map. The <code>position</code> parameter can also be <code>player</code> if you want to draw the animation at the player's location. Loop can be either <code>loop</code> or <code>noloop</code>.


'''Parameters'''  
'''Parameters'''  
* <code>name</code>: The name of the NPC to be moved.
* <code>animation_name</code>: The name of the animation to play under <code>resources/animations/tileset</code>.
* <code>tile_pos_x</code>: The X-tile coordinate to have the NPC to walk to.   
* <code>duration</code>: The amount of time in seconds between each frame. 
* <code>tile_pos_y</code>: The Y-tile coordinate to have the NPC to walk to.    
* <code>loop</code>: Whether or not to loop the animation. Can be either <code>loop</code> or <code>noloop</code> to loop the animation.   
* <code>position</code>: The position to draw the animation. Can either be an <code>x,y</code> coordinate or <code>player</code> to draw the animation over the player.


'''Examples'''  
'''Examples'''  
* <code>pathfind Maple,2,3</code>  
* <code>play_map_animation grass,0.1,noloop,player</code>
* <code>pathfind Pine,1,6</code>
* <code>play_map_animation sign01,0.4,loop,33,10</code>


=== pathfind_to_player ===
=== play_music ===
Pathfind NPC close the player.
Plays an audio file.


'''Parameters'''  
'''Parameters'''  
* <code>npc_slug</code>: Npc slug name (e.g. "npc_maple").
* <code>filename</code>: Music file to load (slug inside the JSON in db/sound)
* <code>direction</code>: Approaches the player from up, down, left or right.
* <code>volume</code>: Number between 0.0 and 1.0. (optional)
* <code>distance</code>: How many tiles (2, 3, 4, etc.)
* <code>loop</code>: How many times loop, default forever. (optional)


'''Examples'''  
'''Examples'''  
* <code>pathfind_to_player spyder_route2_roddick</code>
* <code>play_music music_mystic_island</code>  
* <code>translated_dialog spyder_route2_roddick1</code>
* <code>start_battle player,spyder_route2_roddick</code>  


=== pause_music ===
=== play_sound ===
Pauses the currently playing music.
Plays a sound file.


'''Parameters'''  
'''Parameters'''  
* <code>None</code>
* <code>filename</code>: Sound file to load (slug inside the JSON in db/sound)
* <code>volume</code>: Number between 0.0 and 1.0. (optional)


'''Examples'''  
'''Examples'''  
* <code>pause_music</code>
* <code>play_sound sound_confirm</code>


=== play_map_animation ===
=== player_sprite ===
Plays an animation on the map. The <code>position</code> parameter can also be <code>player</code> if you want to draw the animation at the player's location. Loop can be either <code>loop</code> or <code>noloop</code>.
Check the player's sprite


'''Parameters'''  
'''Parameters'''  
* <code>animation_name</code>: The name of the animation to play under <code>resources/animations/tileset</code>. 
* <code>sprite</code>: slug of the sprite
* <code>duration</code>: The amount of time in seconds between each frame. 
* <code>loop</code>: Whether or not to loop the animation. Can be either <code>loop</code> or <code>noloop</code> to loop the animation. 
* <code>position</code>: The position to draw the animation. Can either be an <code>x,y</code> coordinate or <code>npc_slug</code> to draw the animation over the character.


'''Examples'''  
'''Examples'''  
* <code>play_map_animation grass,0.1,noloop,player</code>   
* <code>is player_sprite adventurer</code>   
* <code>play_map_animation sign01,0.4,loop,33,10</code>


=== play_music ===
=== print ===
Plays an audio file.
Print the current value of a game variable to the console. If no variable is specified, print out values of all game variables.


'''Parameters'''
'''Parameters''' :  
* <code>filename</code>: Music file to load (slug inside the JSON in db/sound)
* <code>variable</code>: Prints out the value of this variable (optional)
* <code>volume</code>: Number between 0.0 and 1.0. (optional)
* <code>loop</code>: How many times loop, default forever. (optional)
 
'''Examples'''
* <code>play_music music_mystic_island</code>
 
=== play_sound ===
Plays a sound file.
 
'''Parameters'''
* <code>filename</code>: Sound file to load (slug inside the JSON in db/sound)
* <code>volume</code>: Number between 0.0 and 1.0. (optional)
 
'''Examples'''
* <code>play_sound sound_confirm</code> 
 
=== print ===
Print the current value of a game variable to the console. If no variable is specified, print out values of all game variables.
 
'''Parameters''' :  
* <code>variable</code>: Prints out the value of this variable (optional)


'''Examples'''  
'''Examples'''  
Line 1,032: Line 950:


=== quarantine ===
=== quarantine ===
Quarantine infected monsters. Amount works only for "out", it takes out the amount in a random way.
Quarantine infected monsters. Amount works only for "out", it takes out the amount in a random way.  


'''Parameters'''  
'''Parameters'''  
Line 1,063: Line 981:


=== random_encounter ===
=== random_encounter ===
Randomly start a battle based on the encounter group looked up via the <code>encounter_id</code>. Encounter groups contain a list of monsters that can be encountered as well as their level and encounter rate. In most circumstances you will pair this action with the <code>char_at</code> and <code>char_moved</code> conditions.
Randomly start a battle based on the encounter group looked up via the <code>encounter_id</code>. Encounter groups contain a list of monsters that can be encountered as well as their level and encounter rate. In most circumstances you will pair this action with the <code>player_at</code> and <code>player_moved</code> conditions.


Here is an example encounter file: ''resources/db/encounter/route1.json''   
Here is an example encounter file: ''resources/db/encounter/route1.json''   


  "slug": "route1",
<code>{"slug":"route1","monsters":[{"monster":"pairagrin","encounter_rate":3.5,"daytime":true,"exp_req_mod":1,"level_range":[2,4]}]}</code>
  "monsters": [
    {
      "monster": "pairagrin",
      "encounter_rate": 3.5,
      "variable": "daytime:true",
      "exp_req_mod": 1,
      "level_range": [
        2,
        4
      ]
    },


'''Parameters'''  
'''Parameters'''  
Line 1,151: Line 1,058:


=== remove_monster ===
=== remove_monster ===
Remove a monster from the party if the monster is there.
Remove a monster from the given trainer's party if the monster is there. Monster is determined by instance_id, which must be passed in a game variable.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id.
* <code>instance_id</code>: Id of the monster to remove.
* <code>trainer_slug</code>: Slug of the trainer. If no trainer slug is passed it defaults to the current player.


'''Examples'''  
'''Examples'''  
Line 1,180: Line 1,088:
* <code>remove_state</code> (it removes everything, excluding the basic ones)
* <code>remove_state</code> (it removes everything, excluding the basic ones)
* <code>remove_state JournalInfoState</code> (it removes everything, excluding the basic ones)
* <code>remove_state JournalInfoState</code> (it removes everything, excluding the basic ones)
=== remove_tech ===
Remove a specific technique from a specific monster.
'''Parameters''' 
* <code>tech_id</code>: Name of the variable where to store the tech id.
'''Examples'''
* <code>remove_tech name_variable</code>


=== rename_monster ===
=== rename_monster ===
Open the text input screen to rename the monster.
Open the monster menu and text input screens to rename a selected monster.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id.
* <code>None</code>


'''Examples'''  
'''Examples'''  
* <code>rename_monster name_variable</code>   
* <code>rename_monster</code>   


=== rename_player ===
=== rename_player ===
Line 1,232: Line 1,131:


'''Parameters'''  
'''Parameters'''  
* <code>trans_time</code>: Time in seconds - default 0.3 (optional).
* <code>transition_time</code>: Time in seconds - default (optional).
* <code>rgb</code>: color (eg red > 255,0,0 > 255:0:0) - default rgb(255,255,255) (optional)
* <code>rgb</code>: color (eg red > 255,0,0 > 255:0:0) - default rgb(255,255,255) (optional)


Line 1,253: Line 1,152:


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>npc_slug</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>bubble</code>: dots, drop, exclamation, heart, note, question, sleep, angry, confused, fireworks
* <code>bubble</code>: dots, drop, exclamation, heart, note, question, sleep, angry, confused, fireworks


Line 1,261: Line 1,160:
* <code>set_bubble player,note</code> (set bubble player)
* <code>set_bubble player,note</code> (set bubble player)
* <code>set_bubble player</code> (remove bubble player)
* <code>set_bubble player</code> (remove bubble player)
=== set_code ===
Set a code and checks if it's correct or not. Case Sensitive: ATTENTION and AtTenTION are two different words.
'''Parameters'''
* <code>question</code>: The question the player needs to reply. (eg. "access_code") then you create the msgid "access_code" inside the English PO file, as follows: msgid "access_code" and msgstr "Here the actual question?"
* <code>answer</code>: The right answer to the question.
* <code>variable</code>: Where the result (right/wrong) is saved.
'''Examples'''
* <code>set_code access_code,joke,name_variable</code>


=== set_economy ===
=== set_economy ===
Line 1,266: Line 1,176:


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>npc_slug</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>economy_slug</code>: Slug of an economy.
* <code>economy_slug</code>: Slug of an economy.


Line 1,307: Line 1,217:
'''Examples'''  
'''Examples'''  
* <code>set_layer 255:0:0:128</code>
* <code>set_layer 255:0:0:128</code>
=== set_money ===
Set the key and value in the money dictionary. It'll reset the previous amount.
'''Parameters'''
* <code>slug</code>: Slug name (e.g. player or NPC, etc.).
* <code>amount</code>: Amount of money
'''Examples'''
* <code>set_money player,500</code>


=== set_mission ===
=== set_mission ===
Line 1,312: Line 1,232:


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>slug</code>: slug mission
* <code>slug</code>: slug mission
* <code>operation</code>: add, remove or change
* <code>operation</code>: add, remove or change
* <code>status</code>: completed, pending, failed (default pending)
* <code>status</code>: completed, pending, failed (default pending)
* <code>npc_slug</code>: slug name (e.g. "npc_maple"), default player.


'''Examples'''  
'''Examples'''  
Line 1,321: Line 1,241:
* <code>set_mission mission1,change,completed</code>
* <code>set_mission mission1,change,completed</code>


=== set_money ===
=== set_monster_flair ===
Set an amount of money for a specific slug.
Set a monster's flair to the given value.


'''Parameters'''  
'''Parameters'''  
* <code>slug</code>: Slug name (e.g. player or NPC, etc.).
* <code>variable</code>: Name of the variable where to store the monster id. If no variable is specified, all monsters are changed.
* <code>amount</code>: Amount of money (>= 0) (default 0)
* <code>category</code>: Category of the monster flair.
* <code>flair</code>: Name of the monster flair.


'''Examples'''  
'''Examples'''  
* <code>set_money player</code>
* <code>get_player_monster name_variable</code>
* <code>set_money player,500</code>
 
=== set_monster_attribute ===
Set the given attribute of the monster to the given value.
 
'''Parameters'''
* <code>variable</code>: Name of the variable where to store the monster id.
* <code>attribute</code>: Name of the attribute.
* <code>value</code>: Value of the attribute.
 
'''Examples'''
* <code>set_monster_attribute name_variable,name,jimmy</code> (the monster will be named jimmy)
 
=== set_monster_flair ===
Set a monster's flair to the given value.
 
'''Parameters'''
* <code>variable</code>: Name of the variable where to store the monster id. If no variable is specified, all monsters are changed.
* <code>category</code>: Category of the monster flair.
* <code>flair</code>: Name of the monster flair.
 
'''Examples'''
* <code>get_player_monster name_variable</code>
* <code>set_monster_flair name_variable,category,flair</code>
* <code>set_monster_flair name_variable,category,flair</code>


=== set_monster_health ===
=== set_monster_health ===
Set the hp of a monster in the current player's party. The action parameters may contain a monster slot and the amount of health.  
Changes the hp of a monster in the current player's party. The action parameters may contain a monster slot and the amount of health.  


'''Parameters'''  
'''Parameters'''  
Line 1,380: Line 1,278:
* <code>get_player_monster name_variable</code>
* <code>get_player_monster name_variable</code>
* <code>set_monster_level name_variable,1</code>
* <code>set_monster_level name_variable,1</code>
=== set_monster_plague ===
Cure or infect a monster.
'''Parameters'''
* <code>variable</code>: Name of the variable where to store the monster id. If no variable is specified, all monsters get the condition. (optional)
* <code>condition</code>: inoculated, healthy or infected, default healthy (optional)
'''Examples'''
* <code>set_monster_plague</code> (all the monsters in the party are healthy)
or
* <code>get_player_monster name_variable</code>
* <code>set_monster_plague name_variable,infected</code>


=== set_monster_status ===
=== set_monster_status ===
Line 1,404: Line 1,315:
'''Examples'''  
'''Examples'''  
* <code>set_char_attribute character,attribute,value</code>
* <code>set_char_attribute character,attribute,value</code>
=== set_party_attribute ===
Set the given attribute of party's monsters to the given value.
'''Parameters'''
* <code>character</code>: Either "player" or character slug name (e.g. "npc_maple").
* <code>attribute</code>: Name of the attribute.
* <code>value</code>: Value of the attribute.
'''Examples'''
* <code>set_party_attribute player,name,jimmy</code> (all the monsters in the party will be named jimmy)
=== set_party_status ===
Records important information about all monsters in the party (eg average level of the party, etc.)
'''Parameters'''
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
'''Examples'''
* <code>set_party_status player</code>


=== set_player_name ===
=== set_player_name ===
Line 1,491: Line 1,382:


'''Parameters'''
'''Parameters'''
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple"). The one who is going to receive the new born.
* <code>npc_slug</code>: Either "player" or npc slug name (e.g. "npc_maple").


'''Examples'''  
'''Examples'''  
Line 1,504: Line 1,395:


'''Examples'''  
'''Examples'''  
* <code>start_battle player,npc_maple</code>
* <code>start_battle npc_maple</code>
* <code>start_battle npc_maple,npc_apple</code>
* <code>start_battle npc_maple,npc_apple</code>


Line 1,529: Line 1,420:


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id.
* <code>monster_id</code>: Id of the monster to store.  
* <code>box</code>: An existing box where the monster will be stored. (optional)
* <code>box</code>: An existing box where the monster will be stored. (optional)


Line 1,543: Line 1,434:


'''Parameters'''  
'''Parameters'''  
* <code>trans_time</code>: Transition time in seconds - default 0.3. 
* <code>None</code>


'''Examples'''  
'''Examples'''  
* <code>teleport_faint</code>
* <code>teleport_faint</code>
* <code>teleport_faint 6.9</code>


=== teleport ===
=== teleport ===
Line 1,565: Line 1,455:


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id (removed).
* <code>removed</code>: Instance id (name variable).
* <code>added</code>: Slug monster or Name of the variable where to store the monster id (added).
* <code>added</code>: Slug monster.


'''Examples'''  
'''Examples'''  
Line 1,574: Line 1,464:


=== transfer_money ===
=== transfer_money ===
Transfer money between entities. Both entities needs to have a wallet.
Performs a mathematical transaction on the player's money.


'''Parameters'''  
'''Parameters'''  
* <code>slug1</code>: Slug name (e.g. NPC, etc.)
* <code>transaction</code>: Operator symbol.
* <code>amount</code>: Amount of money.
* <code>amount</code>: Amount of money.
* <code>slug2</code>: Slug name (e.g. NPC, etc.)
* <code>slug</code>: Slug name (e.g. NPC, etc.) (optional)


'''Examples'''  
'''Examples'''  
* <code>transfer_money player,100,npc_mom</code> (player transfers 100 to mom)
* <code>transfer_money +,100,npc_mom</code> (player gets 100 from mom)
* <code>transfer_money -,100,npc_mom</code> (mom gets 100 from player)
* <code>transfer_money +,100</code> (player gets 100)


=== transition_teleport ===
=== transition_teleport ===
Line 1,591: Line 1,483:
* <code>x</code>: The X-tile coordinate to teleport the player to.   
* <code>x</code>: The X-tile coordinate to teleport the player to.   
* <code>y</code>: The Y-tile coordinate to teleport the player to.   
* <code>y</code>: The Y-tile coordinate to teleport the player to.   
* <code>trans_time</code>: The time in seconds - default 2. (optional)
* <code>transition_time</code>: The time in seconds - default 2. (optional)
* <code>rgb</code>: color (eg red > 255,0,0 > 255:0:0) - default rgb(255,255,255) (optional)
* <code>rgb</code>: color (eg red > 255,0,0 > 255:0:0) - default rgb(255,255,255) (optional)


Line 1,619: Line 1,511:
* <code>translated_dialog msgid</code>   
* <code>translated_dialog msgid</code>   


=== unlock_controls ===
=== tuxepedia_print ===
Unlock player controls
Print the current value of Tuxepedia to the console. If no monster is specified, print out values of all Tuxepedia.


'''Parameters'''  
'''Parameters'''  
* <code>None</code>
* <code>monster_slug</code>: Monster slug name (e.g. "rockitten").


'''Examples'''  
'''Examples'''  
* <code>unlock_controls</code>
* <code>tuxepedia_print</code>
* <code>tuxepedia_print rockitten</code>


=== update_tile_properties ===
=== unlock_controls ===
Update tile properties. Enable movement and/or the moverate. '''moverate 0 = not accessible'''. The surface keys supported are: '''surfable''', '''walkable''' and '''climbable'''.
Unlock player controls


'''Parameters'''  
'''Parameters'''  
* <code>label</code>: Name of the property
* <code>None</code>
* <code>moverate</code>: Value of the moverate (eg 1 equal moverate, default 1)


'''Examples'''  
'''Examples'''  
* <code>update_tile_properties surfable,0.5</code>   
* <code>unlock_controls</code>   


=== variable_math ===
=== variable_math ===
Line 1,678: Line 1,570:


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id.
* <code>monster_id</code>: The id of the monster to pull (variable).
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple"). The one who is going to receive the monster.
* <code>trainer</code>: Slug of the trainer that will receive the monster. It defaults to the current player.
           
 
'''Examples'''  
'''Examples'''  
* <code>get_player_monster name_variable</code>
* <code>get_player_monster name_variable</code>
Line 1,696: Line 1,588:


=== Battle related ===
=== Battle related ===
* <code>battle_last_result</code>: the result can be <code>won</code>, <code>draw</code>, <code>lost</code> or <code>ran</code>.
other variables include:
* <code>battle_last_monster_name</code> name of the last monster fought.
* <code>battle_last_monster_name</code> name of the last monster fought.
* <code>battle_last_monster_level</code> level of the last monster fought.
* <code>battle_last_monster_level</code> level of the last monster fought.
Line 1,701: Line 1,596:
* <code>battle_last_monster_category</code> category of the last monster fought.
* <code>battle_last_monster_category</code> category of the last monster fought.
* <code>battle_last_monster_shape</code> shape of the last monster fought.
* <code>battle_last_monster_shape</code> shape of the last monster fought.
 
* <code>battle_last_trainer</code> slug of the last trainer fought (it applies only to trainer battles).
trainer battles:
* <code>battle_last_trainer</code> slug of the last trainer fought
battles PC vs NPC (eg player vs npc_maple or npc_maple vs player)
* <code>battle_last_result</code>: the result can be <code>won</code> or <code>draw</code>
battles NPC vs NPC (eg npc_maple vs npc_apple) or PC vs NPC (eg player vs npc_maple or npc_maple vs player)
* <code>battle_last_loser</code> slug of the last trainer fought ("player" for the player)
* <code>battle_last_winner</code> slug of the last trainer fought ("player" for the player)


=== Time related ===
=== Time related ===
Line 1,767: Line 1,655:
Let's say you want to set up and event for trading monsters. You need 3 events after creating the NPC in map.
Let's say you want to set up and event for trading monsters. You need 3 events after creating the NPC in map.
* <code>monster1</code> (monster desired by the NPC)
* <code>monster1</code> (monster desired by the NPC)
* <code>monster2</code> (monster the NPC wants to trade in exchange)
* <code>monster2</code> (monster the NPC wants to trade)


1st: if the player has the monster
1st: if the player has the monster
    <property name="act10" value="translated_dialog dialog_npc1"/>
* <code>translated_dialog dialog_npc1</code>
    <property name="act20" value="translated_dialog_choice yes:no,npc_willtrade"/>
* <code>translated_dialog_choice yes:no,npc_willtrade</code>
    <property name="behav10" value="talk npc_slug"/>
* <code>talk npc_slug</code>
    <property name="cond10" value="is has_monster player,monster1"/>
* <code>is has_monster monster1</code>
    <property name="cond20" value="not variable_set npc_hastraded:yes"/>
* <code>not variable_set npc_hastraded:yes</code>
2nd: if the player hasn't the monster
2nd: if the player hasn't the monster
    <property name="act10" value="translated_dialog dialog_npc1"/>
* <code>translated_dialog dialog_npc1</code>
    <property name="act20" value="translated_dialog dialog_npc_nomonster1"/>
* <code>translated_dialog dialog_npc_nomonster1</code>
    <property name="behav10" value="talk npc_slug"/>
* <code>talk npc_slug</code>
    <property name="cond10" value="not has_monster player,monster1"/>
* <code>not has_monster monster1</code>
    <property name="cond20" value="not variable_set npc_hastraded:yes"/>
* <code>not variable_set npc_hastraded:yes</code>
3rd: trading part
3rd: trading part
    <property name="act10" value="translated_dialog dialog_npc_willtrade"/>
* <code>translated_dialog dialog_npc_willtrade</code>
    <property name="act20" value="get_player_monster name_variable"/>
* <code>get_player_monster name_variable</code>
    <property name="act30" value="trading name_variable,traded_monster"/>
* <code>trading name_variable,traded_monster</code>
    <property name="act40" value="set_variable npc_hastraded:yes"/>
* <code>set_variable npc_hastraded:yes</code>
    <property name="cond10" value="is has_monster player,monster1"/>
* <code>is has_monster monster1</code>
    <property name="cond20" value="is variable_set npc_willtrade"/>
* <code>is variable_set npc_willtrade</code>
    <property name="cond30" value="not variable_set npc_hastraded"/>
* <code>not variable_set npc_hastraded</code>


==== Get Party Monster ====
==== Get Party Monster ====
Let's say you want to add a tech to a monster (NPC). Eg. the NPC [[Rockitten]] needs to know [[Canine]], but [[Rockitten]] is the 4th monster (equal to 3rd slot).
Let's say you want to add a tech to a monster (NPC). Eg. the NPC [[Rockitten]] needs to know [[Canine]], but [[Rockitten]] is the 4th monster (equal to 3rd slot).


    <property name="act10" value="add_monster rockitten,20,npc_slug,27,10"/>
* <code>add_monster rockitten,20,npc_slug,27,10</code>
    <property name="act20" value="add_monster vivipere,20,npc_slug,27,10"/>
* <code>add_monster vivipere,20,npc_slug,27,10</code>
    <property name="act30" value="add_monster budaye,20,npc_slug,27,10"/>
* <code>add_monster budaye,20,npc_slug,27,10</code>
    <property name="act40" value="add_monster rockitten,20,npc_slug,27,10"/>
* <code>add_monster rockitten,20,npc_slug,27,10</code>
    <property name="act50" value="add_monster nut,20,npc_slug,27,10"/>
* <code>add_monster nut,20,npc_slug,27,10</code>
    <property name="act60" value="get_party_monster npc_slug"/>
* <code>get_party_monster npc_slug</code>
    <property name="act70" value="add_tech iid_slot_3,canine"/> ---> iid_slot_3 followed by [[Canine]]
* <code>add_tech iid_slot_3,canine,,,,npc_slug</code> here <code>iid_slot_3</code> followed by [[Canine]]
    <property name="act80" value="start_battle player,npc_slug"/>
* <code>start_battle npc_slug</code>
 
==== Battle Among NPCs (the player watches without interacting) ====
(eg npc_maple vs npc_apple)
 
    <property name="act10" value="create_npc npc_maple,0,7,stand"/>
    <property name="act20" value="create_npc npc_apple,0,8,stand"/>
    <property name="act30" value="add_monster chloragon,3,npc_maple"/>
    <property name="act40" value="add_monster rockitten,3,npc_apple"/>
    <property name="act50" value="start_battle npc_maple,npc_apple"/>
separate event, multiple endings, if npc_maple wins
    <property name="cond1" value="is variable_set battle_last_winner:npc_maple"/>
separate event, multiple endings, if npc_apple wins
    <property name="cond1" value="not variable_set battle_last_winner:npc_maple"/>
separate event, multiple endings, if no-one wins
    <property name="cond1" value="is variable_set battle_last_result:draw"/>

Please note that all contributions to Tuxepedia are considered to be released under the Creative Commons Attribution-ShareAlike (see Tuxepedia:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

Cancel Editing help (opens in new window)