• 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
MQ2React

Release MQ2React

next step:
react: "ShdCeriseBlade" does not cause any problems
react: "ClickBP" as soon as activated, kissassist continues to throw error messages
...

leaving ClickBP off for now, continue to check the others
suspect mq2cast is not loaded
/echo ${Bool[${Plugin[mq2cast]}]}

/echo ${Cast.Ready[${InvSlot[Chest].Item.Name}]}

This does the same job without a plugin.
${Me.ItemReady[${InvSlot[Chest].Item.Name}]}
 
The following 2 reacts do work, but the condition : "${Me.AAPoints} > 200" is ignored, I am down to 14 AAs now.
Is this syntax wrong?

[CODE lang="yaml" title="${Me.AAPoints} > 200"] GoDBuy:
action: /alt buy 5304
condition: "${AltAbility[Glyph of Destruction (115+)].CanTrain}"

GoDUse:
action: /alt act 5304
condition: "${Me.AAPoints} > 200 && ${Me.AltAbilityReady[Glyph of Destruction(115+)]}"[/CODE]
 
The following 2 reacts do work, but the condition : "${Me.AAPoints} > 200" is ignored, I am down to 14 AAs now.
Is this syntax wrong?

[CODE lang="yaml" title="${Me.AAPoints} > 200"] GoDBuy:
action: /alt buy 5304
condition: "${AltAbility[Glyph of Destruction (115+)].CanTrain}"

GoDUse:
action: /alt act 5304
condition: "${Me.AAPoints} > 200 && ${Me.AltAbilityReady[Glyph of Destruction(115+)]}"[/CODE]
Check so you dont have an activator in maybe your burn section of your mac, just an idea. Might be activated somewhere else?
 
I feel stupid ... I deleted it at the dps section but had another line at burn section .... blush
not because the line was there, but because I didn't thought of it by myself
 
2 points for the wishlist:" NiceToHave"
1. an option in the config, which would allow to echo all successful executed commands to the mq2 window ... would be very helpful, to understand, if all created reacts do something
2. a command, to force a full parsing of the actual configuration (same as happends when zoning) , actually after doing modifications I zone from gl to gh and back to check, if I have syntax-errors ... (errors parsing mq2react configuration) ... orelse let /react load do a full parsing of the configuration after loading

I love this plugin and try to get all the little things done which I was not able to do yet
 
2 points for the wishlist:" NiceToHave"
1. an option in the config, which would allow to echo all successful executed commands to the mq2 window ... would be very helpful, to understand, if all created reacts do something
2. a command, to force a full parsing of the actual configuration (same as happends when zoning) , actually after doing modifications I zone from gl to gh and back to check, if I have syntax-errors ... (errors parsing mq2react configuration) ... orelse let /react load do a full parsing of the configuration after loading

I love this plugin and try to get all the little things done which I was not able to do yet
1. Noted

2. /react reload should do a full parse without modifying anything.

3. For general reference: every react slash command that performs some sort of configuration will load the file and thus parse the file as this is built in to the mini-yaml library's loading.
 
Last edited:
/react load does not show statements about Syntax errors, but zoning after /react load shows error messages not showing up after /react load... /shrug
 
Is there instructions for how to set this up somewhere? Im familiar with the standard setup, but not this yaml stuff.
 
Is there instructions for how to set this up somewhere? Im familiar with the standard setup, but not this yaml stuff.
I startet with "/react save" after I loaded the plugin.
This gave me the basic shell with some examples as well in "Mq2React.yaml".
From there I started to adapt the yaml to my needs.
 
A new point for the List "NiceToHave":
A measure of remaining cycletime while extending the yaml.
Somethinge like "EndTime=Time.Now" at the end of the actual cylce and another "StartTime=Time.Now" at the start of the next cycle and a new command like "/react remainingCycleTime" wihch would output "StartTime-EndTime" as a measure of howmany ms are still available bevor I run into the risk, to overload the plugin with the amount of reacts, I am creating.

I am aware, that this never can be any kind of warranty that all is still ok, because different conditions may cause different cycletimes/actions to process, but issued multiple times in conditions where you know, you have a good load of actions will help you to understand, if you get close to the limits of your system.

I guess there is no way to tell beforehand, that 10/50/100/1000 reacts can be handled safe, as it all depends on hardware/complexity of reacts/number of running accounts ... and whatever other things, which may differ largely between tie setups.
 
One other "side effect" is the default processing time for reacts is now once every 15 frames vs. once every 50 frames. You can set your preferred checking speed globally via the "sleep_frames" setting in the yaml file or the /react sleep in game option. This should requate to roughly every 500ms if you have the recommended minimum background fps setting of 30.
 
Something happened after this update I think. My cleric suddenly not really helping out very much. It seems the spells wont go off... like its not clicking them
EQ000013.jpg
after unloading mq2react, it stopped.

I havent made any changes to my react lately. Do I need to do something now? after this update?
 
Something happened after this update I think. My cleric suddenly not really helping out very much. It seems the spells wont go off... like its not clicking them
View attachment 26467
after unloading mq2react, it stopped.

I havent made any changes to my react lately. Do I need to do something now? after this update?

I'd try putting the react processing setting back to 50 and see how it works for you. There's a bug with /cast where you can call it too fast, and it "executes" but doesn't do anything. The only thing that changed in the patch was the speed of processing so any bugs will lead to it just not working for anybody.
 
I'd try putting the react processing setting back to 50 and see how it works for you. There's a bug with /cast where you can call it too fast, and it "executes" but doesn't do anything. The only thing that changed in the patch was the speed of processing so any bugs will lead to it just not working for anybody.
I tried that, got a little extra line in the react file. But still happening. Will try more, and try to remove som reacts also and see if something happens.
 
I tried that, got a little extra line in the react file. But still happening. Will try more, and try to remove som reacts also and see if something happens.
I've got my simple milk and cookie reacts I can check a bit later. The only change to onpulse was to how it calculates the sleep from:

Roughly (this limited it to every 50 frames)
Code:
    if (++pulse < 50)
        return;

to

This basically says wait till we get to our sleep frames setting count
Code:
    if (++pulse < root["sleep_frames"].As<unsigned int>())
        return;

Curious if anyone else just has any of their reacts not working?
 
Curious if anyone else just has any of their reacts not working?

Well, they were working but when we fought Vulak, I noticed my friends Shield of the Immaculate wasn't curing it off in 9 seconds like usual. He noted that it worked fine when it was the screen that had focus. Of course, we didn't check the patch notes so this explains a lot haha. Now that we know we will report back.

For the record, he only has 3 reacts set up total.
 
Yah -- if your BG FPS is low it's gonna have issues. The predominant change to check speed is there seemed to be a lot of sentiment that 50 was too long (I felt like I got quite a few comments about that). Setting it to 50 should reproduce the old style of behavior.
 
Could there be reacts that is not tied to a character ?
Finding that I have 3 that I load on every toon that is being played. (cure/destroy/alert that I use)
 
Given the way the data structures are setup there's no easy way of doing reacts not attached to characters at the moment.

I'd say the best thing to do is just toss the characters in the yaml when you create them or just have a hotkey that does the `/dgga`. Eventually you'll see a similar sort of pattern with the next version of mq2discord as well (filters are per character due to the nature of how the in-memory representation is equal to the in file representation).
 
Would like to have the possibillity to hold reaqct for medding on a toon, and restart it when full mana.
Can you implement 2 commands like.
/react stop
/react start

As it is now, I see only the possibillity to : /plugin mq2react to stop a toon to cast
 
Would like to have the possibillity to hold reaqct for medding on a toon, and restart it when full mana.
Can you implement 2 commands like.
/react stop
/react start

As it is now, I see only the possibillity to : /plugin mq2react to stop a toon to cast

Really a fan of this format
/react pause on
/react pause off
 
@Hylander: that will hold 1 react. If you want to stop breaqking ooc-regen you would have to enable/disable any react of that toon.
That would make probalby multible Hotbuttons necessary per toon. Which would needs modifications anytime you change reacts.
A command to just hold and restart all reacts of 1 toon would mean less hassles.
 
@Hylander: that will hold 1 react. If you want to stop breaqking ooc-regen you would have to enable/disable any react of that toon.
That would make probalby multible Hotbuttons necessary per toon. Which would needs modifications anytime you change reacts.
A command to just hold and restart all reacts of 1 toon would mean less hassles.
I’ve been using plugin to stop and start them.
You could always make an alias.
 
So I just updated via the launcher and now my entire react INI is blank. Am i shit out of luck or can i get it back?
 
If your mages use Alliance and you want to save mana/cooldown/casttime:
YAML:
MageStopAlliance:
    action: /stopcast
    condition: ${Spell[${Me.Casting}].Name.Equal[${Spell[Firebound Coalition].RankName}]} && ${Target.Buff[Firebound Coalition].ID}

Motivation:
- casttime is long
- cooldown is long
- manacost is hight
- found no solution yet, to coordinate alliance between multiple toons

so this workaorund for my mages helps a lot.
 
Last edited:
"/varset MageAllianceNextID 2" does not work in action as expected:
[CODE lang="yaml" title="varset in action ?" highlight="5"] globals:
MageAllianceNextID: 0

MageAlliance1:
action: /multiline ; /cast Firebound Coalition ; /varset MageAllianceNextID 2
condition: >-
{Target.Type.Equal[NPC]} && ${Target.PctHPs} < 100 && ${React.Global[NotCasting]}
&& ${React.Global[NmoveNinvNsit]} && ${React.Global[IC]} && !${Target.Buff[Firebound
Coalition].ID} && (${Target.PctHPs} > 50 || ${React.Global[TNamed]}) && ${Spell.Ready[Firebound Coalition]}
&& ${React.Global[MageAllianceNextID]} < 2[/CODE]

what would be the right syntax?
do those globals declare a variable or are those more like inline-definitions?
 
Last edited:
When I use /react list, EQ is freezing. Anyone else see this or able to help me diagnose?
 
This also happened to a friend the other day and appeared to be because the MQ2React.yaml became corrupted. Not sure how it got into that state, but vs code gave an error saying the file was either binary or used an unsupported text encoding. Still was able to open the file anyways, and could see some keys in the file looked out of place, but it for the most part still had the yaml format. However, it contained 1 randomly placed long line of unreadable characters.
It contained some duplicate keys too. Most of the reacts were missing, but the server/toon/enabled lists were still in there.

Things worked again after just cleaning up the file. Always keep a backup of MQ2React.yaml. It really bothers me how the plugin seems to rewrite the file any time you use a /react command. I had originally tried to group up similar reacts when I first started using the plugin, but gave up as it always got reformatted to alpha sort keys.
 
React using /stopcast got me wiped?
Using this reacts serveral weeks now, but today I was surprised and got smashed

[CODE lang="yaml" title="SHM-Reacts"] ShmH1Zrelik:
action: "/multiline ; /stopcast ; /cast ${React.Global[GemZrelik]}"
condition: >-
${React.Global[NmoveNinvNsit]} && (${React.Global[Sub60]} && ${React.Global[IC]})
&& ${Me.SpellReady[${React.Global[GemZrelik]}]} && !${Me.Song[Zrelik's
Watch].ID} && !${Me.Song[Zrelik's Alleviation].ID} && !${Me.Song[Zrelik's
Persistence].ID}
ShmH2BP:
action: "/multiline ; /stopcast ; /useitem ${InvSlot[Chest].Item.Name}"
condition: "${React.Global[NmoveNinvNsit]} && ${React.Global[Sub30]} && ${Me.ItemReady[${InvSlot[Chest].Item.Name}]}"
ShmH3SoothAA:
action: /multiline ; /stopcast ; /alt act 619
condition: >-
${React.Global[NmoveNinvNsit]} && ${React.Global[Sub30]} && !${Me.ItemReady[${InvSlot[Chest].Item.Name}]}
&& ${Me.AltAbilityReady[Soothsayer's Intervention]}[/CODE]

I use these reacts parallel with Kissassist.
On a bad pull today I saw my shaman attempting to heal but got continuously interupted.
I heard that /multiline can cause problems, but have no clue why this happens today and how to improve.
first Idea: add an additional check at "ShmH2BP" and "ShmH3SoothAA" 's condition if not the cast of Zrelik is running ... anyone can help me to find the sysntax?
like !"{Me.Casting("Zreli'ks Recourse")} ... or similar?

can I generally check if another react is progressing (any other) inside a condtiton of react, so 1 react may not interrupt another react?
 
Release MQ2React

Users who are viewing this thread

Back
Top
Cart