Everything put in chat together is evaluated in the chat before being sent to the API. If you did something like: !do-a-thing --to|some_attr
!use-an-attr @{selected|some_attr}
/desc I did something with @{selected|some_attr} The @{selected|some_attr} references would get evaluated first: !do-a-thing --to|some_attr
!use-an-attr 23
/desc I did something with 23 Then they would be submitted. The /desc would get processed and applied first, each of the API calls would get evaluated in turn afterward (asynchronous because it's happening on the API server a ways away). assuming output from each, it might look like: I did something with 23
Did a thing, now have 22.
Use an attr with value 23! There are two ways to deal with this: 1) pre-apply the changes in the commands: !do-a-thing --to|some_attr
!use-an-attr [[@{selected|some_attr}-1]]
/desc I did something with [[@{selected|some_attr}-1]] 2) use only API scripts, and only use ones that take a name of the attribute, and resolve it on the API side: !do-a-thing --to|some_attr
!use-an-attr @{selected|character_id} some_attr
!make-desc I did something with {selected|some_attr} That said, there might be some issues with that depending on what scripts you're using.