Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
Create a free account

Replacing all my Abilities with keyed Macros

May 09 (11 years ago)
Tom
Plus
Sheet Author
Something I've been thinking about for a while now, since my "abilities" list grew above five choices, has been to key all my character abilities off of macros. That is, rather than having a stable full of NPCs and monsters each with their own "melee attack" ability, their ability will now read simply: "#melee-attack", and tap a macro. So now, instead of having to change 30 abilities when I get to tweaking/editing/fixing, I only have to fix one. As long as the name remains the same, it should work. I don't know why I haven't been doing this from the beginning – it's probably something every newb on Roll20 figured out months ago while I've been making life hard on myself.

I started playing with this today. It looks like the only thing I have to change is change my attribute to read "@{selected|Strength}" instead of "@{Strength}." Is that right? Is there anything else I need to be watchful of?

Are there any cool tricks I can do with this? Can I set up a character ability to run a macro and augment it? Or does the macro need to be self contained? For instance, can I run a macro through a character ability (#macro) but add a modifier? (#macro+2, or something ridiculously similar)

Thanks!
The main thing to watch for is to make sure the tokens are bound to the character sheet correctly if you're going to use Macros.
If you set them up as a Character Ability on the character sheet, instead, they'll always be associated with the character sheet's token and you can forgo the selected| part.

One of the things I like to do is include Queries in my macros.
It makes a pop-up show on every macro that has it, but it lets you inject circumstance bonus' and the like.

Simple Example:
/me Swings his sword! Huzzah!
Attack: [[ 1d20 + @{BAB} + @{Str} + ?{Bonus?|0} ]]

Damage: [[ 1d8 + @{Str} ]]
In that Ability, you would click on your token and then on the Ability at the top of your screen.
You'd be presented a pop-up asking "Bonus?"
You can hit enter to use the default value of "0" (the zero in ?{Bonus?|0})
Or you can enter a number instead.

In this example if I had Flanking bonus' I would hit the Ability and type "2" to have my attack roll include the bonus.
May 10 (11 years ago)
Tom
Plus
Sheet Author
Mark,

Thanks for the tips. I do lots of queries in my macros and abilities too. What I need to know is there a way to put these variables in the character ability, or do all of them need to be in the macro to work.

In other words, can I do something like: #melee-damage+?{bonus successes|0}-?{Dodge? Successes|0}

I don't think I can, but I'd like to know if you can do something like that.
May 10 (11 years ago)

Edited May 10 (11 years ago)
Paul S.
Sheet Author
API Scripter
I too use the ?{Modifier} in my macros now. Incredibly handy. However, you have to use different names for the ?{Modifier} if you've got a macro with multiple rolls, otherwise it will take the value for the first ?{Modifier} and apply it to all the rolls (and this can be a good thing actually).

Example
/em Shoots a rapid shot from point blank!

[[1d20+@{BAB}+@{Dex}+?{Modifier|0}]] for [[1d6+1+?{Modifier|0}]]
[[1d20+@{BAB}+@{Dex}+?{Modifier|0}]] for [[1d6+1+?{Modifier|0}]]

Using this setup would use a single modifier value for each roll. You can instead sub in ?{Hit Bonus|0} and ?{Damage Bonus|0}.

Hugely flexible and beneficial.

Using this format for macros - you can copy "character sheets" and just modify the relevant abilities (BAB, Dex, Str, etc...) and the macros are always up to date. Makes making mooks and even boss characters quick and easy.

edit:

You can also get fancier and add the 1d20r18r19r20 to auto-confirm crits - but I personally don't like this as it makes the output very confusing and can lead to "exploding" rolls (I've seen this hit "crit" rolls 5 times because 18s and 19s kept getting rolled).
May 10 (11 years ago)
Paul S.
Sheet Author
API Scripter

Tom said:

Mark,

Thanks for the tips. I do lots of queries in my macros and abilities too. What I need to know is there a way to put these variables in the character ability, or do all of them need to be in the macro to work.

In other words, can I do something like: #melee-damage+?{bonus successes|0}-?{Dodge? Successes|0}

I don't think I can, but I'd like to know if you can do something like that.


Bit confused about what you are trying to do here. That would seemingly ask for the "bonus successes" and subtract a "Dodge Successes". What would need to be linked to a character ability?
You can call an ability within a macro or chat window by using : %{Charactername|Abilityname}
Currently you do have to type out the full charactername (defined on the character sheet).
May 11 (11 years ago)
Tom
Plus
Sheet Author
Paul,

The way the Witch Hunter RPG handles damage is basically Ability (Strength or Agility) + Weapon Damage Dice + Bonus Successes (over what you needed to hit). This creates your dice pool. A character who is hit can opt to Parry (melee) or Dodge (ranged), with each success reducing the damage pool accordingly.

Since I'm purely macro-based (no API), I have my damage macro set up like this:

/roll [[(@{Strength}+?{Damage Modifier|1}+?{Bonus Successes})-?{Dodge? Successes|0}]]d10!10

Lots of prompts, but it gets the job done.
May 11 (11 years ago)
Paul S.
Sheet Author
API Scripter
Well that is quite a bit more complex then. You can use @{target|AC} and %{target|Defense} - but in a system that counts successes I don't think this will work for you. If it were simple roll vs AC and Defense it might work out. Still thinking some sort of API script would be needed for this. I've almost got it with a nested macro - but not quite.

In this instance, AC is an attribute on a character sheet and Defense is an ability (macro) formatted as [[3d6+....]]

Don't format the Defense "ability" (macro) as /r 3d6+... ... This wont work when calling Defense in a nested macro.

so - the roll format would look something like:

[[3d6+@{Str}+?{Hit Mod}]] vs @{target|AC}
If chooses to target dodges/parries his result is %{target|Defense}

Having that in one macro rolls your To Hit and reports the target's AC so you can directly compare. Then it also rolls the target's defense roll for it. You'd just have to compare the results.

Now - if your game system just counts successes vs a target number (AC) ... you could format as:

/r 3d6>@{target|AC}

or with modifiers:

/r {3d6+@Str+?{Hit Mod} }>@{target|AC}


I hope this helps a bit.



May 11 (11 years ago)
Paul S.
Sheet Author
API Scripter
And note - the above ... when I use "target" in the macro I really mean just use "target" ... you don't have to type in the full name for each character. It will prompt you to click on a target when you hit the macro button.

This requires that your targets are tokens with character sheets associated. I guess I should call them character handouts as character sheets are their own beast now.
May 11 (11 years ago)
Paul S.
Sheet Author
API Scripter
And holy crap I just read up on the dice rolling for Witch Hunter RPG - bit more complex than even I imagined.

So - if I understand correctly - your roll a certain number of d10's and for every d10 greater than 7 - you have a success. Or in an attack - every d10 greater than AC?

So - walk me thru this so I can determine the best way forward:

HERO wants to hit BBEG.

He swings a sword. How is the number of d10 rolled calculated? Is it a static number or does it change?

This then gets compared to BBEG's AC or Defense Rating or Whatever - correct? And every d10 OVER the BBEG's AC is a success?

BUT - a BBEG can Dodge/Parry/Block/Whatever and that is a separate roll of Xd10. How is the BBEG's # of d10s calculated? Is it static or does it change?

I have a feeling I can whip up a macro (or set of macros) that can get darn close to doing what you want depending on the answers to these questions.
May 12 (11 years ago)
Tom
Plus
Sheet Author
Paul,

It's really not that complicated. No more so, really, than 7th Sea or Savage Worlds. Bookkeeping feels about even with 7th Sea. My understanding is the system has a lot of World of Darkness vibe, but I can't attest to that as I've purposefully played very little WoD/nWoD.

Basic die rolls work like this: Roll # of d10s equal to your skill plus ability. Count the 7s. If you score as many or more successes that the Difficulty the GM has set for the task, you succeed. Pretty much blog-standard dice pool system.

Combat works pretty much the same way: Roll a # of d10s equal to your combat skill plus ability (usually Strength for melee, Agility for Ranged), minus the complication of your weapon (usually 1–3). Count your successes and compare it to the target's Avoidance rating. If you meet or exceed that score, you hit. Excess successes are added to your damage pool.

The Damage Pool: Roll a # of d10s equal to your Ability, plus the weapon's damage modifier (usually 1-4) and any excess successes you rolled in your attack, minus the target's Armor rating (usually 1–3). Count your successes. You do 1 point of damage for each success.

The Dodge/Parry roll: Players get a # of actions they can perform each combat round (1 complex or 2 quick actions). If they have any quick actions left over when the villain attacks, they can attempt a parry (for melee attacks) or dodge (ranged). They roll their Reflexes+Agility dice and count these successes. The villain's damage pool is reduced by this amount of dice, on top of whatever the armor score reduced it by.

If that sounds complicated, it's only because negative modifiers remove dice from your dice pool, not successes from your roll.

So there is a bit of counting involved on the table top. I'm sure an API script could automate all of this and you'd get results instantly. But since we're only using macros it can make for a lot of prompts. I could make a it look a lot less complicated like this:

/roll [[?{damage dice pool|1}-?{defense modifiers|0}

This puts all the figuring on the shoulders of the players and would probably make for a faster process. But since we're all new to the system, it felt better to put all the steps in there.

The macros I have already work just fine. So I don't need any third party fixes (unless you want to volunteer to help do the CSS formatting on our character sheet in about a month and a half! :)). In fact, here's a link to my macro/ability bible:

https://www.dropbox.com/s/rltgrywc00kko53/character%20journal.docx

You can see a lot of the work I've put into there. My plan is to use the character sheet design process to clean up all the mess and make things leaner and meaner, which is in part why I started this thread.

See, what I'd really like to do is get rid of all of those abilities – especially for my monster/villain templates – and make them macros. Then, for the ability, it would just execute the macro (ie. Melee-Attack Ability is #Melee-Attack). That way, if I find something that is broken or doesn't work, I only have to fix it once and everything updates. I don't have to remember to go through my archives and update Werewolf v42's abilities because I've tweaked my basic melee-attack ability. Just update the macro and everything else fixes itself.

The catch is, for this to work without some headaches, I'd need to me able to augment a macro while executing it remotely. By that I mean, using the damage macro example, I could set up a pretty basic macro for a damage attack, but add the weapon damage as part of the character ability.

So the melee-damage macro might look like this:
/roll [[?{bonus successes|0}-?{Dodge? Successes|0}]]d10!10

The monster ability might look like this:
#melee-damage+6

I don't think I can do that. But there might be a trick to it someone else has figured out.
May 13 (11 years ago)
Paul S.
Sheet Author
API Scripter
Ok Tom. Thought in your first post you were asking for assistance. I see you got it covered.
May 13 (11 years ago)
Tom
Plus
Sheet Author
Paul,

i was, just assistance on a different matter. :)

Sorry. Didn't mean to come off as rude.