• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

Tip - MQ2 React Collection

  • Thread starter Thread starter drwhomphd
  • Anyone can edit the first post of this thread WikiPost WikiPost
  • Start date Start date
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.
Try action: "/useitem Memento of the Ungod's Suffering "

I think that cleared the error, now I have a new one:

ZF:
action: "/disc Zlexak's Fang"
condition: ${Me.CombatState.Equal[COMBAT]} && ${Me.CombatAbilityReady[${Spell[Zlexak's Fang].RankName}]}

The error I am getting is under the condition. Any suggestions?
 
action: "/disc Zlexak's Fang"
condition: ${Me.CombatState.Equal[COMBAT]} && ${Me.CombatAbilityReady[Zlexak's Fang]}

I believe... Im forgetful about discs. but I could be wrong.
 
Well I seem to have got mine working. At least my Necro hasn't lich'd himself to death since!

Prior to that it was an ongoing saga, 'cause the cleric never had any mana as hard as I punish 'em going mob to mob.
 
Last edited:
This is what I use for SK 2h / 1h bandolier

INI:
YourServerNameHere:
  YourCharNameHere:
    ExampleReact: disabled
    BandOff: enabled
    BandDef: enabled
globals:
  GlobalExample: "${Me.CombatState.NotEqual[COMBAT]} && ${Me.PctHPs} <= 25"
reacts:
  ExampleReact:
    action: >-
      /multiline ; /echo Default Example react Disables itself when you're
      at 100%HP and out of Combat ; /delay 5 ; /react disable ExampleReact
    condition: "${Me.PctHPs} == 100 && ${Me.CombatState.NotEqual[COMBAT]}"
  BandOff:
    action: "/bandolier activate Offense"
    condition: "${Me.CombatState.Equal[COMBAT]} && ${Me.XTarget}< 3 && !${Target.Named} && ${Me.Buff[Defensive Proficiency].ID} && !${Select[${Target.ConColor},YELLOW,RED]}>=1"
  BandDef:
    action: "/bandolier activate Defense"
    condition: "${Me.CombatState.Equal[COMBAT]} && !${Me.Buff[Defensive Proficiency].ID} && (${Target.Named} || ${Me.XTarget}>2 || ${Select[${Target.ConColor},YELLOW,RED]}>=1)"
sleep_frames: 15
 
I use this for my warrior to swap between 2h/S&B, requires a bandolier set named 'sb' and '2h'. If he drops below 60% health, he puts a shield on until he gets to at least 80% health again. Not as fancy as the others posted, but it works fine for me.
YAML:
  SwordAndBoard:
    action: "/invoke ${Me.Bandolier[sb].Activate}"
    condition: "${Me.CombatState.Equal[COMBAT]} && ${Me.PctHPs} < 60 && !${Me.Bandolier[sb].Active}"
  TwoHander:
    action: "/invoke ${Me.Bandolier[2h].Activate}"
    condition: "${Me.PctHPs} >= 80 && ${Me.Bandolier[sb].Active}"
 
I like these tank ones, one thought I had was to add if I’m the targets target, anyone know the condition for that? Haven’t been able to find it. Thinking it’s helpful for when I’m not the current tank, I use offensive weps, but switch to board if I become the targets target.
 
I like these tank ones, one thought I had was to add if I’m the targets target, anyone know the condition for that? Haven’t been able to find it. Thinking it’s helpful for when I’m not the current tank, I use offensive weps, but switch to board if I become the targets target.

This should do what you need:
INI:
  BandDef2:
    action: /bandolier activate Defense
    condition: >-
      ${Me.TargetOfTarget.Name.Equal[${Me.CleanName}]}
  BandOff2:
    action: /bandolier activate Offense
    condition: >-
      ${Me.TargetOfTarget.Name.NotEqual[${Me.CleanName}]}
[/ICODE]
 
I use this for my warrior to swap between 2h/S&B, requires a bandolier set named 'sb' and '2h'. If he drops below 60% health, he puts a shield on until he gets to at least 80% health again. Not as fancy as the others posted, but it works fine for me.
YAML:
  SwordAndBoard:
    action: "/invoke ${Me.Bandolier[sb].Activate}"
    condition: "${Me.CombatState.Equal[COMBAT]} && ${Me.PctHPs} < 60 && !${Me.Bandolier[sb].Active}"
  TwoHander:
    action: "/invoke ${Me.Bandolier[2h].Activate}"
    condition: "${Me.PctHPs} >= 80 && ${Me.Bandolier[sb].Active}"

Good idea on the HP check, I added that to mine as well
 
I use this to save my puller from certain death when I have my mage in group:

INI:
  COHPuller:
    action: >-
      /multiline ; /mqpause on ;
      /docommand /${Me.Class.ShortName} pause on
      /delay 70 !${Me.Casting.ID} ;
      /target id ${Group.Puller.ID} ;
      /delay 70 ${Target.ID}==${Group.Puller.ID} ;
      /alt act 7050 ;
      /delay 70 ${Me.Casting.ID} ;
      /delay 70 !${Me.Casting.ID} ;
      /mqpause off ;
      /docommand /${Me.Class.ShortName} pause off ;
    condition: >-
      ${Group.Puller.Distance3D} > 175
      && ${Group.Puller.PctHPs} < 85
      && ${Me.AltAbilityReady[Call of the Hero]}
 
Added a few thing here and there. Hope someone can use.

[CODE lang="ini" title="INI"]globals:
Avatar: "${Me.Inventory[MainHand].Name.Find[Ancient]}"
BH: Complete Heal
BHP: 70
Cling: 40
NH: Healing Light
NHP: 80
NotCasting: "!${Me.Casting.ID}"
QH: Superior Healing
QHP: 80
Tank: "${Group.Member[0].MainTank}"
reacts:
Avatar:
action: /bandolier activate Avatar
condition: >-
!${Me.Buff[avatar].ID} && ${Spell[avatar].Stacks} && !${React.Global[Avatar]}
&& ${Me.CombatState.Equal[COMBAT]}
BHeal:
action: >-
/multiline ; /g Canceling ${React.Global[BH]} on ${Target.Name},
Not Enough Missing HPs ; /stopcast
condition: >-
${Cast.Effect.Name.Equal[${React.Global[BH]}]} && ${Target.PctHPs}
> ${React.Global[BHP]}
Bardswap:
action: /multiline ; /bardswap ; /bardswap melee
condition: "!${BardSwap.Swapping}"
Berate:
action: /doability Berate
condition: >-
${Me.CombatState.Equal[COMBAT]} && ${Me.Standing} && ${React.Global[NotCasting]}
&& ${React.Global[Tank]} && ${Me.TargetOfTarget.ID}==${Me.ID} &&
${Target.Type.Equal[NPC]} && ${Target.PctHPs} > 30
DPS:
action: /bandolier activate DPS
condition: "${Me.Buff[avatar].ID} && ${React.Global[Avatar]} && ${Me.CombatState.Equal[COMBAT]}"
DoHaste:
action: /useitem Dark Cloak of the Sky
condition: >-
${Spell[Haste].Stacks} && !${Me.Song[Haste].ID} && ${React.Global[NotCasting]}
&& ${Me.CombatState.Equal[COMBAT]}
Junk:
action: "/useitem Journeyman's Boots"
condition: >-
!${Me.Buff[Journeyman Boots].ID} && ${Spell[Journeyman Boots].Stacks}
&& !${Me.Invis} && (!${Me.Buff[1].ID} || !${Me.Buff[2].ID})
Junk2:
action: /useitem Ring of Dain Frostreaver IV
condition: >-
!${Me.Buff[Frostreaver's Blessing].ID} && ${Spell[Frostreaver's Blessing].Stacks}
&& !${Me.Invis} && (!${Me.Buff[1].ID} || !${Me.Buff[2].ID})
LandReactB:
action: >-
/multiline ; /echo Putting normal item back on ; /exchange "Crown
of the Kromzek Kings" head ; /react enable WaterReactB ; /react disable
LandReactB
condition: "!${Me.FeetWet}"
LandReactL:
action: >-
/multiline ; /echo Putting normal item back on ; /exchange "Resonant
Helm" head ; /react enable WaterReactL ; /react disable LandReactL
condition: "!${Me.FeetWet}"
LandReactS:
action: >-
/multiline ; /echo Putting normal item back on ; /exchange "Shield
of the Immaculate" back ; /react enable WaterReactS ; /react disable
LandReactS
condition: "!${Me.FeetWet}"
NHeal:
action: >-
/multiline ; /g Canceling ${React.Global[NH]} on ${Target.Name},
Not Enough Missing HPs ; /stopcast
condition: >-
${Cast.Effect.Name.Equal[${React.Global[NH]}]} && ${Target.PctHPs}
> ${React.Global[NHP]}
QHeal:
action: >-
/multiline ; /g Canceling ${React.Global[QH]} on ${Target.Name},
Not Enough Missing HPs ; /stopcast
condition: >-
${Cast.Effect.Name.Equal[${React.Global[QH]}]} && ${Target.PctHPs}
> ${React.Global[QHP]}
RNGSnare:
action: /cast Ensnare
condition: >-
${Me.CombatState.Equal[COMBAT]} && ${Me.Standing} && !${Me.Moving}
&& ${React.Global[NotCasting]} && ${React.Global[Tank]} && (${Target.PctHPs}
> 75) && ${Target.Type.Equal[NPC]} && ${Me.SpellReady[Ensnare]}
RNGSnare2:
action: /cast Ensnare
condition: >-
${Me.CombatState.Equal[COMBAT]} && ${Me.Standing} && !${Me.Moving}
&& ${React.Global[NotCasting]} && ${React.Global[Tank]} && (${Target.PctHPs}
< 75) && (${Target.BuffDuration[Ensnare].TotalSeconds} < 760) &&
${Target.Type.Equal[NPC]} && ${Me.SpellReady[Ensnare]}
RNGSnare3:
action: /cast Ensnare
condition: >-
${Me.CombatState.Equal[COMBAT]} && ${Me.Standing} && !${Me.Moving}
&& ${React.Global[NotCasting]} && ${React.Global[Tank]} && ${Target.Type.Equal[NPC]}
&& !${Me.AbilityReady[Taunt]} && ${Me.TargetOfTarget.ID}!=${Me.ID}
&& ${Me.SpellReady[Ensnare]}
Rot:
action: "/useitem Kithar's Disease Treatment"
condition: "${Me.Buff[Rotting Flesh].ID} && ${React.Global[NotCasting]}"
SHDSnare:
action: /cast Clinging Darkness
condition: >-
${Me.CombatState.Equal[COMBAT]} && ${Me.Standing} && !${Me.Moving}
&& ${React.Global[NotCasting]} && ${React.Global[Tank]} && (${Target.PctHPs}
> 75) && ${Target.Type.Equal[NPC]} && ${Me.SpellReady[Clinging Darkness]}
SHDSnare2:
action: /cast Clinging Darkness
condition: >-
${Me.CombatState.Equal[COMBAT]} && ${Me.Standing} && !${Me.Moving}
&& ${React.Global[NotCasting]} && ${React.Global[Tank]} && (${Target.PctHPs}
< 75) && (${Target.BuffDuration[Clinging Darkness].TotalSeconds}
< 35) && ${Target.Type.Equal[NPC]} && ${Me.SpellReady[Clinging Darkness]}
SHDSnare3:
action: /cast Clinging Darkness
condition: >-
${Me.CombatState.Equal[COMBAT]} && ${Me.Standing} && !${Me.Moving}
&& ${React.Global[NotCasting]} && ${React.Global[Tank]} && ${Target.Type.Equal[NPC]}
&& !${Me.AbilityReady[Taunt]} && ${Me.TargetOfTarget.ID}!=${Me.ID}
&& ${Me.SpellReady[Clinging Darkness]}
Sit:
action: "/multiline ; /g I am sitting now! ; /sit"
condition: >-
${Me.PctMana} <= 90 && ${Me.CombatState.Equal[COMBAT]} && ${Me.Standing}
&& !${Me.Moving} && ${React.Global[NotCasting]}
SotI:
action: /useitem Shield of the Immaculate
condition: >-
${Me.Buff[Rotting Flesh].ID} || ${Me.Buff[Diseased Cloud].ID} ||
${Me.Buff[Languid Pace].ID} || ${Me.Buff[Tepid Deeds].ID} || ${Me.Buff[Shiftless
Deeds].ID} || ${Me.Buff[Forlorn Deeds].ID} || ${Me.Buff[Rabies].ID}
|| ${Me.Buff[Strong Disease].ID} || ${Me.Buff[Sicken].ID} || ${Me.Buff[Infectious
Cloud].ID} || ${Me.Buff[Insidious Fever].ID} || ${Me.Buff[Affliction].ID}
|| ${Me.Buff[Scourge].ID} || ${Me.Buff[Insidious Malady].ID} || ${Me.Buff[Plague].ID}
|| ${Me.Buff[Drowsy].ID} || ${Me.Buff[Walking Sleep].ID} || ${Me.Buff[Tagar's
Insects].ID} || ${Me.Buff[Togor's Insects].ID} || ${Me.Buff[Turgur's
Insects].ID} || ${Me.Buff[Insidious Decay].ID} || ${Me.Buff[Tigir's
Insects].ID} || ${Me.Buff[Pox of Bertoxxulous].ID} || ${Me.Buff[Plague
of Insects].ID} || ${Me.Buff[Disease Cloud].ID} || ${Me.Buff[Asystole].ID}
|| ${Me.Buff[Cessation of Cor].ID} || ${Me.Buff[Grip of Mori].ID}
|| ${Me.Buff[Putrefy Flesh].ID} || ${Me.Buff[Ancient Breath].ID}
|| ${Me.Buff[Mind Flay].ID} || ${Me.Buff[Breath of Rhag'Mozdezh].ID}
Taunt:
action: /doability Taunt
condition: >-
${Me.CombatState.Equal[COMBAT]} && ${Me.Standing} && ${React.Global[NotCasting]}
&& ${React.Global[Tank]} && ${Me.TargetOfTarget.ID}!=${Me.ID} &&
${Target.Type.Equal[NPC]}
WaterReactB:
action: >-
/multiline ; /echo Putting on EB item ; /exchange "Rebreather" head
; /react enable LandReactB ; /react disable WaterReactB
condition: "${Me.FeetWet}"
WaterReactL:
action: >-
/multiline ; /echo Putting on EB item ; /exchange "Rebreather" head
; /react enable LandReactL ; /react disable WaterReactL
condition: "${Me.FeetWet}"
WaterReactS:
action: >-
/multiline ; /echo Putting on EB item ; /exchange "Lodizal Shell
Shield" back ; /react enable LandReactS ; /react disable WaterReactS
condition: "${Me.FeetWet}"[/CODE]
 
Expanding on the issue of delays in multilines -- you can think of multiline's implementation as if you are hitting all of the "lines" in rapid succession. If it helps, think if it as each multiline being executed at the same time. So while the delay can be executed, it is it's own "line" and is not "waiting" for something else to execute.

Given that the lines are executed at the "same" time, /timed can be used to mimic a delay, but /timed is a bit confusing because it needs to be issued from a "cumulative time" standpoint. Meaning that if you want one command to happen 2s after another command, if that first command is also using /timed then you need to add that to your 2s. So for example, a 2s timed occurring after a 1s timed actually needs to be a 3s timed (accounting for the first second -- again, think of it like all commands executing at the same time).

This understanding of the relationship between /multiline and /timed was exactly what I was missing. Once I made all the /timed cumulative, everything worked as expected. Thanks @Knightly !!
 
Added a few thing here and there. Hope someone can use.
Code:
      ${Me.Buff[Rotting Flesh].ID} || ${Me.Buff[Diseased Cloud].ID} ||
      ${Me.Buff[Languid Pace].ID} || ${Me.Buff[Tepid Deeds].ID} || ${Me.Buff[Shiftless
      Deeds].ID} || ${Me.Buff[Forlorn Deeds].ID} || ${Me.Buff[Rabies].ID}
      || ${Me.Buff[Strong Disease].ID} || ${Me.Buff[Sicken].ID} || ${Me.Buff[Infectious
      Cloud].ID} || ${Me.Buff[Insidious Fever].ID} || ${Me.Buff[Affliction].ID}
      || ${Me.Buff[Scourge].ID} || ${Me.Buff[Insidious Malady].ID} || ${Me.Buff[Plague].ID}
      || ${Me.Buff[Drowsy].ID} || ${Me.Buff[Walking Sleep].ID} || ${Me.Buff[Tagar's
      Insects].ID} || ${Me.Buff[Togor's Insects].ID} || ${Me.Buff[Turgur's
      Insects].ID} || ${Me.Buff[Insidious Decay].ID} || ${Me.Buff[Tigir's
      Insects].ID} || ${Me.Buff[Pox of Bertoxxulous].ID} || ${Me.Buff[Plague
      of Insects].ID} || ${Me.Buff[Disease Cloud].ID} || ${Me.Buff[Asystole].ID}
      || ${Me.Buff[Cessation of Cor].ID} || ${Me.Buff[Grip of Mori].ID}
      || ${Me.Buff[Putrefy Flesh].ID} || ${Me.Buff[Ancient Breath].ID}
      || ${Me.Buff[Mind Flay].ID} || ${Me.Buff[Breath of Rhag'Mozdezh].ID

Could you replace that long line with Me.Diseased ? (what is it not picking up)
Code:
${Me.Diseased.ID}
 
I actually created that long line of diseases to be cured because I prioritize what to cure and what not. It's TLP specific upto Luclin.
 
Using Autoforage?

INI:
  Destroy_Small_Chunk_of_Velium:
    action: >-
      /multiline ; /itemnotify "Small Chunk of Velium" leftmouseup; /delay
      10; /destroy
    condition: "${FindItemCount[Small Chunk of Velium]}"

I have similar for Dragon_ law Sliver's and Rotting Dragon Scale
 
Using Autoforage?

INI:
  Destroy_Small_Chunk_of_Velium:
    action: >-
      /multiline ; /itemnotify "Small Chunk of Velium" leftmouseup; /delay
      10; /destroy
    condition: "${FindItemCount[Small Chunk of Velium]}"

I have similar for Dragon_ law Sliver's and Rotting Dragon Scale
I just use MQ2Cursor for destroying or keeping things, it lets you keep certain amounts as well.
 
I made this for my SK AE aggro abilities:

YAML:
  Hatred:
    action: /alt activate 822
    condition: >-
      ${Plugin[MQ2Melee].Name.Length} && ${Me.AltAbilityReady[Explosion
      of Hatred]} && ${SpawnCount[npc radius 50]}>1 &&  ${Me.XTarget}>1
      && (${Me.XTarget[1].Type.Equal[NPC]} && ${Me.XTarget[1].PctAggro}<100
      || ${Me.XTarget[2].Type.Equal[NPC]} && ${Me.XTarget[2].PctAggro}<100
      || ${Me.XTarget[3].Type.Equal[NPC]} && ${Me.XTarget[3].PctAggro}<100
      || ${Me.XTarget[4].Type.Equal[NPC]} && ${Me.XTarget[4].PctAggro}<100
      || ${Me.XTarget[5].Type.Equal[NPC]} && ${Me.XTarget[5].PctAggro}<100
      || ${Me.XTarget[6].Type.Equal[NPC]} && ${Me.XTarget[6].PctAggro}<100
      || ${Me.XTarget[7].Type.Equal[NPC]} && ${Me.XTarget[7].PctAggro}<100||
      ${Me.XTarget[8].Type.Equal[NPC]} && ${Me.XTarget[8].PctAggro}<100
      || ${Me.XTarget[9].Type.Equal[NPC]} && ${Me.XTarget[9].PctAggro}<100
      || ${Me.XTarget[10].Type.Equal[NPC]} && ${Me.XTarget[10].PctAggro}<100
      || ${Me.XTarget[11].Type.Equal[NPC]} && ${Me.XTarget[11].PctAggro}<100
      || ${Me.XTarget[12].Type.Equal[NPC]} && ${Me.XTarget[12].PctAggro}<100
      || ${Me.XTarget[13].Type.Equal[NPC]} && ${Me.XTarget[13].PctAggro}<100)
  Spite:
    action: /alt activate 749
    condition: >-
      ${Me.AltAbilityTimer[Explosion of Hatred]}<43000 && !${Me.AltAbilityReady[Explosion
      of Hatred]} && ${Plugin[MQ2Melee].Name.Length} && ${Me.AltAbilityReady[Explosion
      of Spite]} && ${SpawnCount[npc radius 50]}>1 &&  ${Me.XTarget}>1
      && (${Me.XTarget[1].Type.Equal[NPC]} && ${Me.XTarget[1].PctAggro}<100
      || ${Me.XTarget[2].Type.Equal[NPC]} && ${Me.XTarget[2].PctAggro}<100
      || ${Me.XTarget[3].Type.Equal[NPC]} && ${Me.XTarget[3].PctAggro}<100
      || ${Me.XTarget[4].Type.Equal[NPC]} && ${Me.XTarget[4].PctAggro}<100
      || ${Me.XTarget[5].Type.Equal[NPC]} && ${Me.XTarget[5].PctAggro}<100
      || ${Me.XTarget[6].Type.Equal[NPC]} && ${Me.XTarget[6].PctAggro}<100
      || ${Me.XTarget[7].Type.Equal[NPC]} && ${Me.XTarget[7].PctAggro}<100||
      ${Me.XTarget[8].Type.Equal[NPC]} && ${Me.XTarget[8].PctAggro}<100
      || ${Me.XTarget[9].Type.Equal[NPC]} && ${Me.XTarget[9].PctAggro}<100
      || ${Me.XTarget[10].Type.Equal[NPC]} && ${Me.XTarget[10].PctAggro}<100
      || ${Me.XTarget[11].Type.Equal[NPC]} && ${Me.XTarget[11].PctAggro}<100
      || ${Me.XTarget[12].Type.Equal[NPC]} && ${Me.XTarget[12].PctAggro}<100
      || ${Me.XTarget[13].Type.Equal[NPC]} && ${Me.XTarget[13].PctAggro}<100)
  Stream:
    action: /alt activate 731
    condition: >-
      ${Me.AltAbilityTimer[Explosion of Spite]}<42000 && ${Plugin[MQ2Melee].Name.Length}
      && ${Me.AltAbilityReady[Stream of Hatred]} && !${Me.AltAbilityReady[Explosion
      of Spite]} && !${Me.AltAbilityReady[Explosion of Hatred]} && ${SpawnCount[npc
      radius 50]}>1 &&  ${Me.XTarget}>1 && (${Me.XTarget[1].Type.Equal[NPC]}
      && ${Me.XTarget[1].PctAggro}<100 || ${Me.XTarget[2].Type.Equal[NPC]}
      && ${Me.XTarget[2].PctAggro}<100 || ${Me.XTarget[3].Type.Equal[NPC]}
      && ${Me.XTarget[3].PctAggro}<100 || ${Me.XTarget[4].Type.Equal[NPC]}
      && ${Me.XTarget[4].PctAggro}<100 || ${Me.XTarget[5].Type.Equal[NPC]}
      && ${Me.XTarget[5].PctAggro}<100 || ${Me.XTarget[6].Type.Equal[NPC]}
      && ${Me.XTarget[6].PctAggro}<100 || ${Me.XTarget[7].Type.Equal[NPC]}
      && ${Me.XTarget[7].PctAggro}<100|| ${Me.XTarget[8].Type.Equal[NPC]}
      && ${Me.XTarget[8].PctAggro}<100 || ${Me.XTarget[9].Type.Equal[NPC]}
      && ${Me.XTarget[9].PctAggro}<100 || ${Me.XTarget[10].Type.Equal[NPC]}
      && ${Me.XTarget[10].PctAggro}<100 || ${Me.XTarget[11].Type.Equal[NPC]}
      && ${Me.XTarget[11].PctAggro}<100 || ${Me.XTarget[12].Type.Equal[NPC]}
      && ${Me.XTarget[12].PctAggro}<100 || ${Me.XTarget[13].Type.Equal[NPC]}
      && ${Me.XTarget[13].PctAggro}<100)
 
Here is one I use on my beastlord to see if he has gotten his pet weapons, and one for shrinking him with pet earring

EDIT: Added check for Pet first

INI:
werewolf:
    action: "/useitem Metamorph Totem: White Werewolf"
    condition: (${Me.Pet.Race.ID}!=454)  && (${Me.Pet.ID}) && !${Me.Moving} && !${Me.Sitting} && !${Me.Invis}

PetShrink:
    action: "/useitem Summoner's velium threaded earring"
    condition: "${Pet.Height} > 2.00"
 
Last edited:
This is good for any toon that doesn't have a need for mod rods, Got tired of deleting then with all my melee only toons when there is a mag in group

INI:
nomodrod:
    action: /destroy
    condition: >-
      ${Cursor.Name.Equal[Summoned: Small Modulation Shard]} || ${Cursor.Name.Equal[Summoned: Medium Modulation Shard]} ||
      ${Cursor.Name.Equal[Summoned: Large Modulation Shard]} || ${Cursor.Name.Equal[Summoned: Giant Modulation Shard]} ||
      ${Cursor.Name.Equal[Summoned: Glowing Modulation Shard]} || ${Cursor.Name.Equal[Summoned: Radiant Modulation Shard]} ||
      ${Cursor.Name.Equal[Wand of Pelagic Transvergence]}
 
This is good for any toon that doesn't have a need for mod rods, Got tired of deleting then with all my melee only toons when there is a mag in group

INI:
nomodrod:
    action: /destroy
    condition: >-
      ${Cursor.Name.Equal[Summoned: Small Modulation Shard]} || ${Cursor.Name.Equal[Summoned: Medium Modulation Shard]} ||
      ${Cursor.Name.Equal[Summoned: Large Modulation Shard]} || ${Cursor.Name.Equal[Summoned: Giant Modulation Shard]} ||
      ${Cursor.Name.Equal[Summoned: Glowing Modulation Shard]} || ${Cursor.Name.Equal[Summoned: Radiant Modulation Shard]} ||
      ${Cursor.Name.Equal[Wand of Pelagic Transvergence]}
you can also just block them in your blocked buffs
 
With MQ2cast not being preferred any longer, anyone know how to memorize a spell and cast it reliably? I have been using this on my casters to keep up spell shield (clutch on raids btw!!):

edit: i see /memspell 12 "shield of destiny" would probably work, but not sure how to put a wait condition in and then cast

INI:
  SpellShield:
    action: "/casting shield of destiny"
    condition: >-
      !${Me.Buff[Shield of Destiny].ID} && ${Spell[Shield of Destiny].Stacks} && ${Me.PctMana}>30 && ${Me.Standing}
 
Last edited:
I have found this to be very useful. This is a in game toggle macro for reacts using dannet.

Small update don't use general broadcast commands for this macro. If the react is not assigned to the character it throws an error that pauses any macro running. Found out in the middle of AoW and it paused my clerics in the chrot.


INI:
/dgze /docommand $\{If[$\{React.Enabled[Avatar]},/react disable Avatar,/react enable Avatar]}
 
Last edited:
I play on TLP but I am sure there is applicable situations on live. Was wondering if there is a way to equip a weapon until it procs and then swap to a higher dps set when you have the item buff. i.e. monk with an avatar weapon equips until proc is on and swaps back to fists after; Bard Epic 1.0 procs, switches to higher DPS set.... I am new to MQ2 so forgive my ignorance if it is obvious to some of you.
 
I play on TLP but I am sure there is applicable situations on live. Was wondering if there is a way to equip a weapon until it procs and then swap to a higher dps set when you have the item buff. i.e. monk with an avatar weapon equips until proc is on and swaps back to fists after; Bard Epic 1.0 procs, switches to higher DPS set.... I am new to MQ2 so forgive my ignorance if it is obvious to some of you.

Here's what I use. Requires bandoliers of "Fight" (non-Avatar) and "Avatar" (for proc'ing it).

YAML:
reacts:
  AvatarOff:
    action: >-
      /multiline ; /bandolier activate Avatar ; /echo Equipping Avatar
      weapons! ; /react disable AvatarOff ; /react enable AvatarOn
    condition: >-
      (!${Me.Buff[Avatar].ID} && !${Me.Buff[Primal Avatar].ID}) || (${Me.Buff[Avatar].ID}
      && (${Me.Buff[Avatar].Duration.TotalSeconds} < 60))  || (${Me.Buff[Primal
      Avatar].ID} && (${Me.Buff[Primal Avatar].Duration.TotalSeconds} <
      60))
  AvatarOn:
    action: >-
      /multiline ; /bandolier activate Fight ; /echo We have Avatar! FIGHT!
      ; /react disable AvatarOn ; /react enable AvatarOff   
    condition: >-
      (${Me.Buff[Avatar].ID} || ${Me.Buff[Primal Avatar].ID}) && ((${Me.Buff[Avatar].Duration.TotalSeconds}
      > 60) || (${Me.Buff[Primal Avatar].Duration.TotalSeconds} > 60))
 
Try this one. (This will also check to see if the named is above 40% so you don’t blow it if it refreshes mid-fight. Remove that if you don’t want it, or alter to any % that you want.

Glyph of Dragon Scales: action: /alt act 5104 condition: >- ${Me.AAPoints} > 200 && ${Target.Named} && ${Target.PctHPs}>40 && ${Me.AltAbilityReady[Glyph of Dragon Scales (115+)]}

I created one of these to just fire anytime my tank < 40% HP and it's saved the tank more times than I can relate. Really great React !!!
 
No idea how this yaml stuff works :sweat:

Would anyone be kind enough to write me a line or two, to force a Healer to issue a /makemevisible command, if there is 1 or more mobs in xtar and puller is in or close to camp, please?
 
No idea how this yaml stuff works :sweat:

Would anyone be kind enough to write me a line or two, to force a Healer to issue a /makemevisible command, if there is 1 or more mobs in xtar and puller is in or close to camp, please?
They only difference between yaml and a plain old regular ini file is that white spaces and indents matter in your formatting. Other than that, just copy-pasta some of the examples and change the action/condition values.
 
How would I add a condition to use this if there is no shaman in the group.

UseBRDEpic:
action: /useitem Blade of Vesagran
condition: >-
!${Me.Casting.ID} && ${Me.CombatState.Equal[COMBAT]} && !${Me.Invis}
&& ${FindItemCount[=Blade of Vesagran]} && ${Me.ItemReady[Blade of
Vesagran]} && !${Me.Song[Spirit of Vesagran].ID}

and this with a shaman in the group

UseBRDEpicwithShaman:
action: /useitem Blade of Vesagran
condition: >-
!${Me.Casting.ID} && ${Me.CombatState.Equal[COMBAT]} && !${Me.Invis}
&& ${FindItemCount[=Blade of Vesagran]} && ${Me.ItemReady[Blade of
Vesagran]} && !${Me.Song[Spirit of Vesagran].ID} && ${Me.Song[Prophet's Gift of the Ruchu].ID}
 
How would I add a condition to use this if there is no shaman in the group.

I don't see any need to differentiate if the shaman is actually in the group or not. If no shaman then the 'gift of ruchu' can never be true and it will have no impact on the remaining conditions.
 
How would I add a condition to use this if there is no shaman in the group.

UseBRDEpic:
action: /useitem Blade of Vesagran
condition: >-
!${Me.Casting.ID} && ${Me.CombatState.Equal[COMBAT]} && !${Me.Invis}
&& ${FindItemCount[=Blade of Vesagran]} && ${Me.ItemReady[Blade of
Vesagran]} && !${Me.Song[Spirit of Vesagran].ID}

and this with a shaman in the group

UseBRDEpicwithShaman:
action: /useitem Blade of Vesagran
condition: >-
!${Me.Casting.ID} && ${Me.CombatState.Equal[COMBAT]} && !${Me.Invis}
&& ${FindItemCount[=Blade of Vesagran]} && ${Me.ItemReady[Blade of
Vesagran]} && !${Me.Song[Spirit of Vesagran].ID} && ${Me.Song[Prophet's Gift of the Ruchu].ID}
you could do a ${Spawn[pc group shaman].ID} check
 
I don't see any need to differentiate if the shaman is actually in the group or not. If no shaman then the 'gift of ruchu' can never be true and it will have no impact on the remaining conditions.
Yeah but I wanted to stop the other one from firing if there was a shaman in the group.

INI:
  UseBRDEpic:
    action: /useitem Blade of Vesagran
    condition: >-
      !${Me.Casting.ID} && ${Me.CombatState.Equal[COMBAT]} && !${Me.Invis}
      && ${FindItemCount[=Blade of Vesagran]} && ${Me.ItemReady[Blade of
      Vesagran]} && !${Spawn[pc group shaman].ID}
  UseBRDEpicwithShaman:
    action: /useitem Blade of Vesagran
    condition: >-
      !${Me.Casting.ID} && ${Me.CombatState.Equal[COMBAT]} && !${Me.Invis}
      && ${FindItemCount[=Blade of Vesagran]} && ${Me.ItemReady[Blade of Vesagran]} && !${Me.Song[Spirit of Vesagran].ID} && ${Me.Song[Prophet's Gift of the Ruchu].ID}
 
Shaman and Bard Epic should be synchronized for max dps.

I want my shaman to lead and I want the bard to cast his epic if he sees the shaman go.

If I'm playing my bard without a shaman I want him to fire the epic normally.
 
Shaman and Bard Epic should be synchronized for max dps.

I want my shaman to lead and I want the bard to cast his epic if he sees the shaman go.

If I'm playing my bard without a shaman I want him to fire the epic normally.

I never got my shaman his epic so I never encountered this.

Your 2nd react would still work if you determine a method to ensure the shaman fires his epic first every time.
 
@burdsjm ... Some pages back you shall find an example how you can disable the first one (no shm in group) within the action of the second one (shm in group). If you want it to be full automatic yoe may use a third react which would reactivate your first react, and shall, in the the Shaman leave the group.

Not at pc atm just browsing mobile. If I remember I'll check back tomorrow to create a sample.
 
Here is an example with class conditions for Shaman side of it. I didnt test it fully yet but it should work:
[CODE lang="yaml" title="Shaman Epic W/ Bard Click"]ShmEpicWithBard:
action: /multiline ; /useitem Blessed Spiritstaff of the Heyokah; /g Shaman Epic - Activated
condition: >-
"(${Group.Member[1].Class.ShortName.Equal[BRD]} || ${Group.Member[2].Class.ShortName.Equal[BRD]} || ${Group.Member[3].Class.ShortName.Equal[BRD]} || ${Group.Member[4].Class.ShortName.Equal[BRD]} || ${Group.Member[5].Class.ShortName.Equal[BRD]}) $$ ${Me.Class.ShortName.Equal[SHM]} && !${Me.Casting.ID} && ${Me.CombatState.Equal[COMBAT]} && ${Me.ItemReady[Blessed Spiritstaff of the Heyokah]} && !${Me.Song[Prophet's Gift of the Ruchu].ID} && ${Me.Song[Spirit of Vesagran].ID}"[/CODE]
 
Tip - MQ2 React Collection

Users who are viewing this thread

Back
Top
Cart