• 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

Hatching a Plan instance flipping

Joined
Sep 12, 2004
RedCents
17,245¢
Because I am lazy and like to work while I play, I wrote this here macro to flip the hatchery wing instance you get in PoK in order to DSPL up some lowbie toons. I use this macro I posted earlier (named it hitall.mac), but you can replace hitall.mac with whatever method you use to hit all the mobs. If you use a PBAE spell, you'll meed to write up a mac that makes sure that all the mobs your tank has aggroed have made it to the kill area, which is notably harder to do than just cycling through the mobs and hitting them all (in macro form anyway).

You will also need an oldkaesorab.bin for MQ2Navigation; I've attached one that I use successfully.

Also, it is not wise to completely AFK with this macro for 2 reasons. 1) It's in PoK, which has very high visibility, so running this thing for hours on end would be very suspicious. 2) the mobs level up as your PLee levels up. As soon as my little PLee hit 75, my mage could no longer take on the whole instance (even with Shining Armor) at once. It might be because his defense is far from capped but the take home is that at some point, unless you can handle 30-35 level 90-93 mobs at once (yes, there are obviously many classes that can do this with Shining Armor), there will be a point where your "tank" will die on the pull. Plus, at higher levels, this exp stops being that great; this is intended to be more of a low level PL macro. Anyway, here it is, in all its stunted glory...

Rich (BB code):
#turbo 40

| Need MQ2Navigation with an oldkaesorab.bin (I use 1.00/128 which gives okay results)
| Need MQ2BuffTools to click off DS easily
| Need MQ2MoveUtils to exit
| Need to have MQ2EQBC up and running when you start this macro (connected and everything)

Sub Main
  | --------------------------------------------------------------
  | change these!
  /declare PLee string outer Littleguy
  /declare Tank string outer Tankerank
  /declare DSer string outer Mageofjustice
  /declare Cleric string outer Ihealyou
  /declare DSSpell string outer Flameskin Rk. II
  /declare ArmorSpell string outer Shining Armor
  /declare CredenceSpell string outer Unified Hand of Credence
  /declare CredenceBuff string outer Credence
  /declare MitSpell string outer Rallied Armor of Vie
  | stop editing
  | -------------------------------------------------------------
  
  /declare i int outer
  | uncomment this if you don't have ROF, and see below for a method to test aggro without ROF
  | /declare j int outer
  /declare MobID[100] int outer
  /declare NumMobs int outer
  
  /bcaa //plugin mq2navigation
  /bcaa //plugin mq2moveutils
  /plugin mq2bufftool
  
  :loop
  
  /invite ${PLee}
  /delay 2s
  /bct ${PLee} //invite
  /delay 300s ${Group.Member[${PLee}].ID}
  
  /tar destrea
  /say investigate
  
  /bct ${PLee} //tar destrea
  /delay 30s
  /bct ${PLee} //say ready
  
  /bct ${Cleric} //tar destrea
  /delay 5s
  /bct ${Cleric} //say ready
  /delay 5s
  /say ready
  
  /delay 120s ${Zone.Name.Equal[Hatchery Wing]}
  /delay 5s
  
  /clickoff "${DSSpell}"
  /bct ${Cleric} //tar ${Tank}
  /delay 5s
  /if (${Me.Buff[${CredenceBuff}].Duration} < 100) {
    /bct ${Cleric} //casting "${CredenceSpell}"
	/delay 10s
  }
  
  /if (${Me.Buff[${MitSpell}].Duration} < 100) {
    /bct ${Cleric} //casting "${MitSpell}"
	/delay 5s
  }
  
  /bct ${Cleric} //casting "${ArmorSpell}"
  /bct ${PLee} //disband
  
  /delay 5s ${Me.Buff[${ArmorSpell}].Duration}>80
  
  | set the alerts to be everything we want to pull (we get 3 for free in hatchery wing)
  /alert clear 1
  /alert add 1 a_corrupt_defiler
  /alert add 1 a_cryptic_diviner
  /alert add 1 an_imperial_construct
  /alert add 1 a_stonefist_cenobite
  /alert add 1 a_hateful_revenant
  /alert add 1 a_vault_sentry
  
  /varset NumMobs ${SpawnCount[npc alert 1]}
  
  | populate the mob list with everything we want to pull
  /for i 1 to ${NumMobs}
	/varset MobID[${i}] ${NearestSpawn[${i}, npc alert 1].ID}
  /next i
  
  | run to each mob and get proximity aggro
  /for i 1 to ${NumMobs}
    /target id ${MobID[${i}]}
	/navigate target
	
	| allow time to run to the mob
	/delay 10s !${Navigation.Active}
	
	| wait until the mob has aggroed me (proximity aggro)
	/delay 10s ${Target.PctAggro} 
	| that requires ROF, use this other method if you don't have ROF:
	| /for j 1 to 10
	|   /assist
	|   /delay 1s ${Target.Name.Equal[${Me.Name}]}
	| /next j
  /next i
  
  | run back to the entrance near a corner and mobs will push tight into corner
  | (this could use some tweaking, best way to corner myself?)
  /navigate -54 11 6
  /delay 300s !${Navigation.Active}
  /target ${Me.Name}
  /bct ${DSer} //casting "${DSSpell}" -maxtries|100
  /bct ${Cleric} //casting "${ArmorSpell}"
  /bct ${PLee} //mac hitall
  /bct ${Cleric} //tar ${PLee}
  /delay 5
  /bct ${Cleric} //mac kissassist
  
  /delay 600s !${Me.XTarget[1].ID}
  /echo done
  | now zone out
  /bcaa //taskquit
  /bca //endmac
  /bcaa //navigate -80 -32 6
  /delay 5s
  /bcaa //moveto loc -32 -100 6
  
  /delay 120s ${Zone.Name.Equal[The Plane of Knowledge]}
  /delay 5s
  /goto :loop
/return
 

Attachments

An addendum: these mobs hit harder and have more HP than they should for their level (much harder and much higher in higher level instances), so be prepared for that.
 
How do you edit this INI?

Simply replace Littleguy with the name of your PLee, Tankerank with the name of your tank, etc? Or am I doing it wrong then? :S

Rich (BB code):
Sub Main
  | --------------------------------------------------------------
  | change these!
  /declare PLee string outer Littleguy
  /declare Tank string outer Tankerank
  /declare DSer string outer Mageofjustice
  /declare Cleric string outer Ihealyou
  /declare DSSpell string outer Flameskin Rk. II
  /declare ArmorSpell string outer Shining Armor
  /declare CredenceSpell string outer Unified Hand of Credence
  /declare CredenceBuff string outer Credence
  /declare MitSpell string outer Rallied Armor of Vie
  | stop editing
  | -------------------------------------------------------------
 
That is correct. Is it not working?

- - - Updated - - -

Also, that's not an INI, it's a mac. I didn't implement ini reading into this macro/
 
Nope, just wantend to be sure before I tried it out.

And it's a mac indeed, sorry for the confusion but I am pretty new to all this.
 
Where exactly is the .bin file supposed to go? My tank just stands inside the instance and doesn't move.
 
In the MQ2Navigation folder.

If that folder doesn't exist then make it inside of your Release folder.

Make sure you /plugin MQ2Navigation
 
Hmm still doesn't work. Im sure any number of things could have broken this over the past year and a half lol.
 
I'll go over it when I get home and see if anything needs to be fixed or updated unless someone else beats me to it.
 
MQ2NAV is awesome, but the programmer that created it is busy and we miss their expert abilities! Hopefully we will get a Christmas present in the form of an update soon!
 
I tried this and my puller just stood there and it said failed to navagate to target or something of the sort
 
mq2navigation has been replaced with mq2nav the macro might need updating to reflect that
 
Ok, so im looking to utilize this. Am newly coming back to EQ and Redguides. Can anyone give me a step by step on getting this set up and running for DS PLing using my 105 SK?
 
Put your DS in where it says to. ((/declare DSSpell string outer Flameskin Rk. II)) Make the Flameskin Rk. II your SK DS spell.

I would advise anyone to use a Druid for this. You can easily add a heal downflag to your MQ2Melee to keep yourself healed and also at the end of the macro set it up to Group Teleport (Bind) all the characters out and just bind yourself next to destrea as zoning out is very buggy.
 
Ok, so replace spell names with my personal DS's right? So, im not using the same toons as listed, im PLing with just my SK and Merc PLing up 2 lowby characters at the same time. How would that work?
 
Ok, so replace spell names with my personal DS's right? So, im not using the same toons as listed, im PLing with just my SK and Merc PLing up 2 lowby characters at the same time. How would that work?

You'll have to edit it to suit you. Make sure you have a non damaging primary and shield in.
 
This zone has had its exp nerfed, look elsewhere for PLing. I am getting only 1% at level 62 so its about 25% of where it should.
 
Was kinda curious if anyone has wrote this for a 105 sk tank PL'ing a bard with the chords song?
 
Was kinda curious if anyone has wrote this for a 105 sk tank PL'ing a bard with the chords song?

Will start playing with the macro see if I can get it to work.
I have a 105 shd/mag/clr/enc/brd to use and want to PL a few chars like war/ber/brd/clr/bst/shm
I do notice someone else doing this with a 70+dru and a 20's BST on my server =)

------ initial attempt ------

So trying this with: tank+dser=mage, cleric=cleric, PLee=Beserker

- pathing does not work very well, keep getting stuck on stuff
- level 7 beserker pulls agro and dies, the mage does not have anything that is generating aggro after initial pull

my initial edits to understand it.... this is not
Rich (BB code):
#turbo 40

| Need MQ2Navigation with an oldkaesorab.bin (I use 1.00/128 which gives okay results)
| Need MQ2BuffTools to click off DS easily
| Need MQ2MoveUtils to exit
| Need to have MQ2EQBC up and running when you start this macro (connected and everything)

Sub Main
  | --------------------------------------------------------------
  | change these!
  /declare PLee string outer Toon-Noob
  /declare Tank string outer Toon-Tank
  /declare DSer string outer Toon-DSer
  /declare Cleric string outer Toon-Clr
  /declare DSSpell string outer Flameshield of Ro
  /declare ArmorSpell string outer Shining Bulwark
  /declare CredenceSpell string outer Unified Hand of Surety
  /declare CredenceBuff string outer Surety
  /declare MitSpell string outer Rallied Greater Ward of Vie
  | stop editing
  | -------------------------------------------------------------
  
  /declare i int outer
  | uncomment this if you don't have ROF, and see below for a method to test aggro without ROF
  | /declare j int outer
  /declare MobID[100] int outer
  /declare NumMobs int outer
  
  
  :loop
  
  :setup group
  /bcg //end
  /bct ${PLee} //invite ${Tank}
  /delay 2s
  /bct ${PLee} //invite ${DSer}
  /delay 2s
  /bct ${PLee} //invite ${Cleric}
  /delay 2s
  /bct ${Tank} //invite
  /bct ${DSer} //invite
  /bct ${Cleric} //invite
  /delay 300s ${Group.Member[${PLee}].ID}

  :getTask
  /bct ${PLee} //target npc destrea
  /delay 5s
  /bct ${PLee} //say investigate 
 
 :joinInstance
  /delay 30s
  /bct ${PLee} //say ready
  /delay 5s
  /bcga //target npc destrea
  /bcg //say ready
  /clickoff "${DSSpell}"
  /delay 5s
  /say ready
  
  :insideInstance
  /delay 120s ${Zone.Name.Equal[Hatchery Wing]}
  /delay 5s 
  /bct ${Cleric} //tar ${Tank}
  /delay 5s
  /if (${Me.Buff[${CredenceBuff}].Duration} < 100) {
    /bct ${Cleric} //casting "${CredenceSpell}"
	/delay 10s
  }
  
  /if (${Me.Buff[${MitSpell}].Duration} < 100) {
    /bct ${Cleric} //casting "${MitSpell}"
	/delay 5s
  }
  
  /bct ${Cleric} //casting "${ArmorSpell}"
  
  /bct ${Tank} //disband
  /bct ${DSer} //disband
  /bct ${Cleric} //disband
  
  /delay 10s ${Me.Buff[${ArmorSpell}].Duration}>80
  
  | set the alerts to be everything we want to pull (we get 3 for free in hatchery wing)
  /alert clear 1
  /alert add 1 a_corrupt_defiler
  /alert add 1 a_cryptic_diviner
  /alert add 1 an_imperial_construct
  /alert add 1 a_stonefist_cenobite
  /alert add 1 a_hateful_revenant
  /alert add 1 a_vault_sentry
  
  /varset NumMobs ${SpawnCount[npc alert 1]}
  
  | populate the mob list with everything we want to pull
  /for i 1 to ${NumMobs}
	/varset MobID[${i}] ${NearestSpawn[${i}, npc alert 1].ID}
  /next i
  
  | run to each mob and get proximity aggro
  /for i 1 to ${NumMobs}
    /target id ${MobID[${i}]}
	/navigate target
	
	| allow time to run to the mob
	/delay 10s !${Navigation.Active}
	
	| wait until the mob has aggroed me (proximity aggro)
	/delay 10s ${Target.PctAggro} 
  /next i
  
  | run back to the entrance near a corner and mobs will push tight into corner
  | (this could use some tweaking, best way to corner myself?)
  /navigate -54 11 6
  /delay 300s !${Navigation.Active}
  /target ${Me.Name}
  /bct ${DSer} //casting "${DSSpell}" -maxtries|100
  /bct ${Cleric} //casting "${ArmorSpell}"
  /bct ${PLee} //mac hitall
  
  /bct ${Cleric} //tar ${PLee}
  /delay 5
  /bct ${Cleric} //mac autocleric22
  
  /delay 600s !${Me.XTarget[1].ID}
  /echo done
  | now zone out
  /bcaa //taskquit
  /bca //endmac
  /bcaa //navigate -80 -32 6
  /delay 5s
  /bcaa //moveto loc -32 -100 6
  
  /delay 120s ${Zone.Name.Equal[The Plane of Knowledge]}
  /delay 5s

  /goto :loop
 
Last edited:
any luck getting it to work, i played with it and so far not having any luck :( wish i knew how to write the macros lol
 
So I updated this a bit. You need to make a nav mesh (I used stock original settings, literally just loaded the zone, build, save). Tank needs to run mq2nav (no other toons need it running).

This update requires a bard in "PLee" spot with "Chords of Dissonance" song in gem 1 to level with potentially the other 2 PLee'ers (bard at least lvl 20 so nuke lands).
Added a spot for 2 more people to PL
Added a spot for AE aggro to protect cleric and bard
Need to make a Kissassist ini for your cleric
Changed around the move commands so only the PL group get them (wiped another group on the same EQBCS client)
As the previous posts mention, mob placement still needs work.

Rich (BB code):
#turbo 40

| Need MQ2Nav with an oldkaesorab.navmesh (I use stock settings)
| Need MQ2MoveUtils to exit
| Need to have MQ2EQBC up and running when you start this macro (connected and everything) 
| Need to be either at the task giver or in zone-in of instance
| Need to have a bard as your PLee (not PLee2 and not PLee3) and Chords of Dissonance in gem 1
| Added some space for ae agro once back to camp
| Added some space for 2 other plee's
| Updated for newest mq2nav, need to make the mesh yourself

Sub Main
  | --------------------------------------------------------------
  | change these!
  /declare PLee string outer NameOfNoobBard
  /declare PLee2 string outer NameOfNoob2
  /declare PLee3 string outer NameOfNoob3
  /declare Tank string outer NameOfTank
  /declare DSer string outer NameOfDScaster
  /declare Cleric string outer NameOfCleric
  /declare DSSpell string outer Zombie Skin
  /declare AgroSpell string outer Disgust
  /declare AgroSpell2 string outer Abhorrence
  /declare AgroSpell3 string outer Repugnance
  /declare ArmorSpell string outer Shining Bulwark Rk. II
  /declare CredenceSpell string outer Unified Hand of Surety Rk. II
  /declare CredenceBuff string outer Surety Rk. II
  /declare MitSpell string outer Rallied Greater Ward of Vie Rk. II
  | stop editing
  | -------------------------------------------------------------
  
  /declare i int outer
  | uncomment this if you don't have ROF, and see below for a method to test aggro without ROF
  | /declare j int outer
  /declare MobID[100] int outer
  /declare NumMobs int outer
  
  
  :loop
  
  :setup group
  /bcg //end
  /bct ${PLee} //invite ${PLee2}
  /delay 2s
  /bct ${PLee} //invite ${PLee3}
  /delay 2s
  /bct ${PLee} //invite ${Tank}
  /delay 2s
  /bct ${PLee} //invite ${DSer}
  /delay 2s
  /bct ${PLee} //invite ${Cleric}
  /delay 2s
  /bct ${PLee2} //invite
  /bct ${PLee3} //invite
  /bct ${Tank} //invite
  /bct ${DSer} //invite
  /bct ${Cleric} //invite
  /delay 300s ${Group.Member[${PLee}].ID}

  :getTask
  /bct ${PLee} //target npc destrea
  /delay 5s
  /bct ${PLee} //say investigate 
 
 :joinInstance
  /delay 30s
  /bct ${PLee} //say ready
  /delay 5s
  /bcga //target npc destrea
  /bcg //say ready
  /notify BuffWindow Buff${Math.Calc[${Me.Buff[${DSSpell}].ID}-1].Int} leftmouseup
  /delay 5s
  /say ready
  
  :insideInstance
  /delay 120s ${Zone.Name.Equal[Hatchery Wing]}
  /delay 5s 
  /bct ${Cleric} //tar ${Tank}
  /delay 5s
  /if (${Me.Buff[${CredenceBuff}].Duration} < 100) {
    /bct ${Cleric} //casting "${CredenceSpell}"
	/delay 10s
  }
  
  /if (${Me.Buff[${MitSpell}].Duration} < 100) {
    /bct ${Cleric} //casting "${MitSpell}"
	/delay 5s
  }
  
  /bct ${Cleric} //casting "${ArmorSpell}"
  
  /bct ${Tank} //disband
  /delay 2s
  /bct ${DSer} //disband
  /delay 2s
  /bct ${Cleric} //disband
  
  /delay 10s ${Me.Buff[${ArmorSpell}].Duration}>80
  
  | set the alerts to be everything we want to pull (we get 3 for free in hatchery wing)
  /alert clear 1
  /alert add 1 a_corrupt_defiler
  /alert add 1 a_cryptic_diviner
  /alert add 1 an_imperial_construct
  /alert add 1 a_stonefist_cenobite
  /alert add 1 a_hateful_revenant
  /alert add 1 a_vault_sentry
  
  /varset NumMobs ${SpawnCount[npc alert 1]}
  
  | populate the mob list with everything we want to pull
  /for i 1 to ${NumMobs}
	/varset MobID[${i}] ${NearestSpawn[${i}, npc alert 1].ID}
  /next i
  
  | run to each mob and get proximity aggro
  /for i 1 to ${NumMobs}
    /target id ${MobID[${i}]}
	/nav target
	
	| allow time to run to the mob
	/delay 10s !${Navigation.Active}
	
	| wait until the mob has aggroed me (proximity aggro)
	/delay 10s ${Target.PctAggro} 
  /next i
  
  | run back to the entrance near a corner and mobs will push tight into corner
  | (this could use some tweaking, best way to corner myself?)
  /nav loc 8.80 -54.57 0.01
  /delay 300s !${Navigation.Active}
  /target ${Me.Name}
  /bct ${DSer} //casting "${DSSpell}" -maxtries|100
  /delay 45s
  /face heading -45
  /bct ${Tank} //casting "${AgroSpell}" -maxtries|100
  /delay 15s
  /bct ${Tank} //casting "${AgroSpell2}" -maxtries|100
  /delay 10s
  /bct ${Tank} //casting "${AgroSpell3}" -maxtries|100
  /delay 10s
  /bct ${Cleric} //casting "${ArmorSpell}"
  /bct ${PLee} //moveto loc -11 -45 4
  /bct ${PLee} //melody 1
  
  /bct ${Cleric} //tar ${Tank}
  /delay 5
  /bct ${Cleric} //mac kissassist

  /delay 30s
  /bct ${PLee} //stopsong
  
  /delay 1200s !${Me.XTarget[1].ID}
  /echo done
  | now zone out
  /bct ${PLee} //taskquit
  /bct ${PLee2} //taskquit
  /bct ${PLee3} //taskquit
  /bct ${Cleric} //taskquit
  /bct ${Tank} //taskquit
  /bct ${DSer} //taskquit
  /bct ${Cleric} //endmac
  /bct ${PLee} //moveto loc -30 -46 6
  /bct ${PLee2} //moveto loc -30 -46 6
  /bct ${PLee3} //moveto loc -30 -46 6
  /bct ${Cleric} //moveto loc -30 -46 6
  /bct ${Tank} //moveto loc -30 -46 6
  /bct ${DSer} //moveto loc -30 -46 6
  /delay 5s
  /bct ${PLee} //moveto loc -32 -100 6
  /bct ${PLee2} //moveto loc -32 -100 6
  /bct ${PLee3} //moveto loc -32 -100 6
  /bct ${Cleric} //moveto loc -32 -100 6
  /bct ${Tank} //moveto loc -32 -100 6
  /bct ${DSer} //moveto loc -32 -100 6
  
  /delay 120s ${Zone.Name.Equal[The Plane of Knowledge]}
  /delay 5s

  /goto :loop
 
Last edited:
Hatching a Plan instance flipping

Users who are viewing this thread

Back
Top
Cart