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 134: Line 134:
'''Examples'''  
'''Examples'''  
* <code>is check_evolution player</code>
* <code>is check_evolution player</code>
=== check_max_tech ===
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.
'''Parameters'''
* <code>nr</code>: Number of tech, default the constant
'''Examples'''
* <code>is check_max_tech</code>
* <code>is check_max_tech 2</code>


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


=== current_state ===
=== current_state ===
Line 245: Line 207:


=== has_party_breeder ===
=== has_party_breeder ===
Check to see if the character has a male and female monsters not basic (first evolution stage) in the party.
Check to see if the player has a male and female monster in the party (monster not basic, basic is the first step in the evolution stage).
 
'''Parameters'''
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").


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


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


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


=== monster_flair ===
=== monster_flair ===
Line 311: Line 269:
* <code>to be defined</code>
* <code>to be defined</code>


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


'''Parameters'''  
'''Parameters'''  
Line 344: Line 315:


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


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


Line 354: Line 324:


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


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>operator</code>: Numeric comparison operator. Accepted values are <code>less_than</code>, <code>less_or_equal</code>, <code>greater_than</code>, <code>greater_or_equal</code>, <code>equals</code> and <code>not_equals</code>.
* <code>operator</code>: Numeric comparison operator. Accepted values are <code>less_than</code>, <code>less_or_equal</code>, <code>greater_than</code>, <code>greater_or_equal</code>, <code>equals</code> and <code>not_equals</code>.
* <code>party_size</code>: The size of the party to check against.
* <code>party_size</code>: The size of the party to check against.
Line 365: Line 334:
* <code>not party_size equals,0</code>   
* <code>not party_size equals,0</code>   
* <code>is party_size greater_than,4</code>
* <code>is party_size greater_than,4</code>
=== to_talk ===
Check if a character is attempting to talk to another character.
'''Parameters'''
* <code>character1</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>character2</code>: Either "player" or npc slug name (e.g. "npc_maple").
'''Examples'''
* <code>is to_talk player,npc_maple</code>


=== to_use_tile ===
=== to_use_tile ===
Line 475: Line 454:


'''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 514:
* <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 520:
'''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 610: Line 591:


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


'''Examples'''  
'''Examples'''  
* <code>char_stop npc_mom</code>
* <code>char_stop</code>


=== char_walk ===
=== char_walk ===
Line 746: Line 727:
'''Examples'''  
'''Examples'''  
* <code>fadeout_music 2</code>
* <code>fadeout_music 2</code>
=== format_variable ===
Format the value of a variable from the game (eg. float or int).
'''Parameters'''
* <code>variable</code>: The variable to format.
* <code>type_format</code>: Kind of format (float or int).
'''Examples'''
* <code>format_variable name_variable,int</code>
* <code>format_variable name_variable,float</code>
=== get_monster_tech ===
Select a tech among the monster's moves. It allows filtering: slug, element, range.
'''Parameters'''
* <code>variable_name</code>: Variable where to store the technique id.
* <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'''
* <code>get_monster_tech name_variable,monster_id</code>
* <code>get_monster_tech name_variable,monster_id,element,water</code>
* <code>get_monster_tech name_variable,monster_id,power,less_than,1.6</code>


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


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


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


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


=== load_game ===
=== load_game ===
Line 870: Line 801:
* <code>menu disable,menu_bag</code>
* <code>menu disable,menu_bag</code>


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


Line 881: Line 827:
* <code>modify_char_attribute character,attribute,value</code>
* <code>modify_char_attribute character,attribute,value</code>


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


'''Parameters'''  
'''Parameters'''  
* <code>slug</code>: Slug name (e.g. player or NPC, etc.).
* <code>slug</code>: Slug name (e.g. player or NPC, etc.). (optional)
* <code>amount</code>: Amount of money to add/remove (-/+)
* <code>variable</code>: Name of the variable where to store the amount.


'''Examples'''  
'''Examples'''  
* <code>modify_money npc_maple,100</code>
* <code>money_print</code>
* <code>modify_money npc_maple,-50</code>
* <code>money_print player</code>
* <code>modify_money player,,name_variable</code>


=== modify_monster_bond ===
=== open_shop ===
Add or remove an amount of money for a wallet (slug).
Open the shop menu for a NPC.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id. If no variable is specified, all monsters are touched.
* <code>npc_slug</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>amount</code>: An int or float value, if no amount, then default 1 (int).
* <code>menu</code>: Either "buy", "sell" or "both". Default is "both". (optional)


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


=== modify_monster_health ===
=== pathfind ===
Modify the hp of a monster in the current player's party.
Moves an NPC to a certain tile on the map.


'''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>name</code>: The name of the NPC to be moved.
* <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>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>modify_monster_health</code>
* <code>pathfind Maple,2,3</code>  
* <code>modify_monster_health ,0.25</code>
* <code>pathfind Pine,1,6</code>


 
=== pathfind_to_player ===
=== modify_monster_stats ===
Pathfind NPC close the player.
Change the stats of a monster in the current player's party.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id. If no variable is specified, all monsters are touched. (Optional)
* <code>npc_slug</code>: Npc slug name (e.g. "npc_maple").
* <code>stat</code>: A stat among armour, dodge, hp, melee, speed and ranged. If no stat, then all the stats. (Optional)
* <code>direction</code>: Approaches the player from up, down, left or right.
* <code>amount</code>: A/an float/int value, if no amount, then default 1 (+). (Optional)
* <code>distance</code>: How many tiles (2, 3, 4, etc.)


'''Examples'''  
'''Examples'''  
* <code>modify_monster_stats</code>
* <code>pathfind_to_player spyder_route2_roddick</code>  
* <code>modify_monster_stats ,,0.25</code>
* <code>translated_dialog spyder_route2_roddick1</code>
* <code>modify_monster_stats name_variable,speed,25</code>
* <code>start_battle spyder_route2_roddick</code>  
* <code>modify_monster_stats name_variable,dodge,-12</code>
 
* <code>modify_monster_stats name_variable,dodge,-0.4</code>
=== pause_music ===
 
Pauses the currently playing music.
=== open_shop ===
Open the shop menu for a NPC.


'''Parameters'''  
'''Parameters'''  
* <code>npc_slug</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>None</code>
* <code>menu</code>: Either "buy", "sell" or "both". Default is "both". (optional)


'''Examples'''  
'''Examples'''  
* <code>open_shop npc_maple</code>  
* <code>pause_music</code>


=== overwrite_tech ===
=== play_map_animation ===
Overwrite / replace a technique with another.
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>removed</code>: Name of the variable where to store the tech id.
* <code>animation_name</code>: The name of the animation to play under <code>resources/animations/tileset</code>. 
* <code>added</code>: Slug technique.
* <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>overwrite_tech name_variable,peck</code>  
* <code>play_map_animation grass,0.1,noloop,player</code> 
* <code>play_map_animation sign01,0.4,loop,33,10</code>


=== pathfind ===
=== play_music ===
Moves an NPC to a certain tile on the map.
Plays an audio file.


'''Parameters'''  
'''Parameters'''  
* <code>name</code>: The name of the NPC to be moved.
* <code>filename</code>: Music file to load (slug inside the JSON in db/sound)
* <code>tile_pos_x</code>: The X-tile coordinate to have the NPC to walk to.
* <code>volume</code>: Number between 0.0 and 1.0. (optional)
* <code>tile_pos_y</code>: The Y-tile coordinate to have the NPC to walk to.    
* <code>loop</code>: How many times loop, default forever. (optional)


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


=== pathfind_to_player ===
=== play_sound ===
Pathfind NPC close the player.
Plays a sound file.


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


'''Examples'''  
'''Examples'''  
* <code>pathfind_to_player spyder_route2_roddick</code>
* <code>play_sound sound_confirm</code>
* <code>translated_dialog spyder_route2_roddick1</code>
* <code>start_battle player,spyder_route2_roddick</code>  


=== pause_music ===
=== print ===
Pauses the currently playing music.
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>None</code>
* <code>variable</code>: Prints out the value of this variable (optional)


'''Examples'''  
'''Examples'''  
* <code>pause_music</code>
* <code>print</code>
* <code>print name_variable</code> 


=== play_map_animation ===
=== quarantine ===
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>.
Quarantine infected monsters. Amount works only for "out", it takes out the amount in a random way.  


'''Parameters'''  
'''Parameters'''  
* <code>animation_name</code>: The name of the animation to play under <code>resources/animations/tileset</code>. 
* <code>value</code>: in or out
* <code>duration</code>: The amount of time in seconds between each frame. 
* <code>amount</code>: number of monsters (optional)
* <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>quarantine out</code> everything out (player's party -> if full, then box)
* <code>play_map_animation sign01,0.4,loop,33,10</code>
* <code>quarantine out,5</code> eg. box contains 30 monsters <code>quarantine out,5</code>, it means 5 monsters by random


=== play_music ===
=== quit ===
Plays an audio file.
Completely quit the game.


'''Parameters'''  
'''Parameters'''  
* <code>filename</code>: Music file to load (slug inside the JSON in db/sound)
* <code>None</code>
* <code>volume</code>: Number between 0.0 and 1.0. (optional)
* <code>loop</code>: How many times loop, default forever. (optional)


'''Examples'''  
'''Examples'''  
* <code>play_music music_mystic_island</code>  
* <code>quit</code>


=== play_sound ===
=== random_battle ===
Plays a sound 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>: Sound 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>max_level</code>: Maximum level of the party.


'''Examples'''  
'''Examples'''  
* <code>play_sound sound_confirm</code>
* <code>random_battle 6,1,99</code>


=== print ===
=== random_encounter ===
Print the current value of a game variable to the console. If no variable is specified, print out values of all game variables.
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>player_moved</code> conditions.


'''Parameters''' :
Here is an example encounter file: ''resources/db/encounter/route1.json''   
* <code>variable</code>: Prints out the value of this variable (optional)
 
'''Examples'''
* <code>print</code> 
* <code>print name_variable</code>  


=== quarantine ===
<code>{"slug":"route1","monsters":[{"monster":"pairagrin","encounter_rate":3.5,"daytime":true,"exp_req_mod":1,"level_range":[2,4]}]}</code>
Quarantine infected monsters. Amount works only for "out", it takes out the amount in a random way.


'''Parameters'''  
'''Parameters'''  
* <code>value</code>: in or out
* <code>encounter_slug</code>: Slug of the encounter list.
* <code>amount</code>: number of monsters (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>quarantine out</code> everything out (player's party -> if full, then box)
* <code>random_encounter route1</code>
* <code>quarantine out,5</code> eg. box contains 30 monsters <code>quarantine out,5</code>, it means 5 monsters by random
* <code>random_encounter route1,20</code>


=== quit ===
=== random_integer ===
Completely quit the game.
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>None</code>
* <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>quit</code>
* <code>random_integer name_variable,1,9</code>


=== random_battle ===
=== random_item ===
Start random battle with a random npc with a determined number of monster in a certain range of levels.
Pick a random item from a list and add it to the trainer's inventory.


'''Parameters'''  
'''Parameters'''  
* <code>nr_txmns</code>: Number of tuxemon (1 to 6).
* <code>item_slug</code>: Item name to look up in the item database (multiple items separated by ":").
* <code>min_level</code>: Minimum level of the party.
* <code>quantity</code>: Quantity of the item to add or to reduce. By default it is 1. (optional)
* <code>max_level</code>: Maximum level of the party.
* <code>trainer_slug</code>: Slug of the trainer that will receive the item. It defaults to the current player. (optional)


'''Examples'''  
'''Examples'''  
* <code>random_battle 6,1,99</code>
* <code>random_item potion:tea:revive</code> (adds 1 potion or tea or revive to the trainer's inventory).
* <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).


=== random_encounter ===
=== random_monster ===
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.
Add a monster to the specified trainer's party if there is room.
 
Here is an example encounter file: ''resources/db/encounter/route1.json'' 
 
  "slug": "route1",
  "monsters": [
    {
      "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>monster_level</code>: Level of the added monster.
* <code>total_prob</code>: Total sum of the probabilities. (optional)
* <code>trainer_slug</code>: Slug of the trainer that will receive the monster. It defaults to the current player. (optional)
* <code>rgb</code>: color (eg red > 255,0,0 > 255:0:0) - default rgb(255,255,255) (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_encounter route1</code>
* <code>random_monster 10</code>
* <code>random_encounter route1,20</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_integer ===
=== remove_collision ===
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 a collision defined by a specific label.


'''Parameters'''  
'''Parameters''' :
* <code>variable</code>: Name of the variable.
* <code>label</code>: Name of the obstacle.
* <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_collision obstacle</code> (it can one added with add_collision or an existing zone in the .tmx file).


=== random_item ===
=== remove_contacts ===
Pick a random item from a list and add it to the trainer's inventory.
Remove contact from the app (Nu Phone).


'''Parameters'''  
'''Parameters''' :
* <code>item_slug</code>: Item name to look up in the item database (multiple items separated by ":").
* <code>slug</code>: slug name (e.g. "npc_maple").
* <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>random_item potion:tea:revive</code> (adds 1 potion or tea or revive to the trainer's inventory).
* <code>remove_contacts npc_maple</code>
* <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).


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


'''Parameters'''  
'''Parameters'''  
* <code>monster_level</code>: Level of the added monster.
* <code>instance_id</code>: Id of the monster to remove.
* <code>trainer_slug</code>: Slug of the trainer that will receive the monster. It defaults to the current player. (optional)
* <code>trainer_slug</code>: Slug of the trainer. If no trainer slug is passed it defaults to the current player.
* <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>get_player_monster name_variable</code>
* <code>random_monster 10,npc_maple</code>
* <code>remove_monster name_variable</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 ===
=== remove_npc ===
Removes a collision defined by a specific label.
Removes an NPC from the current map.


'''Parameters''' :
'''Parameters'''  
* <code>label</code>: Name of the obstacle.
* <code>name</code>: The name of the NPC to remove.


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


=== remove_contacts ===
=== remove_state ===
Remove contact from the app (Nu Phone).
Change to the specified state.


'''Parameters''' :
'''Parameters'''
* <code>slug</code>: slug name (e.g. "npc_maple").
* <code>state_name</code>: The state name to switch to (e.g. PCState).
* <code>optional</code>: Variable related to specific states (eg slug for JournalInfoState).


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


=== remove_monster ===
=== rename_monster ===
Remove a monster from the party if the monster is there.
Open the monster menu and text input screens to rename a selected monster.


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


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


=== remove_npc ===
=== rename_player ===
Removes an NPC from the current map.
Open the text input screen to rename the player.


'''Parameters'''  
'''Parameters'''  
* <code>name</code>: The name of the NPC to remove. 
* <code>None</code>


'''Examples'''  
'''Examples'''  
* <code>remove_npc Maple</code>   
* <code>rename_player</code>   
* <code>remove_npc Pine</code>


=== remove_state ===
=== rumble ===
Change to the specified state.
Rumble available controllers with rumble support.


'''Parameters'''
'''Parameters'''  
* <code>state_name</code>: The state name to switch to (e.g. PCState).
* <code>duration</code>: Time in seconds to rumble for.
* <code>optional</code>: Variable related to specific states (eg slug for JournalInfoState).
* <code>power</code>: Percentage of power to rumble.


'''Examples'''  
'''Examples'''  
* <code>remove_state</code> (it removes everything, excluding the basic ones)
* <code>rumble duration,power</code>
* <code>remove_state JournalInfoState</code> (it removes everything, excluding the basic ones)


=== remove_tech ===
=== save_game ===
Remove a specific technique from a specific monster.
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>tech_id</code>: Name of the variable where to store the tech id.
* <code>index</code>: Selected index. (optional)


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


=== rename_monster ===
=== screen_transition ===
Open the text input screen to rename the monster.
Fades the screen to black and back over <code>x</code> seconds.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id.
* <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>rename_monster name_variable</code>
* <code>screen_transition 2</code>


=== rename_player ===
=== set_battle ===
Open the text input screen to rename the player.
Append a new element in player.battles.


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


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


=== rumble ===
=== set_bubble ===
Rumble available controllers with rumble support.
Put a bubble above player sprite.


'''Parameters'''  
'''Parameters'''  
* <code>duration</code>: Time in seconds to rumble for.
* <code>npc_slug</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>power</code>: Percentage of power to rumble.
* <code>bubble</code>: dots, drop, exclamation, heart, note, question, sleep, angry, confused, fireworks


'''Examples'''  
'''Examples'''  
* <code>rumble duration,power</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)


=== save_game ===
=== set_code ===
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)
Set a code and checks if it's correct or not. Case Sensitive: ATTENTION and AtTenTION are two different words.


'''Parameters'''  
'''Parameters'''  
* <code>index</code>: Selected index. (optional)
* <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>save_game</code> (it's going to save slot4.save)
* <code>set_code access_code,joke,name_variable</code>
* <code>save_game 1</code> (it's going to save slot2.save)
 
 
=== set_economy ===
=== screen_transition ===
Set the economy (prices of items) of the npc or player.
Fades the screen to black and back over <code>x</code> seconds.


'''Parameters'''  
'''Parameters'''  
* <code>trans_time</code>: Time in seconds - default 0.3 (optional).
* <code>npc_slug</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>rgb</code>: color (eg red > 255,0,0 > 255:0:0) - default rgb(255,255,255) (optional)
* <code>economy_slug</code>: Slug of an economy.


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


=== set_battle ===
From hidden to visible: set_kennel_visible name_kennel,true
Append a new element in player.battles.
From visible to hidden: set_kennel_visible name_kennel,false


'''Parameters'''  
'''Parameters'''  
* <code>fighter</code>: Npc slug name (e.g. "npc_maple").
* <code>kennel</code>: Name of the kennel.
* <code>result</code>: One among "won", "lost" or "draw"
* <code>visible</code>: true/false.
* <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_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.


=== set_bubble ===
msgid "kennel_name"
Put a bubble above player sprite.
msgstr "Kennel Name"


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


'''Examples'''  
'''Examples'''  
* <code>set_bubble spyder_shopassistant</code> (remove bubble NPC)
* <code>set_kennel new_kennel,true</code>
* <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)


=== set_economy ===
=== set_layer ===
Set the economy (prices of items) of the npc or player.
Allows to change the color of the transparent layer.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>rgb</code>: color (eg red > 255,0,0,128 > 255:0:0:128) - default transparent
* <code>economy_slug</code>: Slug of an economy.


'''Examples'''  
'''Examples'''  
* <code>set_economy spyder_shopkeeper,spyder_candy_scoop</code>
* <code>set_layer 255:0:0:128</code>


=== set_kennel_visible ===
=== set_money ===
Set the kennel visible or hidden.
Set the key and value in the money dictionary. It'll reset the previous amount.
 
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>slug</code>: Slug name (e.g. player or NPC, etc.).
* <code>visible</code>: true/false.
* <code>amount</code>: Amount of money


'''Examples'''  
'''Examples'''  
* <code>set_kennel_visible name_kennel,true</code>
* <code>set_money player,500</code>
* <code>set_kennel_visible name_kennel,false</code>


=== set_kennel ===
=== set_mission ===
Create a new kennel. If the kennel is visible, then it's advisable to create a msgid in the en_US PO file.
Set mission.
 
msgid "kennel_name"
msgstr "Kennel Name"


'''Parameters'''  
'''Parameters'''  
* <code>kennel</code>: Name of the kennel.
* <code>slug</code>: slug mission
* <code>visible</code>: true/false.
* <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_kennel new_kennel,true</code>
* <code>set_mission mission1</code>
* <code>set_mission mission1,change,completed</code>


=== set_layer ===
=== set_monster_flair ===
Allows to change the color of the transparent layer.
Set a monster's flair to the given value.


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


'''Examples'''  
'''Examples'''  
* <code>set_layer 255:0:0:128</code>
* <code>get_player_monster name_variable</code>
* <code>set_monster_flair name_variable,category,flair</code>


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


'''Parameters'''  
'''Parameters'''  
* <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 healed. (optional)
* <code>slug</code>: slug mission
* <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>operation</code>: add, remove or change
* <code>status</code>: completed, pending, failed (default pending)


'''Examples'''  
'''Examples'''  
* <code>set_mission mission1</code>
* <code>set_monster_health</code> (heals all the monsters in the party)
* <code>set_mission mission1,change,completed</code>
or
* <code>get_player_monster name_variable</code>
* <code>set_monster_health name_variable,1</code>


=== set_money ===
=== set_monster_level ===
Set an amount of money for a specific slug.
Change the level of a monster in the current player's party.


'''Parameters'''  
'''Parameters'''  
* <code>slug</code>: Slug name (e.g. player or NPC, etc.).
* <code>variable</code>: Name of the variable where to store the monster id. If no variable is specified, all monsters are changed. (optional)
* <code>amount</code>: Amount of money (>= 0) (default 0)
* <code>levels_added</code>: Number of levels to add. Negative numbers are allowed. Default 1. (optional)


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


=== set_monster_attribute ===
=== set_monster_plague ===
Set the given attribute of the monster to the given value.
Cure or infect a monster.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id.
* <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>attribute</code>: Name of the attribute.
* <code>condition</code>: inoculated, healthy or infected, default healthy (optional)
* <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_monster_plague</code> (all the monsters in the party are healthy)
or
* <code>get_player_monster name_variable</code>
* <code>set_monster_plague name_variable,infected</code>


=== set_monster_flair ===
=== set_monster_status ===
Set a monster's flair to the given value.
Change the status of a monster in the current player's party.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id. If no variable is specified, all monsters are changed.
* <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>category</code>: Category of the monster flair.
* <code>status</code>: Inoculated, healthy or infected, default healthy (optional)
* <code>flair</code>: Name of the monster flair.


'''Examples'''  
'''Examples'''  
* <code>set_monster_status</code> (all the monsters in the party lose their status)
or
* <code>get_player_monster name_variable</code>
* <code>get_player_monster name_variable</code>
* <code>set_monster_flair name_variable,category,flair</code>
* <code>set_monster_status name_variable,status_blinded</code>


=== set_monster_health ===
=== set_char_attribute ===
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 given attribute of the character to the given 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>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>health</code>: A float value between 0 and 1, which is the percent of max hp to be restored to. A int value, which is the number of HP to be restored to. If no health is specified, the hp is maxed out. (optional)
* <code>attribute</code>: Name of the attribute.
* <code>value</code>: Value of the attribute.


'''Examples'''  
'''Examples'''  
* <code>set_monster_health</code> (heals all the monsters in the party)
* <code>set_char_attribute character,attribute,value</code>
or
* <code>get_player_monster name_variable</code>
* <code>set_monster_health name_variable,1</code>


=== set_monster_level ===
=== set_player_name ===
Change the level of a monster in the current player's party.
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. (optional)
* <code>choice</code>: Single name or multiple names separated by ":" (random choice). NB: the names must be in the en_US PO file.
* <code>levels_added</code>: Number of levels to add. Negative numbers are allowed. Default 1. (optional)


'''Examples'''  
'''Examples'''  
* <code>set_monster_level</code> (all the monsters in the party level up by 1)
* <code>set_player_name jimmy</code>
or
* <code>set_player_name jimmy:richard:linus</code> (random choice among jimmy, richard and linus)
* <code>get_player_monster name_variable</code>
* <code>set_monster_level name_variable,1</code>


=== set_monster_status ===
=== set_random_variable ===
Change the status of a monster in the current player's party.
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 get/lose status.. (optional)
* <code>variable</code>: Name of the variable.
* <code>status</code>: Inoculated, healthy or infected, default healthy (optional)
* <code>values</code>: Multiple values of the variable separated with ":".


'''Examples'''  
'''Examples'''  
* <code>set_monster_status</code> (all the monsters in the party lose their status)
* <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_status name_variable,status_blinded</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_char_attribute ===
if you choose a feminine sprite, then it's advisable: heroine
Set the given attribute of the character to the given value.
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>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>attribute</code>: Name of the attribute.
* <code>sprite</code>: must be inside mods/tuxemon/sprites (default = original), eg: adventurer_brown_back.png -> adventurer
* <code>value</code>: Value of the attribute.
* <code>combat_front</code>: must be inside mods/tuxemon/gfx/sprites/player, eg: adventurer.png -> adventurer (optional)


'''Examples'''  
'''Examples'''  
* <code>set_char_attribute character,attribute,value</code>
* <code>set_template player,adventurer,adventurer</code>


=== set_party_attribute ===
=== set_tuxepedia ===
Set the given attribute of party's monsters to the given value.
Set the key and value in the Tuxepedia dictionary.


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


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


=== set_party_status ===
=== set_variable ===
Records important information about all monsters in the party (eg average level of the party, etc.)
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.
 
Also used to set the [[:Category:Environment|environment]].


'''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>.


'''Examples'''  
'''Examples'''  
* <code>set_party_status player</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_player_name ===
=== spawn_monster ===
Set player name without opening the input screen.
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>choice</code>: Single name or multiple names separated by ":" (random choice). NB: the names must be in the en_US PO file.
* <code>npc_slug</code>: Either "player" or npc slug name (e.g. "npc_maple").


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


=== set_random_variable ===
=== start_battle ===
Set the key in the player.game_variables dictionary with a random value.
Start a battle between two characters and switch to the combat module.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable.
* <code>character1</code>: Either "player" or character slug name (e.g. "npc_maple").
* <code>values</code>: Multiple values of the variable separated with ":".
* <code>character2</code>: Either "player" or character slug name (e.g. "npc_maple").


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


=== set_template ===
=== start_cinema_mode ===
Switch template (sprite and combat_front).
Start cinema mode by animating black bars to narrow the aspect ratio.


Please remember that if you change the combat_front, automatically will change the combat_back.
'''Parameters'''
Eg if you set the sprite xxx, then it's going to add _back.png -> xxx_back.png
* <code>None</code>
 
'''Examples'''  
* <code>start_cinema_mode</code>


if you choose a feminine sprite, then it's advisable: heroine
=== stop_cinema_mode ===
if you choose a masculine sprite, then it's advisable: adventurer
Stop cinema mode by animating black bars back to the normal aspect ratio.


'''Parameters'''  
'''Parameters'''  
* <code>character</code>: Either "player" or npc slug name (e.g. "npc_maple").
* <code>None</code>
* <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_template player,adventurer,adventurer</code>
* <code>stop_cinema_mode</code>


=== set_tuxepedia ===
=== store_monster ===
Set the key and value in the Tuxepedia dictionary.
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.


'''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>monster_slug</code>: Monster slug name (e.g. "rockitten").
* <code>box</code>: An existing box where the monster will be stored. (optional)
* <code>label</code>: seen / caught


'''Examples'''  
'''Examples'''  
* <code>set_tuxepedia player,rockitten,caught</code>
* <code>get_player_monster name_variable</code>
 
then:
=== set_variable ===
* <code>store_monster name_variable</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.
or
* <code>store_monster name_variable,name_kennel</code>


Also used to set the [[:Category:Environment|environment]].
=== 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>variable_name:value</code>: A key, value pair of the <code>variable_name</code> to set with <code>value</code>. 
* <code>None</code>


'''Examples'''  
'''Examples'''  
* <code>set_variable battle_won:yes</code>
* <code>teleport_faint</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>)


=== spawn_monster ===
=== teleport ===
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.
Teleports the player to a given position on a map. This teleport is immediate and does not have any transition animation.


'''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>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>spawn_monster</code>   
* <code>teleport map1.tmx,3,4</code>   
* <code>teleport room1.tmx,8,1</code>


=== start_battle ===
=== trading ===
Start a battle between two characters and switch to the combat module.
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>character1</code>: Either "player" or character slug name (e.g. "npc_maple").
* <code>removed</code>: Instance id (name variable).
* <code>character2</code>: Either "player" or character slug name (e.g. "npc_maple").
* <code>added</code>: Slug monster.


'''Examples'''  
'''Examples'''  
* <code>start_battle player,npc_maple</code>
* <code>get_player_monster name_variable</code>
* <code>start_battle npc_maple,npc_apple</code>
then
* <code>trading name_variable,nut</code>


=== start_cinema_mode ===
=== transfer_money ===
Start cinema mode by animating black bars to narrow the aspect ratio.
Performs a mathematical transaction on the player's money.


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


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


=== stop_cinema_mode ===
=== transition_teleport ===
Stop cinema mode by animating black bars back to the normal 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>stop_cinema_mode</code>
* <code>teleport map2.tmx,1,6,1.5</code> 
* <code>teleport room1.tmx,8,1,4</code>


=== store_monster ===
=== translated_dialog_choice ===
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.
Asks the player to select a choice. The translations for the text are looked up based on a given key.


'''Parameters'''  
'''Parameters'''  
* <code>variable</code>: Name of the variable where to store the monster id.
* <code>choice_keys</code>: Keys to reference translated text choices separated by colons.
* <code>box</code>: An existing box where the monster will be stored. (optional)
* <code>variable</code>: The variable to store the answer which will be the key for the translated text.


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


=== teleport_faint ===
=== translated_dialog ===
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.
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>trans_time</code>: Transition time in seconds - default 0.3.
* <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'''  
'''Examples'''  
* <code>teleport_faint</code>
* <code>translated_dialog msgid</code>
* <code>teleport_faint 6.9</code>
 
 
=== tuxepedia_print ===
=== teleport ===
Print the current value of Tuxepedia to the console. If no monster is specified, print out values of all Tuxepedia.
Teleports the player to a given position on a map. This teleport is immediate and does not have any transition animation.


'''Parameters'''  
'''Parameters'''  
* <code>map_name</code>: The map file to teleport the player to.
* <code>monster_slug</code>: Monster slug name (e.g. "rockitten").
* <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>tuxepedia_print</code>
* <code>teleport room1.tmx,8,1</code>
* <code>tuxepedia_print rockitten</code>


=== trading ===
=== unlock_controls ===
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>.
Unlock player controls


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


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


=== transfer_money ===
=== variable_math ===
Transfer money between entities. Both entities needs to have a wallet.
Performs a mathematical operation on the key in the player.game_variables dictionary.


'''Parameters'''  
'''Parameters'''  
* <code>slug1</code>: Slug name (e.g. NPC, etc.)
* <code>variable_name</code>
* <code>amount</code>: Amount of money.
* <code>operation</code>: +, -, * or /
* <code>slug2</code>: Slug name (e.g. NPC, etc.)
* <code>value</code>


'''Examples'''  
'''Examples'''  
* <code>transfer_money player,100,npc_mom</code> (player transfers 100 to mom)
* <code>variable_math badge_count,+,1</code>


=== transition_teleport ===
=== wait ===
Teleports the player to a given position on a map with a screen transition over <code>x</code> seconds.
Pauses execution of all events for the given amount of time in seconds.


'''Parameters'''  
'''Parameters'''  
* <code>map_name</code>: The map file to teleport the player to. 
* <code>seconds</code>: The amount of time in seconds to wait for.
* <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>trans_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>teleport map2.tmx,1,6,1.5</code>   
* <code>wait 2.0</code>   
* <code>teleport room1.tmx,8,1,4</code>
* <code>wait 5.2</code>


=== translated_dialog_choice ===
=== wild_encounter ===
Asks the player to select a choice. The translations for the text are looked up based on a given key.
Start an encounter with a single wild monster.


'''Parameters'''  
'''Parameters'''  
* <code>choice_keys</code>: Keys to reference translated text choices separated by colons.
* <code>monster_slug</code>: Monster slug.
* <code>variable</code>: The variable to store the answer which will be the key for the translated text.
* <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'''  
'''Examples'''  
* <code>translated_dialog_choice yes:no,myvariable</code>
* <code>wild_encounter rockitten,5</code> 
* <code>wild_encounter rockitten,5,2,2,desert</code>


=== translated_dialog ===
=== withdraw_monster ===
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.  
Pull a monster from the given trainer's storage and puts it in their party.


'''Parameters'''  
'''Parameters'''  
* <code>text</code>: The msgid in the PO file.
* <code>monster_id</code>: The id of the monster to pull (variable).
* <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>trainer</code>: Slug of the trainer that will receive the monster. It defaults to the current player.
* <code>style</code>: a predefined style in db/dialogue/dialogue.json


'''Examples'''  
'''Examples'''  
* <code>translated_dialog msgid</code>
* <code>get_player_monster name_variable</code>
then
* <code>withdraw_monster name_variable</code>
or
* <code>withdraw_monster name_variable,npc_maple</code>


=== unlock_controls ===
== Variables ==
Unlock player controls


'''Parameters'''
The following are the "main" variables generated by the game and these can be useful to trigger specific events.
* <code>None</code>


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


=== update_tile_properties ===
=== Battle related ===
Update tile properties. Enable movement and/or the moverate. '''moverate 0 = not accessible'''. The surface keys supported are: '''surfable''', '''walkable''' and '''climbable'''.
* <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>label</code>: Name of the property
* <code>battle_last_monster_name</code> name of the last monster fought.
* <code>moverate</code>: Value of the moverate (eg 1 equal moverate, default 1)
* <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>update_tile_properties surfable,0.5</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>


=== variable_math ===
=== Campaign related ===
Performs a mathematical operation on the key in the player.game_variables dictionary.
* <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>variable_name</code>
* <code>party_level_lowest</code> the result shows the lowest level in the player's party (weakest monster).
* <code>operation</code>: +, -, * or /
* <code>party_level_highest</code> the result shows the highest level in the player's party (strongest monster).
* <code>value</code>
* <code>party_level_average</code> the result shows the average level in the player's party.


'''Examples'''
== Examples ==
* <code>variable_math badge_count,+,1</code>


=== wait ===
==== Battle ====
Pauses execution of all events for the given amount of time in seconds.
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>seconds</code>: The amount of time in seconds to wait for. 
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>


'''Examples'''
==== Season ====
* <code>wait 2.0</code> 
Let's say you want to grant access to a location only in summer:
* <code>wait 5.2</code>
* <code>is variable_set season:summer</code>


=== wild_encounter ===
==== Stage of the day ====
Start an encounter with a single wild monster.
Let's say you want to block the access during the night:
* <code>not variable_set stage_of_day:night</code>
while if you want to grant the access only during the night:
* <code>is variable_set stage_of_day:night</code>


'''Parameters'''
==== Steps Countdown ====
* <code>monster_slug</code>: Monster slug.
Let's say you want to trigger an event after 1234 steps:
* <code>monster_level</code>: Level of monster.
* <code>set_variable steps_whatever:1234</code>
* <code>exp_mod</code>: Experience modifier. (optional)
<code>steps_</code> followed by your variable <code>whatever</code>.
* <code>mon_mod</code>: Money modifier. (optional)
* <code>is variable_is steps_whatever,equals,0.0</code>: Checking for the results, separate event.
* <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'''
Note: you can replace <code>equals</code> with: <code>less_than</code>, <code>less_or_equal</code>, <code>greater_than</code>, <code>greater_or_equal</code>,  and <code>not_equals</code>.
* <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:
* <code>not variable_set stage_of_day:night</code>
while if you want to grant the access only during the night:
* <code>is variable_set stage_of_day:night</code>
 
==== Steps Countdown ====
Let's say you want to trigger an event after 1234 steps:
* <code>set_variable steps_whatever:1234</code>
<code>steps_</code> followed by your variable <code>whatever</code>.
* <code>is variable_is steps_whatever,equals,0.0</code>: Checking for the results, separate event.
 
Note: you can replace <code>equals</code> with: <code>less_than</code>, <code>less_or_equal</code>, <code>greater_than</code>, <code>greater_or_equal</code>,  and <code>not_equals</code>.


==== Trading ====
==== Trading ====
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)