From RPTools Wiki
Jump to navigation Jump to search

getMatchingLibProperties() Function

Introduced in version 1.3b54
Returns a String List or JSON Array with names of the Token Properties on a specific Library Token that match the given pattern.


getMatchingLibProperties(pattern, lib)
getMatchingLibProperties(pattern, lib, delim)


  • pattern - A regular expression(regex) that represents the pattern the properties should match.
  • lib - The name of the Library Token that is checked for properties that match. It defaults to the Library Token the macro is running on.
  • delim - The delimiter used in the String List that is returned. It defaults to ",". The return value is a JSON Array if "json" is specified.


Assuming that you have a Library Token named Lib:Items that contained a list of all the items and their detail in your campaign stored as Token properties names with the following format Type:Item Name (for example Weapon:Longsword), you could use the following code to loop through all the weapons:
[foreach(item, getMatchingLibProperties("Weapon:.*", "Lib:Items")): {
    <!-- Do something really exciting here -->

Or use the following to loop through all the armor:

[foreach(item, getMatchingLibProperties("Armor:.*", "Lib:Items")): {
    <!-- Do something really exciting here -->

Or even all the armor and all the shields:

[foreach(item, getMatchingLibProperties("(Armor|Shield):.*", "Lib:Items")): {
    <!-- Do something really exciting here -->

See Also

Version Changes

Updated in 1.11: MTscript functions for acting on library tokens have been modified to also work on Add-on libraries. This modification allows the namespace of the add-on library to be used where the Lib: token name would normally appear. For example,

[h: getMatchingLibProperties("(Armor|Shield):.*", "")]