setMacroProps
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.
Usage
setMacroProps(index, props)
setMacroProps(index, props, delim)
setMacroProps(index, props, delim, id)
setMacroProps(index, props, delim, id, mapRef)
setMacroProps(label, props)
setMacroProps(label, props, delim)
setMacroProps(label, props, delim, id)
setMacroProps(label, props, delim, id, mapRef)
Parameters
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.- See createMacro() for a complete list of properties.
delim
- The delimiter used in the String Property List that is used in theprops
parameter. Defaults to";"
(semicolon) and can be omitted if you are sending a JSON Object as theprops
parameter. If you are sending a JSON object as theprops
parameter, and using theid
parameter, you can set this to"json"
.id
- OPTIONAL: The tokenid
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.
mapRef
- The Name or ID of the map to find the token. Defaults to the current map.
Example
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
, andtooltip
parameters. - 1.5.11 - Added
mapname
parameter option. - 1.15 - Addition of "gm" and "campaign" options for id