Skip to content
Nathan Wolf edited this page May 19, 2020 · 3 revisions

Magic supports variables that can be defined and modified by spells.

Creating and Setting Variables

The ModifyVariable action is used to create a variable or update its value.

This action has the following parameters:

  • variable : The name of the variable to modify
  • default : The value to set the variable to initially. This only happens once, on the first cast of a spell using a variable
  • value : The value to update the variable to. This can include references to variables (including this one), attributes or placeholders
  • clear : Set to true to reset this variable so it will get its default value on next use.

Example

This will increment a variable on each cast, starting at 10:

        actions:
        - class: ModifyVariable
          variable: count
          default: 10
          value: "count + 1"

Using Variables

Variables can be used in spell parameters, CheckRequirements, and Message and Command actions.

In parameters you simply refer to the variable by its name, such as count / 4.

In Message and Command actions you can refer to a variable two different ways:

  • $variable : This will output a floating-point representation of the variable, such as 40.3
  • @variable : This will round the variable down and output an integer representation, such as 40

Example

Here is an example of punishing a player after having cast a spell too many times:

      - class: CheckRequirements
        requirements:
          - variables:
            - variable: count
              min: 50
        actions:
          - class: Message
            message: "You have cast this @count times, it's too much!"
          - class: Damage
            damage: "count / 4"

Scope

Variables can have different "scopes". A scope defines how long a variable lasts and what can see and modify that variable. This is set via the scope parameter of the ModifyVariable action.

Available scopes include:

  • cast : (The default) This variable will only last for one spell cast and can not be seen by other casts.
  • spell : This variable can only be seen by this specific spell, but survives across multiple casts
  • mage : This variable can be seen by any spell casts from this player. These work very similarly to attributes.

Full Examples

See the variables folder for several working examples.

Clone this wiki locally