From RPTools Wiki
Jump to navigation Jump to search

setMacroProps() Function

Introduced in version 1.3b48
Sets the properties for the specified Macro Button on the given token. The properties are passed to this function as a String Property List. This function accepts either a Macro Button Index or the label of a Macro Button. If it is a label, then all Macro Buttons on the token with a matching label are changed.


setMacroProps(index, props)
setMacroProps(index, props, delim)
setMacroProps(index, props, delim, id)
setMacroProps(index, props, delim, id, mapname)
setMacroProps(label, props)
setMacroProps(label, props, delim)
setMacroProps(label, props, delim, id)
setMacroProps(label, props, delim, id, mapname)


  • index - The index of the macro button.
  • label - The label of the macro button.
  • props - A String Property List or JSON Object containing the properties for the button.
  • delim - The delimiter used in the String Property List that is used in the props parameter. Defaults to ";" (semicolon) and can be omitted if you are sending a JSON Object as the props parameter. If you are sending a JSON object as the props parameter, and using the id parameter, you can set this to "json".
  • id - OPTIONAL: The token id of the token that the macro button is located on. From v1.15, accepts "campaign" and "gm" as ids for the relevant panels.

     Note: This parameter can only be used in a Trusted Macro

  • mapname - The name of the map to find the token. Defaults to the current map.


Changes the macro button to be red with white text. First one is by index and the second one by label (name).
[h: setMacroProps(1, "color=red;fontColor=white")]
[h: setMacroProps("Attack", "color=red;fontColor=white")]

Somewhat silly example that changes the label (name) of the currently executing macro to the current time and randomly changes the button color.

[h: color = listGet("Red, Blue, Green, White, Yellow, Orange", 1d6-1)]
[h: index = getMacroIndexes(getMacroName())]
[h: dt = json.get(getInfo("server"), "timeDate")]
[h: time = listGet(dt, 1, " ")]
[h: myProps = setStrProp("", "label", time)]
[h: myProps = setStrProp(myProps, "color", color)]
[h: setMacroProps(index, myprops)]

Version Changes

  • 1.3b49 - Added ability for props to accept a JSON object.
  • 1.3b51 - Added id parameter option.
  • 1.3b53 - Added ability for command, compare, playerEditable, applyToSelected, autoExecute, group, and tooltip parameters.
  • 1.5.11 - Added mapname parameter option.
  • 1.15 - Addition of "gm" and "campaign" options for id