Action: Set Variable

Revision as of 11:38, 21 June 2021 by Dm114 (talk | contribs)

This action allows you to set the value of a specific MacroDroid variable.

As explained in the Variables section, variables are divided into 2 categories and 4 types. Whatever category or type, their value/content is never reset and remains, even after device reboot. They are identified by a name given at creation time (see below).


— Naming: Every variable is identified by its name. This name can be made of any set of character. To facilitate maintainability, the name should relate the content or purpose of the named variable.


— Category: Every variable can be either local or global.

  • A local variable belongs to the macro it has been created into. It can only be used inside this macro. Its name must be unique inside the macro it belongs to
  • A global variable can be accessed and used from any macro. Its name must be unique among all the 'global' variables


— Type: A variable can belong to 1 of the 4 following types: Boolean, Integer, Decimal or String.

  • Boolean type allows 2 states: True or False
  • Integer type is to store positive or negative numbers without decimal part, in order to make any kind of mathematical calculations or comparison
  • Decimal type is to store any positive or negative numeric value, with or without decimal digits, in order to make any kind of mathematical calculations or comparison
  • String type contains any kind of character (alphanumeric ones or any special ones, such as line feed/carriage return/new line or emojis). The amount of characters a string variable can contain depends on your memory device capacity. HINT: to avoid memory saturation with string variables containing a huge amount of data, it's better to reset them (set to empty string) at the end of the macro using them.


'Set variable' action allows to store a specific value to a given variable. This variable has to be selected among all the available variables or created by selecting the first item of the list called [New Variable]. In this case, you'll be asked what category, name and type have to be assigned to this new variable (see above).

According to its type (see above), you can choose a value or method to be assigned to among a list of methods:

— For Boolean variables:

  • False or True value
  • invert current value
  • prompt at execution time
  • another variable value

— For Numeric variables (Integer or Decimal):

  • fixed value
  • random value
  • prompt at execution time
  • mathematical expression
  • in addition, Integer type variables have 2 other kinds of settings: adding or subtracting 1 to current value (same as mathematical expression 'my_integer_variable +/- 1' but more convenient when incrementing/decrementing an index by step of 1)

— For String variables:

  • fixed value (including concatenated string variables contents)
  • prompt at execution time