Bot Macro

PeteSampras

Your UI is fucking you. Stop using it.
Joined
Dec 12, 2007
Messages
3,956
Reaction score
49
Points
38
PeteSampras is no longer supporting bot.mac, please see [40oz] thread at link below

Bot.mac Updates and Bug Fixes by [40oz]




---------------------------------------------


Version 2015.0524

You must use MMOBugs compile to use this macro. Several of it's exclusive plugins are used.

Description: Macro for all classes. It should be a fully functional macro that uses all your skills/abilities/items and is customizable via .ini and in game commands.

WIKI link: Bot - MMOBugs Wiki

Tweaking INI thread:
In order to help do tweaking of INIs, i made a new thread. it is NOT to be used for any bug/error reporting. It should be used ONLY for asking for specific examples of how to tweak a section of INI, or to respond to someone/provide an example. I will upload INI examples on that thread if any are submitted to me.

http://www.mmobugs.com/forums/everqu...tml#post204429

Initial set up:
1. Set up your group puller/tank as intended.
2. Set XTarget1 to your main tank/assist target if using AssistType=3.
3. /mac bot load
4. This will create an ini in your macros folder: Bot_Name_class.ini
5. Edit the ini to desired settings. Note that AAs, Auras, Discs, SelfBuffs, Buffs are set to FALSE by default to prevent issues. Also note that ALL pet information must be done manually for now. Ensure SpellIcon names are correct. For group Buffs they will almost certainly be wrong. I suggest using single target buffs for best results and most efficiency. (make sure to edit to proper classes)

Use:
To use default ini settings: /mac bot
To specify your assist: /mac bot PeteSampras
To specify AssistAt %: /mac bot PeteSampras 95

AssistType=1 - standard /assist
AssistType=2 - auto picks targets
AssistType=3 - assists and uses XTarget1 to pick target
AssistType=4 - uses netbots to assist

Troubleshooting:
Bot - MMOBugs Wiki

In game commands:
List of new available in game commands: /helpme

Required Files:
bot.mac
Spell_routines.inc - (You must have the latest version on this thread.)

Optional file:
CharInfo.mac - this will list all your abilities/spells/AAs to allow for easy copy and paste if you want to edit your ini or to post the ini this creates to help me enhance the bot macro.

Bug Reporting:
*If you have a crash, it should look something like this:
(use /plugin mq2log to capture crashes, or a screenshot)
MQ2Log:
Logs messages displayed in the MQ2ChatWnd to YourMQ2Dir/Logs/MQ2ChatWnd_servername_charname.log

/tslog [off|on] - Toggles (or forces on/off) whether the current date/time stamp is pre-pended to each line logged. The current setting is global, and saved in MQ2Log.ini under [Settings], entry: TimeStamp=1 or TimeStamp=0
Subroutine LootNPCs not found.
bot.mac@93(Rest): /if (${LootNPCs}) /call LootNPCs
/call Cast "French Toast" gem1 Blue
/echo ${Group.Member[1].CoolnessLevel}


All I really need is the line number and actual error message , but the first line of code is useful so i dont have to guess.

Colors mean:
The actual error
The macro name
The line number
The subroutine it's in
The actual line of code
Filler code that I don't need

Notes:
Please provide feedback / suggestions / error messages in PM or on thread or in IRC. I cant fix it or make it better if i dont know it is an issue. Thanks.

INI/Help Request:
When asking for help with your INI, please post a copy of your INI, or at least the [section] you are having issues with.
Remove any names, they can appear in a few spots, [Setroles], [XHeal], [HealSingle], and [Settings]
Use [code] [/code] brackets when posting the INI.
Briefly, but as accurately as possible, describe the problem you are having.

Recent Patch Notes:
Posted version 2.35
Changes:
- Updated ${GoM} to include latest and greatest bufficon
- AssistType=0, See if it works to only kill what you have target manually
- Added TimeOut/TimeIn function with optional command. Example use to take a 30 second timeout.
Code:
/bc TimeOut 30s
Example to take 3 min break and /sit
Code:
/g TimeOut 3m /sit
Example to use multiline:
Code:
/echo TimeOut 30s "/mulitline ; /alt act ${Me.AltAbility[${InvisSpell}].ID} ; /sit"
To immediately unpause:
Code:
/bc TimeIn
Originally I was going to add this to looting, but it can be used as a [Settings] GMAction= or just to med for a set time without having to pause.

Loot.Ini, [Loot] addition:
Code:
[Loot]
Loot_PeteSampras=potato-1|Sky, Sword of Heaven-1|veggies-100|
Now in theory, when loot is autolinked in EQBC (only works in eqbc as is because it would report ID and get you busted in a group), it will loot the set amount you have designated and count down for each one you loot. Format must match exactly:
Item Name-3|

This is all completed untested, so I need verification it works.

Posted version 2.36
Changes:
- Fixed for 18 May EQ patch changed item links (affects /addclicky, /removeclicky, /petgear)

Posted version 2.37
Changes:
- Discs will now create an INI correctly

Posted version 2.38
Changes:
- Updated items to use /useitem for spell_routines.inc and bot.mac. REQUIRES latest mmobugs compile to function.
- Added "abilities" to be used for ImHit. Already able to be used in spell_routines.inc

Posted version 2.39
Changes:
-Added .Collectible to item datatype. So ${FindItem[].Collectible}, ${Cursor.Collectible} and all the rest that use item datatype will have access if you want to use any custom routines. INI section affected:
Loot.ini
[Loot]
LootCollectibles=TRUE

-Target.Named updated so it should actually work like it used to. Vendors/merchants/pets will return FALSE, but almost everything else that is not a trash mob should return TRUE. I will leave in ${Named} for now, but it serves no purpose at this point.

- Macro parser should give more accurate error messages to make my life easier

- Spell[].Slot[] info has been updated for RoF expansion and I added auras. All auras will start with the phrase "Aura Effect: ". About half the auras are hand jammed/hard coded, so if an aura is wrong, let me know. ${Spell[Bloodlust Aura].Slot[1]} = Aura Effect: Bloodlust Effect or whatever. This will affect INI generation for [Aura] section, so let me know if there are errors.

Posted version 2.40
Changes:
- Changed Buff routine, should avoid CTD for those that were having issues.
- Corrected a declare in AssistType=1 and 4 routines that may have caused issues

Posted version 2.41
Changes:
- Corrected Spell[].TargetType to Check against Target.Body

Posted version 2.42
Changes:
- Corrected Endurance routine.
- Added [Endurance] EnduranceConditions= if you want to specify additional conditions for medding

Posted version 2.43
Changes:
- Added additional check for "you can't afford" and "you are out of money" message so it will only end the macro if you are interacting with a merchant.

Posted version 2.44
Changes:
- AssistType1 and 4 should now correctly check AttackRange settings.
- Added a 10 second buffer for the mob to get into range before turning on attack or reassisting. This should stop toons from engaging too quickly before mobs are in camp.

Posted version 2.45
Changes:
- NetBots CombatState TLO isnt working as intended. So did a workaround.


Posted version 2.46
Changes:
- Corrected typo in sell routine when interacting with vendors.

Posted version 2.47
Changes:
- BardRest section (Crescendo) should now /call correctly

Posted version 2.48
Changes:
- New merc TLOs, had to match macro to them

Posted version 2.49
Changes:
- Fixed one more merc TLO issue
- Added /toggle /alias that was previously removed on accident. you should once again be able to /toggle Options effectively if you couldnt already.


Posted version 2.50
Added:
Old merc TLOs will cause errors if you don't update.

[Pulling]
PrePullSkillName=Name of Skill
PrePullSkillGem=disc/alt/gem8/item
PrePullSkillDelay=1s - delay after using skill before you try to use your Pull skill
PrePullSkillReuse=10s - how often to wait before using PrePullSkillName again

This will allow you to do something before you pull, such as use monk mez.

[Pet]
PetGHold=TRUE

This will check for PetGHold more often and use it

[Bard]
CrescendoAtGroupEndurance=

Changes:
- XTarget [Buff] will now correctly check classes
- Discs will now check for .EnduranceCost and the [Disc] DiscEnduranceCostX= stuff can safely be removed/ignored
- Requests for buffs should now check for pc first to avoid targeting pets on accident.

Hidden settings:
There are a few hidden settings in the macro that I just never mention or only used for my personal use. Among them is a request section similar to quickbeg. You can add the request section in the OptionsCheck= and it will load it up in your ini.

[Request] section should now function correctly. You can ue this to request items, perform commands, request buffs, do anything if a certain condition is met.
[Request]
RequestTotal=2
RequestUse1=TRUE
RequestCommand1=/bc Focus
RequestConditions1=${SpawnCount[pc shamanname]} && ${Spawn[pc shamanname].Distance}<30 && !${Me.Buff[Darkpaw Focusing].ID}
RequestTimer1=30s

Posted version 2.51
Changes:
- Fixed a Group.Member new TLO issue.

Posted version 2.52
Changes:
- Updated .Collectible in loot routine to actually loot them properly.

Posted version 2.53
Changes:
- Fixed a bard twisting variable bug
- Added:
[Mana]
DeathBlossom_IfManaBelow=25

Posted version 2.54
Added:
[Loot]
LootWhileInvis=FALSE

Changes:
-Fixed [Pulling] CourseCorrection settings for /nav

-Updated loot routine for collectibles to hopefully fix the problem of not looting.

- Fixed [Rez] section to actually check conditions

Posted version 2.55
Added:
Added a bunch of aliases and events, see above post for details.
- Added ability for bards to /twist off if RestTwist= is blank
- Added ability for bard to /twist off if Group.Puller is more than X distance away:
[Bard]
StopSongsIfPullerIsThisDistanceOrMore=0

If set to 0, it ignores it and will keep twisting as usual.

Changes:
- Fixed a /lootthis typo
- Reenabled Pet.GHold
- Fixed a possible /loot issue
- Enabled Conditions for [Rez] section


Posted version 2.56
Changes:
- Fixed [Rez] Conditions /declare issue

Posted version 2.58
Changes:
- Added a subscription check for trying to cast items from inside bags. if you are on silver status, you should no longer try to click from bags for attuneable/prestige gear that you no longer qualify for.

Posted version 2.59
Changes:
- Fixed typos in rez routine, rest /twist, and /startcamp.
- Reenabled forcing you to /mac bot load if it is first time you run the macro because apparently nobody reads instructions.

Posted version 2.60
Changes:
- Fixed /varcalc error in OffTank routine
- Added Subscription.Equal[GOLD] check for clicky items to use /useitem
- ClickyNuke section will hardcode the recast timer you set instead of relying on UI indicator.
- Macro forces /mac bot load if it thinks you didnt read instructions.

Posted version 2.61
Changes:
- Changed Me.CombatAbility[].EnduranceCost to Spell[].EnduranceCost
- This will remove a disc error and allow you to remove how much DiscEndCostX= from your INI.

Posted version 2.62
Changes:
Reverted clarity potions.
Added Maintank.Dead check to [MainTankBuff]
Added lootwnd and tradewnd check specifically one for [Buffs], along with Me.Hovering
SelfBuffs exited routine if you have a Me.Casting.ID
Added !${Me.XTarget} check to enter rest/camp routines. Bards should now enter rest routine and return to camp along with everyone else.

Posted version 2.63
Changes:
-ClickyItems will set timer even if timer status doesnt show correctly
-bards can now /twist a song to pull with.


Posted version 2.64
Changes:
- Bards should now use AutoClickies and ClickyMaintenance correctly
- Necros should use death blossom correctly (i need this verified)
- Updated a bunch of /ini entries, mostly in loot section. base compile changed how things worked and if it isnt in quotes, it was deleting the entry and resetting it to default value.
- Updated spell_routines.inc to work with bards (uses mq2twist to cast songs) and updated a couple subs.


Posted version 2.65
Changes:
- Updated for 28 Jan patch. Mandatory update for macro to function correctly.
- Pet buff stacking check
- Pet gear correction
- misc other fixes

Posted version 2.66
Changes:
- Updated for for recent patches.
- Added [Pet] PetGHold=
- Updated [Aggro] section to work with warriors
- misc other fixes including bards should stop standing around like tards

Posted version 2014.0409
Changes:
- Updated for for recent patches.
- Corrected a buff issue
- matched up AE spells to mob body types (turn undead and turn summoned lines)
- new version naming schema to reflect date rather than some obscure 2.x number

Posted version 2014.0419
Changes:
- Reenabled [ImHit] section

Posted version 2014.0424
Changes:
- Some spells have a space at the end of their named. Fixed it for [SelfBuff] section and error message notification to check for that.

Posted version 2014.0427
Changes:
- Added [Disc] section to paladin for /mac bot load purposes
- Changed some .Right / .Left stuff that could give errors, although the people that had issues were using an old version of the macro.

Posted version 2014.0505
Changes:
- Added an additional check so that NULL doesnt get added to Mob_Ignore_List.ini
- Fixed a typo in loot routine that shouldnt matter, but whatevs.
 

Attachments

  • CharInfo.mac
    12.3 KB · Views: 299
  • Spell_routines.inc
    67.1 KB · Views: 358
  • bot.mac
    465.2 KB · Views: 393
Last edited:
Troubleshooting:
http://www.mmobugs.com/wiki/index.php/Bot#FAQ

Use the wiki for tips on setting up individual sections and tweaking the INI to maximize your performance.

Protips:
Turn off downshits/holyshits while running the macro. They will eventually interfere and maybe crash the macro.
Downshitif:
Code:
downshitif=${If[!${Select[${Zone.ID},344,202,151,345,33505]} && !${Me.Invis} && ${Me.Standing} && ${Me.Buff[Resurrection Sickness].Duration}<38 && ${Me.Buff[Revival Sickness].Duration}<18 && !${Macro.Name.Equal[bot.mac]},1,0]}
Holyshitif:
Code:
holyshitif=!${Macro.Name.Equal[bot.mac]},1,0]}
General setup:
All classes will have to set their AAs to TRUE for the ones they want to use.

Pet info needs checked for petbuffs.

For buffs, selfbuffs. You need to check your "Totals" and icons, alternate icons, and set your aliases.

For rezes you need to verify what you want to cast in and out of combat. Pal 96% rez and dru/sham 90% rez can only be cast out of combat.

For following and setroles and general settings, that is all on you to put what you want there.

Merc info needs added if you have a dps merc and want to have it manually assist or change stances.

Discs will need tweaked. If you only want to burn a defensive disc when there are 4 mobs nearby, youll need to change that.
Patch Notes: click spoiler to read
Spoiler:

Posted version 2.0
Initial 2.0 version post.
/mac bot load to create a new INI to avoid problems. INI will now be named in Bot_CharName_Class.ini naming convention.
If you were using spell_routines.inc from this post. Redownload it or it will try to use your old INI and mess things up.
Be sure to edit your CombatFrequency5= to get max performance out of the macro. And check all your TRUE/FALSE, ____Totals, and Icons for Buff/SelfBuff/AA etc sections.

Bot 2.0 will be fairly similar to the first version bot as far as you notice, but it will be more responsive and pick things up more quickly. Also, pulling and assisting should be much more effective.

AssistType= have changed. AssistType1 is for standard /assist, AssistType2 is to choose your own target, AssistType3 is to use XTarget1 to pickup targets, AssistType4 is to use netbots.

There are plenty more changes, but i dont want these important things to be lost in the ocean of information.

Posted version 2.01
Changed:
-AddList was getting messed up because assist would change target and list would keep the target info added. It now clears the list if you have nothing attacking you.
-ClearTargetDaraAlias also clears AddList and AddCount now.
-unattuned attuneable gear no longer tries to get added to autoclickies

Posted version 2.02
Changed:
-Bot Rangers rejoice! Using SetTargetMessage in concert with archery caused the archery check to fail if the target didnt already meet the requirements. Changed the attack routine so that archery rechecks. This should solve some problems a few of you have reported that I couldnt replicate.

I cannot stress enough to use SetTargetMessage= on your toons if you are boxing more than 2 on a single computer. They will instantly pick up your target that way.

Posted version 2.03
Changed:
-Fixed it so it doesnt double load Buff section
-Changed it so you cannot /toggle an invalid option
-Removed RestTwist from attempting to cast until i can figure out what is going on.

Posted version 2.04
Changed:
-Reduced the number of settings for each disc, use DiscConditions for the hitpoint and npc amount checks.
-changed nuke Free Target spells and how they cast. Let me know if it works and I will port that to splashes and debuffs.
-Found the CTD in aggro routine and fixed it. Also heavily modified aggro routine. Paladin/SHD will use most their aggro spells and AAs automatically if you have them memmed or available. SHD will use terror line by default, PAL will NOT use stuns by default. Audacity line will fire once per mob, Challenge for line will fire whenever you dont have the song icon on you, AE aggro / aggro spell in ini will fire if your group goes past the AggroAtAggroPct=50 threshhold on the aggro meter.
-AddHandler should not give any stray messages.
-Modified mq2nav pulling to check 100 radius from your camp for NPCs prior to pulling any mobs. (enc mez was memblurring sometimes so bard didnt know a mob was there)

Posted version 2.05
Changed:
-PBAE stuns/mez/nukes were not detecting correctly when used as stuns/nukes.
StunForAggro1= is gone, so is the level check. If you want to check for level or aggro, use StunConditions1=. Like:
Code:
StunConditions1=(${Melee.AggroMode}||${Target.Level}<=100)
This should greatly help those that want to AE stun/mez/lock down mobs on enchanters and was a required change in order to make that happen due to Spell.Slot[] info.

Posted version 2.06
Changed:
-Jolt aggro pct should no longer spam. new aggro TLO will be made, so it will change again.

Posted version 2.07
Changed:
-Rewrote how macro loads so that after the initial laggy part on startup, it should load faster.
-changed almost all keypress movement to /moveto, use mq2moveutils stucklogic and attempt to jump. Only during pulls will you use hitobstacle logic (strafe left or right) if you try to cast a spell and cant see your target.
-fixed a bug that was only affecting some people with RootRecast and DebuffRecast timers.
-custom UIs likely wont work correctly with the macro for any parts that use ${Window[]} information. If you get a bunch of spam, there is a solid change it is your UI or you have more than 256 slots of bag space.\

Posted version 2.08
Changed:
-Fixed Fade spam.

Posted version 2.09
Changed:
-ClickyNukeUse1= etc was not getting added to INI and wasnt getting declared, so they didnt work under new spell loader. They do now.
-MainTankBuff recast timers should work correctly now.
-ImHit messages should no longer sometimes say NULL -->

Posted version 2.10
Changed:
Bards: you work a whole lot better
---Bards will now automatically mez using AE mez. Remove all your [Mez] and [PBAEMez] Section if you are a bard. All you have to do is have the spell up.
--- fixed aura check that was causing rest songs to spam (you must have your aura spell up)
--- clicky nukes can bug out. set your epic recast to 180s, and your clicky BPs to ~half of their recast time. ie. 5m for a 10m recast BP.
--- changed [Buff] section for you on a fresh /mac bot load
--- AAs will work better

Everyone:
/mac bot load was doing weird shit with [Buff] section randomly by class. Some were missing BuffSpellIcon1=, others were missing BuffIconAlt1=. It should now load everything, but you need to fill in both sets of icons yourself.

Added
[Buff]
LevitateSpell=
LevitateSpellGem=

command: levon, levoff to use or click off lev.
special buff commands: invison, ivuon, invisoff, levon, levoff

Posted version 2.11
Changed:
-Readded Rank 2/3 auto detection of spells. I had forgot to do that under version 2.07 and higher.
-Added additional distance check for nukes, dot, debuff, stun, root so they dont try to fire if mob is beyond ${AttackRange}
- changed a /tar clear to completely erase AddList if a mob is more than 100 range away that is on target and mobs are beating on your group. let me know how that works.

Posted version 2.12
Changed:
-Changed XTarget TLO access to avoid crashes in latest compile, you shouldnt notice a difference
-Changed camp distance check on pull from 20 to 10, it should stop the spinning in circle, let me know

Posted version 2.12a
Changed:
-Changed XTarget stuff some more to bypass compile issues


Posted version 2.12b
Changed:
-Changed ClearTargetData check that was wrong

Posted version 2.13
Changed:
-Incorporated Aggro TLOs into mac. Should alleviate some custom UI issues, and should also now check your extended target window when factoring in aggro or jolt checks. I only got to test the Jolt routine, not the pull or aggro routine, but they use the same variables, so let me know if they dont work correctly.
-Added a variable called "BurnMode". Type /burn, or saying the BurnModeAlias in group/chat/raid/eqbc will set it to TRUE. You need to /burn again, say the alias, or restart mac to turn it back to FALSE.
[Assist]
BurnModeAlias=BurnModeAlias

You can now add ${BurnMode} as a conditions check and that Nuke/Dot/AA/etc will only work when you explicitly set yourself into BurnMode.

NukeConditions1=(${BurnMode}||${NamedOk})
Now that will only fire if the mob is a named, or if you have /burn turned on (it still has to meet the other requirements, like mob % hp restrictions)

Posted version 2.13a
Changed:
-Corrected typo in aggro routine for aggro meter

Posted version 2.14
Changed:
-Fixed recast timer on HealSingle and PetBuff, HealSingleRecast will now be added to /mac bot load. Use it for HoT/delayed heals. Recast timer is based on each individual, not the spell itself.
-Added support for silver accounts to use clickies in bags and aggro routine
-Mezzing corpses should happen less often.
-Added variable ${Facing} if you are within 30 degrees heading to mob. Added ${FacingMe} if mob is 5 degrees of facing you. You can now add those as conditions if needed.
-Added notification of AddList reset in case it bugged out from your assist accidently targeting wrong mobs.
-Updated ${GoM} variable to include the new RoF level.

Posted version 2.15
Changed:
-Re-added [AAtoBuy] section to support purchasing of AAs.
-Changed aggro section to only aggro as necessary, instead of all the time
-Changed color of aggro to dark red from red so you can see a difference between that and nukes
-Changed 4 target AE mez to no longer trigger MezImmuneList additions (this means it wont accidentally add mobs) DELETE YOUR CURRENT \mq2\macros\Mob_Ignore_List.ini to clear out and false additions if you use a mezzer
-Changed some clicky checks were changed to verify VOA/ROF. FoDefense only auto clicks if you are a warrior/paladin/SK AND if it your FoD clicky provides more AC than prismatic ward clicky.
-[FeignDeath] section should now correctly add on a /mac bot load for SK, BST, NEC.
-Removed a few double /declares that caused spam/error messages.
-There was more but i forget.

Posted version 2.15a
Changed:
-Using mounts via /addclicky will once again work. It always thought you were inside

Posted version 2.16
Changed:
[Buff]
-Completely rewrote buff section. Automatic detection for stacking of buffs with known stacking issues. If there is a buff series, i missed, let me know. I am sure there is at least 1.
-Buffs will now completely wait for gem timer refresh and then cast the spell unless you enter combat or have an addcount.
BuffIconAltX= <-- no longer needed with automatic detection, removed it
BuffXTargets=TRUE <-- Allows buffs for any PC/merc/pet on XTarget
BuffPets=TRUE <-- Will buff pets in group based on appropriate class check (including your own)

[AA]
UseAtMyHPX= <-- removed, it didnt do anything because i removed it in 2.0

[Fade]
-Was all sorts of messed up.

[Rez]
-Changed GroupRaidTimer= to RezGroupTimer= to fit naming conventions, plus it was confusing.

Combat related:
-Changed /pet attack so it checks more often

Pulling related:
-changed MoveToArrivalDist to hard coded 16

[HealSelf]
-Was not checking during rest. It is now.

Posted version 2.16a
Changed:
[Buff] routine fix.

Posted version 2.17
Changed:
[Buff] routine was only checking self and first group member. Now it will check the entire group.


Posted version 2.17a
Changed:
[Buff] routine no longer tries to buff familiars or pets with _pet in their name like swarm pets.


Posted version 2.17b
Changed:
/toggle was buggy if you tried toggle the very first item on OptionsCheck=, it's fixed.

Posted version 2.17c
Changed:
You will now kill NPC pets all the time instead of sometimes.


Posted version 2.17d
Changed:
Items/potions can now be used under [SelfBuff], reminder that all common clickies are auto used, so no reason to add them.

Posted version 2.18
Changed:
Logs to \mq2\logs\bot.mac.log
-Added automated INI verification for many sections/settings. This will let you know if something is missing/not filled out correctly, or misspelled for most settings. It isnt 100% fool proof, but it is quite effective.
-Added some rudimentary logging of errors.

Updated /helpme

Changed how the checks for InterruptToHeal and InterruptToXHeal work so you dont cancel your spell if a heal isnt ready.

Posted version 2.18a
Changed:
Updated autoclickies, this should fix some misc items that were properly detecting, but not clicking. So if you were having any difficulitiesl ie. Band of Minimal Effort or Dark Runed Belt, etc.. they should work now.


Posted version 2.18b
Changed:
Had wrong name for mod rods. Mage would chain summon them. Fixed, and removed out of combat requirement so that you can summon them during combat if you use the Mana routine in [Combat] section.

Posted version 2.18c
Changed:
Changed error check order for Rk. II/III spells

Posted version 2.18d
Changed:
Changed error check order for Rk. II/III spells again. If you have rk2/3 spells and are using 2.18c, download new version.

Posted version 2.19
Changed:
- If you die while pulling, you should no longer try to run back to camp when you are at bind
- Rez should check more often, and prior to buffs.
- Added [Aggro] AEAggroMinMobCount= for pal/sk. You will only use your AE Aggro spells/AAs if there are this many mobs on aggro and you dont have aggro on them all. Default is 1 mob so that you can use this as just a normal aggro tool with only 1 mob.
- Fixed an error in fade routine.

Posted version 2.19a
Changed:
- Added an additional buff check so you dont erroneously buff someone that has zoned, but not died.
- Added an additional /declare that will hopefully clear up a buff /varset error message.

Posted version 2.19b
Changed:
- Group spawn check fix for buffs

Posted version 2.20
Changed:
- Changed radius check for AE Aggro use
- Added Crescendo and SingleMez options for bards. SingleMez will use /twist once, for a single pulse of 18-24s mez, not continuously sing it.
Code:
[Bard]
UseSingleMez=TRUE         <-- Will use AA first, then any other single target mezzes you have memmed
UseCrescendo=TRUE        <-- Will use Crescendo line if you have it memmed on macro start
CrescendoAtGroupMana=30   <-- Will use Crescendo if  UseCrescendo=TRUE, you have Crescendo memmed, and a caster's mana drops  below this amount
CrescendoMyMinMana=30     <-- Will only use Crescendo if your mana is above this amount
Posted version 2.20
Changed:
- Fixed /toggle
- Readded [Campfire] to load as a default /mac bot load

Posted version 2.21
Changed:
- If your tank is outside of group, you should no longer chain reset your aggro. However, this means you may need to use ClearTargetDataAlias more often.
- Pull routine should work better with roamers. Still have some more plans to address this.
- If you are puller (AmIPuller) and looter, you will no longer run back and forth from corpses to camp to pull.
- If you are a caster that is calling SetTargetMessage, you will now only call assist once like melee characters do
- Mages should now be able to keep items on icon without autoinventorying things it isnt supposed to /autoinv.
- /pet attack will now check during casting and during /sumtank
- Added ${Thaumatize} as a valid variable for mages to see if Thauatize recourse is on you.

Noticed that if you have Twincast rk 1 as a [FightBuff] and Improved Twincast AA, it will spam trying to use it because ${Me.AltAbility[Twincast]} will return TRUE. You need to make sure you use FightBuffConditions1=!${Twincast} on your Twincast FightBuff.

Posted version 2.21a
Changed:
- Finally found the issue with PullCastRange being ignored. I'm a newb. It is fixed. Pullers of the world rejoice. and hopefully sorted out the moving target getting added to alert list nonsense by fixing that.

Posted version 2.22
Changed:
- Added more INI Error checks for SpellGems and [Pet] buffs Section
- Did some targeting cleanup on assisttype=2
- Added pulling course correction so you now follow the mob if it moves instead of running in a straight line
- Levitate + pulling shouldnt spin you in a circle any more
- Changed the amount of time before you give up trying to pull something. It is now base 10 seconds + (distance/50). So a mob immediately next to you gets 10 seconds, a mob at 500 gets 20 seconds, a mob at 1000 gets 30 seconds, much beyond 100 and you are looking at 1+ minute round trip pulls anyway and mob will deaggro you if you break 600 distance coming back.
- Added autodetection of trying to pull mobs that spell cannot take hold on
added some movement correction if you cannot see your target after trying to cast spell
- Added some OptionsCheck corrections.
-Removed some AAs from auto adding to [AA] section. If there are other AAs that get added here that shouldnt, please let me know. Things like illusions / vet AA / rezzes / anything that falls into another category should not get added here and I can make it so they dont.

Posted version 2.23
Changed:
- previously updated: Using /sumtank will now /face before and after moving back from mob. Pet buff section will not give an error for AAs that also had spell versions
- Standard and nav pulling will no longer think auras are ok to pull.

Posted version 2.23a
Changed:
- fixed nav aura check typo

Posted version 2.24
Changes:

  • /puller no longer edits ini, only toggles AmIPuller status to TRUE/FALSE
  • mqlog entries will now have your class on each entry to be able to identify characters
  • You should no longer spin in a circle at camp if levitating and pulling
  • Added SummonItem and Cure routines as valid OptionsCheck= options. Added Wiki entry for SummonItem. Still need more Cure testing before I finalize it.
  • Added new loot routine. It is significantly more capable. Added wiki entry for new Loot.ini. The [Settings] section in the Loot.ini has been removed and is now called [Loot] to enforce new ini.
  • Several new loot commands and options available. Refer to wiki
Posted version 2.24a
Changes:


  • Fixed PetBuff issue on /mac bot load
Posted version 2.25
Changes:
- Fixed bard single target mez typo


Added:
[Pulling]
AlertListClear=FALSE <-- Clear the alert list every AlertListClearTimer interval of time?
AlertListClearTimer=60m <-- how often the alert list clears (also clears on macro startup
CourseCorrectionTimer=5 <-- how often to course correct (in tenths of a second) when pulling. set to 300 to basically never course correct

Posted version 2.25a
Changes:
- Minor pulling tweak, if you clear your target, toon runs back to group
- Fixed [AAtoBuy] bug that if you had bought all the AAs listed and had over 50, it would spam/crash.
- Made [Loot] /loot aliases reload every time macro is launched, just like the others already do.

Posted version 2.26
Changes:
- BuffTotal=0 will no longer give an error message since you need the buff routine for invis/lev/invis undead spells and may have 0 Buffs otherwise
- Automated clickies will now work while invis if you have [Buff] AutoInvis=TRUE and AutoBreakInvis=TRUE
- Increased AutoInvis npc range check to 100'
- Added additional hit messages for ImHit to fire: mauls YOU, bashes YOU
- Pulling will now check if you get aggro while casting your PullSkillName and immediately run back if so
- PullAnnounceCMD has been readded to announce pulls, you may get false information in certain circumstances. example usage:
PullAnnounceCMD=/g ${SetTargetMessage} ${Target.ID}
PullAnnounceCMD=/g INC %T
- /echo messages will only appear once every 60 seconds if no mobs are up in your camp
- added /echo message if PullConditions werent met instead of it saying no mobs were up, same 60 second timer.
- Added [Custom] routine as a valid [Combat] option. So you can now use your CustomCombatX stuff as often as you like. ie:
CombatFrequency5=Custom|Lifetap|AA|Dot|Nuke|Snare|ClickyNuke|Jolt
- Added additional CurrentSub routine notifications so you can see what routine is currently running (about 95% accurate, some sub routines dont report).
--ok but wtf do i use that for? I use it on my hud so that whenever my mac is running, it tells me what subroutine:
\mq2\Hud.ini entry:
Macro1=3,5,81,0,255,255,Macro Running :
Macro2=3,82,81,255,255,255,${If[${Macro.Name.NotEqual["NULL"]}, ${Macro.Name} - ${CurrentSub},]}

Posted version 2.26a
Changes:
- Fixed error causing Totals to be ignored if there was no TotalIfNamed. if you have 2.26, you need this.

Posted version 2.26b
Changes:
- Fixed wrong /call for buff check after requesting a buff to verify it had been cast.

Posted version 2.26c
Changes:
- Mercs can now be used in [Roles] section
- Fixed [Bard] UseSlow=TRUE setting always forcing it to TRUE.
- Changed bard to exit Slow/Tash routine if you have no target
 
Last edited:
Mqlog
/mqlog clear | text

Description

This will log text to a log file in the "\Logs" directory
Notes

  • The log filename will be macroname.mac.log if run from within a macro
  • The log filename will be MacroQuest.log if issued normally


not an option. I could add the name on the /mqlog line i guess. that is the only thing i can change on my end.

EDIT: added Me.Name_Me.Class on the /mqlog output for next version. remember to replace your name if you post the log on this thread.
 
Last edited:
Posted version 2.28
Changes:
- Added auto-detection of Rk 2/3 spells that have a space at the end of their name.
- Added ability to use bows and ammo for pulling. You *must* have the item equipped when you start macro. Untested, please let me know if there are issues.
- Added pet weapon equipping/requesting. See wiki for details. It will auto add the spell INI entries upon the first use of /petrequest

New pet stuff notes that are also on wiki:

Code:
PetGearDefaultAlias=mask|aggro|aggro        <-- this will /echo the alias to equip the items listed below when you create a pet and will equip the items if available
magic=Summoned: Frightforged Shortsword   <-- Added alias "magic" to equipped this item that i made myself as example
fire=Summoned: Frightforged Fireblade          <-- Added alias "fire" to equipped this item that i made myself as example
ice=Summoned: Frightforged Iceblade           <-- Added alias "ice" to equipped this item that i made myself as example
aggro=Summoned: Frightforged Ragesword     <-- Added alias "aggro" to equipped this item that i made myself as example
jolt=Summoned: Frightforged Mindblade         <-- Added alias "jolt" to equipped this item that i made myself as example
mask=Summoned: Visor of Gobeker               <-- Added alias "mask" to equipped this item that i made myself as example


Mage only:
PetGearSpellName=Grant Frightforged Armaments    <-- When gear is requested by others or self, casts this spell for weapons
PetArmorSpellName=Grant Frightforged Plate     <-- When gear is requested by others only, casts this spell for weapons
PetMaskSpellName=Grant Visor of Gobeker        <-- when gear is requested by others, casts this spell for mask
PetGearSpellGem=gem1                                 <-- uses this gem for requests
PetGearDefaultInvSlotForBag=10                     <-- uses this inventory slot to place pouch of quellious.  you must NOT have a bag with items inside there.
Associated commands:
/petrequest - Requests gear from mage in eqbc
/petgear add|fire|Summoned: Frightforged Fireblade would add the fire=Summoned: Frightforged Fireblade listed above
/petgear mask|fire|aggro - would equip aliases mask, fire, and aggro from example ini if they are in your bag.

What i have:
EQHotkey, 5 lines:
/petgear hands|wrist|head|feet
/pause 20
/petgear head|chest|legs|waist
/pause 20
/petgear mask|aggro|aggro


My custom INI entries for level 100 gear:
Code:
[Pet]
magic=Summoned: Frightforged Shortsword
fire=Summoned: Frightforged Fireblade
ice=Summoned: Frightforged Iceblade
aggro=Summoned: Frightforged Ragesword
jolt=Summoned: Frightforged Mindblade
mask=Summoned: Visor of Gobeker
arms=Frightforged Plate Vambraces
hands=Frightforged Plate Gauntlets
head=Frightforged Plate Helm
feet=Frightforged Plate Boots
wrist=Frightforged Plate Bracers
chest=Frightforged Plate Breastplate
legs=Frightforged Plate Greaves
waist=Summoned: Frightforged Belt
So when i hit that hotkey, it equips any of the gear i have on me. Can fully equip pet in under a few seconds.
 
Last edited:
turn off holyshits that click items if you are a bard using the macro.

spell_routines can be modified so you dont wait for memorization. id imagine you are using my version, but if not, try it. or use mq2fastmem if you are lifetime members. then you cant get interrupted! i always just keep an illusion on that cant sit so you cant see people instantly memming spells.
 
/pet ghold on is issued at start of macro, and whenever you make a new pet.
/pet back off is issued whenever you are returning to camp.

not sure why your pet stops holding properly unless /pet back off nullifies /pet ghold on (which i dont think it does). it could always be a tweaky mq2melee. i know there is a pet back off thing there, or was, that was causing issues before.

Yes, of course you can use clicky to pull with, Dealings.

Side note: received a couple donations in the last couple days and will use it to purchase the expansion so i can make any needed updates and test them. thanks!
 
Merging the last 2 posts to be more clear. Adding events can be done easily by just making your own file and #include it. You can call custom subs via the [Custom] section. So here is what you asked for and some more:

New aliases added:
/invis which will perform the following command: /${MyChannel} invison
/ivu which will perform the following command: /${MyChannel} ivuon
/invisoff which will perform the following command: /${MyChannel} invisoff
/ivuoff which will perform the following command: /${MyChannel} ivuoff
/invischange which will perform the following command: /${MyChannel} ToggleInvis invis
/ivuchange which will perform the following command: /${MyChannel} ToggleInvis ivu
/taskget which will perform the following command: /${MyChannel} Taskget ${Target}
/lootthis which will perform the following command: /${MyChannel} LootThis ${Target.ID}
You can now manually add an [Initialize] section in your ini and use Command1-20=/do this commands.
Code:
[Initialize]
Command1=/dismount
Command2=/multiline ; /echo I am a burrito! ; /hail ; /call Cast "Complete Heal" gem1
Command3=/delay 4s
Command4=/invisoff
Added:
You can now target whatever mob you want, type /taskget help me

Result:
Your toons will target your target and say "help me"

If you instead type:
/taskget help me noinvis

They will first uninvis and then say "help me"

Added:
/lootthis Name ItemName
Ie.
/lootthis PeteSampras Item of win
/lootthis PeteSampras Item of win

So you will target the corpse you want looted and type that. If your toon name is PeteSampras, it will target that corpse, save location and heading and invis status, go to corpse, loot that item, go back to original position, /face original heading, and reinvis if you were invised. That will work to force a one time loot of a specific item. However, you can add the following in your loot.ini to keep a list and auto loot items by character:

Code:
[Loot]
Loot_PeteSampras=trinkets-5|thingamajigs-1|top hats-4|
Loot_FrankyJ=wrist molds-2|
FrankyJ will loot 2 wrist molds
PeteSampras will loot 5 trinkets, 1 thingamajigs, and 4 top hats.

To Rez with token:
Make sure OptionsCheck= has |Rez| in it

Code:
[Rez]
GrabCorpse=TRUE
RezTotal=1
ForceMemRez=FALSE
RezAnnounce=FALSE
RezUse1=[COLOR=Yellow]FALSE[/COLOR]
RezSpellName1=Token of Resurrection
RezConditions1=
RezAlias1=|[COLOR=Yellow]PeteRezMe[/COLOR]|
RezSpellGem1=item
RezDuringCombat1=TRUE
Then say PeteRezMe and that toon will target your corpse and use it.

Or you can set it to rez if your cleric is dead for example: RezUse1=TRUE and just put a RezConditions1=!${SpawnCount[group cleric]}


Changes:
Reenabled Pet.GHold to work, found a loot delay issue that could make it skip trying to loot corpses that are just out of range of /loot.

REMINDER: /helpme while bot.mac is running will list all your aliases for bot.mac in case you forget them.
 
Last edited:
Posted version 2.55
Added:
Added a bunch of aliases and events, see above post for details.
- Added ability for bards to /twist off if RestTwist= is blank
- Added ability for bard to /twist off if Group.Puller is more than X distance away:
[Bard]
StopSongsIfPullerIsThisDistanceOrMore=0

If set to 0, it ignores it and will keep twisting as usual.

Changes:
- Fixed a /lootthis typo
- Reenabled Pet.GHold
- Fixed a possible /loot issue
- Enabled Conditions for [Rez] section

I can probably come up with something better for stopping bard songs on pulls, that was just a 30 second addition that I didnt think too hard on. I could probably change it to not twist until mob on xtarget1 or 2 is within a certain distance as well. The goal is just to avoid getting early aggro and killing bard or wiping the group.
 
Last edited:
Posted version 2.57
Changes:
- Fixed and deconflicted /taskget

I fixed the error and see why the alias would be jacked up on /taskget. Sigh. there was already a /taskget alias and event that I added months ago. I forgot again. Half the crap people ask for already exists and even I forget about it. So i kept the new one as /taskget (since it can work in all chat types), and changed the old one as /taskg (eqbc only). Here is what the difference is:

/taskg you will tell each toon in group via /bct to /target and /say phrase or /hail - this only works in eqbc.

/taskget will pass a string that gives your target id and phrase and those characters will target that id and say the phrase or /hail. this can be used in group or chat or eqbc or whatever.

@ having to request spells more than once. If a spell takes more than 10 seconds to mem, it gets skipped by spell_routines.inc and you have to ask again. no easy way to get around this without modifying spell_routines.inc and it could screw you over if you had a long refresh spell like DA that takes 10 minutes to refresh.

Pet gear is explained on the wiki. basically you set up aliases for the gear you want to equip and then you can /petgear alias|alias|alias|alias and it will equip them all. though it works best if you try to only use 3-4 per line or it could bug out the trade window. So for example on my necro i made the following aliases:
Code:
PetGearDefaultAlias=mask|aggro|aggro
magic=Summoned: Frightforged Shortsword
fire=Summoned: Frightforged Fireblade
ice=Summoned: Frightforged Iceblade
aggro=Summoned: Frightforged Ragesword
jolt=Summoned: Frightforged Mindblade
mask=Summoned: Visor of Gobeker
arms=Frightforged Plate Vambraces
hands=Frightforged Plate Gauntlets
head=Frightforged Plate Helm
feet=Frightforged Plate Boots
wrist=Frightforged Plate Bracers
chest=Frightforged Plate Breastplate
legs=Frightforged Plate Greaves
waist=Summoned: Frightforged Belt
When a pet is created, it auto /petgear mask|aggro|aggro to equip those items if they are in inventory. but then i also had a hotkey that did /petgear mask|arms|chest|hands, /pause 10, /petgear head|feet|legs|waist, /pause 10, /petgear blah|blah so that it would fully gear my pet with whatever i had on me.

Now if there is a mage in group, or you are a mage, you can /petrequest and that will ask the mage or if you are a mage, it will summon the gear for you and open the packs in slot 10 or whatever slot you have designated in the INI.

From wiki:
Code:
Mage only: PetGearSpellName=Grant Frightforged Armaments	<-- When gear is requested by others or self, casts this spell for weapons PetArmorSpellName=Grant Frightforged Plate	<-- When gear is requested by others only, casts this spell for weapons PetMaskSpellName=Grant Visor of Gobeker	<-- when gear is requested by others, casts this spell for mask PetGearSpellGem=gem1				        <-- uses this gem for requests PetGearDefaultInvSlotForBag=10			<-- uses this inventory slot to place pouch of quellious.  you must NOT have a bag with items inside there.

Then you can add gear as aliases manually in the ini or via /command in game:
Associated commands:
/petrequest - Requests gear from mage in eqbc
/petgear add|fire|< link of Summoned: Frightforged Fireblade > <-- would add the fire=Summoned: Frightforged Fireblade listed above
/petgear mask|fire|aggro - would equip aliases mask, fire, and aggro from example ini if they are in your bag.
</pre>
 
So as you can see, you have those items set to ignore, so it won't loot them. That was from the previous issue that I had to fix, so you can either do a replace all the Ignores with Collectible or Keep for the ones you want to keep, or you can manually put the item on your cursor and do the custom /slash command:

/lootignore - Changes item status on cursor to Ignore
/lootkeep - Changes item status on cursor to Keep
/lootsell - Changes item status on cursor to Sell
/loottradeskills - Changes item status on cursor to Tradeskills
/lootdestroy - Changes item status on cursor to Destroy
/lootcollectible - Changes item status on cursor to Collectible

The [0-9] and [A-Z] have always been there. Also, you have this set up wrong:
Loot_TOON=FALSE
Loot_TOON=TRUE
Loot_TOON=FALSE
Loot_TOON=FALSE
Loot_TOON=FALSE
Loot_TOON corpse=

Those should be item names, not TRUE/FALSE, and idk wtf is going on the with corpse one, that is just wrong.

Anyway, fix that and you should be good to go.
 
both are used to move from mob to mob rather than move back to a set camp. if nothing is up in range or line of sight, it moves back to where you started the macro. this method may only be effective in certain zones.

hunt uses mq2nav to find nearby targets and move to them and kill.
seek uses line of sight combod with /keypress forward to find nearby targets and kill them.
 
Here is my puller's ini
Code:
[Settings]
OptionsCheck=|Pulling|Merc|AA|AutoClickies|Buff|ClickyNuke|Disc|Lifetap|Nuke|Custom|SelfBuff|Aggro|Snare|Mana|Campfire|ModRod|
OptionsCheckRaid=|AA|AutoClickies|Buff|ClickyNuke|Disc|Lifetap|Nuke|SelfBuff|Snare|Aggro|Mana|ModRod|
RestrictedZones=344,202,151,345
UseCamp=TRUE
CampRadius=10
CampRadiusMax=30
GMAction=/end
LootNPCs=FALSE
AuthorizedUsers=
Verbose=FALSE
MyChannel=bc
AnnounceChannel=i say
AnnounceEvents=CAST_SUCCESS|CAST_IMMUNE|CAST_RESIST
EQBCAnnounceAdds=TRUE
AutoHideNPCCorpses=TRUE
ClearTargetDataAlias=ClearTargetDataAlias
EmergencyAlias=EmergencyAlias
EmergencySkill=EmergencySkill
ImmunityCheck=TRUE
BotVersion=v2.58

[Pulling]
AlertListClear=FALSE
AlertListClearTimer=60m
AmIPuller=True
PullRadius=800
PullZRadius=60
PullCastRange=190
MQ2NavPullRadius=2000
MQ2NavPullZRadius=75
ReturnActionTotal=4
ReturnAction1=/if (!${Me.Invis}) /casting "cloak of shadows" alt
ReturnAction2=/if (${Me.PctHPs}<=60 && ${Me.Mercenary.Stance.Equal[Passive]}) /stance Reactive
ReturnAction3=/if (${Me.PctHPs}>60 && ${Me.Mercenary.Stance.Equal[Reactive]}) /stance Passive
ReturnAction4=/if (${Me.XTarget}>=2) /i say Inc 20 mobs[${Me.XTarget}], Ready to Wipe Niggas!
PullConColor=LIGHT BLUE,BLUE,WHITE,YELLOW
CourseCorrectionTimer=5
PullingMethod=standard
PullingAnnounceCMD=/i say  Inc ${Target.Name} with ID:${Target.ID} and Distance ${Target.Distance3D}.
PullingTotal=1
PullAtMyHPs=90
PullConditions=${Me.PctMana}>20 && !${Me.Buff[Viscous Darkness].ID}
PullSkillName1=Demand for Power
PullSkillRequiresLineOfSight1=TRUE
PullSkillDistance1=190
PullSkillSummon1=

[Merc]
MercName=Ogrelord
UseMerc=TRUE
ManageMerc=TRUE
MercAssistAt=100
MercStanceNormal=Reactive
MercStanceNamed=Reactive
MercStanceOOC=Passive

[Assist]
AssistType=2
AssistPC=puller
AssistAt=100
OpeningMove=
AttackRange=50
AttackCommand=/attack on
AttackConditions=
AmIOffTank=FALSE
UseMelee=TRUE
UseArchery=FALSE
ArcheryMaxDistance=200
ArcheryMinDistance=35
SetTargetMessage=Kill_this
BurnModeAlias=realburn

[Follow]
FollowMethod=stick|30 healer
FollowCommand=FollowCommand
StopFollowCommand=StopFollowCommand
MoveUpCommand=MoveUpCommand

[Roles]
SetRoles=TRUE
GroupLeader=puller
GroupMainTank=puller
GroupMainAssist=puller
GroupPuller=Dude
GroupXTarget1=Group Assist Target
RaidXTarget1=Raid Assist 1 Target

[ImHit]
ImHitConditions=

[Campfire]
AutoUseCampfire=TRUE
SetCampfire=
CampfireName=Fellowship of Honor
CF_Item1=Fellowship Kit:                                                                                                                                                                                                                                                                                                
CF_Item2=Fellowship Lumber Bundle:                                                                                                                                                                                                                                                                                             
[AA]
AATotal=14
AAAnnounce=FALSE

AAUse1=TRUE
AASpellName1=Visage of Death
AAUseAtMobPctHP1=96
AAStopAtMobPctHP1=5
AARecast1=1s
AANamedOnly1=TRUE
AAConditions1=

AAUse2=TRUE
AASpellName2=Scourge Skin
AAUseAtMobPctHP2=96
AAStopAtMobPctHP2=5
AARecast2=1s
AANamedOnly2=TRUE
AAConditions2=

AAUse3=FALSE
AASpellName3=Improved Explosion of Hatred
AAUseAtMobPctHP3=99
AAStopAtMobPctHP3=5
AARecast3=44s
AANamedOnly3=FALSE
AAConditions3=${Me.XTarget}>=1

AAUse4=FALSE
AASpellName4=Improved Explosion of Spite
AAUseAtMobPctHP4=99
AAStopAtMobPctHP4=5
AARecast4=44s
AANamedOnly4=FALSE
AAConditions4=${Me.XTarget}>=1

AAUse5=TRUE
AASpellName5=Chattering Bones
AAUseAtMobPctHP5=96
AAStopAtMobPctHP5=5
AARecast5=1s
AANamedOnly5=TRUE
AAConditions5=

AAUse6=TRUE
AASpellName6=Fundament: Third Spire of the Reavers
AAUseAtMobPctHP6=96
AAStopAtMobPctHP6=5
AARecast6=1s
AANamedOnly6=FALSE
AAConditions6=(${Me.XTarget}>=2 || ${Target.Named} || ${Me.PctHPs}<=50)

AAUse7=TRUE
AASpellName7=Purity of Death
AAUseAtMobPctHP7=96
AAStopAtMobPctHP7=10
AARecast7=3m
AANamedOnly7=FALSE
AAConditions7=${Me.Buff[Viscous Darkness].ID}

AAUse8=TRUE
AASpellName8=Harm Touch
AAUseAtMobPctHP8=95
AAStopAtMobPctHP8=10
AARecast8=60m
AANamedOnly8=TRUE
AAConditions8=

AAUse9=TRUE
AASpellName9=Hate's Attraction
AAUseAtMobPctHP9=100
AAStopAtMobPctHP9=1
AARecast9=1m
AANamedOnly9=FALSE
AAConditions9=!${Me.Moving} && ${Me.CombatState.Equal[Combat]} && ${Target.Distance}>=50 && ${Target.Distance}<=200 && ${Target.PctHPs}>=95
AAConditions=

AAUse10=TRUE
AASpellName10=Leech Touch
AAUseAtMobPctHP10=95
AAStopAtMobPctHP10=10
AARecast10=60m
AANamedOnly10=TRUE
AAConditions10=

AAUse11=TRUE
AASpellName11=Projection of Doom
AAUseAtMobPctHP11=97
AAStopAtMobPctHP11=10
AARecast11=7m
AANamedOnly11=FALSE
AAConditions11=(${Target.Named} || ${Me.XTarget}>=2)

AAUse12=TRUE
AASpellName12=Soul Flay
AAUseAtMobPctHP12=97
AAStopAtMobPctHP12=10
AARecast12=10m
AANamedOnly12=FALSE
AAConditions12=${Me.PctMana}<=60

AAUse13=TRUE
AASpellName13=Thought Leech
AAUseAtMobPctHP13=97
AAStopAtMobPctHP13=10
AARecast13=10m
AANamedOnly13=FALSE
AAConditions13=${Me.PctMana}<=40

AAUse14=TRUE
AASpellName14=Soul Touch
AAUseAtMobPctHP14=97
AAStopAtMobPctHP14=10
AARecast14=10m
AANamedOnly14=FALSE
AAConditions14=(${Target.Named} || ${Me.PctEndurance}<=40)

[Custom]
CustomCombatTotal=2
CustomRestTotal=3
CustomCombat1=/if (${Me.Buff[Viscous Darkness].ID} && ${Me.AltAbilityReady[Purity of Death]}) /casting "Purity of Death" alt
CustomCombat2=/if (${Cursor.ID}) /autoinventory
CustomRest1=/if (${Me.Buff[Viscous Darkness].ID} && ${Me.AltAbilityReady[Purity of Death]}) /casting "Purity of Death" alt
CustomRest2=/if (${Me.Height}>1.8 && !${Me.Moving} && ${Select[${Me.CombatState},ACTIVE,RESTING]}) /multiline ; /tar puller pc; /timed 10 /casting 67098
CustomRest3=/if (${Cursor.ID}) /autoinventory

[Aura]
AuraConditions=
[Buff]
BuffXTargets=FALSE
BuffPets=FALSE
AutoInvis=FALSE
AutoBreakInvis=FALSE
BuffConditions=
[ClickyMaintenance]
clickies=0

[ClickyNuke]
ClickyNukeTotal=2
ClickyNukeAnnounce=TRUE
ClickyNukeUse1=TRUE
ClickyNukeName1=Innoruuk's Voice
ClickyNukeConditions1=!${Me.Song[Lich Sting Recourse].ID}
ClickyNukeSpellGem1=item
ClickyNukeRecast1=5m
ClickyNukeUseAtMobPctHP1=96
ClickyNukeStopAtMobPctHP1=1
ClickyNukeNamedOnly1=FALSE

ClickyNukeUse2=TRUE
ClickyNukeName2=Distorted Breastplate of the Revenant
ClickyNukeConditions2=
ClickyNukeSpellGem2=item
ClickyNukeRecast2=1s
ClickyNukeUseAtMobPctHP2=96
ClickyNukeStopAtMobPctHP2=1
ClickyNukeNamedOnly2=TRUE
ClickyNukeConditions=

[Fade]
FadeConditions=

[FeignDeath]
FeignDeathTotal=1
FeignDeathAnnounce=FALSE

FeignDeathAfter1=10
FeignDeathUse1=TRUE
FeignDeathSpellName1=Improved Death Peace
FeignDeathConditions1=
FeignDeathSpellGem1=alt
FeignDeathRecast1=10s
FeignDeathUseAtMyHP1=40
FeignDeathConditions=
FeignDeathStandAtMyHP=50

[Disc]
DiscTotal=8

DiscUse1=TRUE
DiscName1=Unholy Aura Discipline
DiscNamedOnly1=TRUE
DiscEndCost1=5227
DiscRecast1=12m
DiscConditions1=${AddCount}>=3

DiscUse2=TRUE
DiscName2=Reprove
DiscNamedOnly2=FALSE
DiscEndCost2=323
DiscRecast2=15s
DiscConditions2=

DiscUse3=TRUE
DiscName3=Grelleth's Carapace
DiscNamedOnly3=TRUE
DiscEndCost3=5227
DiscRecast3=8m
DiscConditions3=${AddCount}>=3

DiscUse4=TRUE
DiscName4=Scarlet Blade
DiscNamedOnly4=FALSE
DiscEndCost4=346
DiscRecast4=1s
DiscConditions4=

DiscUse5=TRUE
DiscName5=Bonebrood Mantle
DiscNamedOnly5=TRUE
DiscEndCost5=7151
DiscRecast5=12m
DiscConditions5=${AddCount}>=3 && !${Me.CombatAbilityReady[Grelleth's Carapace]}

DiscUse6=TRUE
DiscName6=Rest
DiscNamedOnly6=FALSE
DiscEndCost6=25
DiscRecast6=90s
DiscConditions6=${Me.PctEndurance}<=24 && ${Select[${Me.CombatState},ACTIVE,RESTING]}

DiscUse7=TRUE
DiscName7=Leechcurse Discipline
DiscNamedOnly7=TRUE
DiscEndCost7=25
DiscRecast7=68m
DiscConditions7=

DiscUse8=TRUE
DiscName8=Unbroken Acrimony
DiscNamedOnly8=TRUE
DiscEndCost8=446
DiscRecast8=10m
DiscConditions8=${AddCount}>=4

[GoM]
GoMConditions=

[Dot]
DotTotal=4
DotTotalIfNamed=4
ForceMemDot=TRUE
DotAnnounce=FALSE

DotUse1=TRUE
DotSpellName1=Dire Stricture
DotSpellGem1=gem2
DotUseAtMobPctHP1=95
DotStopAtMobPctHP1=30
DotRecast1=5s
DotMaxTries1=2
DotConditions1=

DotUse2=TRUE
DotSpellName2=Surreptitious Blight
DotSpellGem2=gem3
DotUseAtMobPctHP2=95
DotStopAtMobPctHP2=30
DotRecast2=5s
DotMaxTries2=2
DotConditions2=

DotUse3=TRUE
DotSpellName3=Blood of Ralstok
DotSpellGem3=gem4
DotUseAtMobPctHP3=96
DotStopAtMobPctHP3=30
DotRecast3=5s
DotMaxTries3=2
DotConditions3=

DotUse4=TRUE
DotSpellName4=Bond of Ralstok
DotSpellGem4=gem5
DotUseAtMobPctHP4=90
DotStopAtMobPctHP4=30
DotRecast4=5s
DotMaxTries4=2
DotConditions4=
DotConditions=

[Nuke]
NukeTotal=6
NukeTotalIfNamed=6
ForceMemNuke=TRUE
NukeAnnounce=FALSE

NukeUse1=TRUE
NukeSpellName1=Spear of Grelleth
NukeSpellGem1=gem7
NukeUseAtMobPctHP1=96
NukeStopAtMobPctHP1=10
NukeRecast1=1s
NukeConditions1=

NukeUse2=TRUE
NukeSpellName2=Blood of Ralstok
NukeSpellGem2=gem4
NukeUseAtMobPctHP2=96
NukeStopAtMobPctHP2=10
NukeRecast2=36s
NukeConditions2=

NukeUse3=TRUE
NukeSpellName3=Surreptitious Blight
NukeSpellGem3=gem3
NukeUseAtMobPctHP3=96
NukeStopAtMobPctHP3=10
NukeRecast3=1m
NukeConditions3=

NukeUse4=TRUE
NukeSpellName4=Dire Stricture
NukeSpellGem4=gem2
NukeUseAtMobPctHP4=96
NukeStopAtMobPctHP4=10
NukeRecast4=1m
NukeConditions4=

NukeUse5=TRUE
NukeSpellName5=Bond of Ralstok
NukeSpellGem5=gem5
NukeUseAtMobPctHP5=96
NukeStopAtMobPctHP5=10
NukeRecast5=45s
NukeConditions5=

NukeUse6=TRUE
NukeSpellName6=Vicious Bite of Chaos
NukeSpellGem6=alt
NukeUseAtMobPctHP6=96
NukeStopAtMobPctHP6=10
NukeRecast6=1s
NukeConditions6=
NukeConditions=

[Pet]
PetGearDefaultAlias=
UsePet=FALSE
PetSpell=Minion of Grelleth
PetSpellGem=gem11
UsePetFocusAA=FALSE
PetAttackAt=95
ShrinkPet=FALSE
ShrinkPetIfHeightAbove=1.5
ShrinkPetSpell=
ShrinkPetSpellGem=
DoPetHeals=FALSE
PetHealAt=50
PetHealSpell=
PetHealSpellGem=
UseAAPetHeal=FALSE
PetAAHealAt=5
DoPetBuffs=TRUE
PetBuffRecheck=10s
PetBuffTotal=1
PetBuffName1=Gift of Falsin
PetBuffSpell1=Gift of Falsin
PetBuffGem1=gem11
PetBuffRecast1=1s

[FightBuff]
FightBuffConditions=

[SelfBuff]
SelfBuffTotal=9
SelfBuffAnnounce=FALSE

SelfBuffUse1=TRUE
SelfBuffSpellName1=Drape of the Fallen
SelfBuffSpellIcon1=Drape of the Fallen
SelfBuffSpellGem1=gem11
SelfBuffConditions1=

SelfBuffUse2=TRUE
SelfBuffSpellName2=Falhotep's Covenant
SelfBuffSpellIcon2=Falhotep's Covenant
SelfBuffSpellGem2=gem11
SelfBuffConditions2=

SelfBuffUse3=TRUE
SelfBuffSpellName3=Zombie Skin
SelfBuffSpellIcon3=Zombie Skin
SelfBuffSpellGem3=gem11
SelfBuffConditions3=

SelfBuffUse4=TRUE
SelfBuffSpellName4=Call of Gloomhaze
SelfBuffSpellIcon4=Call of Gloomhaze
SelfBuffSpellGem4=gem11
SelfBuffConditions4=${Me.Buff[Fiery Might].ID}

SelfBuffUse5=TRUE
SelfBuffSpellName5=Grelleth's Horror
SelfBuffSpellIcon5=Grelleth's Horror
SelfBuffSpellGem5=gem11
SelfBuffConditions5=

SelfBuffUse6=TRUE
SelfBuffSpellName6=Shroud of the Darksworn
SelfBuffSpellIcon6=Shroud of the Darksworn
SelfBuffSpellGem6=gem11
SelfBuffConditions6=

SelfBuffUse7=TRUE
SelfBuffSpellName7=Voice of Thule
SelfBuffSpellIcon7=Voice of Thule
SelfBuffSpellGem7=alt
SelfBuffConditions7=
SelfBuffConditions=

SelfBuffUse8=TRUE
SelfBuffSpellName8=Dragorn War Mask
SelfBuffSpellIcon8=Dragorn War Mask
SelfBuffSpellGem8=item
SelfBuffConditions8=

SelfBuffUse9=TRUE
SelfBuffSpellName9=Glyph of Genari Might
SelfBuffSpellIcon9=Glyph of Genari Might
SelfBuffSpellGem9=alt
SelfBuffConditions9=${Me.AAPoints}>=5

[Lifetap]
LifetapTotal=3
LifetapTotalIfNamed=3
ForceMemLifetap=FALSE
LifetapAnnounce=TRUE

LifetapUse1=TRUE
LifetapSpellName1=Leech Touch
LifetapConditions1=
LifetapSpellGem1=alt
LifetapUseAtMyHP1=70

LifetapUse2=TRUE
LifetapSpellName2=Touch of Falsin
LifetapSpellGem2=gem12
LifetapUseAtMyHP2=70
LifetapConditions2=

LifetapUse3=TRUE
LifetapSpellName3=Dire Insinuation
LifetapSpellGem3=gem6
LifetapUseAtMyHP3=70
InterruptToLifetapAt=40
LifetapConditions3=
LifetapConditions=

[Snare]
SnareTotal=1
ForceMemSnare=FALSE
SnareAnnounce=TRUE
SnareUse1=TRUE
SnareSpellName1=Encroaching Darkness
SnareSpellGem1=alt
SnareUseAtMobPctHP1=15
SnareMaxTries1=2
SnareConditions1=
SnareConditions=

[Aggro]
AggroSpellName=Repugnance
AEAggroMinMobCount=2
AggroSpellGem=gem1
AggroConditions=
AggroAtAggroPct=50

[Mana]
ManaConditions=
MedAt=15
MedToFull=TRUE
MedEvenIfNotInOOCRegen=TRUE
MedTimer=10s
ThoughtLeech_IfManaBelow=60
UseClarityPotions=FALSE

[Combat]
CombatFrequency1=
CombatFrequency2=
CombatFrequency3=
CombatFrequency4=
CombatFrequency5=Merc|Disc|Custom|Aggro|AA|ClickyNuke|Lifetap|Nuke|Dot|Snare|Mana|ModRod
StandardCombatOptions=Bard|XHeal|HealSingle|HealGroup|HealBalance|HealSelf|HealPet|Disc|MainTankBuff|FightBuff|Lifetap|Stun|AA|Dot|Nuke|Snare|ClickyNuke|Jolt|Rez|ModRod|Mana|Merc

[AAtoBuy]
AABuy=FALSE
AABuyChannel=/i say
AABuyAt=50
AABuyMode=limited
AABuyPageOrder=Special|Class|Archetype|General|
LimitedGeneral=
LimitedArchetype=
LimitedClass=
LimitedSpecial=Glyph of Genari Might
AACount=0

And things all went smooth since last nite. This morning I found him either random stop on the way move to mob, or would not return to the camp....any ideas? Thx in advance!
 
Last edited:
The only pulling related error i see is:
AmIPuller=True

all true/false must be ALL CAPS. TRUE/FALSE
 
Hey Pete

In what section of the ini do I place clicky self-buffs and on what form?
 
All standard clicky buffs are automatically done without adding them. Otherwise you can add one of the following sections in your OptionsCheck= if it isnt already there. The wiki has more details.

Non-standard or illusions can be added:
[ClickyMaintenance]

or

[SelfBuff]
 
Yes, missing space. And for the love of Christ, type:
/mac bot load
 
Posted version 2.59
Changes:
- Fixed typos in rez routine, rest /twist, and /startcamp.
- Reenabled forcing you to /mac bot load if it is first time you run the macro because apparently nobody reads instructions.
 
Posted version 2.60
Changes:
- Fixed /varcalc error in OffTank routine
- Added Subscription.Equal[GOLD] check for clicky items to use /useitem
- ClickyNuke section will hardcode the recast timer you set instead of relying on UI indicator.
- Macro forces /mac bot load if it thinks you didnt read instructions.

bt54: I don't know, so i just said screw it and hardcoded it. Thanks for the /varcalc info.
 
So say I have 2 characters I want to ensure are over certain % mana.

PeteSampras is my cleric and needs at least 5% mana
JohnGault is my enchanter who i only sometimes use, if i am using him, i want his % mana to be over 25%

I want to have more than 5% mana

I want my pet to be alive

I dont want to pull if I am snared.

I dont want to pull if any group members are dead.

If my puller is in background instance, i want to make sure it isnt lagging out

PullConditions=${SpawnCount[group]}==${Group.GroupSize} && ${Group.Member[${Group.Member[PeteSampras]}].PctMana}>5 && !${Debuff.Snared} && ${Me.PctMana}>5 && ${Me.Pet.ID} && (!${SpawnCount[group JohnGault]}||${Group.Member[${Group.Member[JohnGault]}].PctMana}>=25) && ${FPS}>5