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 8: Line 8:


=== battle_is ===
=== battle_is ===
Check to see if a character has fought against another one and won, lost or draw.
Check to see if the player has fought against NPC and won, lost or draw.


'''Parameters'''  
'''Parameters'''  
* <code>fighter</code>: Npc slug name (e.g. "npc_maple").
* <code>character</code>: Npc slug name (e.g. "npc_maple").
* <code>outcome</code>: One among "won", "lost" or "draw".
* <code>result</code>: One among "won", "lost" or "draw".
* <code>opponent</code>: Npc slug name (e.g. "npc_maple").


'''Examples'''  
'''Examples'''  
* <code>is battle_is player,won,npc_maple</code> (has player won against npc_maple in the last fight?)
* <code>is battle_is npc_maple,won</code>


=== button_pressed ===
=== button_pressed ===
Line 29: Line 28:
* <code>not button_pressed K_SPACE</code>  
* <code>not button_pressed K_SPACE</code>  


=== char_at ===
=== check_char_parameter ===
Check to see if the character is at the condition position on the map.
Check the parameter's value of the character against a given value.


'''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>parameter</code>: Name of the parameter to check (eg. "name", "steps", etc.).
* <code>value</code>: Given value to check.


'''Examples'''  
'''Examples'''  
* <code>is char_at Maple</code>
* <code>is check_char_parameter player,name,alpha</code>


=== char_defeated ===
=== check_evolution ===
Check to see the character has at least one tuxemon, and all tuxemon in their party are defeated.
Check to see the character has at least one tuxemon evolving. If yes, it'll save the monster and the evolution inside a list. The list will be used by the event action <code>evolution</code>.


'''Parameters'''  
'''Parameters'''  
Line 45: Line 46:


'''Examples'''  
'''Examples'''  
* <code>is char_defeated player</code>
* <code>is check_evolution player</code>


=== char_exists ===
=== check_mission ===
Check to see if a character object exists in the current list of NPCs.
Check to see the player has failed or completed a mission. Check to see if a mission is still pending.


'''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>method</code>: Mission or missions, "all" means all the existing missions. 
* <code>staths</code>: pending, completed or failed   


'''Examples'''  
'''Examples'''  
* <code>not char_exists npc_maple</code>
* <code>is check_mission player,mission1,completed</code>
* <code>is check_mission player,mission1,pending</code>
* <code>is check_mission player,mission1:mission2,completed</code>
* <code>is check_mission player,all,completed</code>


=== char_facing ===
=== current_state ===
Check to see where a character is facing.
Check to see if one or multiple state/states has/have been started or not.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple"). 
* <code>state</code>: Either "CombatState", "DialogState", etc
* <code>direction</code>: One of "up", "down", "left" or "right".


'''Examples'''  
'''Examples'''  
* <code>is char_facing npc_maple,up</code>
* <code>is current_state DialogState</code>
* <code>not char_facing npc_maple,down</code>
* <code>is current_state CombatState:DialogState</code>


=== char_facing_char ===
=== has_bag ===
Check to see the character is next to and facing a particular character.
Check to see how many items are in the character's bag. It doesn't count invisible items.


'''Parameters'''  
'''Parameters'''  
* <code>character1</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>character2</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>value</code>: The value to compare the bag with.


'''Examples'''  
'''Examples'''  
* <code>is char_facing_char npc_maple,player</code>
* <code>is has_bag player,equals,5</code> (player's bag: 5 potions and 2 tuxeball (5 items), in this case is true because 5 = 5)
* <code>is has_bag player,equals,9</code> (player's bag: 5 potions and 2 tuxeball (5 items), in this case is false because 9 != 5)


=== char_facing_tile ===
=== has_box ===
Check to see if a character is facing a tile position.
Check to see how many monsters are in the character's box.


'''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 <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>value</code>: The value to compare the party with.
* <code>box</code>: The box name.


'''Examples'''  
'''Examples'''  
* <code>is char_facing_tile npc_maple</code>
* <code>is has_box player,Kennel,less_than,1</code>


=== char_in ===
=== has_item ===
Check to see if the character is at the condition position on a specific set of tiles.
Check to see if a NPC inventory contains something.


'''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>value</code>: value (eg surfable) inside the tileset.
* <code>item</code>: The item slug name (e.g. "item_cherry").
* <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>quantity</code>: Quantity to compare with. (optional)


'''Examples'''  
'''Examples'''  
* <code>is char_in npc_maple,surfable</code>
* <code>is has_item player,potion</code>
* <code>is has_item player,potion,greater_than,2</code>


=== char_moved ===
=== has_monster ===
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.
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.


'''Examples'''  
'''Examples'''  
* <code>is char_moved player</code>
* <code>is has_monster txmn_pigabyte</code>


=== char_sprite ===
=== has_party_breeder ===
Check the character's sprite
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'''
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>sprite</code>: NPC's sprite (eg maniac, florist, etc.)


'''Examples'''  
'''Examples'''  
* <code>is char_sprite player,adventurer</code>
* <code>is has_party_breeder</code>


=== check_char_parameter ===
=== has_sprite ===
Check the parameter's value of the character against a given value.
Check to see if a NPC has a specific sprite.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>sprite</code>: Sprite slug (eg. adventurer, heroine, swimmer, etc.)
* <code>parameter</code>: Name of the parameter to check (eg. "name", "steps", etc.).
* <code>value</code>: Given value to check.


'''Examples'''  
'''Examples'''  
* <code>is check_char_parameter player,name,alpha</code>
* <code>is has_sprite swimmer</code>


=== check_evolution ===
=== has_tech ===
Check to see the character has at least one tuxemon evolving. If yes, it'll save the monster and the evolution inside a list. The list will be used by the event action <code>evolution</code>.
Check to see if the player has a technique in his party (one of the monsters).


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


'''Examples'''  
'''Examples'''  
* <code>is check_evolution player</code>
* <code>is has_tech bullet</code>


=== check_max_tech ===
=== location_inside ===
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 if the player is inside.
 
'''Parameters'''
* <code>nr</code>: Number of tech, default the constant


'''Examples'''  
'''Examples'''  
* <code>is check_max_tech</code>
* <code>is location_inside</code>
* <code>is check_max_tech 2</code>


=== check_mission ===
=== location_name ===
Check to see the player has failed or completed a mission. Check to see if a mission is still pending.
Check to see if the player is in a certain location name.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>technique</code>: Slug name. It's the name inside the maps. eg. <code><property name="slug" value="routeb"/></code>, so slug = routeb
* <code>method</code>: Mission or missions, "all" means all the existing missions. 
* <code>staths</code>: pending, completed or failed   


'''Examples'''  
'''Examples'''  
* <code>is check_mission player,mission1,completed</code>
* <code>is location_name routeb</code>
* <code>is check_mission player,mission1,pending</code>
* <code>is location_name routea:routeb</code>
* <code>is check_mission player,mission1:mission2,completed</code>
* <code>is check_mission player,all,completed</code>


=== check_party_parameter ===
=== location_type ===
Check to see the player has failed or completed a mission. Check to see if a mission is still pending.
Check to see if the player is in a certain location type.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>slug</code>: Slug name. Either all, notype, town, route, clinic, shop, dungeon
* <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'''  
'''Examples'''  
* <code>check_party_parameter player,level,5,equals,1</code> (is there 1 monster in the party at level 5? True/False)
* <code>is location_type town</code>
* <code>is location_type town:shop:clinic</code>


=== check_world ===
=== money_is ===
Check some world's parameter against a given value.  
Check to see if the player has a certain amount of money (pocket).


'''Parameters'''  
'''Parameters'''  
* <code>parameter</code>: Name of the parameter to check (eg. "layer", etc.).
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>value</code>: Given value to check.
* <code>operator</code>: One of "==", "!=", ">", ">=", "<" or "<=".
 
* <code>amount</code>: Amount of money.
'''Supported parameters'''
* '''layer''': color value which is used to overlay the world
* '''bubble''': speech bubble of an npc


'''Examples'''  
'''Examples'''  
* <code>is check_world</code>
* <code>is money_is player,>=,500</code>
* <code>is check_world layer,255:255:255:0</code>


=== current_state ===
=== monster_flair ===
Check to see if one or multiple state/states has/have been started or not.
Check to see if the given monster flair matches the expected value.


'''Parameters'''  
'''Parameters'''  
* <code>state</code>: Either "CombatState", "DialogState", etc
* <code>slot</code>: Position of the monster in the player monster list.
* <code>property</code>: Category of the flair.
* <code>name</code>: Name of the flair.


'''Examples'''  
'''Examples'''  
* <code>is current_state DialogState</code>
* <code>to be defined</code>
* <code>is current_state CombatState:DialogState</code>


=== has_bag ===
=== monster_property ===
Check to see how many items are in the character's bag. It doesn't count invisible items.
Check to see if a monster in the party has one of the following property.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <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>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>value</code>: Value to compare the property with.
* <code>value</code>: The value to compare the bag with.


'''Examples'''  
'''Examples'''  
* <code>is has_bag player,equals,5</code> (player's bag: 5 potions and 2 tuxeball (5 items), in this case is true because 5 = 5)
* <code>is monster_property level,15</code>
* <code>is has_bag player,equals,9</code> (player's bag: 5 potions and 2 tuxeball (5 items), in this case is false because 9 != 5)
* <code>is monster_property gender,male</code>
* <code>is monster_property stage,standalone</code>
* <code>is monster_property shape,aquatic</code>


=== has_box ===
=== music_playing ===
Check to see how many monsters are in the character's box.
Check to see if the specified music file is currently playing.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>music_file</code>: The music file to check.
* <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>value</code>: The value to compare the party with.
* <code>box</code>: The box name.


'''Examples'''  
'''Examples'''  
* <code>is has_box player,Kennel,less_than,1</code>
* <code>is music_playing 472452_8-Bit-Ambient.ogg</code>


=== has_item ===
=== npc_at ===
Check to see if a NPC inventory contains something.
Check to see if the npc is inside the event's area. This event will check the event object's <code>X</code>, <code>Y</code>, <code>Width</code>, and <code>Height</code> properties and checks to see if the npc is within those bounds. That includes event areas that are greater than one tile in size. You can optionally include an <code>x,y</code> parameter to specify a single tile location.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>name</code>: The name of the NPC.  
* <code>item</code>: The item slug name (e.g. "item_cherry").
* <code>x</code>: X tile coordinates that the player is at (optional)
* <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>y</code>: Y tile coordinate that the player is at (optional)
* <code>quantity</code>: Quantity to compare with. (optional)
 
 
'''Examples'''  
'''Examples'''  
* <code>is has_item player,potion</code>
* <code>is npc_at Maple</code>
* <code>is has_item player,potion,greater_than,2</code>
* <code>is npc_at Maple,4,3</code>


=== has_monster ===
=== npc_exists ===
Check to see if a character has a monster in its party.
Check to see if an NPC exists on the current map with <code>npc_name</code>.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>npc_name</code>: The name of the NPC on the current map.
* <code>monster_slug</code>: Monster slug name (e.g. "rockitten").


'''Examples'''  
'''Examples'''  
* <code>is has_monster player,rockitten</code>
* <code>not npc_exists Apple</code>


=== has_party_breeder ===
=== npc_facing_tile ===
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 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'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>name</code>: The name of the NPC.  


'''Examples'''  
'''Examples'''  
* <code>is has_party_breeder player</code>
* <code>is npc_facing_tile Maple</code>


=== has_tech ===
=== npc_facing ===
Check to see if the player has a technique in his party (one of the monsters).
Check to see if the npc is facing: <code>up</code>, <code>down</code>, <code>left</code> or <code>right</code>.


'''Parameters'''  
'''Parameters'''  
* <code>technique</code>: Technique slug name (e.g. "bullet").
* <code>name</code>: The name of the NPC.   
* <code>direction</code>: Direction to check for: (<code>up</code>, <code>down</code>, <code>left</code>, <code>right</code>)


'''Examples'''  
'''Examples'''  
* <code>is has_tech bullet</code>
* <code>is npc_facing Maple,up</code>
* <code>not npc_facing Maple,down</code>
 
=== once ===
Checks the date saved in the variables with today's date.


=== location_inside ===
'''Parameters'''
Check to see if the player is inside.
* <code>timeframe</code>: nr of days the event stays "blocked" (eg. 1, 7, etc.)
* <code>variable</code>: Variable where the date is stored.


'''Examples'''  
'''Examples'''  
* <code>is location_inside</code>
* <code>set_variable variable_name:today</code> 
 
* <code>is once 1,variable_name</code> (it blocks the event for 1 day)
=== location_name ===
or
Check to see if the player is in a certain location name.
* <code>is once 7,variable_name</code> (it blocks the event for 7 days - 1 week)
 
=== one_of ===
Check to see if at least 1 among multiple values in a variable is True. If the variable does not exist it will return ``False``.


'''Parameters'''  
'''Parameters'''  
* <code>technique</code>: Slug name. It's the name inside the maps. eg. <code><property name="slug" value="routeb"/></code>, so slug = routeb
* <code>variable</code>: The variable to check.
* <code>values</code>: Value to check for (multiple values separated by ":").


'''Examples'''  
'''Examples'''  
* <code>is location_name routeb</code>
* <code>is one_of stage_of_day,afternoon:dusk:morning</code>
* <code>is location_name routea:routeb</code>


=== location_type ===
=== party_infected ===
Check to see if the player is in a certain location type.
Check to see how many monster are infected and stores the iids.


'''Parameters'''  
'''Parameters'''  
* <code>slug</code>: Slug name. Either all, notype, town, route, clinic, shop, dungeon
* <code>value</code>: all, some or none.


'''Examples'''  
'''Examples'''  
* <code>is location_type town</code>
* <code>is party_infected some</code>
* <code>is location_type town:shop:clinic</code>


=== money_is ===
=== party_size ===
Check to see if the player has a certain amount of money (pocket).
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 "less_than", "less_or_equal", "greater_than", "greater_or_equal", "equals" and "not_equals".
* <code>party_size</code>: The size of the party to check against.
* <code>amount</code>: Amount of money or value stored in variable.


'''Examples'''  
'''Examples'''  
* <code>is money_is player,>=,500</code>
* <code>is party_size less_than,1</code>
* <code>is money_is player,equals,name_variable</code> (name_variable:75)
* <code>not party_size equals,0</code>
* <code>is party_size greater_than,4</code>


=== monster_flair ===
=== player_at ===
Check to see if the given monster flair matches the expected value.
Check to see if the player is inside the event's area. This event will check the event object's <code>X</code>, <code>Y</code>, <code>Width</code>, and <code>Height</code> properties and checks to see if the player is within those bounds. That includes event areas that are greater than one tile in size. You can optionally include an <code>x,y</code> parameter to specify a single tile location.


'''Parameters'''  
'''Parameters'''  
* <code>slot</code>: Position of the monster in the player monster list.
* <code>x</code>: X tile coordinates that the player is at (optional) 
* <code>property</code>: Category of the flair.
* <code>y</code>: Y tile coordinate that the player is at (optional)
* <code>name</code>: Name of the flair.


'''Examples'''  
'''Examples'''  
* <code>to be defined</code>
* <code>is player_at</code> 
* <code>is player_at 4,3</code>


=== music_playing ===
=== player_defeated ===
Check to see if the specified music file is currently playing.
Check to see the player has at least one tuxemon, and all tuxemon in their party are defeated.


'''Parameters'''  
'''Parameters'''  
* <code>music_file</code>: The music file to check.
* <code>None</code>


'''Examples'''  
'''Examples'''  
* <code>is music_playing 472452_8-Bit-Ambient.ogg</code>
* <code>is player_defeated</code>


=== once ===
=== player_facing_npc ===
Checks the date saved in the variables with today's date.
Check to see if the player is facing an NPC with the name <code>npc_name</code>.


'''Parameters'''  
'''Parameters'''  
* <code>timeframe</code>: nr of days the event stays "blocked" (eg. 1, 7, etc.)
* <code>npc_name</code>: The name of the NPC on the current map.
* <code>variable</code>: Variable where the date is stored.


'''Examples'''  
'''Examples'''  
* <code>set_variable variable_name:today</code> 
* <code>is player_facing_npc Apple</code>
* <code>is once 1,variable_name</code> (it blocks the event for 1 day)
or
* <code>is once 7,variable_name</code> (it blocks the event for 7 days - 1 week)


=== one_of ===
=== player_facing_tile ===
Check to see if at least 1 among multiple values in a variable is True. If the variable does not exist it will return ``False``.
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>variable</code>: The variable to check.
* <code>value</code>: value (eg surfable) inside the tileset (optional)
* <code>values</code>: Value to check for (multiple values separated by ":").
 
'''Examples'''
* <code>is player_facing_tile</code>
* <code>is player_facing_tile surfable</code>
 
=== player_facing ===
Check to see where an NPC is facing.
 
'''Parameters''' 
* <code>direction</code>: One of "up", "down", "left" or "right".
 
'''Examples'''
* <code>is player_facing right</code>
 
=== player_in ===
Check to see if the player is at the condition position on a specific set of tiles.
 
'''Parameters''' 
* <code>value</code>: value (eg surfable) inside the tileset.


'''Examples'''  
'''Examples'''  
* <code>is one_of stage_of_day,afternoon:dusk:morning</code>
* <code>is player_in surfable</code>


=== party_infected ===
=== player_moved ===
Check to see how many monster are infected in the character's party.
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>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>None</code>
* <code>value</code>: all, some or none.


'''Examples'''  
'''Examples'''  
* <code>is party_infected some</code>
* <code>is player_moved</code>


=== party_size ===
=== to_talk ===
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>.
Check if we are attempting interact with a map condition tile.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>character</code>: 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>party_size</code>: The size of the party to check against.


'''Examples'''  
'''Examples'''  
* <code>is party_size less_than,1</code> 
* <code>is to_talk npc_maple</code>
* <code>not party_size equals,0</code> 
* <code>is party_size greater_than,4</code>


=== to_use_tile ===
=== to_use_tile ===
Line 475: Line 481:


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id.
* <code>monster_id</code>: Id of the monster (name of the variable).
* <code>technique</code>: Slug of the technique (e.g. "bullet").
* <code>technique</code>: Slug of the technique (e.g. "bullet").
* <code>power</code>: Power between 0.0 and 3.0. (optional)
* <code>power</code>: Power between 0.0 and 3.0. (optional)
* <code>potency</code>: Potency between 0.0 and 1.0. (optional)
* <code>potency</code>: Potency between 0.0 and 1.0. (optional)
* <code>accuracy</code>: Accuracy between 0.0 and 1.0. (optional)
* <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>get_player_monster name_variable</code>
* <code>get_player_monster name_variable</code>
* <code>add_tech name_variable,bullet</code>
* <code>add_tech name_variable,bullet</code>
=== battles_print ===
Print the current value of battle history to the console. If no variable is specified, print out values of all battles.
'''Parameters'''
* <code>character</code>: Npc slug name (e.g. "npc_maple"). (optional)
* <code>result</code>: One among "won", "lost" or "draw". (optional)
'''Examples'''
* <code>battles_print</code>
* <code>battles_print [character,result]</code>


=== breeding ===
=== breeding ===
Line 523: Line 541:
* <code>change_bg gradient_blue</code>
* <code>change_bg gradient_blue</code>
* <code>change_bg</code> (stop)
* <code>change_bg</code> (stop)
=== change_taste ===
hanges tastes monster.
'''Parameters''' 
* <code>variable</code>: Name of the variable where to store the monster id.
* <code>taste</code>: Warm or cold.
'''Examples'''
* <code>change_taste name_variable,warm</code>


=== change_state ===
=== change_state ===
Line 539: Line 547:
'''Parameters'''   
'''Parameters'''   
* <code>state_name</code>: The state name to switch to (e.g. PCState).
* <code>state_name</code>: The state name to switch to (e.g. PCState).
* <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>optional</code>: Variable related to specific states (eg slug for JournalInfoState). (optional)


'''Examples'''  
'''Examples'''  
Line 545: Line 553:
* <code>change_state JournalInfoState,rockitten</code>
* <code>change_state JournalInfoState,rockitten</code>


=== char_face ===
=== choice_item ===
Make the character face a certain direction.
Ask the player to make a choice among items.


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


'''Examples'''  
'''Examples'''  
* <code>char_face player,down</code>
* <code>choice_monster potion:tea,name_variable</code>
* <code>char_face npc_maple,right</code>


=== char_look ===
=== choice_monster ===
Make a character look around.
Ask the player to make a choice among monsters.


'''Parameters'''  
'''Parameters'''
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>choices</code>: List of possible choices (monster slugs eg: rockitten:apeoro), separated by a colon ":".
* <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>variable</code>: Variable to store the result of the choice.
* <code>directions</code>: the direction the npc is going to look, by default all. (optional)


'''Examples'''  
'''Examples'''  
* <code>char_look character</code> 
* <code>choice_monster apeoro:rockitten,name_variable</code>
* <code>char_look character,,right:left</code>


=== char_move ===
=== choice_npc ===
Relative tile movement for character.
Ask the player to make a choice among NPCs.


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


'''Examples'''  
'''Examples'''  
* <code>char_move spyder_homemakerpapertown, down 1, right 1, up 1, left 1</code>
* <code>choice_monster billie:maple,name_variable</code>


=== char_plague ===
=== clear_kennel ===
Set the character as infected, inoculated or healthy.
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>condition</code>: Infected, inoculated or healthy.
* <code>kennel</code>: The kennel to clear.
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple"). (optional)
* <code>transfer</code>: The kennel to transfer the monsters. (optional)


'''Examples'''  
'''Examples'''  
* <code>char_plague infected,npc_maple</code>
* <code>clear_kennel name_kennel, new_kennel</code>


=== char_run ===
=== clear_tuxepedia ===
Set the character movement speed to the global run speed.
Clear the key and value in the Tuxepedia dictionary.


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


'''Examples'''  
'''Examples'''  
* <code>char_run npc_mom</code>
* <code>clear_tuxepedia rockitten</code>


=== char_speed ===
=== clear_variable ===
Set the character movement speed to a custom value.
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.
* <code>speed</code>: Speed amount.


'''Examples'''  
'''Examples'''  
* <code>char_speed npc_mom,0.2</code>
* <code>clear_variable name_variable</code>


=== char_stop ===
=== copy_variable ===
Make the character stop moving.
Copy the value of var2 into var1 (e.g. var1 = var 2).


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


'''Examples'''  
'''Examples'''  
* <code>char_stop npc_mom</code>
* <code>copy_variable new_variable,old_variable</code>


=== char_walk ===
=== create_npc ===
Set the character movement speed to the global walk speed.
Creates an NPC and places them on the current map.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>name</code>: The name of the NPC to create. This NPC should exist in <code>resources/db/npc</code> in JSON format. 
* <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>char_walk npc_mom</code>
* <code>create_npc Maple,2,3</code> 
* <code>create_npc Pine,1,6,stand</code>


=== char_wander ===
=== delayed_teleport ===
Make a character wander around the map.
Set teleport information. Teleport will be triggered during screen transition. Only use this if followed by a transition.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>map_name</code>: Name of the map to teleport to.
* <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>position_x</code>: X position to teleport to.
* <code>t_bound</code>: Coordinates top_bound vertex (e.g. 5,7)
* <code>position_y</code>: Y position to teleport to.
* <code>b_bound</code>: Coordinates bottom_bound vertex (e.g. 7,9)


'''Examples'''  
'''Examples'''  
* <code>char_wander npc_maple</code>
* <code>delayed_teleport cotton_town,10,10</code>
* <code>char_wander npc_maple,,5,7,7,9</code>


=== choice_item ===
=== evolution ===
Ask the player to make a choice among items.
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'''
'''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.


'''Examples'''  
'''Examples'''  
* <code>choice_monster potion:tea,name_variable</code>
* <code>evolution player</code>


=== choice_monster ===
=== fadeout_music ===
Ask the player to make a choice among monsters.
Fades out music over <code>x</code> milliseconds.


'''Parameters'''
'''Parameters'''  
* <code>choices</code>: List of possible choices (monster slugs eg: rockitten:apeoro), separated by a colon ":".
* <code>time_seconds</code>: Time in milliseconds to fade out the currently playing music.
* <code>variable</code>: Variable to store the result of the choice.


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


=== choice_npc ===
=== get_party_monster ===
Ask the player to make a choice among NPCs.
Saves all the iids (party) in variables. Names are saved in game variables: <code>iid_slot_{index}</code>. Where index is the position in the party (the 1st one is 0, 2nd one is 1, etc.)


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


'''Examples'''  
'''Examples'''  
* <code>choice_monster billie:maple,name_variable</code>
* <code>get_party_monster</code>
* <code>get_party_monster npc_maple</code>


=== clear_kennel ===
=== get_player_monster ===
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.
Select a monster in the player party and store its id in a variable.


'''Parameters''' 
It allows filtering: slug, gender, evolution_stage, element, shape, taste_warm, taste_cold, level, weight, height, max_hp, current_hp, armour, dodge, melee, ranged and speed.
* <code>kennel</code>: The kennel to clear.
* <code>transfer</code>: The kennel to transfer the monsters. (optional)


'''Examples'''
For the definition: level, weight, height, max_hp, current_hp, armour, dodge, melee, ranged and speed (all numeric values) is necessary to use a numeric comparison operator. Accepted values are "less_than", "less_or_equal", "greater_than", "greater_or_equal", "equals" and "not_equals".
* <code>clear_kennel name_kennel, new_kennel</code>


=== clear_tuxepedia ===
Note:
Clear the key and value in the Tuxepedia dictionary.
* let's say a player doesn't has no options, then the variable will result as: name_variable:no_option
* let's say a player has options, but clicks return, then the variable will result as: name_variable:no_choice


'''Parameters'''
'''Parameters'''  
* <code>monster_slug</code>: Monster slug name (e.g. "rockitten").
* <code>variable_name</code>: Name of the variable where to store the monster id.
* <code>filter_name</code>: the name of the first filter (optional)
* <code>value_name</code>: the actual value to filter (optional)
* <code>extra</code>: used to filter more (optional)


'''Examples'''  
'''Examples'''  
* <code>clear_tuxepedia rockitten</code>
* <code>get_player_monster name_variable</code>
* <code>get_player_monster name_variable,speed,more_than,50</code>
* <code>get_player_monster name_variable,level,less_than,15</code>
* <code>get_player_monster name_variable,shape,serpent</code>
* <code>get_player_monster name_variable,shape,serpent</code>


=== clear_variable ===
=== kennel_print ===
Clear the value of a variable from the game.
Print all the kennels or one. It returns <name, qty, visible/hidden>, where *qty = number of monsters inside.


'''Parameters''' :
'''Parameters'''  
* <code>variable</code>: The variable to clear.
* <code>kennel</code>: Name of the kennel. (optional)


'''Examples'''  
'''Examples'''  
* <code>clear_variable name_variable</code>
* <code>kennel_print</code>
* <code>kennel_print name_kennel</code>


=== copy_variable ===
=== load_game ===
Copy the value of var2 into var1 (e.g. var1 = var 2).
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)


'''Parameters''' :
'''Parameters'''  
* <code>var1</code>: The variable to copy to.
* <code>index</code>: Selected index. (optional)
* <code>var2</code>: The variable to copy from.


'''Examples'''  
'''Examples'''  
* <code>copy_variable new_variable,old_variable</code>
* <code>load_game</code> (it's going to load slot4.save)
* <code>load_game 0</code> (it's going to load slot1.save)


=== create_npc ===
=== lock_controls ===
Creates an NPC and places them on the current map.
Lock player controls.


'''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>None</code>
* <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>create_npc Maple,2,3</code> 
* <code>lock_controls</code>
* <code>create_npc Pine,1,6,stand</code>


=== delayed_teleport ===
=== menu ===
Set teleport information. Teleport will be triggered during screen transition. Only use this if followed by a transition.
Enable/disable one or more menu.


'''Parameters'''  
'''Parameters'''  
* <code>map_name</code>: Name of the map to teleport to.
* <code>act</code>: enable or disable
* <code>position_x</code>: X position to teleport to.
* <code>menu</code>: specific menu (menu_monster, menu_bag, menu_player, exit, menu_options, menu_save, menu_load, menu_missions) without specification, everything disabled
* <code>position_y</code>: Y position to teleport to.


'''Examples'''  
'''Examples'''  
* <code>delayed_teleport cotton_town,10,10</code>
* <code>menu disable,menu_bag</code>


=== evolution ===
=== modify_monster_stats ===
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>
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>stat</code>: A stat among armour, dodge, hp, melee, speed and ranged. If no stat, then all the stats. (Optional)
* <code>amount</code>: A/an float/int value, if no amount, then default 1 (+). (Optional)


'''Examples'''  
'''Examples'''  
* <code>evolution player</code>
* <code>modify_monster_stats</code>
* <code>modify_monster_stats ,,0.25</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>


=== fadeout_music ===
=== modify_npc_attribute ===
Fades out music over <code>x</code> milliseconds.
Modify the given attribute of the npc by modifier. By default this is achieved via addition, but prepending a '%' will cause it to be multiplied by the attribute.


'''Parameters'''  
'''Parameters'''  
* <code>time_seconds</code>: Time in milliseconds to fade out the currently playing music.
* <code>npc_slug</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>attribute</code>: Name of the attribute to modify.
* <code>value</code>: Value of the attribute modifier.


'''Examples'''  
'''Examples'''  
* <code>fadeout_music 2</code>
* <code>modify_npc_attribute npc_slug,attribute,value</code>


=== format_variable ===
=== modify_player_attribute ===
Format the value of a variable from the game (eg. float or int).
Modify the given attribute of the player 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>variable</code>: The variable to format.
* <code>attribute</code>: Name of the attribute to modify.
* <code>type_format</code>: Kind of format (float or int).
* <code>value</code>: Value of the attribute modifier.


'''Examples'''  
'''Examples'''  
* <code>format_variable name_variable,int</code>
* <code>modify_player_attribute attribute,value</code>
* <code>format_variable name_variable,float</code>


=== get_monster_tech ===
=== money_print ===
Select a tech among the monster's moves. It allows filtering: slug, element, range.
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_name</code>: Variable where to store the technique id.
* <code>slug</code>: Slug name (e.g. player or NPC, etc.). (optional)
* <code>monster_id</code>: Variable where is stored the monster id.
* <code>filter_name</code>: the name of the first filter (optional)
* <code>value_name</code>: the actual value to filter (optional)
* <code>extra</code>: used to filter more (optional)


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


=== get_party_monster ===
=== npc_face ===
Saves all the iids (party) in variables. Names are saved in game variables: <code>iid_slot_{index}</code>. Where index is the position in the party (the 1st one is 0, 2nd one is 1, etc.)
Makes the npc face a particular direction. Parameter can be set to: <code>left</code>, <code>right</code>, <code>up</code>, or <code>down</code>.


'''Parameters'''  
'''Parameters'''  
* <code>npc_slug</code>: npc slug name (e.g. "npc_maple") - if absent default "player" (optional)
* <code>name</code>: The name of the npc.  
* <code>direction</code>: Direction to make the player face. Can be set to: <code>left</code>, <code>right</code>, <code>up</code>, or <code>down</code>.


'''Examples'''  
'''Examples'''  
* <code>get_party_monster</code>
* <code>npc_face Maple,left</code>
* <code>get_party_monster npc_maple</code>
* <code>npc_face Pine,up</code>


=== get_player_monster ===
=== npc_look ===
Select a monster in the player party and store its id in a variable.
Make an NPC look around.


It allows filtering: slug, gender, evolution_stage, element, shape, taste_warm, taste_cold, level, weight, height, max_hp, current_hp, armour, dodge, melee, ranged and speed.
'''Parameters'''
* <code>npc_slug</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <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)


For the definition: level, weight, height, max_hp, current_hp, armour, dodge, melee, ranged and speed (all numeric values) is necessary to use a numeric comparison operator. Accepted values are "less_than", "less_or_equal", "greater_than", "greater_or_equal", "equals" and "not_equals".
'''Examples'''
* <code>npc_look npc_slug</code> 
* <code>npc_look npc_slug,,right:left</code>


Note:
=== npc_move ===
* let's say a player doesn't has no options, then the variable will result as: name_variable:no_option
Determines the NPC's movement behaviour.
* let's say a player has options, but clicks return, then the variable will result as: name_variable:no_choice


'''Parameters'''  
'''Parameters'''  
* <code>variable_name</code>: Name of the variable where to store the monster id.
* <code>name</code>: The name of the npc.
* <code>filter_name</code>: the name of the first filter (optional)
* <code>value_name</code>: the actual value to filter (optional)
* <code>extra</code>: used to filter more (optional)


'''Examples'''  
'''Examples'''  
* <code>get_player_monster name_variable</code>
* <code>npc_move spyder_homemakerpapertown, down 1, right 1, up 1, left 1</code>
* <code>get_player_monster name_variable,speed,more_than,50</code>
* <code>get_player_monster name_variable,level,less_than,15</code>
* <code>get_player_monster name_variable,shape,serpent</code>
* <code>get_player_monster name_variable,shape,serpent</code>


=== give_experience ===
=== npc_plague ===
Gives experience points to the monster.
Set the NPC as infected, inoculated or healthy.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id.
* <code>condition</code>: Infected, inoculated or healthy
* <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.
* <code>npc_slug</code>: Either "player" or npc slug name (e.g. "npc_maple"). (optional)


'''Examples'''  
'''Examples'''  
* <code>give_experience name_variable,steps_variable"</code>
* <code>npc_plague spyder_homemakerpapertown</code>
* <code>give_experience name_variable,420</code>


=== info ===
=== npc_run ===
Records monster's attribute values inside a game variable. It allows to record the monster's owner attribute values too.
Sets the NPC's speed to the universal run speed.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id.
* <code>name</code>: The name of the npc.
* <code>attribute</code>: The attribute to check (level, speed, etc.).


'''Examples'''  
'''Examples'''  
* <code>info name_variable,level</code> -> if the monster is lv 4, then it'll create a variable called: "info_level:4"
* <code>npc_run npc_mom</code>
* <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 ===
=== npc_speed ===
Set a code and checks if it's correct or not. The player's output will be by default lowercase.
Sets the NPC's walk speed.  


'''Parameters'''  
'''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>name</code>: The name of the npc.
* <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'''  
'''Examples'''  
* <code>input_variable access_code,response_question</code>
* <code>npc_speed npc_mom, 0.2</code>
* <code>input_variable access_code,response_question,escape</code>


=== load_game ===
=== npc_walk ===
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)
Sets the NPC's speed to the universal walk speed.  


'''Parameters'''  
'''Parameters'''  
* <code>index</code>: Selected index. (optional)
* <code>name</code>: The name of the npc.  


'''Examples'''  
'''Examples'''  
* <code>load_game</code> (it's going to load slot4.save)
* <code>npc_walk npc_mom</code>
* <code>load_game 0</code> (it's going to load slot1.save)


=== lock_controls ===
=== npc_wander ===
Lock player controls.
Sets the NPC's behaviour to wander about instead of stand in place.


'''Parameters'''  
'''Parameters'''  
* <code>None</code>
* <code>npc_slug</code>: 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>lock_controls</code>
* <code>npc_wander npc_maple</code>
* <code>npc_wander npc_maple,,5,7,7,9</code>


=== menu ===
=== open_shop ===
Enable/disable one or more menu.
Open the shop menu for a NPC.


'''Parameters'''  
'''Parameters'''  
* <code>act</code>: enable or disable
* <code>npc_slug</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>menu</code>: specific menu (menu_monster, menu_bag, menu_player, exit, menu_options, menu_save, menu_load, menu_missions) without specification, everything disabled
* <code>menu</code>: Either "buy", "sell" or "both". Default is "both". (optional)


'''Examples'''  
'''Examples'''  
* <code>menu disable,menu_bag</code>
* <code>open_shop npc_maple</code>  


=== modify_char_attribute ===
=== pathfind ===
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.
Moves an NPC to a certain tile on the map.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>name</code>: The name of the NPC to be moved.
* <code>attribute</code>: Name of the attribute to modify.
* <code>tile_pos_x</code>: The X-tile coordinate to have the NPC to walk to.
* <code>value</code>: Value of the attribute modifier.
* <code>tile_pos_y</code>: The Y-tile coordinate to have the NPC to walk to.    


'''Examples'''  
'''Examples'''  
* <code>modify_char_attribute character,attribute,value</code>
* <code>pathfind Maple,2,3</code>
* <code>pathfind Pine,1,6</code>


=== modify_money ===
=== pathfind_to_player ===
Add or remove an amount of money for a wallet (slug).
Pathfind NPC close the player.


'''Parameters'''  
'''Parameters'''  
* <code>slug</code>: Slug name (e.g. player or NPC, etc.).
* <code>npc_slug</code>: Npc slug name (e.g. "npc_maple").
* <code>amount</code>: Amount of money to add/remove (-/+)
* <code>direction</code>: Approaches the player from up, down, left or right.
* <code>variable</code>: Name of the variable where to store the amount.
* <code>distance</code>: How many tiles (2, 3, 4, etc.)


'''Examples'''  
'''Examples'''  
* <code>modify_money npc_maple,100</code>
* <code>pathfind_to_player spyder_route2_roddick</code>  
* <code>modify_money npc_maple,-50</code>
* <code>translated_dialog spyder_route2_roddick1</code>
* <code>modify_money player,,name_variable</code>
* <code>start_battle spyder_route2_roddick</code>  


=== modify_monster_bond ===
=== pause_music ===
Add or remove an amount of money for a wallet (slug).
Pauses the currently playing music.


'''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>None</code>
* <code>amount</code>: An int or float value, if no amount, then default 1 (int).


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


=== modify_monster_health ===
=== play_map_animation ===
Modify the hp of a monster in the current player's party.
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>variable</code>: Name of the variable where to store the monster id. If no variable is specified, all monsters are healed.
* <code>animation_name</code>: The name of the animation to play under <code>resources/animations/tileset</code>.
* <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>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>player</code> to draw the animation over the player.


'''Examples'''  
'''Examples'''  
* <code>modify_monster_health</code>
* <code>play_map_animation grass,0.1,noloop,player</code>
* <code>modify_monster_health ,0.25</code>
* <code>play_map_animation sign01,0.4,loop,33,10</code>


=== play_music ===
Plays an audio file.


=== modify_monster_stats ===
'''Parameters'''
Change the stats of a monster in the current player's party.
* <code>filename</code>: Music file to load (slug inside the JSON in db/sound)
* <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'''  
'''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>filename</code>: Sound file to load (slug inside the JSON in db/sound)
* <code>stat</code>: A stat among armour, dodge, hp, melee, speed and ranged. If no stat, then all the stats. (Optional)
* <code>volume</code>: Number between 0.0 and 1.0. (optional)
* <code>amount</code>: A/an float/int value, if no amount, then default 1 (+). (Optional)


'''Examples'''  
'''Examples'''  
* <code>modify_monster_stats</code>
* <code>play_sound sound_confirm</code>
* <code>modify_monster_stats ,,0.25</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 ===
=== player_face ===
Open the shop menu for a NPC.
Makes the player face a particular direction. Parameter can be set to: <code>left</code>, <code>right</code>, <code>up</code>, or <code>down</code>.


'''Parameters'''  
'''Parameters'''  
* <code>npc_slug</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>direction</code>: Direction to make the player face. Can be set to: <code>left</code>, <code>right</code>, <code>up</code>, or <code>down</code>.
* <code>menu</code>: Either "buy", "sell" or "both". Default is "both". (optional)


'''Examples'''  
'''Examples'''  
* <code>open_shop npc_maple</code>  
* <code>player_face left</code> 
* <code>player_face up</code>


=== overwrite_tech ===
=== player_sprite ===
Overwrite / replace a technique with another.
Check the player's sprite


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


'''Examples'''  
'''Examples'''  
* <code>overwrite_tech name_variable,peck</code>  
* <code>is player_sprite adventurer</code>


=== pathfind ===
=== player_stop ===
Moves an NPC to a certain tile on the map.
Stops the player's current movement. There is currently no way to stop a player from inputting another movement after being stopped ([https://github.com/Tuxemon/Tuxemon/issues/790 issue #790])


'''Parameters'''  
'''Parameters'''  
* <code>name</code>: The name of the NPC to be moved.
* <code>None</code>   
* <code>tile_pos_x</code>: The X-tile coordinate to have the NPC to walk to.  
* <code>tile_pos_y</code>: The Y-tile coordinate to have the NPC to walk to.   


'''Examples'''  
'''Examples'''  
* <code>pathfind Maple,2,3</code>
* <code>player_stop</code>
* <code>pathfind Pine,1,6</code>


=== pathfind_to_player ===
=== print ===
Pathfind NPC close the player.
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>npc_slug</code>: Npc slug name (e.g. "npc_maple").
* <code>variable</code>: Prints out the value of this variable (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>pathfind_to_player spyder_route2_roddick</code>  
* <code>print</code>
* <code>translated_dialog spyder_route2_roddick1</code>
* <code>print name_variable</code>
* <code>start_battle player,spyder_route2_roddick</code>  


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


'''Parameters'''  
'''Parameters'''  
* <code>None</code>
* <code>value</code>: in or out
* <code>amount</code>: number of monsters (optional)


'''Examples'''  
'''Examples'''  
* <code>pause_music</code>
* <code>quarantine out</code> everything out (player's party -> if full, then box)
* <code>quarantine out,5</code> eg. box contains 30 monsters <code>quarantine out,5</code>, it means 5 monsters by random


=== play_map_animation ===
=== quit ===
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>.
Completely quit the game.


'''Parameters'''  
'''Parameters'''  
* <code>animation_name</code>: The name of the animation to play under <code>resources/animations/tileset</code>. 
* <code>None</code>   
* <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>quit</code>   
* <code>play_map_animation sign01,0.4,loop,33,10</code>


=== play_music ===
=== random_battle ===
Plays an audio file.
Start random battle with a random npc with a determined number of monster in a certain range of levels.


'''Parameters'''  
'''Parameters'''  
* <code>filename</code>: Music file to load (slug inside the JSON in db/sound)
* <code>nr_txmns</code>: Number of tuxemon (1 to 6).
* <code>volume</code>: Number between 0.0 and 1.0. (optional)
* <code>min_level</code>: Minimum level of the party.
* <code>loop</code>: How many times loop, default forever. (optional)
* <code>max_level</code>: Maximum level of the party.


'''Examples'''  
'''Examples'''  
* <code>play_music music_mystic_island</code>  
* <code>random_battle 6,1,99</code>


=== play_sound ===
=== random_encounter ===
Plays a sound file.
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'' 
 
<code>{"slug":"route1","monsters":[{"monster":"pairagrin","encounter_rate":3.5,"daytime":true,"exp_req_mod":1,"level_range":[2,4]}]}</code>


'''Parameters'''  
'''Parameters'''  
* <code>filename</code>: Sound file to load (slug inside the JSON in db/sound)
* <code>encounter_slug</code>: Slug of the encounter list.
* <code>volume</code>: Number between 0.0 and 1.0. (optional)
* <code>total_prob</code>: Total sum of the probabilities. (optional)
* <code>rgb</code>: color (eg red > 255,0,0 > 255:0:0) - default rgb(255,255,255) (optional)


'''Examples'''  
'''Examples'''  
* <code>play_sound sound_confirm</code>
* <code>random_encounter route1</code>
* <code>random_encounter route1,20</code>


=== print ===
=== random_integer ===
Print the current value of a game variable to the console. If no variable is specified, print out values of all game variables.
Randomly choose an integer between 2 numbers (inclusive), and set the key in the player.game_variables dictionary to be this value. For example, 'random_integer xyz,1,6' will set the value of the game variable 'xyz' to be either 1, 2, 3, 4, 5, or 6.


'''Parameters''' :
'''Parameters'''  
* <code>variable</code>: Prints out the value of this variable (optional)
* <code>variable</code>: Name of the variable.
* <code>lower_bound</code>: Lower bound of range to return an integer between (inclusive)
* <code>upper_bound</code>: Upper bound of range to return an integer between (inclusive)


'''Examples'''  
'''Examples'''  
* <code>print</code> 
* <code>random_integer name_variable,1,9</code>
* <code>print name_variable</code>


=== quarantine ===
=== random_item ===
Quarantine infected monsters. Amount works only for "out", it takes out the amount in a random way.
Pick a random item from a list and add it to the trainer's inventory.


'''Parameters'''  
'''Parameters'''  
* <code>value</code>: in or out
* <code>item_slug</code>: Item name to look up in the item database (multiple items separated by ":").
* <code>amount</code>: number of monsters (optional)
* <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>quarantine out</code> everything out (player's party -> if full, then box)
* <code>random_item potion:tea:revive</code> (adds 1 potion or tea or revive to the trainer's inventory).
* <code>quarantine out,5</code> eg. box contains 30 monsters <code>quarantine out,5</code>, it means 5 monsters by random
* <code>random_item potion:tea:revive,2</code> (adds 2 potions or teas or revives to the trainer's inventory).
* <code>random_item potion:tea:revive,2,npc_maple</code> (adds 2 potions or teas or revives to the maple's inventory).
* <code>random_item potion:tea:revive,,npc_maple</code> (adds 1 potion or tea or revive to the maple's inventory).


=== quit ===
=== random_monster ===
Completely quit the game.
Add a monster to the specified trainer's party if there is room.


'''Parameters'''  
'''Parameters'''  
* <code>None</code>
* <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)
* <code>shape</code>: Shape (eg. varmint, brute, etc.). (optional)
* <code>evo</code>: Stage (eg. basic, stage1, etc.). (optional)


'''Examples'''  
'''Examples'''  
* <code>quit</code>
* <code>random_monster 10</code>
* <code>random_monster 10,npc_maple</code>
* <code>random_monster 10,npc_maple,10,27</code>
* <code>random_monster 10,npc_maple,10,27,aquatic,basic</code>
* <code>random_monster 10,npc_maple,,,brute,basic</code>


=== random_battle ===
=== remove_collision ===
Start random battle with a random npc with a determined number of monster in a certain range of levels.
Removes a collision defined by a specific label.


'''Parameters'''  
'''Parameters''' :
* <code>nr_txmns</code>: Number of tuxemon (1 to 6).
* <code>label</code>: Name of the obstacle.
* <code>min_level</code>: Minimum level of the party.
* <code>max_level</code>: Maximum level of the party.


'''Examples'''  
'''Examples'''  
* <code>random_battle 6,1,99</code>
* <code>remove_collision obstacle</code> (it can one added with add_collision or an existing zone in the .tmx file).
 
=== remove_contacts ===
Remove contact from the app (Nu Phone).


=== random_encounter ===
'''Parameters''' :
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.
* <code>slug</code>: slug name (e.g. "npc_maple").


Here is an example encounter file: ''resources/db/encounter/route1.json''
'''Examples'''  
* <code>remove_contacts npc_maple</code>


  "slug": "route1",
=== remove_monster ===
  "monsters": [
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.
    {
      "monster": "pairagrin",
      "encounter_rate": 3.5,
      "variable": "daytime:true",
      "exp_req_mod": 1,
      "level_range": [
        2,
        4
      ]
    },


'''Parameters'''  
'''Parameters'''  
* <code>encounter_slug</code>: Slug of the encounter list.
* <code>instance_id</code>: Id of the monster to remove.
* <code>total_prob</code>: Total sum of the probabilities. (optional)
* <code>trainer_slug</code>: Slug of the trainer. If no trainer slug is passed it defaults to the current player.
* <code>rgb</code>: color (eg red > 255,0,0 > 255:0:0) - default rgb(255,255,255) (optional)
 
 
'''Examples'''  
'''Examples'''  
* <code>random_encounter route1</code>
* <code>get_player_monster name_variable</code>
* <code>random_encounter route1,20</code>
* <code>remove_monster name_variable</code>


=== random_integer ===
=== remove_npc ===
Randomly choose an integer between 2 numbers (inclusive), and set the key in the player.game_variables dictionary to be this value. For example, 'random_integer xyz,1,6' will set the value of the game variable 'xyz' to be either 1, 2, 3, 4, 5, or 6.
Removes an NPC from the current map.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable.
* <code>name</code>: The name of the NPC to remove.
* <code>lower_bound</code>: Lower bound of range to return an integer between (inclusive)
* <code>upper_bound</code>: Upper bound of range to return an integer between (inclusive)


'''Examples'''  
'''Examples'''  
* <code>random_integer name_variable,1,9</code>
* <code>remove_npc Maple</code> 
* <code>remove_npc Pine</code>


=== random_item ===
=== remove_state ===
Pick a random item from a list and add it to the trainer's inventory.
Change to the specified state.


'''Parameters'''  
'''Parameters'''
* <code>item_slug</code>: Item name to look up in the item database (multiple items separated by ":").
* <code>state_name</code>: The state name to switch to (e.g. PCState).
* <code>quantity</code>: Quantity of the item to add or to reduce. By default it is 1. (optional)
* <code>optional</code>: Variable related to specific states (eg slug for JournalInfoState).
* <code>trainer_slug</code>: Slug of the trainer that will receive the item. It defaults to the current player. (optional)


'''Examples'''  
'''Examples'''  
* <code>random_item potion:tea:revive</code> (adds 1 potion or tea or revive to the trainer's inventory).
* <code>remove_state</code> (it removes everything, excluding the basic ones)
* <code>random_item potion:tea:revive,2</code> (adds 2 potions or teas or revives to the trainer's inventory).
* <code>remove_state JournalInfoState</code> (it removes everything, excluding the basic ones)
* <code>random_item potion:tea:revive,2,npc_maple</code> (adds 2 potions or teas or revives to the maple's inventory).
* <code>random_item potion:tea:revive,,npc_maple</code> (adds 1 potion or tea or revive to the maple's inventory).


=== random_monster ===
=== rename_monster ===
Add a monster to the specified trainer's party if there is room.
Open the monster menu and text input screens to rename a selected monster.


'''Parameters'''  
'''Parameters'''  
* <code>monster_level</code>: Level of the added monster.
* <code>None</code>
* <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)
* <code>shape</code>: Shape (eg. varmint, brute, etc.). (optional)
* <code>evo</code>: Stage (eg. basic, stage1, etc.). (optional)


'''Examples'''  
'''Examples'''  
* <code>random_monster 10</code>
* <code>rename_monster</code>
* <code>random_monster 10,npc_maple</code>
* <code>random_monster 10,npc_maple,10,27</code>
* <code>random_monster 10,npc_maple,10,27,aquatic,basic</code>
* <code>random_monster 10,npc_maple,,,brute,basic</code>


=== remove_collision ===
=== rename_player ===
Removes a collision defined by a specific label.
Open the text input screen to rename the player.


'''Parameters''' :
'''Parameters'''  
* <code>label</code>: Name of the obstacle.
* <code>None</code>


'''Examples'''  
'''Examples'''  
* <code>remove_collision obstacle</code> (it can one added with add_collision or an existing zone in the .tmx file).
* <code>rename_player</code>


=== remove_contacts ===
=== rumble ===
Remove contact from the app (Nu Phone).
Rumble available controllers with rumble support.


'''Parameters''' :
'''Parameters'''  
* <code>slug</code>: slug name (e.g. "npc_maple").
* <code>duration</code>: Time in seconds to rumble for.
* <code>power</code>: Percentage of power to rumble.


'''Examples'''  
'''Examples'''  
* <code>remove_contacts npc_maple</code>
* <code>rumble duration,power</code>


=== remove_monster ===
=== save_game ===
Remove a monster from the party if the monster is there.
Saves the game. If the index parameter is absent, then it'll create slot4.save (index = 0 > slot 1, index = 1 > slot 2, index = 2 > slot 3)


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id.
* <code>index</code>: Selected index. (optional)


'''Examples'''  
'''Examples'''  
* <code>get_player_monster name_variable</code>
* <code>save_game</code> (it's going to save slot4.save)
* <code>remove_monster name_variable</code>
* <code>save_game 1</code> (it's going to save slot2.save)


=== remove_npc ===
=== screen_transition ===
Removes an NPC from the current map.
Fades the screen to black and back over <code>x</code> seconds.


'''Parameters'''  
'''Parameters'''  
* <code>name</code>: The name of the NPC to remove.
* <code>transition_time</code>: Time in seconds - default 2  (optional).
* <code>rgb</code>: color (eg red > 255,0,0 > 255:0:0) - default rgb(255,255,255) (optional)


'''Examples'''  
'''Examples'''  
* <code>remove_npc Maple</code> 
* <code>screen_transition 2</code>
* <code>remove_npc Pine</code>


=== remove_state ===
=== set_battle ===
Change to the specified state.
Append a new element in player.battles.


'''Parameters'''
'''Parameters'''  
* <code>state_name</code>: The state name to switch to (e.g. PCState).
* <code>fighter</code>: Npc slug name (e.g. "npc_maple").
* <code>optional</code>: Variable related to specific states (eg slug for JournalInfoState).
* <code>result</code>: One among "won", "lost" or "draw"
* <code>opponent</code>: Npc slug name (e.g. "npc_maple").


'''Examples'''  
'''Examples'''  
* <code>remove_state</code> (it removes everything, excluding the basic ones)
* <code>set_battle player,won,npc_maple</code> (player won against npc_maple)
* <code>remove_state JournalInfoState</code> (it removes everything, excluding the basic ones)


=== remove_tech ===
=== set_bubble ===
Remove a specific technique from a specific monster.
Put a bubble above player sprite.


'''Parameters'''
'''Parameters'''  
* <code>tech_id</code>: Name of the variable where to store the tech id.
* <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


'''Examples'''  
'''Examples'''  
* <code>remove_tech name_variable</code>
* <code>set_bubble spyder_shopassistant</code> (remove bubble NPC)
* <code>set_bubble spyder_shopassistant,note</code> (set bubble NPC)
* <code>set_bubble player,note</code> (set bubble player)
* <code>set_bubble player</code> (remove bubble player)


=== rename_monster ===
=== set_code ===
Open the text input screen to rename the monster.
Set a code and checks if it's correct or not. Case Sensitive: ATTENTION and AtTenTION are two different words.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id.
* <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'''  
'''Examples'''  
* <code>rename_monster name_variable</code>
* <code>set_code access_code,joke,name_variable</code>


=== rename_player ===
=== set_economy ===
Open the text input screen to rename the player.
Set the economy (prices of items) of the npc or player.


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


'''Examples'''  
'''Examples'''  
* <code>rename_player</code>
* <code>set_economy spyder_shopkeeper,spyder_candy_scoop</code>
 
=== set_kennel_visible ===
Set the kennel visible or hidden.


=== rumble ===
From hidden to visible: set_kennel_visible name_kennel,true
Rumble available controllers with rumble support.
From visible to hidden: set_kennel_visible name_kennel,false


'''Parameters'''  
'''Parameters'''  
* <code>duration</code>: Time in seconds to rumble for.
* <code>kennel</code>: Name of the kennel.
* <code>power</code>: Percentage of power to rumble.
* <code>visible</code>: true/false.


'''Examples'''  
'''Examples'''  
* <code>rumble duration,power</code>
* <code>set_kennel_visible name_kennel,true</code>
* <code>set_kennel_visible name_kennel,false</code>
 
=== set_kennel ===
Create a new kennel. If the kennel is visible, then it's advisable to create a msgid in the en_US PO file.


=== save_game ===
msgid "kennel_name"
Saves the game. If the index parameter is absent, then it'll create slot4.save (index = 0 > slot 1, index = 1 > slot 2, index = 2 > slot 3)
msgstr "Kennel Name"


'''Parameters'''  
'''Parameters'''  
* <code>index</code>: Selected index. (optional)
* <code>kennel</code>: Name of the kennel.
* <code>visible</code>: true/false.


'''Examples'''  
'''Examples'''  
* <code>save_game</code> (it's going to save slot4.save)
* <code>set_kennel new_kennel,true</code>
* <code>save_game 1</code> (it's going to save slot2.save)


=== screen_transition ===
=== set_layer ===
Fades the screen to black and back over <code>x</code> seconds.
Allows to change the color of the transparent layer.


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


'''Examples'''  
'''Examples'''  
* <code>screen_transition 2</code>
* <code>set_layer 255:0:0:128</code>


=== set_battle ===
=== set_money ===
Append a new element in player.battles.
Set the key and value in the money dictionary. It'll reset the previous amount.


'''Parameters'''  
'''Parameters'''  
* <code>fighter</code>: Npc slug name (e.g. "npc_maple").
* <code>slug</code>: Slug name (e.g. player or NPC, etc.).
* <code>result</code>: One among "won", "lost" or "draw"
* <code>amount</code>: Amount of money
* <code>opponent</code>: Npc slug name (e.g. "npc_maple").


'''Examples'''  
'''Examples'''  
* <code>set_battle player,won,npc_maple</code> (player won against npc_maple)
* <code>set_money player,500</code>


=== set_bubble ===
=== set_mission ===
Put a bubble above player sprite.
Set mission.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>slug</code>: slug mission
* <code>bubble</code>: dots, drop, exclamation, heart, note, question, sleep, angry, confused, fireworks
* <code>operation</code>: add, remove or change
* <code>status</code>: completed, pending, failed (default pending)
* <code>npc_slug</code>: slug name (e.g. "npc_maple"), default player.


'''Examples'''  
'''Examples'''  
* <code>set_bubble spyder_shopassistant</code> (remove bubble NPC)
* <code>set_mission mission1</code>
* <code>set_bubble spyder_shopassistant,note</code> (set bubble NPC)
* <code>set_mission mission1,change,completed</code>
* <code>set_bubble player,note</code> (set bubble player)
* <code>set_bubble player</code> (remove bubble player)


=== set_economy ===
=== set_monster_flair ===
Set the economy (prices of items) of the npc or player.
Set a monster's flair to the given value.


'''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 changed.
* <code>economy_slug</code>: Slug of an economy.
* <code>category</code>: Category of the monster flair.
* <code>flair</code>: Name of the monster flair.


'''Examples'''  
'''Examples'''  
* <code>set_economy spyder_shopkeeper,spyder_candy_scoop</code>
* <code>get_player_monster name_variable</code>
* <code>set_monster_flair name_variable,category,flair</code>


=== set_kennel_visible ===
=== set_monster_health ===
Set the kennel visible or hidden.
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.  
 
From hidden to visible: set_kennel_visible name_kennel,true
From visible to hidden: set_kennel_visible name_kennel,false


'''Parameters'''  
'''Parameters'''  
* <code>kennel</code>: Name of the kennel.
* <code>variable</code>: Name of the variable where to store the monster id. If no variable is specified, all monsters are healed. (optional)
* <code>visible</code>: true/false.
* <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. (optional)


'''Examples'''  
'''Examples'''  
* <code>set_kennel_visible name_kennel,true</code>
* <code>set_monster_health</code> (heals all the monsters in the party)
* <code>set_kennel_visible name_kennel,false</code>
or
* <code>get_player_monster name_variable</code>
* <code>set_monster_health name_variable,1</code>


=== set_kennel ===
=== set_monster_level ===
Create a new kennel. If the kennel is visible, then it's advisable to create a msgid in the en_US PO file.
Change the level of a monster in the current player's party.


msgid "kennel_name"
'''Parameters'''  
msgstr "Kennel Name"
* <code>variable</code>: Name of the variable where to store the monster id. If no variable is specified, all monsters are changed. (optional)
 
* <code>levels_added</code>: Number of levels to add. Negative numbers are allowed. Default 1. (optional)
'''Parameters'''  
* <code>kennel</code>: Name of the kennel.
* <code>visible</code>: true/false.


'''Examples'''  
'''Examples'''  
* <code>set_kennel new_kennel,true</code>
* <code>set_monster_level</code> (all the monsters in the party level up by 1)
or
* <code>get_player_monster name_variable</code>
* <code>set_monster_level name_variable,1</code>


=== set_layer ===
=== set_monster_plague ===
Allows to change the color of the transparent layer.
Cure or infect a monster.


'''Parameters'''  
'''Parameters'''  
* <code>rgb</code>: color (eg red > 255,0,0,128 > 255:0:0:128) - default transparent
* <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'''  
'''Examples'''  
* <code>set_layer 255:0:0:128</code>
* <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_mission ===
=== set_monster_status ===
Set mission.
Change the status 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 get/lose status.. (optional)
* <code>slug</code>: slug mission
* <code>status</code>: Inoculated, healthy or infected, default healthy (optional)
* <code>operation</code>: add, remove or change
 
* <code>status</code>: completed, pending, failed (default pending)
 
'''Examples'''  
'''Examples'''  
* <code>set_mission mission1</code>
* <code>set_monster_status</code> (all the monsters in the party lose their status)
* <code>set_mission mission1,change,completed</code>
or
* <code>get_player_monster name_variable</code>
* <code>set_monster_status name_variable,status_blinded</code>


=== set_money ===
=== set_npc_attribute ===
Set an amount of money for a specific slug.
Set the given attribute of the npc to the given value.


'''Parameters'''  
'''Parameters'''  
* <code>slug</code>: Slug name (e.g. player or NPC, etc.).
* <code>npc_slug</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>amount</code>: Amount of money (>= 0) (default 0)
* <code>attribute</code>: Name of the attribute.
* <code>value</code>: Value of the attribute.


'''Examples'''  
'''Examples'''  
* <code>set_money player</code>
* <code>set_player_attribute npc_maple,attribute,value</code>
* <code>set_money player,500</code>


=== set_monster_attribute ===
=== set_player_attribute ===
Set the given attribute of the monster to the given value.
Set the given attribute of the player character to the given value.


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


'''Examples'''  
'''Examples'''  
* <code>set_monster_attribute name_variable,name,jimmy</code> (the monster will be named jimmy)
* <code>set_player_attribute attribute,value</code>


=== set_monster_flair ===
=== set_player_name ===
Set a monster's flair to the given value.
Set player name without opening the input screen.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id. If no variable is specified, all monsters are changed.
* <code>choice</code>: Single name or multiple names separated by ":" (random choice). NB: the names must be in the en_US PO file.
* <code>category</code>: Category of the monster flair.
* <code>flair</code>: Name of the monster flair.


'''Examples'''  
'''Examples'''  
* <code>get_player_monster name_variable</code>
* <code>set_player_name jimmy</code>
* <code>set_monster_flair name_variable,category,flair</code>
* <code>set_player_name jimmy:richard:linus</code> (random choice among jimmy, richard and linus)


=== set_monster_health ===
=== set_random_variable ===
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.  
Set the key in the player.game_variables dictionary with a random value.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id. If no variable is specified, all monsters are healed. (optional)
* <code>variable</code>: Name of the variable.
* <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. (optional)
* <code>values</code>: Multiple values of the variable separated with ":".


'''Examples'''  
'''Examples'''  
* <code>set_monster_health</code> (heals all the monsters in the party)
* <code>set_random_variable alpha,one:two:three</code> (variable "alpha" can be "alpha:one" or "alpha:two" or "alpha:three").
or
 
* <code>get_player_monster name_variable</code>
=== set_template ===
* <code>set_monster_health name_variable,1</code>
Switch template (sprite and combat_front).
 
Please remember that if you change the combat_front, automatically will change the combat_back.
Eg if you set the sprite xxx, then it's going to add _back.png -> xxx_back.png


=== set_monster_level ===
if you choose a feminine sprite, then it's advisable: heroine
Change the level of a monster in the current player's party.
if you choose a masculine sprite, then it's advisable: adventurer


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id. If no variable is specified, all monsters are changed. (optional)
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>levels_added</code>: Number of levels to add. Negative numbers are allowed. Default 1. (optional)
* <code>sprite</code>: must be inside mods/tuxemon/sprites (default = original), eg: adventurer_brown_back.png -> adventurer
* <code>combat_front</code>: must be inside mods/tuxemon/gfx/sprites/player, eg: adventurer.png -> adventurer (optional)


'''Examples'''  
'''Examples'''  
* <code>set_monster_level</code> (all the monsters in the party level up by 1)
* <code>set_template player,adventurer,adventurer</code>
or
* <code>get_player_monster name_variable</code>
* <code>set_monster_level name_variable,1</code>


=== set_monster_status ===
=== set_tuxepedia ===
Change the status of a monster in the current player's party.
Set the key and value in the Tuxepedia dictionary.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id. If no variable is specified, all monsters get/lose status.. (optional)
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>status</code>: Inoculated, healthy or infected, default healthy (optional)
* <code>monster_slug</code>: Monster slug name (e.g. "rockitten").
* <code>label</code>: seen / caught


'''Examples'''  
'''Examples'''  
* <code>set_monster_status</code> (all the monsters in the party lose their status)
* <code>set_tuxepedia player,rockitten,caught</code>
or
 
* <code>get_player_monster name_variable</code>
=== set_variable ===
* <code>set_monster_status name_variable,status_blinded</code>
Sets an arbitrary variable to a particular value. This action is good for seeing if battles with NPCs have been fought or not. These variables are also saved when the player saves the game.


=== set_char_attribute ===
Also used to set the [[:Category:Environment|environment]].
Set the given attribute of the character to the given value.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>variable_name:value</code>: A key, value pair of the <code>variable_name</code> to set with <code>value</code>.
* <code>attribute</code>: Name of the attribute.
* <code>value</code>: Value of the attribute.


'''Examples'''  
'''Examples'''  
* <code>set_char_attribute character,attribute,value</code>
* <code>set_variable battle_won:yes</code>
* <code>set_variable talked_to_prof:true</code>
* <code>set_variable environment:grass</code>
* <code>set_variable whatever:today</code>: whatever stores today's date (use in combination with condition <code>once</code>)


=== set_party_attribute ===
=== spawn_monster ===
Set the given attribute of party's monsters to the given value.
Breed a new monster. Add a new monster, created by breeding the two given monsters (identified by instance_id, stored in a variable) and adds it to the given character's party (identified by slug). The parents must be in either the trainer's party, or a storage box owned by the trainer.


'''Parameters'''  
'''Parameters'''
* <code>character</code>: Either "player" or character slug name (e.g. "npc_maple").
* <code>npc_slug</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>attribute</code>: Name of the attribute.
* <code>value</code>: Value of the attribute.


'''Examples'''  
'''Examples'''  
* <code>set_party_attribute player,name,jimmy</code> (all the monsters in the party will be named jimmy)
* <code>spawn_monster</code>


=== set_party_status ===
=== start_battle ===
Records important information about all monsters in the party (eg average level of the party, etc.)
Start a battle between two characters and switch to the combat module.


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


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


=== set_player_name ===
=== start_cinema_mode ===
Set player name without opening the input screen.
Start cinema mode by animating black bars to narrow the aspect ratio.


'''Parameters'''  
'''Parameters'''  
* <code>choice</code>: Single name or multiple names separated by ":" (random choice). NB: the names must be in the en_US PO file.
* <code>None</code>


'''Examples'''  
'''Examples'''  
* <code>set_player_name jimmy</code>
* <code>start_cinema_mode</code>
* <code>set_player_name jimmy:richard:linus</code> (random choice among jimmy, richard and linus)


=== set_random_variable ===
=== stop_cinema_mode ===
Set the key in the player.game_variables dictionary with a random value.
Stop cinema mode by animating black bars back to the normal aspect ratio.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable.
* <code>None</code>
* <code>values</code>: Multiple values of the variable separated with ":".


'''Examples'''  
'''Examples'''  
* <code>set_random_variable alpha,one:two:three</code> (variable "alpha" can be "alpha:one" or "alpha:two" or "alpha:three").
* <code>stop_cinema_mode</code>


=== set_template ===
=== store_monster ===
Switch template (sprite and combat_front).
Store a monster in a box. Save the player's monster with the given instance_id to the named storage box, removing it from the player party.
 
Please remember that if you change the combat_front, automatically will change the combat_back.
Eg if you set the sprite xxx, then it's going to add _back.png -> xxx_back.png
 
if you choose a feminine sprite, then it's advisable: heroine
if you choose a masculine sprite, then it's advisable: adventurer


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>monster_id</code>: Id of the monster to store.  
* <code>sprite</code>: must be inside mods/tuxemon/sprites (default = original), eg: adventurer_brown_back.png -> adventurer
* <code>box</code>: An existing box where the monster will be stored. (optional)
* <code>combat_front</code>: must be inside mods/tuxemon/gfx/sprites/player, eg: adventurer.png -> adventurer (optional)


'''Examples'''  
'''Examples'''  
* <code>set_template player,adventurer,adventurer</code>
* <code>get_player_monster name_variable</code>
 
then:
=== set_tuxepedia ===
* <code>store_monster name_variable</code>
Set the key and value in the Tuxepedia dictionary.
or
* <code>store_monster name_variable,name_kennel</code>
 
=== teleport_faint ===
Teleport the player to the point in the teleport_faint variable. Usually used to teleport to the last visited Tuxcenter, as when all monsters in the party faint.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>None</code>
* <code>monster_slug</code>: Monster slug name (e.g. "rockitten").
* <code>label</code>: seen / caught


'''Examples'''  
'''Examples'''  
* <code>set_tuxepedia player,rockitten,caught</code>
* <code>teleport_faint</code>


=== set_variable ===
=== teleport ===
Sets an arbitrary variable to a particular value. This action is good for seeing if battles with NPCs have been fought or not. These variables are also saved when the player saves the game.
Teleports the player to a given position on a map. This teleport is immediate and does not have any transition animation.
 
Also used to set the [[:Category:Environment|environment]].


'''Parameters'''  
'''Parameters'''  
* <code>variable_name:value</code>: A key, value pair of the <code>variable_name</code> to set with <code>value</code>.
* <code>map_name</code>: The map file 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.


'''Examples'''  
'''Examples'''  
* <code>set_variable battle_won:yes</code>   
* <code>teleport map1.tmx,3,4</code>   
* <code>set_variable talked_to_prof:true</code>
* <code>teleport room1.tmx,8,1</code>
* <code>set_variable environment:grass</code>
* <code>set_variable whatever:today</code>: whatever stores today's date (use in combination with condition <code>once</code>)


=== spawn_monster ===
=== trading ===
Breed a new monster. Add a new monster, created by breeding the two given monsters (identified by instance_id, stored in a variable) and adds it to the given character's party (identified by slug). The parents must be in either the trainer's party, or a storage box owned by the trainer.
Select a monster in the player party and trade. It's advisable to use it with the condition <code>not has_monster monster_slug</code>.


'''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>removed</code>: Instance id (name variable).
* <code>added</code>: Slug monster.


'''Examples'''  
'''Examples'''  
* <code>spawn_monster</code>
* <code>get_player_monster name_variable</code>
then
* <code>trading name_variable,nut</code>


=== start_battle ===
=== transfer_money ===
Start a battle between two characters and switch to the combat module.
Performs a mathematical transaction on the player's money.


'''Parameters'''  
'''Parameters'''  
* <code>character1</code>: Either "player" or character slug name (e.g. "npc_maple").
* <code>transaction</code>: Operator symbol.
* <code>character2</code>: Either "player" or character slug name (e.g. "npc_maple").
* <code>amount</code>: Amount of money.
* <code>slug</code>: Slug name (e.g. NPC, etc.) (optional)


'''Examples'''  
'''Examples'''  
* <code>start_battle player,npc_maple</code>
* <code>transfer_money +,100,npc_mom</code> (player gets 100 from mom)
* <code>start_battle npc_maple,npc_apple</code>
* <code>transfer_money -,100,npc_mom</code> (mom gets 100 from player)
* <code>transfer_money +,100</code> (player gets 100)


=== start_cinema_mode ===
=== transition_teleport ===
Start cinema mode by animating black bars to narrow the aspect ratio.
Teleports the player to a given position on a map with a screen transition over <code>x</code> seconds.


'''Parameters'''  
'''Parameters'''  
* <code>None</code>
* <code>map_name</code>: The map file 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>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)


'''Examples'''  
'''Examples'''  
* <code>start_cinema_mode</code>
* <code>teleport map2.tmx,1,6,1.5</code> 
* <code>teleport room1.tmx,8,1,4</code>


=== stop_cinema_mode ===
=== translated_dialog_choice ===
Stop cinema mode by animating black bars back to the normal aspect ratio.
Asks the player to select a choice. The translations for the text are looked up based on a given key.


'''Parameters'''  
'''Parameters'''  
* <code>None</code>
* <code>choice_keys</code>: Keys to reference translated text choices separated by colons.
* <code>variable</code>: The variable to store the answer which will be the key for the translated text.


'''Examples'''  
'''Examples'''  
* <code>stop_cinema_mode</code>
* <code>translated_dialog_choice yes:no,myvariable</code>


=== store_monster ===
=== translated_dialog ===
Store a monster in a box. Save the player's monster with the given instance_id to the named storage box, removing it from the player party.
Open a dialog window with translated text according to the passed translation key. Parameters passed to the translation string will also be checked if a translation key exists.  


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id.
* <code>text</code>: The msgid in the PO file.
* <code>box</code>: An existing box where the monster will be stored. (optional)
* <code>avatar</code>: If it is a number, the monster is the corresponding monster slot in the player's party. If it is a string, we're referring to a monster by name.
* <code>style</code>: a predefined style in db/dialogue/dialogue.json


'''Examples'''  
'''Examples'''  
* <code>get_player_monster name_variable</code>
* <code>translated_dialog msgid</code>
then:
 
* <code>store_monster name_variable</code>
=== tuxepedia_print ===
or
Print the current value of Tuxepedia to the console. If no monster is specified, print out values of all Tuxepedia.
* <code>store_monster name_variable,name_kennel</code>
 
 
=== teleport_faint ===
Teleport the player to the point in the teleport_faint variable. Usually used to teleport to the last visited Tuxcenter, as when all monsters in the party faint.
 
'''Parameters'''  
'''Parameters'''  
* <code>trans_time</code>: Transition time in seconds - default 0.3.
* <code>monster_slug</code>: Monster slug name (e.g. "rockitten").


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


=== teleport ===
=== unlock_controls ===
Teleports the player to a given position on a map. This teleport is immediate and does not have any transition animation.
Unlock player controls


'''Parameters'''  
'''Parameters'''  
* <code>map_name</code>: The map file to teleport the player to. 
* <code>None</code>
* <code>x</code>: The X-tile coordinate to teleport the player to. 
* <code>y</code>: The Y-tile coordinate to teleport the player to.


'''Examples'''  
'''Examples'''  
* <code>teleport map1.tmx,3,4</code>   
* <code>unlock_controls</code>   
* <code>teleport room1.tmx,8,1</code>


=== trading ===
=== variable_math ===
Select a monster in the player party and trade. It's advisable to use it with the condition <code>not has_monster monster_slug</code>.
Performs a mathematical operation on the key in the player.game_variables dictionary.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id (removed).
* <code>variable_name</code>
* <code>added</code>: Slug monster or Name of the variable where to store the monster id (added).
* <code>operation</code>: +, -, * or /
* <code>value</code>


'''Examples'''  
'''Examples'''  
* <code>get_player_monster name_variable</code>
* <code>variable_math badge_count,+,1</code>
then
* <code>trading name_variable,nut</code>


=== transfer_money ===
=== wait ===
Transfer money between entities. Both entities needs to have a wallet.
Pauses execution of all events for the given amount of time in seconds.


'''Parameters'''  
'''Parameters'''  
* <code>slug1</code>: Slug name (e.g. NPC, etc.)
* <code>seconds</code>: The amount of time in seconds to wait for.
* <code>amount</code>: Amount of money.
* <code>slug2</code>: Slug name (e.g. NPC, etc.)


'''Examples'''  
'''Examples'''  
* <code>transfer_money player,100,npc_mom</code> (player transfers 100 to mom)
* <code>wait 2.0</code> 
* <code>wait 5.2</code>


=== transition_teleport ===
=== wild_encounter ===
Teleports the player to a given position on a map with a screen transition over <code>x</code> seconds.
Start an encounter with a single wild monster.


'''Parameters'''  
'''Parameters'''  
* <code>map_name</code>: The map file to teleport the player to.
* <code>monster_slug</code>: Monster slug.
* <code>x</code>: The X-tile coordinate to teleport the player to.
* <code>monster_level</code>: Level of monster.
* <code>y</code>: The Y-tile coordinate to teleport the player to.
* <code>exp_mod</code>: Experience modifier. (optional)
* <code>trans_time</code>: The time in seconds - default 2. (optional)
* <code>mon_mod</code>: Money modifier. (optional)
* <code>env</code>: Environment (grass default) -> [[Battle Terrain]] (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)


'''Examples'''  
'''Examples'''  
* <code>teleport map2.tmx,1,6,1.5</code>   
* <code>wild_encounter rockitten,5</code>   
* <code>teleport room1.tmx,8,1,4</code>
* <code>wild_encounter rockitten,5,2,2,desert</code>


=== translated_dialog_choice ===
=== withdraw_monster ===
Asks the player to select a choice. The translations for the text are looked up based on a given key.
Pull a monster from the given trainer's storage and puts it in their party.


'''Parameters'''  
'''Parameters'''  
* <code>choice_keys</code>: Keys to reference translated text choices separated by colons.
* <code>monster_id</code>: The id of the monster to pull (variable).
* <code>variable</code>: The variable to store the answer which will be the key for the translated text.
* <code>trainer</code>: Slug of the trainer that will receive the monster. It defaults to the current player.


'''Examples'''  
'''Examples'''  
* <code>translated_dialog_choice yes:no,myvariable</code>
* <code>get_player_monster name_variable</code>
then
* <code>withdraw_monster name_variable</code>
or
* <code>withdraw_monster name_variable,npc_maple</code>


=== translated_dialog ===
== Variables ==
Open a dialog window with translated text according to the passed translation key. Parameters passed to the translation string will also be checked if a translation key exists.


'''Parameters'''
The following are the "main" variables generated by the game and these can be useful to trigger specific events.
* <code>text</code>: The msgid in the PO file.
* <code>avatar</code>: If it is a number, the monster is the corresponding monster slot in the player's party. If it is a string, we're referring to a monster by name.
* <code>style</code>: a predefined style in db/dialogue/dialogue.json


'''Examples'''
These can be used with the condition:
* <code>translated_dialog msgid</code>
<code>is variable_set name_variable:result_variable</code>


=== unlock_controls ===
=== Battle related ===
Unlock player controls
* <code>battle_last_result</code>: the result can be <code>won</code>, <code>draw</code>, <code>lost</code> or <code>ran</code>.


'''Parameters'''
other variables include:
* <code>None</code>
* <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_type</code> type 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_trainer</code> slug of the last trainer fought (it applies only to trainer battles).


'''Examples'''
=== Time related ===
* <code>unlock_controls</code>
* <code>weekday</code> tracks the day of the week (Monday, Tuesday, etc.)
* <code>hour</code> tracks the hour
* <code>day_of_year</code> tracks the days in a year (1 to 365/366)
* <code>year</code> tracks the year
* <code>leap_year</code> the result can be <code>true</code> or <code>false</code>
* <code>daytime</code> the result can be <code>true</code> or <code>false</code> (<code>true</code> between from 06:00 to 18:00, <code>false</code> during the rest of the day).
* <code>stage_of_day</code> the result can be <code>dawn</code> (from 4 to 8), <code>morning</code> (from 8 to 12), <code>afternoon</code> (from 12 to 16), <code>dusk</code> (from 16 to 20) or <code>night</code> (from 20 to 04).
* <code>season</code> the result can be <code>winter</code>, <code>spring</code>, <code>summer</code> or <code>autumn</code>


=== update_tile_properties ===
=== Campaign related ===
Update tile properties. Enable movement and/or the moverate. '''moverate 0 = not accessible'''. The surface keys supported are: '''surfable''', '''walkable''' and '''climbable'''.
* <code>gender_choice</code> the result can be <code>gender_male</code> or <code>gender_female</code>, depending on the player's choice at the beginning. Useful to create different events for gender.


'''Parameters'''
=== Party related (monsters) ===
* <code>label</code>: Name of the property
* <code>party_level_lowest</code> the result shows the lowest level in the player's party (weakest monster).
* <code>moverate</code>: Value of the moverate (eg 1 equal moverate, default 1)
* <code>party_level_highest</code> the result shows the highest level in the player's party (strongest monster).
* <code>party_level_average</code> the result shows the average level in the player's party.


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


=== variable_math ===
==== Battle ====
Performs a mathematical operation on the key in the player.game_variables dictionary.
Let's say you want to trigger different events based on the output of the fight:
* <code>is variable_set battle_last_result:won</code>
or
* <code>is variable_set battle_last_result:lost</code>


'''Parameters'''
==== Date ====
* <code>variable_name</code>
Let's say you want to trigger an event in a specific date (mom's birthday, anniversary, etc.), eg. on the 25th May (day nr 145 or 146 if leap year or not):
* <code>operation</code>: +, -, * or /
* <code>is variable_set day_of_year:146</code>
* <code>value</code>
* <code>is variable_set leap_year:true</code>
or
* <code>is variable_set day_of_year:145</code>
* <code>is variable_set leap_year:false</code>
but if the specific date is before (included) the 28th February (day nr 59):
* <code>is variable_set day_of_year:59</code>


'''Examples'''
==== Season ====
* <code>variable_math badge_count,+,1</code>
Let's say you want to grant access to a location only in summer:
* <code>is variable_set season:summer</code>


=== wait ===
==== Stage of the day ====
Pauses execution of all events for the given amount of time in seconds.
 
'''Parameters'''
* <code>seconds</code>: The amount of time in seconds to wait for. 
 
'''Examples'''
* <code>wait 2.0</code> 
* <code>wait 5.2</code>
 
=== wild_encounter ===
Start an encounter with a single wild monster.
 
'''Parameters'''
* <code>monster_slug</code>: Monster slug.
* <code>monster_level</code>: Level of monster.
* <code>exp_mod</code>: Experience modifier. (optional)
* <code>mon_mod</code>: Money modifier. (optional)
* <code>env</code>: Environment (grass default) -> [[Battle Terrain]] (optional)
* <code>rgb</code>: color (eg red > 255,0,0 > 255:0:0) - default rgb(255,255,255) (optional)
 
'''Examples'''
* <code>wild_encounter rockitten,5</code> 
* <code>wild_encounter rockitten,5,2,2,desert</code>
 
=== withdraw_monster ===
Pull a monster from the given trainer's storage and puts it in their party.
 
'''Parameters'''
* <code>variable</code>: Name of the variable where to store the monster id.
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple"). The one who is going to receive the monster.
           
'''Examples'''
* <code>get_player_monster name_variable</code>
then
* <code>withdraw_monster name_variable</code>
or
* <code>withdraw_monster name_variable,npc_maple</code>
 
== Variables ==
 
The following are the "main" variables generated by the game and these can be useful to trigger specific events.
 
These can be used with the condition:
<code>is variable_set name_variable:result_variable</code>
 
=== Battle related ===
* <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_type</code> type 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.
 
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 ===
* <code>weekday</code> tracks the day of the week (Monday, Tuesday, etc.)
* <code>hour</code> tracks the hour
* <code>day_of_year</code> tracks the days in a year (1 to 365/366)
* <code>year</code> tracks the year
* <code>leap_year</code> the result can be <code>true</code> or <code>false</code>
* <code>daytime</code> the result can be <code>true</code> or <code>false</code> (<code>true</code> between from 06:00 to 18:00, <code>false</code> during the rest of the day).
* <code>stage_of_day</code> the result can be <code>dawn</code> (from 4 to 8), <code>morning</code> (from 8 to 12), <code>afternoon</code> (from 12 to 16), <code>dusk</code> (from 16 to 20) or <code>night</code> (from 20 to 04).
* <code>season</code> the result can be <code>winter</code>, <code>spring</code>, <code>summer</code> or <code>autumn</code>
 
=== Campaign related ===
* <code>gender_choice</code> the result can be <code>gender_male</code> or <code>gender_female</code>, depending on the player's choice at the beginning. Useful to create different events for gender.
 
=== Party related (monsters) ===
* <code>party_level_lowest</code> the result shows the lowest level in the player's party (weakest monster).
* <code>party_level_highest</code> the result shows the highest level in the player's party (strongest monster).
* <code>party_level_average</code> the result shows the average level in the player's party.
 
== Examples ==
 
==== Battle ====
Let's say you want to trigger different events based on the output of the fight:
* <code>is variable_set battle_last_result:won</code>
or
* <code>is variable_set battle_last_result:lost</code>
 
==== Date ====
Let's say you want to trigger an event in a specific date (mom's birthday, anniversary, etc.), eg. on the 25th May (day nr 145 or 146 if leap year or not):
* <code>is variable_set day_of_year:146</code>
* <code>is variable_set leap_year:true</code>
or
* <code>is variable_set day_of_year:145</code>
* <code>is variable_set leap_year:false</code>
but if the specific date is before (included) the 28th February (day nr 59):
* <code>is variable_set day_of_year:59</code>
 
==== Season ====
Let's say you want to grant access to a location only in summer:
* <code>is variable_set season:summer</code>
 
==== Stage of the day ====
Let's say you want to block the access during the night:
Let's say you want to block the access during the night:
* <code>not variable_set stage_of_day:night</code>
* <code>not variable_set stage_of_day:night</code>
Line 1,767: Line 1,696:
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)