When using variables in Roll20 macros, you use a Roll Query to assign a string value to an input variable. The general syntax is as follows:
?{Variable|Option1,Value1|Option2,Value2|...}
In your original macro, it queries for the same input variable multiple times. The variable "Save" and variable "Save_type" are not independent; why should the macro treat them independently?
Instead, if you want only one prompt, then you should write the macro so that the variable "Save" corresponds to much output as possible (or at least, as much output that it would affect) in one big consecutive string.
I would write your macro as shown below, where it queries for the variable "Save" once, and then each of six options corresponds to a different string value. Then each string is the code that the macro parser will evaluate and print.
@{selected|token_name} rolls a ?{Save
|STR,[[1d20+@{selected|strength_save_bonus}]]/[[1d20+@{selected|strength_save_bonus}]] for a strength
|DEX,[[1d20+@{selected|dexterity_save_bonus}]]/[[1d20+@{selected|dexterity_save_bonus}]] for a dexterity
|CON,[[1d20+@{selected|constitution_save_bonus}]]/[[1d20+@{selected|constitution_save_bonus}]] for a constitution
|INT,[[1d20+@{selected|intelligence_save_bonus}]]/[[1d20+@{selected|intelligence_save_bonus}]] for an intelligence
|WIS,[[1d20+@{selected|wisdom_save_bonus}]]/[[1d20+@{selected|wisdom_save_bonus}]] for a wisdom
|CHA,[[1d20+@{selected|charisma_save_bonus}]]/[[1d20+@{selected|charisma_save_bonus}]] for a charisma } save!
I'm going to give the solution I came up with following some experimenting with my player following the game. It isn't perfect and somewhat mitigates the challenge of darkness but seems to be the best compromise to increase player enjoyment.
Give all players a 3ft Light Source
Under token settings set each player's token to emit a 3ft light source that only they can see, also set the dim start point to 0ft so the only dim light is emitted. This allows them to see halfway into the next square and identify where their allies are to move cooperatively. They can see:
. L X D . . . . . . L X D . . . . . . L X . . . . . . L L . . .
. . . . . . . . => . . . . . . . . => . . . . D . . . => . . . . X . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . D . . .
X = player token (low light vision), L = Ally with Low light vision, D = Ally with Darkvision
Advantages to this solution
- Simple to implement
- Allows players to work cooperatively
- Requires no management from the GM
Drawbacks
- Also allows players to see enemies they potentially shouldn't be able to see
Why 3ft?
I choose 3ft after some trial and error testing with my players. Initially I went with 5ft but with the way Roll20 blend light into darkness this actually enabled them to see into squares that were 10ft away. Next I tried 2ft but the range was so short players had difficulty seeing tokens in diagonal squares. 3ft seems to be a happy medium that only reveals as much as they need of the adjacent squares.
Conclusion
Overall I plan to use this solution going forward as it provide a good balance between player enjoyment and the challenge of darkness management.
Best Answer
The &{tracker} syntax to automatically roll a token into the turn tracker does not work for multiple selected tokens. As you've discovered, only one of the selected tokens will be added.
Your only options are to roll each token separately (which shouldn't take too long if you've got a macro set up), or use the API, which can easily add multiple objects to the turn tracker at once (including rolling their initiative). Unfortunately, the API requires that the campaign owner has a Mentor subscription.