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:ChatSetAttr"

From Roll20 Wiki

Jump to: navigation, search
m (add Readme link)
m
(15 intermediate revisions by 2 users not shown)
Line 2: Line 2:
 
|name=ChatSetAttr
 
|name=ChatSetAttr
 
|author={{user profile|726129|Jakob}}
 
|author={{user profile|726129|Jakob}}
|version=1.0
+
|version=1.10
|lastmodified=2016-10-04}}
+
|lastmodified=2020-09-07
 +
|conflicts= Possible for other scripts editing character stats}}
  
''ChatSetAttr'' allows you to create, modify, or delete characters' attributes via chat commands (or macros containg these commands). For now, documentation is only available in the forum thread or in the One-Click description.
+
{{notebox| '''The full documentation is available in the [https://github.com/Roll20/roll20-api-scripts/blob/master/ChatSetAttr/README.md Readme]''', and the One-Click Install description. This page is only a short overview(that might not be fully up to date) of the script.
 +
}}
 +
{{main|API:Script Index}}
  
[https://github.com/Roll20/roll20-api-scripts/blob/master/ChatSetAttr/README.md Readme]
+
'''ChatSetAttr''' allows you to create, modify, or delete characters' attributes via chat commands (or macros containing these commands). (Version 1.10 is newer than v1.9 and v.1.8.)
 +
 
 +
This script is a utility that allows the user to create, modify, or delete character attributes via chat messages or macros. There are several options that determine which attributes are modified, and which characters the attributes are modified for. You can also d
 +
 
 +
The script is called by the command
 +
 
 +
* <code>!setattr [--options]</code>, for creating or modifying attributes
 +
** <code>!modattr [--options]</code>, shorthand for modifying attributes
 +
* <code>!delattr [--options]</code>, for deleting attributes
 +
* '''<code>!setattr-config</code>''' is used posting the '''Global Configs''' to the chat, and to edit them
 +
<br>
 +
 
 +
=Documentation=
 +
This is a partial documentation. See the sidebar for general macro creation on roll20, which can be useful with making ChatSetAttr commands.{{NavMacroDocs}}
 +
==Selecting a target==
 +
One of the following options must be specified; they determine which characters are affected by the script.
 +
 
 +
* <code>--all</code> will affect all characters in the game. USE WITH CAUTION. This option will only work for the GM. If you have a large number of characters in your campaign, this will take a while to process all attribute changes.
 +
* <code>--allgm</code> will affect all characters which do not have a controlling player set, which typically will be every character that is not a player character. USE WITH CAUTION. This option will only work for the GM.
 +
* <code>--charid charid1, charid2, ...</code> allows you to supply a list of character ids, and will affect characters whose ids come from this list. Non-GM Players can only affect characters that they control.
 +
* <code>--name name1, name2, ...</code> allows you to supply a list of character names, and will look for a character with this name to affect. Non-GM Players can only affect characters that they control.
 +
* <code>--sel</code> will affect all characters that are represented by tokens you have currently selected.
 +
 
 +
==Examples==
 +
* <code>!setattr --sel --Strength|15</code> will set the Strength attribute for 15 for all selected characters.
 +
* <code>!setattr --name John --HP|17|27 --Dex|10</code> will set HP to 17 out of 27 and Dex to 10 for the character John (only one of them, if more than one character by this name exists).
 +
* <code>!delattr --all --gold</code> will delete the attribute called gold from all characters, if it exists.
 +
* <code>!setattr --sel --mod --Strength|5</code> will increase the Strength attribute of all selected characters by 5, provided that Strength is either empty or has a numerical value - it will fail to have an effect if, for example, Strength has the value 'Very big'.
 +
* <code>!setattr --sel --Ammo|%Ammo_max%</code> will reset the Ammo attribute for the selected characters back to its maximum value.
 +
* If the current value of attr1 is 3 and the current value of attr2 is 2, <code>!setattr --sel --evaluate --attr3|2*%attr1% + 7 - %attr2%</code> will set the current value of attr3 to 11.
 +
 
 +
 
 +
===Inline roll example===
 +
<code><nowiki>&{template:default} {{name=Cthulhu}} !modattr --silent --charid @{target|character\_id} --sanity|-{{Sanity damage=[[2d10+2]]}} --corruption|{{Corruption=Corruption increases by [[1]]}}!!! {{description=Text}}</nowiki></code>
 +
 
 +
This will decrease sanity by 2d10+2 and increase corruption by 1 for the character selected. More about [[Inline Rolls]].
 +
 
 +
==Global Configurations==
 +
There are three global configuration options which can be toggled either on the '''One Click Install'''-page, or by entering <code>!setattr-config</code> in chat.
 +
 
 +
* <code>playersCanModify</code>, will give players the possibility of modifying characters they don't control
 +
* <code>playersCanEvaluate</code>, will give players the possibility of  reading the stats of characters they don't control, with the <code>--evaluate</code> option
 +
* <code>useWorkers</code>, will determine if the script triggers sheet workers on use. Should normally be toggled on.
 +
 
 +
==Conflicts==
 +
This script might conflict with other API that edits character stats, but shouldn't be an issue unless some other script is made to automatically edit same stats as ChatSetAttr. If you have an Ammo Tracking script that reduces the ammo spent from the character, it shouldn't be a problem unless you also incorporated CharSetAttr into the diceroll.
 +
 
 +
=Examples by users=
 +
Add your own, more complete examples here so others can see them.
 +
 
 +
==Change A stat on all characters==
 +
[[Stargate#ChatSetAttr]] by [[Anduh|Andreas J.]]
 +
 
 +
<pre style="overflow:auto;white-space:pre-wrap;" data-language="javascript">
 +
!setattr --all --td|d8
 +
</pre>
 +
 
 +
Sets the value of the <code>td</code>-attribute to be <code>d8</code> for all character sheets. (<code>td</code> stands for "Tension Die", and it can have a value between d4 to d12, representing the general tension level of the session, so it's a shared value for all characters)
 +
 
 +
==Heal another character==
 +
[[Stargate#ChatSetAttr]] by [[Anduh|Andreas J.]]
 +
 
 +
Example of ChatSetAttr used inline within a normal char sheet roll.
 +
<pre style="overflow:auto;white-space:pre-wrap;" data-language="javascript">
 +
&{template:stargate} {{color=green}} {{title=Short Rest}} !modbattr --silent --charid @{target|character_id} --hp|{{Roll=[[@{target|hd}]]}}!!! {{desc=Rolls the Hit Dice and recovers that many Hit Points. }}
 +
</pre>
 +
 
 +
(Works when saved in a sheet's A&A tab, or is rolled for a roll button in a sheet.) This will prompt you to select a token, and then will roll that character's HD, and increase the characters HP by the result. Token must be [[Link Token|linked]] to a character sheet for this to work.
 +
 
 +
==Add new thing to Repeating Section==
 +
This is a complete example of how to add a new entry in a repeating section, along with populating it's stats at the same time. Can be useful as a template to add adding custom items to players quickly.
 +
 
 +
* The command makes the SetChatAttr message public, and describes the event with a custom description(that the item was picked up from the chest)
 +
* The command adds a new item(Cloak of Excellence, a custom magic item) to a selected character's inventory (Using [[D&D 5E by Roll20]] character sheet).
 +
* The item is equipped, and adds +2 AC & +1 to Saving Throws for the character, and has a custom description. The magic item is essentially a more powerful version of Cloak of Protection
 +
 
 +
<pre style="overflow:auto;white-space:pre-wrap;" data-language="javascript">
 +
!setattr --sel --fb-public --fb-header Aquiring Magic Item --fb-content The Cloak of Excellence from the chest by a character. --repeating_inventory_-CREATE_itemname|Cloak of Excellence --repeating_inventory_-CREATE_itemcount|1 --repeating_inventory_-CREATE_itemweight|3 --repeating_inventory_-CREATE_equipped|1 --repeating_inventory_-CREATE_itemmodifiers|Item Type: Wondrous item, AC +2, Saving Throws +1 --repeating_inventory_-CREATE_itemcontent|(Requires Attunment)A purple cape, that feels heavy to the touch, but light to carry. It has gnomish text embroiled near the collar.
 +
</pre>
 +
 
 +
=Links=
 +
* {{repo|Roll20/roll20-api-scripts/blob/master/ChatSetAttr/README.md Readme}}
 +
 
 +
* Forum threads related to the API script
 +
** {{forum|permalink/9168494/ ChatSetAttr Issues With Setting Values}} Sept 2020
 +
** {{forum|post/8002098/slug%7D On how to use the inline roll option}} Dec 2019
 +
** {{forum|post/8009227/chatsetattr-evaluate-syntax-help/ ChatSetAttr Evaluate Syntax Help}} Dec 2019
 +
** {{forum|post/8882359/slug%7D Issue with ChatSetAttr and sheetworkers (particularly, attr_ that are checkboxes)}} 2019
 +
** {{forum|permalink/6578447/ (Script Update) ChatSetAttr 1.8 – now with inline command support}} v.1.8 update, 2018-2019
 +
** [https://app.roll20.net/forum/post/3737514/script-chatsetattr-set-character-attributes-via-chat-messages/?pagenum=1 (Script) ChatSetAttr - set character attributes via chat messages] Original Forum thread, 2016-2018
 +
 
 +
=Related Pages=
 +
* '''[[Complete Guide to Macros & Rolls‎]]'''
 +
** {{Text Chat}} - where the roll results appear, & info on the common chat commands
 +
** [[Dice Reference]] - Comprehensive list of how the Roll20 dice-rolling syntax works, and list the features available
 +
** [[Order of Operations]]
 +
** [[Inline Rolls]]
 +
** [[Macros]] - How to create macros, and other info on how the Roll20 <span style="font-family:Pictos;">q</span>Text Chat works, like referencing stats on character sheets, roll queries, nesting macros & initiative
 +
*** [[Reusing Rolls]]
 +
** [[Roll Templates]] - a method of formatting roll results in the chat, with some extra functions
 +
** [[API]]''(Pro Only)'' - API commands can be used in the <span style="font-family:Pictos;">q</span>Text Chat
 +
* '''[[API:Script Index]]''' (partial) list of other APIs
 +
** [[Script:Ammo]] - another API used for updating stats, streamlined for handling ammo
 +
** [[Script:TokenMod]] - API for editing token settings & token bar values
 +
<br>
 +
<br>
 +
<br>
 +
<br>

Revision as of 12:51, 29 May 2021

API ScriptAuthor: Jakob
Version: 1.10
Last Modified: 2020-09-07
Code: ChatSetAttr
Dependencies: None
Conflicts: Possible for other scripts editing character stats

Main Page: API:Script Index

ChatSetAttr allows you to create, modify, or delete characters' attributes via chat commands (or macros containing these commands). (Version 1.10 is newer than v1.9 and v.1.8.)

This script is a utility that allows the user to create, modify, or delete character attributes via chat messages or macros. There are several options that determine which attributes are modified, and which characters the attributes are modified for. You can also d

The script is called by the command

  • !setattr [--options], for creating or modifying attributes
    • !modattr [--options], shorthand for modifying attributes
  • !delattr [--options], for deleting attributes
  • !setattr-config is used posting the Global Configs to the chat, and to edit them


Contents

Documentation

This is a partial documentation. See the sidebar for general macro creation on roll20, which can be useful with making ChatSetAttr commands.

Selecting a target

One of the following options must be specified; they determine which characters are affected by the script.

  • --all will affect all characters in the game. USE WITH CAUTION. This option will only work for the GM. If you have a large number of characters in your campaign, this will take a while to process all attribute changes.
  • --allgm will affect all characters which do not have a controlling player set, which typically will be every character that is not a player character. USE WITH CAUTION. This option will only work for the GM.
  • --charid charid1, charid2, ... allows you to supply a list of character ids, and will affect characters whose ids come from this list. Non-GM Players can only affect characters that they control.
  • --name name1, name2, ... allows you to supply a list of character names, and will look for a character with this name to affect. Non-GM Players can only affect characters that they control.
  • --sel will affect all characters that are represented by tokens you have currently selected.

Examples

  • !setattr --sel --Strength|15 will set the Strength attribute for 15 for all selected characters.
  • !setattr --name John --HP|17|27 --Dex|10 will set HP to 17 out of 27 and Dex to 10 for the character John (only one of them, if more than one character by this name exists).
  • !delattr --all --gold will delete the attribute called gold from all characters, if it exists.
  • !setattr --sel --mod --Strength|5 will increase the Strength attribute of all selected characters by 5, provided that Strength is either empty or has a numerical value - it will fail to have an effect if, for example, Strength has the value 'Very big'.
  • !setattr --sel --Ammo|%Ammo_max% will reset the Ammo attribute for the selected characters back to its maximum value.
  • If the current value of attr1 is 3 and the current value of attr2 is 2, !setattr --sel --evaluate --attr3|2*%attr1% + 7 - %attr2% will set the current value of attr3 to 11.


Inline roll example

&{template:default} {{name=Cthulhu}} !modattr --silent --charid @{target|character\_id} --sanity|-{{Sanity damage=[[2d10+2]]}} --corruption|{{Corruption=Corruption increases by [[1]]}}!!! {{description=Text}}

This will decrease sanity by 2d10+2 and increase corruption by 1 for the character selected. More about Inline Rolls.

Global Configurations

There are three global configuration options which can be toggled either on the One Click Install-page, or by entering !setattr-config in chat.

  • playersCanModify, will give players the possibility of modifying characters they don't control
  • playersCanEvaluate, will give players the possibility of reading the stats of characters they don't control, with the --evaluate option
  • useWorkers, will determine if the script triggers sheet workers on use. Should normally be toggled on.

Conflicts

This script might conflict with other API that edits character stats, but shouldn't be an issue unless some other script is made to automatically edit same stats as ChatSetAttr. If you have an Ammo Tracking script that reduces the ammo spent from the character, it shouldn't be a problem unless you also incorporated CharSetAttr into the diceroll.

Examples by users

Add your own, more complete examples here so others can see them.

Change A stat on all characters

Stargate#ChatSetAttr by Andreas J.

!setattr --all --td|d8

Sets the value of the td-attribute to be d8 for all character sheets. (td stands for "Tension Die", and it can have a value between d4 to d12, representing the general tension level of the session, so it's a shared value for all characters)

Heal another character

Stargate#ChatSetAttr by Andreas J.

Example of ChatSetAttr used inline within a normal char sheet roll.

&{template:stargate} {{color=green}} {{title=Short Rest}} !modbattr --silent --charid @{target|character_id} --hp|{{Roll=[[@{target|hd}]]}}!!! {{desc=Rolls the Hit Dice and recovers that many Hit Points. }}

(Works when saved in a sheet's A&A tab, or is rolled for a roll button in a sheet.) This will prompt you to select a token, and then will roll that character's HD, and increase the characters HP by the result. Token must be linked to a character sheet for this to work.

Add new thing to Repeating Section

This is a complete example of how to add a new entry in a repeating section, along with populating it's stats at the same time. Can be useful as a template to add adding custom items to players quickly.

  • The command makes the SetChatAttr message public, and describes the event with a custom description(that the item was picked up from the chest)
  • The command adds a new item(Cloak of Excellence, a custom magic item) to a selected character's inventory (Using D&D 5E by Roll20 character sheet).
  • The item is equipped, and adds +2 AC & +1 to Saving Throws for the character, and has a custom description. The magic item is essentially a more powerful version of Cloak of Protection
!setattr --sel --fb-public --fb-header Aquiring Magic Item --fb-content The Cloak of Excellence from the chest by a character. --repeating_inventory_-CREATE_itemname|Cloak of Excellence --repeating_inventory_-CREATE_itemcount|1 --repeating_inventory_-CREATE_itemweight|3 --repeating_inventory_-CREATE_equipped|1 --repeating_inventory_-CREATE_itemmodifiers|Item Type: Wondrous item, AC +2, Saving Throws +1 --repeating_inventory_-CREATE_itemcontent|(Requires Attunment)A purple cape, that feels heavy to the touch, but light to carry. It has gnomish text embroiled near the collar.

Links

Related Pages