Character Vault
Any Concept / Any System
Compendium
Your System Come To Life
Roll20 for Android
Streamlined for your Tablet
Roll20 for iPad
Streamlined for your Tablet

Personal tools

Difference between revisions of "Script:Fetch"

From Roll20 Wiki

Jump to: navigation, search
m
m (transclude from Tim)
Line 1: Line 1:
#REDIRECT [[User:5962076]]
+
<noinclude>{{revdate}} {{main|Meta-Toolbox}}</noinclude>
 +
'''{{fpl|10005732/ Fetch}}''' offers a unified syntax to expand the amount of things that can be retrieved with simple [[token]] or [[macros|sheet calls]]. You can retrieve any token property, sheet attribute, or [[Repeating Section|repeating attribute]].
 +
* {{fpl|10422196/ (Meta Script) Fetch (Thread 2)}}
 +
<pre style="overflow:auto;white-space:pre-wrap;">Token property : @(selected.currentside)
 +
Sheet Attribute: @(selected.Strength)
 +
Sheet Attribute: @(Bob the Hirsute.Strength.max)
 +
Repeating Attr : *(Englebert Slaptiback.spells.[spell_name~Fireball prepared].spell_roll)</pre>
 +
 
 +
It also expands the source of the returned sheet item to include "speaker".
 +
 
 +
<pre style="overflow:auto;white-space:pre-wrap;">@(speaker.Strength.max)</pre>
 +
 
 +
... and can return the rowID of a repeating attribute, the row number ($0), or the name of either brand of reference.
 +
 
 +
Not only do these offer the advantage of not breaking the chat message if they don't exist (the way a standard token or sheet item call would), they also give you the ability to substitute in a default value should the one you are looking for not exist:
 +
 
 +
<pre style="overflow:auto;white-space:pre-wrap;">@(The President of Burundi.Coffee[default value here])</pre>
 +
 
 +
'''Syntax:'''
 +
<pre style="overflow:auto;white-space:pre-wrap;">
 +
@(selected.token_id)                                              => token id of selected
 +
@(Bob.Strength)                                                  => attribute of character
 +
@(speaker.Strength)                                              => attribute of current speaking character
 +
@(Bob.Strength.max)                                              => max value
 +
@(Bob|Strength|max)                                              => pipes or periods work
 +
@(Bob.Strength[0])                                                => default value if Strength doesn't exist
 +
@(Bob.Strength.max[0])                                            => default value if max value of Strength doesn't exist
 +
*(Bob.spells.[name="Glitter Storm" prepared].spelllevel)          => repeating attribute from spells list where the name sub-attribute
 +
                                                                    is "Glitter Storm" and the spell is prepared, returns the
 +
                                                                    spelllevel sub-attribute
 +
*(Bob.spells.[name~Glitter prepared].spelllevel.name)            => where the name sub-attribute includes the text "Glitter",
 +
                                                                    return the full name of the spelllevel sub-attribute
 +
*(Bob.spells.[name~Storm name!~Glitter].spelllevel.rowid)        => where the name sub-attribute includes "Storm" but not "Glitter",
 +
                                                                    whether or not the spell is prepared; return the rowid
 +
*(Bob.spells.[name~Glitter prepared].spelllevel.row$)            => where name includes "Glitter" and is prepared, return the row number (i.e., $1)
 +
*(Bob.spells.[name~Glitter prepared].spelllevel.name$)            => where name includes "Glitter" and is prepared, return the name using the row number
 +
*(Bob.spells.[name~Glitter prepared].spelllevel.name[not found])  => including a default value</pre>
 +
<noinclude>
 +
==Meta-Toolbox Examples==
 +
{{:Meta-Toolbox/Examples}}
 +
==Other APIs==
 +
* [[ChatSetAttr]]
 +
* [[ScriptCards]]
 +
* [[TokenMod]]
 
[[Category:API Meta Scripts]]
 
[[Category:API Meta Scripts]]
 
[[Category:User API Scripts]]
 
[[Category:User API Scripts]]
[[Category:Macros]]
+
[[Category:Macros]]</noinclude>

Revision as of 08:10, 14 February 2022

Main Page: Meta-Toolbox

Fetch(Forum) offers a unified syntax to expand the amount of things that can be retrieved with simple token or sheet calls. You can retrieve any token property, sheet attribute, or repeating attribute.

Token property : @(selected.currentside)
Sheet Attribute: @(selected.Strength)
Sheet Attribute: @(Bob the Hirsute.Strength.max)
Repeating Attr : *(Englebert Slaptiback.spells.[spell_name~Fireball prepared].spell_roll)

It also expands the source of the returned sheet item to include "speaker".

@(speaker.Strength.max)

... and can return the rowID of a repeating attribute, the row number ($0), or the name of either brand of reference.

Not only do these offer the advantage of not breaking the chat message if they don't exist (the way a standard token or sheet item call would), they also give you the ability to substitute in a default value should the one you are looking for not exist:

@(The President of Burundi.Coffee[default value here])

Syntax:

@(selected.token_id)                                              => token id of selected
@(Bob.Strength)                                                   => attribute of character
@(speaker.Strength)                                               => attribute of current speaking character
@(Bob.Strength.max)                                               => max value
@(Bob|Strength|max)                                               => pipes or periods work
@(Bob.Strength[0])                                                => default value if Strength doesn't exist
@(Bob.Strength.max[0])                                            => default value if max value of Strength doesn't exist
*(Bob.spells.[name="Glitter Storm" prepared].spelllevel)          => repeating attribute from spells list where the name sub-attribute
                                                                     is "Glitter Storm" and the spell is prepared, returns the
                                                                     spelllevel sub-attribute
*(Bob.spells.[name~Glitter prepared].spelllevel.name)             => where the name sub-attribute includes the text "Glitter",
                                                                     return the full name of the spelllevel sub-attribute
*(Bob.spells.[name~Storm name!~Glitter].spelllevel.rowid)         => where the name sub-attribute includes "Storm" but not "Glitter",
                                                                     whether or not the spell is prepared; return the rowid
*(Bob.spells.[name~Glitter prepared].spelllevel.row$)             => where name includes "Glitter" and is prepared, return the row number (i.e., $1)
*(Bob.spells.[name~Glitter prepared].spelllevel.name$)            => where name includes "Glitter" and is prepared, return the name using the row number
*(Bob.spells.[name~Glitter prepared].spelllevel.name[not found])  => including a default value

Meta-Toolbox Examples

Examples using one or more Meta-Toolbox APIs

Other APIs