• Hail, we're RedGuides. We want you to play six (yes, 6!) EverQuest characters at once. We have scripts and a friendly community to help, please join our playstyle and say hello! 👋

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 appropriate permissions. Your edits will be public.
Maybe revive merc if its possible? Anyone?

and this one

keeps going forever since it does not put it in inventory. Maybe an easy fix though?

This one I would like to fire if Im fighting a Named.


Thanks in advance!

So locally I've fixed mine up a bit, just haven't updated it here. Now given I use mq2autoloot I get a pretty regular /autoinv anyway so I didn't notice it too badly. This trick with /timed could work with any summon item thing as I have it on huntsman's quiver too.

action: /multiline ; /useitem Fresh Cookie Dispenser; /timed 4 /autoinv
 
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+)]}
 
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+)]}
btw, do these fire when not fighting?
 
So locally I've fixed mine up a bit, just haven't updated it here. Now given I use mq2autoloot I get a pretty regular /autoinv anyway so I didn't notice it too badly. This trick with /timed could work with any summon item thing as I have it on huntsman's quiver too.

action: /multiline ; /useitem Fresh Cookie Dispenser; /timed 4 /autoinv
Thanks, trying that one now
 
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+)]}
thanks!
 
Here is one for reviving dead mercs, trying it atm

ReviveMerc:
action: /notify MMGW_ManageWnd MMGW_SuspendButton LeftMouseUp
condition: "${Window[MMGW_ManageWnd].Child[MMGW_SuspendButton].Enabled} && ${Mercenary.State.Equal[DEAD]}"
 
SitToMed:
action: /sit
condition: >-
${Me.PctMana}<95 && !${Stick.Active} && !${Navigation.Active}
&& !${Me.Sitting} && !${Me.Moving} && ${Me.PctHPs} > 75
 
Healcheck:
action: /stopcast
condition: >-
${Spell[${Me.Casting}].Category.Equal[Heals]} && ${Target.PctHPs}
> 80 && ${Me.CastTimeLeft.Raw} < 1500
&& !${Spell[${Me.Casting}].Name.Equal[Counteract Disease]}

Note, alot of clickies count as heals (Kithar's disease treatment is above) so will need to add exceptions as they come up.

This will "smartheal". the "1500" needs to be changed based on your latency, you may need to move higher or lower. If you are casting a heal, and the targets hp is over 80, with less than 1.5 seconds left it will cancel via /stopcast.
This overcomes EQ's in-game inability to have a social with ' /stopcast ' be used via keypresses and allows you to have your bots automatically smart heal.
 
I see that && (AND) can be used in conditions but can || (OR) be used? If not is there any way to approximate an OR statement? If no to that is there a way to isolate non-combat zones only so that things will only happen or not happen when in a non-combat zone?
 
you can use || as OR, i have this one for auto using a celestial heal pot based on target name:

Dragonheal
YAML:
  DragonHeal:
    action: /useitem Distillate of Celestial Healing VI
    condition: >-
      ${Target.CleanName.Equal[Lord Nagafen]} || ${Target.CleanName.Equal[Lady
      Vox]} || ${Target.CleanName.Equal[Overseer of Air]} || ${Target.CleanName.Equal[The
      Hand of Veeshan]} && ${Me.PctHPs} <= 60 && ${FindItemCount[=Distillate
      of Celestial Healing VI]} > 0
 
you can use || as OR, i have this one for auto using a celestial heal pot based on target name:

Dragonheal
YAML:
  DragonHeal:
    action: /useitem Distillate of Celestial Healing VI
    condition: >-
      ${Target.CleanName.Equal[Lord Nagafen]} || ${Target.CleanName.Equal[Lady
      Vox]} || ${Target.CleanName.Equal[Overseer of Air]} || ${Target.CleanName.Equal[The
      Hand of Veeshan]} && ${Me.PctHPs} <= 60 && ${FindItemCount[=Distillate
      of Celestial Healing VI]} > 0
Ok, just wanted to make sure it worked before I added it and went crazy bug checking :)
 
I'd suggest reading @ChatWithThisName's guide to conditions: https://www.redguides.com/community/resources/conditions-and-you-coding-tutorial-information.219/

Reacts can be thought of like the following:
- MQ2 React conditions are the thing you would put between the parenthesis in an if statement
- MQ2 React actions are the thing you would put after the parenthesis in an if statement

For example, the following would work in a hotkey or macro though would be rather pointless:
/if (${React.Condition[MySillyReact]}) ${React.Action[MySillyReact]}

[The following example is to help provide an intuition on reacts for those familiar with mq2melee -- in no way is any of this valid syntax for any config file]
If you were to view a react in the same syntax as a downshit or holyshit in mq2melee it'd be similar too:
MySillyReact=/if (<condition>) <action>
 
did this to summon cookies

action: /multiline ; /timed 40 /autoinv ; /useitem Fresh Cookie Dispenser
condition: >-
${FindItemCount[=Fresh Cookie]} < 2 && ${FindItem[=Fresh Cookie Dispenser].Timer}==0
&& !${Me.Invis} && !${Me.Sitting}
 
Last edited:
INI:
WarEpic:
    action: /useitem Kreljnok's Sword of Eternal Power
    condition: >-
      ${Me.CombatState.Equal[COMBAT]} && ${Cast.Ready[Kreljnok's Sword of Eternal Power]} && ${Target.Named}

says invalid quote line 106
thats the action line
tried with /useitem "Kreljnok's Sword of Eternal Power"
actually, I cant activate the Sword with /useitem
nothing happens

with other items I can use partial name
so even /useitem Kreljnok should work, right?

any ideas?
 
"/useitem Kreljnok's Sword of Eternal Power"

Should work. I believe YAML requires you to quote the full line.
ok, the thing is
/useitem Kreljnok's Sword of Eternal Power
does not work Ingame
/useitem "Kreljnok's Sword of Eternal Power"
work Ingame

so I would need double ""?
"/useitem "Kreljnok's Sword of Eternal Power""
 
You could try something like /useitem ${FindItem[=Kreljnok's Sword of Eternal Power].ItemSlot} ${FindItem[=Kreljnok's Sword of Eternal Power].ItemSlot2}

Then you could use the epic and keep the ornamentation? It's a pretty sweet ornament to keep!
 
Did a lazy one for the BP
INI:
ClickBP:
    action: "/useitem ${InvSlot[Chest].Item.Name}"
    condition: "${Me.CombatState.Equal[COMBAT]} && ${Target.Named} && ${Cast.Ready[${InvSlot[Chest].Item.Name}]}"
 
I'm having issues with getting the Monk epic Celestial Fists to work, I've tried /useitem Celestial Fists, /useitem 12 for hand slot, various ones like the one above and nothing seems to work. I've checked the condition to fire it works with other items like journeyman's boots etc and even did a yaml with just that one react and the condition to not be invisible only and I still can't get it to work.

This is the current one I have:

YAML:
  Tranq:
    action: "/useitem ${InvSlot[Hands].Item.Name}"
    condtition: "!${Me.Invis} "

or:

YAML:
  Tranq:
    action: /useitem Celestial Fists
    condtition: "!${Me.Invis} "

I guess I'm doing something wrong somewhere, but no idea what :)


/useitem Celestial Fists or /useitem 12 works in game too.
 
I'm having issues with getting the Monk epic Celestial Fists to work, I've tried /useitem Celestial Fists, /useitem 12 for hand slot, various ones like the one above and nothing seems to work. I've checked the condition to fire it works with other items like journeyman's boots etc and even did a yaml with just that one react and the condition to not be invisible only and I still can't get it to work.

This is the current one I have:

YAML:
  Tranq:
    action: "/useitem ${InvSlot[Hands].Item.Name}"
    condtition: "!${Me.Invis} "

or:

YAML:
  Tranq:
    action: /useitem Celestial Fists
    condtition: "!${Me.Invis} "

I guess I'm doing something wrong somewhere, but no idea what :)


/useitem Celestial Fists or /useitem 12 works in game too.
Have you enabled it on your char, up top?
 
This works for me:
YAML:
  Fist: 
    action: /useitem Celestial Fists
    condition: >-
      !${Me.Buff[Celestial Tranquility].ID} && ${Spell[Celestial Tranquility].Stacks}
      && ${Me.CombatState.Equal[COMBAT]}
 
That worked, thanks! Guessing it was the stacking thing that was causing my issue, knew I'd be doing something wrong :)
 
Last edited:
The Ranger cloak one was spamming it; I fixed it!

DoHaste: action: /cast Dark Cloak of the Sky condition: "${Spell[Haste].Stacks} && !${Me.Song[Haste].ID} && ${React.Global[NotCasting]}"

It was looking for !${Me.Buff[Haste].ID} but it's in the song window.
 
PocketFarm
YAML:
  Dagger:
    action: /bandolier activate Dagger
    condition: >-
      ${Macro.Name.Equal[pocketfarm.mac]} && (!${Me.Buff[Greater Wolf Form].ID}
      || ${Me.Buff[Greater Wolf Form].Duration.TotalSeconds} < 300) &&
      ${InvSlot[Mainhand].Item.Name.NotEqual[Lupine Dagger]}
  Swords:
    action: /bandolier activate Epics
    condition: >-
      ${Macro.Name.Equal[pocketfarm.mac]} && (${Me.Buff[Greater Wolf Form].Duration.TotalSeconds}
      >= 300) && ${InvSlot[Mainhand].Item.Name.NotEqual[Earthcaller]}

I use this zipping around farming things with pocketfarm. It checks to see if you've got the Lupine Dagger proc on (or less than 5 minutes remaining) and switches to a bandolier set to put it in primary for the next few kills until it procs. Then, it switches back to my primary weapon until it's time to switch back.
 
Wanted to max out tracking on my bard.

INI:
Tracking:
    action: /doability Tracking
    condition: "${Me.Skill[Tracking]} < ${Me.SkillCap[Tracking]} && ${Me.AbilityReady[Tracking]}"
 
This is what I'm using on the Rizlona server. I went ahead and included all the disease and poison thing's I'd want auto cured upto Luclin. I have both potions and Shield of the Immaculate since only my melee have SotIs.

YAML
YAML:
reacts:
  CompleteHealcheck:
    action: /stopcast
    condition: >-
      ${Cast.Effect.Name.Equal[Complete Heal]} && ${Target.PctHPs} > 80
      && ${Me.CastTimeLeft.Raw} < 2200
  DiseasePotion:
    action: "/useitem Kithar's Disease Treatment"
    condition: >-
      ${Me.Buff[Diseased Cloud].ID} || ${Me.Buff[Rotting Flesh].ID} || ${Me.Buff[Grip of Mori].ID}
      || ${Me.Buff[Putrefy Flesh].ID} || ${Me.Buff[Breath of Rhag'Mozdezh].ID}
  DoMend:
    action: /doab Mend
    condition: ${Me.PctHPs}<70 && ${Me.CombatState.Equal[COMBAT]}
  FastHealcheck:
    action: /stopcast
    condition: >-
      ${Cast.Effect.Name.Equal[Superior Healing]} && ${Target.PctHPs} >
      92 && ${Me.CastTimeLeft.Raw} < 1300
  JBoots:
    action: "/useitem Journeyman's Boots"
    condition: >-
      !${Me.Buff[Journeyman Boots].ID} && ${Spell[Journeyman Boots].Stacks}
      && !${Me.Invis} && !${Me.Sitting}
  MainHealcheck:
    action: /stopcast
    condition: >-
      ${Cast.Effect.Name.Equal[Divine Light]} && ${Target.PctHPs} > 86
      && ${Me.CastTimeLeft.Raw} < 1300
  MonkEpic:
    action: /useitem Celestial Fists
    condition: >-
      !${Me.Buff[Celestial Tranquility].ID} && ${Spell[Celestial Tranquility].Stacks}
      && !${Me.Invis} && !${Me.Sitting} && ${Me.CombatState.Equal[COMBAT]}
  PoisonPotion:
    action: "/useitem Ethira's Poison Antidote"
    condition: >-
      ${Me.Buff[Poison Breath].ID}
  PotHeal:
    action: /useitem Distillate of Celestial Healing IX
    condition: ${Me.PctHPs}<50 && ${Me.CombatState.Equal[COMBAT]}
  SitToMed:
    action: /sit
    condition: >-
      ${Me.PctMana}<90 && !${Stick.Active} && !${Navigation.Active} &&
      !${Me.Sitting} && !${Me.Moving} && ${Me.PctHPs} > 85
  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}
 
Last edited:
Been using this plugin a lot on the tlp to fill in gaps where macros/plugins are falling short. Please let me know is there is anything that could be improved.

MQ2React
INI:
globals:
  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:
  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]}
  DoHaste:
    action: /useitem Dark Cloak of the Sky
    condition: >-
      ${Spell[Haste].Stacks} && !${Me.Song[Haste].ID} && ${React.Global[NotCasting]}
      && ${Me.CombatState.Equal[COMBAT]}
  Jboots:
    action: "/useitem Journeyman's Boots"
    condition: >-
      !${Me.Buff[Journeyman Boots].ID} && ${Spell[Journeyman Boots].Stacks}
      && !${Me.Invis}
  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})
  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]}
  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]}
 
MQ2Events
INI:
|Tired of pesky dragons making your melee run everywhere? Try this!
[DragonFearMelee]
trigger=You are no longer afraid.
command=/nav target

|This one requires you to set a return point "fear" beforehand on the caster class, by typing /nav rwp "fear"
[DragonFearCaster]
trigger=You are no longer afraid.
command=/nav wp fear
 
YAML
YAML:
globals:
  NotCasting: "!${Me.Casting.ID}"

reacts:
  ShieldCure:
    action: >-
      /multiline ; /g Curing myself; /useitem Shield of Immaculate Light;
      /useitem Cleansing Rod; /useitem Shield of the Immaculate;
    condition: >-
      ${React.Global[NotCasting]} && ${Me.Diseased.ID} && (${Me.ItemReady[Cleansing
      Rod]} || ${Me.ItemReady[Shield of the Immaculate]} || ${Me.ItemReady[Shield
      of Immaculate Light]})

To cure restless ice infection in double time. You could remove some of the items if you want but I like them in there :D
PS: If playing with others that mind mq2 take the /g Curing myself out, dead giveaway that there is automation.
 
Last edited:
can anyone see an error:

Thwart
YAML:
    Thwart: 
      action: /disc ${Spell[Thwart].RankName}
      condition: "${Me.CombatAbilityReady[${Spell[Thwart].RankName}]} && ${Me.CombatState.Equal[COMBAT]}"

attempted to create my first condition mixing snippets from here
 
You don't need the quotes though they shouldn't hurt.
Code:
    Thwart:
      action: /disc ${Spell[Thwart].RankName}
      condition: ${Me.CombatAbilityReady[${Spell[Thwart].RankName}]} && ${Me.CombatState.Equal[COMBAT]}
 
Thanks, this question brought me to the point, that I wanted to start from scratch.

So I took the yaml from the very first post and cleared my "MQ2React.yaml" and pasted the code into it.
the command: "/react list" after logging the char in after modification done brought me to a client crash.

Next step:
I cleared my "MQ2React.yaml" completely, logged in my char and issued "/react save"
the result was
YAML:
Server:
  CharName:
    ExampleReact: disabled
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]}"

the command "/react list"showed:
YAML:
ExampleReact

this seemed working as expected

my conclusion:
the sample code in the very first post might have some issue

___________________________________________________________________________________________________________

Fast-Forward ... I played around with some snippets, including mine

YAML:
Server:
  CharName:
    CeriseBlade: enabled
    EtherealArrows: enabled
    ExampleReact: disabled
    Thwart: enabled
globals: 
  GlobalExample: "${Me.CombatState.NotEqual[COMBAT]} && ${Me.PctHPs} <= 25"
reacts: 
  CeriseBlade: 
    action: /disc Cerise Blade
    condition: >-
      ${Me.CombatAbilityReady[${Spell[Cerise Blade].RankName}]} && ${Me.CombatState.Equal[COMBAT]}
      && ${Target.PctHPs}>50 && ${Target.Named}
  EtherealArrows: 
    action: "/useitem Huntsman's Ethereal Quiver"
    condition: >-
      ${FindItemCount[=Ethereal Arrow]} < 50 && ${FindItemCount[Huntsman's
      Ethereal Quiver]} == 1
  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]}"
  Thwart: 
    action: "/disc ${Spell[Thwart].RankName}"
    condition: "${Me.CombatAbilityReady[${Spell[Thwart].RankName}]} && ${Me.CombatState.Equal[COMBAT]}"

Those now so far are working as expected.

@Mythas : thanks for pointing me to the fact, that yaml is very whitespace sensitive. Havn't thought to pull me in some errors, just copy-pasting the stuff I found here in the Forum.

I got my starting point and will proceed from here, one react at a time.
Great plugin, and much more responsive than all other stuff I have used so far.
 
Thanks, this question brought me to the point, that I wanted to start from scratch.

So I took the yaml from the very first post and cleared my "MQ2React.yaml" and pasted the code into it.
the command: "/react list" after logging the char in after modification done brought me to a client crash.

Next step:
I cleared my "MQ2React.yaml" completely, logged in my char and issued "/react save"
the result was
YAML:
Server:
  CharName:
    ExampleReact: disabled
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]}"

the command "/react list"showed:
YAML:
ExampleReact

this seemed working as expected

my conclusion:
the sample code in the very first post might have some issue

___________________________________________________________________________________________________________

Fast-Forward ... I played around with some snippets, including mine

YAML:
Server:
  CharName:
    CeriseBlade: enabled
    EtherealArrows: enabled
    ExampleReact: disabled
    Thwart: enabled
globals:
  GlobalExample: "${Me.CombatState.NotEqual[COMBAT]} && ${Me.PctHPs} <= 25"
reacts:
  CeriseBlade:
    action: /disc Cerise Blade
    condition: >-
      ${Me.CombatAbilityReady[${Spell[Cerise Blade].RankName}]} && ${Me.CombatState.Equal[COMBAT]}
      && ${Target.PctHPs}>50 && ${Target.Named}
  EtherealArrows:
    action: "/useitem Huntsman's Ethereal Quiver"
    condition: >-
      ${FindItemCount[=Ethereal Arrow]} < 50 && ${FindItemCount[Huntsman's
      Ethereal Quiver]} == 1
  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]}"
  Thwart:
    action: "/disc ${Spell[Thwart].RankName}"
    condition: "${Me.CombatAbilityReady[${Spell[Thwart].RankName}]} && ${Me.CombatState.Equal[COMBAT]}"

Those now so far are working as expected.

@Mythas : thanks for pointing me to the fact, that yaml is very whitespace sensitive. Havn't thought to pull me in some errors, just copy-pasting the stuff I found here in the Forum.

I got my starting point and will proceed from here, one react at a time.
Great plugin, and much more responsive than all other stuff I have used so far.
just a heads up on the summon arrows. It will try to summon even if you are running or invis
 
ty @Robban , modified to:

Arrows
YAML:
globals:
  GlobalExample: "${Me.CombatState.NotEqual[COMBAT]} && ${Me.PctHPs} <= 25"
  IC: "${Me.CombatState.Equal[COMBAT]}"
  NIC: "${Me.CombatState.NotEqual[COMBAT]}"
  NmoveNinvNsit: "!${Me.Moving} && !${Me.Invis} && !${Me.Sitting}"

  EtherealArrows:
    action: "/useitem Huntsman's Ethereal Quiver"
    condition: >-
      ${FindItemCount[=Ethereal Arrow]} < 50 && ${FindItemCount[Huntsman's
      Ethereal Quiver]} == 1 && ${React.Global[NmoveNinvNsit]}
 
If I understood right, Kissassist doesn't like mq2cast. When starting kissassist, it eveb searches for mq2cast and if active, it will be unloaded.
what would be a working solution for:
action: /cast Zrelik's Recourse
condition: ${Me.SpellReady[Zrelik's Recourse]} && ${React.Global[IC]}"

if I dont want to use anything from mq2Cast? Shall that be the solution without mq2Cast?
globals:
IC: "${Me.CombatState.Equal[COMBAT]}"
NotCasting: "!${Me.Casting.ID}"
ZrelikGem: "8"
OneBelow50: >-
${Group.Member[0].PctHPs} <= 50 || ${Group.Member[1].PctHPs} <= 50
|| ${Group.Member[2].PctHPs} <= 50 || ${Group.Member[3].PctHPs} <=
50 || ${Group.Member[4].PctHPs} <= 50 || ${Group.Member[5].PctHPs}
<= 50

action: /cast ${GemZrelik}
condition: >-
${React.Global[NotCasting]} && ${React.Global[IC]} && ${React.Global[NmoveNinvNsit]}
&& ${React.Global[OneBelow50]} && ${Me.SpellReady[${GemZrelik}}

It doesn't cause any error message.
Is there a better condition for "any groupmember below 50% hp?
 
Tip - MQ2 React Collection

Users who are viewing this thread

Back
Top
Cart