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 .
×

Converting macros to abilities in Macro Mule breaks something without errors

1774246816

Edited 1774247174
Hi! I am trying to get something going for our homebrew Mutant Chronicles (MC) games in order to speed up combat. Our DM's account is "Plus", not PRO.  IMPORTANT: all of the stuff below was done in a legacy game. The jists of the MC system is: you use a skill value (SV), apply penalties/bonuses and get a target number. Roll a d20 (lower is better, 20 always a fumble), and depending on the difference between your roll and the target number, you score a critical, heavy, medium or light hit. Each weapon has a fumble/light/medium/heavy/crit  (F/L/M/H/C)  damage value. You roll on a d12 to see which body part you hit. For each attack, you deduct any armor value of the specific body part to the damage, except 1d4-1 (min 0).  Some weapons, ex: grenades, work slightly different in that you roll with your thrown skill to see if you throw it where you intended to and each target gets hits in a certain number of body parts (target areas) for a number of dice (depending on grenade type, but let's say 2d8) using 1 armor deduction (1d4-1) for all body parts. One important thing to note, is that determining fumble/light/medium/heavy/crit is not from a formula, but from a chart the DM has. What we wanted: 1) We wanted to speed up combat, so if we could get all in a single click: the d20 roll, the result (F/L/M/H/C), the hit location and armor deductions for normal gun fire and melee damage, that would be awesome! 2) What takes a lot of time are explosions (grenades, rocket launchers and grenade launchers), so we wanted to get as much of the info from as few clicks as possible: the initial d20 to hit where you wanted to land the projectile, the result (F/L/M/H/C), the armor deduction (1d4-1), the blast radius in squares (called SR),  the target areas number (body parts hit) and the damage to each (2d8 for example). Keep in mind that there could be 1 to 23 (random high number) targets caught in the explosion.  What I was able to do: I have created rollable tables for each attack skill value (minus a few that we never use) called: attack6 -> attack50. In each, I add 20 entries of equal weight and add: (1) Crit, (2) Heavy, (3) Medium, (4) Medium, (5) Medium, (6) Light, (7) Miss, (8) Miss,   (9) Miss,   (10) Miss,   (11) Miss,   (12) Miss,   (13) Miss,   (14) Miss,   (15) Miss,   (16) Miss,   (17) Miss,   (18) Miss,   (19) Miss,   (20) Fumble It's a lot of work, we COULD group the same results together and adjust weights, but as players, we NEED to know how we rolled ;-)  Then I created macros (visible to all players) to call each one (precision, some armor deduction of melee weapons can be 1d8-1, so I have both here, we pick the one relevant): &{template:default} {{name=Attack(6)}} {{ (Roll) SuccessLevel=[[1t[attack6] ]]}} {{Location=[[1t[HitLocation] ]]}} {{Armor Deduction=1d4-1: [[ {1d4-1, 0d0+1}kh1 ]] 1d8-1: [[ {1d8-1, 0d0+1}kh1 ]]}} Then, for grenades, I created GrenadeRegular macro (see below for code). It is visible to all. It has a nice touch in that it includes a clickable call to itself, that way it's easy to roll for damage to extra targets caught in the blast area! &{template:default} {{name=Regular Grenade}} {{SR=2}}  {{Armor Deduction=[[ {1d4-1, 0d0+1}kh1 ]]}}  {{TargetAreas=[[1d3+1]]}} {{Area1=[[2d8]] to [[1t[HitLocation] ]]}} {{Area2=[[2d8]] to [[1t[HitLocation] ]]}} {{Area3=[[2d8]] to [[1t[HitLocation] ]]}} {{Area4=[[2d8]] to [[1t[HitLocation] ]]}} {{=[EXTRA TARGET](`#GrenadeRegular)}} Then I created a CombatHelper macro, visible to all, to display a Menu of all the things you can do: It has all attack skill values, all normal skills and then multiple explosive weapon types. I also included some dice heavy spells (the MC version of mass heal kind of thing). The macro is monstreous, here it is and abbreviated code below: &{template:default} {{name=Macro Combat Helper}} {{Attacks=[6](`#Attack06) }} {{Grenades=[Regular](`#GrenadeRegular)}}  Final touch, I added a character in the journal for each PC character (we are 2 players, playing 2 characters each). 1 of each player's character has an ability  called:  CombatHelper, that whispers the CombatHelper macro to himself so it doesn't polute the chat logs for everyone: /w fish #CombatHelper  I think this will speed up combat a bunch. It all works relatively well with the complicated MC system and the fact that we can't use the API calls. There seem to be 2 problems with what I have so far: 1) I (a player) created these in a test game. These macros seems to be linked to my account, since the DM cannot see them. 2) When we'll want to use these in another campaign, it'll be a pain to move everything to the new game I've been researching and it seems the best way to go around this is to use a MacroMule character. I've tried to get it going but I cannot get it to work.  If I could get things going for a single one, I bet I could figure the rest out. In my MacroMule character, I added 2 abilities: Attack06 and CombatHelper (I'll only show a short very of CombatHelper). MacroMule:CombatHelper  (Show in macro bar checked) &{template:default} {{name=Macro Combat Helper}} {{Attacks=[6](`%{MacroMule|Attack06}) }} {{Grenades=[Regular](`%{MacroMule|GrenadeRegular}) }}  MacroMule:Attack06 &{template:default} {{name=Macro Attack(6)}} {{ (Roll) SuccessLevel=[[1t[attack6] ]]}} {{Location=[[1t[HitLocation] ]]}} {{Armor Deduction=1d4-1: [[ {1d4-1, 0d0+1}kh1 ]] 1d8-1: [[ {1d8-1, 0d0+1}kh1 ]]}} MacroMule:GrenadeRegular &{template:default} {{name=Regular Grenade}} {{SR=2}}  {{Armor Deduction=[[ {1d4-1, 0d0+1}kh1 ]]}}  {{TargetAreas=[[1d3+1]]}} {{Area1=[[2d8]] to [[1t[HitLocation] ]]}} {{Area2=[[2d8]] to [[1t[HitLocation] ]]}} {{Area3=[[2d8]] to [[1t[HitLocation] ]]}} {{Area4=[[2d8]] to [[1t[HitLocation] ]]}} {{=[EXTRA TARGET](`%{MacroMule|GrenadeRegular})}} In one of the character, I created the CombatHelperMule ability in order to whisper it to the player: /w fish %{MacroMule|CombatHelper} When I click on the MyPlayer :CombatHelper Mule or MacroMule:CombatHelper button my menu bar (bottom left), the only thing that is printed in the chat window is the title. There is no error though:  Am-I missing something as far as the macroMule is concerned? Any ideas how I could of implemented all of this homebrew MC system in a more efficient manner? I'm all ears! Thanks for reading until the end, David
1774288571

Edited 1774288590
Gauss
Forum Champion
Hi David P.,  I don't see anything immediately wrong with your setup. Could you PM me an invite and I can come do some testing?
I've asked our actual GM to promote you, because I cannot see to be able to do it (I'm usually just a player in these games). Sorry for the delay but thank you so much for taking a quick look! David
1774586825
Gauss
Forum Champion
I took a look, the problem is in your code for the Chat Menu buttons.  Collection tab macro: [Buttonname](`#collection tab macro name) note the "`#" here.  Ability (character) macro:  [Buttonname](~charactername|Ability macro name) An Ability macro normally has the construction of:  %{Charactername|Ability macro name} But when you put it into a Chat Menu you drop the % and { } %{stuff} turns into (~stuff) I fixed the CombatHelper Ability macro, I leave it to you to fix the GrenadeRegular Ability macro. 
Oh wow, Gauss! Thank you so much! I'm running out for work but will take a closer look at this later today.  I figured I was missing something important.  Cheers! David
Hi Gauss, I have noticed a significant lag when using abilities in a Macro Player vs Collection/Macros. Clicking on the "regular grenade" abilities takes about 8 seconds before anything is displayed on screen whereas with macros it was instantaneous.  Is this normal? David
Scratch that, not sure what was going on, but I copied over my original macro instead and ajusted to call the Macro Player instead and it works fine and is just as fast! Cheers, David