(fix author name) |
(fix wiki link) |
||
Line 3: | Line 3: | ||
| name = Bot40 Macro | | name = Bot40 Macro | ||
| author=<nowiki>[40oz]</nowiki> | | author=<nowiki>[40oz]</nowiki> | ||
− | | link = [http://www.mmobugs.com/ | + | | link = [http://www.mmobugs.com/wiki/Bot40 Wiki Link] |
| commands=/mac bot40 | | commands=/mac bot40 | ||
| includes = Yes | | includes = Yes |
Latest revision as of 18:48, 6 February 2017
Macro Info | |
---|---|
Name | Bot40 |
Author | [40oz] |
Link | Wiki Link |
Commands | /mac bot40 |
Includes | Yes |
Uses INI File | Yes |
Required Plugins | Yes |
Contents
Description
Bot40.Mac Macro for all classes (limited bard support). It should be a fully functional macro that uses all your skills/abilities/items and is customizable via .ini and in game commands.
FAQ
My macro isn't working correctly, what do I do!?
1. Follow the initial setup instructions on the first post of the macro thread, also listed below.
2. Follow step 1 exactly.
That should always be your first step for this macro to diagnose a problem.
Troubleshooting
Q. Macro isnt doing anything or isnt loading correctly.
A. Check what zone you are in, by default, the macro doesnt work in Lobby/Hall/PoK/bazaar. You can modify zones it will restrict by changing [Settings] RestrictedZones=344,202,151,345
Q. I keep getting MQ2Cast error messages or spells keep memming and unmemming.
A. Mq2Melee is likely interfering with macro. You should disable it while bot is running and set everything up in bot.
You can use the following commands in your [Mq2melee] ini in \mq2\server_charname.ini to disable the macro:
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[bot40.mac]},1,0]}
holyshitif=!${Macro.Name.Equal[bot40.mac]},1,0]}
Q. My buffs arent working or are spamming.
A. Check your BuffTotal=, SelfBuffTotal=, FightBuffTotal= to verify correct numbers. Also make sure that you have filled in the BuffSpellIconX= and SelfBuffIconX= and FightBuffIconX= or they will not work or spam you.
Q. My puller is also tanking. When he comes back to camp, he is getting beat up by mob. What can I do?
A. Make your puller your front instance. The lag on macros running in the background can significantly slow the process of UI updates, thus your tank isnt getting XTarget window update in a timely manner. Moving them to front instance should solve your problem.
Q. My nukes/dots/stuns/debuff keep interrupting their cast during combat. What is going on?!?
A. [Settings] InterruptToHeal and InterruptToXHeal are likely interrupting your casts to try to heal someone. Make sure your [XHeal] and all Heal sections are set up correctly. Also refer to [Settings] section below to see tips on stopping this from happening.
Q. My Aura wont work.
A. Auras have AuraName, AuraSpellName, and AuraSpellIcon. All three need filled out if applicable. See [Aura] section below for tips.
Q. My toon will not attack.
A. /killthis command requires [mq2melee] to be set up to stick in order to work. Either change your [Settings] AttackCommand=/attack on or add the following to your \mq2\server_charname.ini:
[MQ2Melee]
stickbreak=1
stickcmd=84% loose
stickmode=1
stickrange=30
Q. My toon will not assist.
A. What is your AssistType set to? What command did you use to start the macro? /mac bot40 name 99? something else? If set to AssistType=3, is your XTarget1 set to Group Assist's Target?
Q. My macro doesnt do X, even though I told it to.
A. Check your [Settings] OptionsCheck= to ensure that the section you want to use is there. If not, add it. If it is something you want to use during combat, also check the [Combat] section to ensure it appears somewhere as one of the CombatFrequency variables. If that doesnt work, delete the entire section and /mac bot40 load again
Q. My macro is taking a long time to do something.
A. The macro will take a long time to load compared to other macros. But after that it should cycle quickly. See [Combat] section below for tips to improve performance.
Q. Macro is spamming the same thing over and over.
A. This usually means that something is spelled incorrectly or is missing in your INI. Track down that spell/aa/item/disc in your INI and confirm the settings.
Q. My bard is /twisting over and over during rest.
A. Your [Aura] section is not filled out correctly, or a clicky item in [ClickyMaintenance] may be messed up.
Q. My item is NOT clicking.
A. There is a known issue with having more than 264 bag slots. Try moving your item to a higher slot in your inventory. If that doesnt work, you may have to do /addclicky <clicky link> to get it to work if it is a buff.
Q. I keep getting an error that spams suchandsuch .Int unparseable.
A. It may be a bug, or it may be your UI. Try with default UI and see if it still gives an error message. If it does, report that to me via PM or IRC or on the thread.
Q. Pulling doesnt work.
A. You need to verify every setting in the [Pulling] section. Your PullingMethod needs to be correct, PullingTotal / Skill / CastRange / Radius check all need to be accurate. It is very important that the section is entirely filled out.
Q. Some things are working, but other sections arent.
A. Go through the sections that arent working and check their ___Totals arent set to 0 and ____Use are set to TRUE.
Q. I have read the FAQ, I still have a problem, how do I get an answer?
A. Post or PM or come to IRC and provide your current [Settings] OptionsCheck=, and whatever [Section] isnt working for you from your INI. Also, if it is routine not working during combat, provide your [Combat] section. If it is something to do with not targeting mobs or assisting, also provide the command you used to start the macro. ie. /mac bot40 name 95. Then post your problem and desribe how/when it happens.
Commands
- /assisttype # - Changes assist type to 1, 2, 3, 4, 5
- /assisttype 1 - standard /assist
- /assisttype 2 - auto picks targets
- /assisttype 3 - assists and uses XTarget1 to pick target
- /assisttype 4 - uses netbots to assist
- /toggle option - Toggles "option" on or off, ie. /toggle nuke, /toggle aa, /toggle dot
- /options - shows current options
Clickies:
- /addclicky < item link > - adds clicky to maintain
- /removeclicky < item link > - removes clicky from maintaing
- /clicky - toggles maintainence of clickies
IgnoreList related:
- /imob1 - temporarily ignores specific mob, adding it to alert list 1 (pulling related)
- /imob - adds current target to ignoremob list
- /cmob - adds current target to coldimmune list
- /dmob - adds current target to diseaseimmune list
- /fmob - adds current target to fireimmune list
- /mmob - adds current target to magicimmune list
- /pmob - adds current target to poisonimmune list
- /smob - adds current target to stunimmune list
Camp related:
- /campon - turns leash mode on
- /campoff - turns leash mode off
- /ame - anchors you at current spot
MQ2NavFollow related:
- /navfollow - toggles autofollowing of designated PC
SummonTank related:
- /sumtank - toggles summon tanking for current target
Special commands:
- invison - uses invis
- ivuon - uses invis vs undead
- invisoff - removes invis/ivu
- levon -uses levitate
- levoff - removes levitate
- splashp - splashes with paladin
- splashc - splashes with cleric
- /trusted name - Adds name to trusted rez list
- /LootNPCs - toggles on and off looting
- /offtank - toggles whether or not you want to offtank mobs in event of no enc/bard or unmezzable mob
Pulling related:
- /puller - toggles whether or not you are puller
- /pullingmethod - toggles pulling method between MQ2Navigation and MQ2AdvPath
- /addcamp name - adds a camp to zone with that name
- Then target al the mobs you want to add to camp
- /stopcamp - stops creating the new camp
- /startcamp name - starts camp with that name
- [Imports] to import a section, use the following format (Case Sensitive): /import Section Level
- /import Buff 95
To attempt to import all created sections:
- /import all 95
Includes
- spell_routines.inc - Used for casting.
Required Plugins
- MQ2MMOBugs - Used for several TLOs.
- MQ2MMOTLO - Used for several TLOs.
- MQ2Moveutils - Used for movement.
- MQ2CEcho - Used for sexiness.
- MQ2Cast - Used to memorize spells.
- MQ2Debuffs - Used for a couple Debuff checks.
Options Plugins (required if using certain features)
- MQ2Melee - Required for /killthis command.
- MQ2navigation - Required if using to pull via mq2navigation.
Configuration
Initial set up:
1. Set up your group puller/tank as intended.
2. Set XTarget1 to your main tank/assist target.
3. /mac bot40 load
4. This will create an ini in your macros folder: 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)
Sample Configuration
Bot_CharName_Class.ini
Primer: Sections are broken out as you see them in your INI. If you have a question or problem with a certain section, check there first. Commands for specific sections are listed in that section. Any variable that has something in [Brackets] means that the variable must equal one of those choices in that exact format. Some sections will have protips listed to help you maximize your toon.
[Settings] <-- This section is for general settings that dont really fall anywhere else
UseCamp=TRUE <-- Leash to camp spot? [TRUE/FALSE] CampRadius=10 <-- Distance before you leash CampRadiusMax=150 <-- If you are past this distance from camp spot, you ignore leashing so you dont try running across half the zone InterruptToHealAt=0 <-- You will interrupt your dot/nuke/stun/debuff/etc to attempt to heal if any group member falls below this % hp InterruptToXHealAt=0 <-- You will interrupt your dot/nuke/stun/debuff/etc to attempt to xheal if any XTarget PC/Merc falls below this % hp GMAction= <-- Action to take if gm enters zone. [/end, /exit, /q, /camp, pause] If set to pause, it will unpause once gm leaves. LootNPCs=TRUE <-- Do you want to loot mobs [TRUE/FALSE] AuthorizedUsers= <-- list of names that can request buffs/issue commands, if blank it will allow anyone Verbose=FALSE <-- Do you want skills/spells to be announced into chat when you use them MyChannel=bc <-- Chat to use to announce spells/skills. ie. group, bc, chat 1, guild AnnounceChannel=bc <-- Used for individual [Sections], independent of Verbose/MyChannel AnnounceEvents=TRY|CAST_SUCCESS|CAST_IMMUNE|CAST_RESIST <-- Announce only these events; when you cast a spell, when it is successful, when immune, or when it resists. You can remove as you see fit. EQBCAnnounceAdds=FALSE <-- Do you want to announce your adds into eqbc? Useful if you have more than 1 group of characters that dont otherwise have access to aggro information AutoHideNPCCorpses=FALSE <-- Automatically hide corpses every 2 minutes ImmunityCheck=TRUE <-- Will check against Fire/Cold/Magic/Disease/Poison immune lists and not try to use those specific spells on mobs flagged as immune to that type BotVersion=v2.15a <-- current version of bot ClearTargetDataAlias=ClearTargetDataAlias <-- Saying this alias in any channel will clear all stored target data in case bad data gets added EmergencyAlias=EmergencyAlias <-- Saying this alias will cause you to use whatever EmergencySkill you have designated EmergencySkill=Death's Effigy <-- in this case, Death's Effigy will be cast if "EmergencyAlias" is said RestrictedZones=344,202,151,345 <-- macro will not function in these zones to prevent wasted abilities and detectability (lobby/old guild hall/pok/bazaar) OptionsCheck=|Pulling|SetRoles|Merc|AA|Aura|AutoClickies|Buff|ClickyMaintenance|ClickyNuke|Fade|Debuff|Dot|FightBuff|HealSingle|HealPet|XHeal|Jolt|Lifetap|Mez|Nuke|Pet|Root|SelfBuff|Snare|Mana|ModRod| <-- Routines will you use if not in a raid OptionsCheckRaid=|Pulling|SetRoles|Merc|AA|Aura|AutoClickies|Buff|ClickyMaintenance|ClickyNuke|Fade|Debuff|Dot|FightBuff|HealSingle|HealPet|XHeal|Jolt|Lifetap|Mez|Nuke|Pet|Root|SelfBuff|Snare|Mana|ModRod| <-- Routines will you use if in a raid
Associated Commands:
/ame - sets new camp spot
/campon - turns leashing to camp spot on
/campoff - turns leashing to camp spot off
/lootnpcs - toggles looting in INI
/options - lists current options
/toggle [section] - /toggle Nuke - will toggle use of that section in the INI
Mob_Ignore_List.ini related commands to ignore certain mobs or add them to immune lists.
IgnoreList related:
/imob1 - adds current target to alert list 1 to temporarily ignore for pulling
/imob - adds current target to ignoremob list
/cmob - adds current target to coldimmune list
/dmob - adds current target to diseaseimmune list
/fmob - adds current target to fireimmune list
/mmob - adds current target to magicimmune list
/pmob - adds current target to poisonimmune list
/smob - adds current target to stunimmune list
Protip: OptionsCheck= is what tells the macro what sections to use. It is the single most important variable to verify is set up correctly. If something isnt working, check here first.
[Assist] <-- All things assist related
AssistType=3 <-- How you pick targets. AssistType options are; 1 = /assist, 2 = pick own target, 3 = use XTarget1 as your kill target, 4 = use netbots to pick target AssistPC=PeteSampras <-- by default, you will assist this pc if not designated via /mac bot40 name AssistAt=98 <-- by default, you will assist at this % if not designated via /mac bot40 name pct OpeningMove=/pet attack <-- When you first /assist AssistPC at AssistAt percent, you will do this action AttackRange=150 <-- You will not do anything to mob until it is within this range AmIOffTank=FALSE <-- Do you want to offtank mobs on this character UseMelee=FALSE <-- Do you want to use Melee if within melee range UseArchery=FALSE <-- Do you want to use Archery if in the designated archery ranges? ArcheryMaxDistance=200 <-- Max range to use archery ArcheryMinDistance=35 <-- Min range to use archery, note this must be at least 35 SetTargetMessage=Kill_this <-- This message will be announced/received to designate the kill target AttackCommand=/killthis <-- command issued if UseMelee=TRUE. /killthis or /attack on BurnModeAlias=BurnModeAlias <-- Using this alias in any channel will turn the variable "BurnMode" to true. Or you can use /burn to toggle on and off. ${BurnMode} can be used as a condition for spells/skills in order to use them or not
Associated commands:
/assisttype [1|2|3|4] <-- toggles assist type. 1 = /assist, 2 = pick own target, 3 = use XTarget1 as your kill target, 4 = use netbots to pick target
/burn - toggles BurnMode
/offtank - toggles AmIOffTank
[Combat]
CombatFrequency1=XHeal|Heal <-- This is what you care about least, it will check 1 out of every 5 cycles CombatFrequency2=Rez|ModRod|Mana <-- This checks 2 out of every 5 cycles CombatFrequency3= <-- This checks 3 out of every 5 cycles CombatFrequency4=FightBuff <-- This checks 4 out of every 5 cycles CombatFrequency5=Lifetap|AA|Dot|Jolt|Nuke|Snare|ClickyNuke|Jolt <-- This checks every cycle in this exact order. StandardCombatOptions=Bard|XHeal|HealSingle|HealGroup|HealBalance|HealSelf|HealPet|Disc|MainTankBuff|FightBuff|Lifetap|Stun|AA|Dot|Nuke|Snare|ClickyNuke|Jolt|Rez|ModRod|Mana|Merc
Protip:
Remove the options you dont use, and move the sections around to your own priorities to fit your playstyle.
Note that you can list sections multiple times, and they will check that much more often.
Also, you can use "Heal" as a wildcard to check all types of heals.
Setting this section up correctly will directly effect how well your macro works. It is one of the single most important sections for performance.
[Follow] <-- All things follow related
FollowMethod=stick|30 healer <-- available options are: nav, stick, advpath, keypress. If you use stick, you can use additional settings by adding | and your setting. ie: stick|40 loose would /stick name 40 loose FollowCommand=FollowCommand <-- Using this alias in any channel will turn make all characters follow that character using FollowMethod StopFollowCommand=StopFollowCommand <-- Using this alias in any channel will turn auto following off MoveUpCommand=MoveUpCommand <-- Using this alias in any channel will cause a 1 time move up to your current location via using /keypress forward and running in a straight line to you
[ImHit] <-- Section for things to do when you get hit
ImHitTotal=2 <-- Total of ImHit items ImHitAnnounce=FALSE <-- Announce in AnnounceChannel? ImHitUse1=TRUE <-- Use this? ImHitSpellName1=Embalmer's Carapace <-- Spell/AA/Disc/Item name ImHitRecast1=1s <-- How often do i want to try to use this ImHitUseAtMyHP1=20 <-- Use this only when my hitpoints get to this percent ImHitConditions1=${SpawnCount[pccorpse ${AssistPC}]} <-- Any special conditions required to fire this. In this case, I only want to use it if the AssistPC is dead ImHitUse2=${If[${Group},TRUE,FALSE]} <-- I only want to use this if I am not soloing. ImHitSpellName2=Improved Death Peace ImHitRecast2=1s ImHitUseAtMyHP2=80 ImHitConditions2= Another example (enchanter): [ImHit] ImHitTotal=4 ImHitUse1=TRUE ImHitSpellName1=Self Stasis ImHitUseAtMyHP1=30 ImHitUse2=TRUE ImHitSpellName2=Mind Over Matter ImHitUseAtMyHP2=60 ImHitUse3=FALSE ImHitSpellName3=Veil of Mindshadow ImHitUseAtMyHP3=50 ImHitUse4=TRUE ImHitSpellName4=Beguiler's Directed Banishment ImHitUseAtMyHP4=40
[Custom]
CustomCombatTotal=1 <-- How many CustomCombat commands do i have? CustomRestTotal=1 <-- How many CustomRest commands do i have? CustomCombat1=/if (${Me.Buff[Gift of Deathly Resolve].ID} && ${Me.Song[Bestow Mortality].ID}) /nomodkey /notify ShortDurationBuffWindow SDBW_Buff${Math.Calc[${Me.Song[Bestow Mortality].ID}-1].Int}_Button leftmouseup <-- This buff blocks song spell from landing when a certain buff is on, so I want to click it off if the other buff is on CustomRest1=/if (${Me.Buff[Gift of Deathly Resolve].ID} && ${Me.Song[Bestow Mortality].ID}) /nomodkey /notify ShortDurationBuffWindow SDBW_Buff${Math.Calc[${Me.Song[Bestow Mortality].ID}-1].Int}_Button leftmouseup <-- This buff blocks song spell from landing when a certain buff is on, so I want to click it off if the other buff is on
Protip:
Custom is a powerful tool for those well versed in macros. It let's you do anything you want. You can create include files and /call them via [Custom] section.
Or you can use it to do specific commands that are otherwise not available in any other section, like the example above.
[Pulling]
AmIPuller=FALSE <-- Am I set to puller by default? If so, I will immediately start pulling on macro launch. toggle this to TRUE/FALSE in game using the command /puller PullRadius=1000 <-- How far out am i looking for mobs? PullZRadius=30 <-- How high/low from my current Z position am I looking for mobs? PullCastRange=150 <-- I wont try using either of my cast skills before this range 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 MQ2NavPullRadius=10 <-- if using mq2navigation as my PullingMethod, how far from mob spawn point am I searching? MQ2NavPullZRadius=10 <-- If using Mq2navigation as my PullingMethod, how high/low from mob spawn point am I searching? ReturnActionTotal=1 <-- Number of actions to take once I have aggroed a mob while pulling ReturnAction1=/alt act ${Me.AltAbility[Cloak of Shadows].ID} <-- in this case, I want to invis after aggroing an add. PullConColor=GREY,GREEN,LIGHT BLUE,BLUE,WHITE,YELLOW <-- What Target.ConColor am I willing to pull? RED is turned off by default so you dont wipe yourself PullingMethod=Standard <-- What method do I want to pull/kill with? Options are standard, nav, hunt, seek. standard=searches a radius and brings mob to camp, nav=uses mq2nav and you create a specific camp using /addcamp name, target mobs you want to kill, /stopcamp, /startcamp name. hunt=uses mq2nav to kill anything in line of sight. seek=uses mq2moveutils to kill things in line of sight. PullingAnnounceCMD=NULL <-- what command, if any, do you want to issue when you pull a mob? ie. /bcaa //keypress 1, or /g INC %T PullingTotal=1 <-- How many spell/aa/disc/items do you want to pull with PullAtMyHPs=75 <-- your minimum hitpoints to do pulling PullConditions=${Me.PctMana}>70 && !${SpawnCount[pccorpse radius 40]} <-- whatever conditions you want to check before attempting any pulls, in this case I want at least 70% mana and no corpses of my groupmates. PullSkillName1=Lifetap <-- spell/aa/disc/clicky item name. I suggest something with a short reuse, or a pet spell so you dont need line of sight. PullSkillRequiresLineOfSight1=TRUE <-- does the pullskill require line of sight. ie. pets do not, and some pet spells do not PullSkillDistance1=190 <-- how far out do you want to use this? i suggest something LESS than max range, or you are gonna have a bad time PullSkillSummon1= <-- this is a remnant to summon items to throw/bow. it isnt used right now but i may add it back in PullSkillName2= <-- it will use this if PullSkill1 isnt ready, ideally you would have a line of sight spell and non-line of sight, or else why bother using this at all PullSkillRequiresLineOfSight2=TRUE PullSkillDistance2= PullSkillSummon2=
Associated commands:
/pullingmethod [standard|nav|hunt|seek] - toggles pulling method
/puller - toggles puller
MQ2Navigation camp setup example to add a camp called "center":
1. /addcamp center
2. use the map to target all the mobs you want to kill, in the order you want to kill them, once finished, go to next step
3. /stopcamp
4. whenever you want to use this camp now, or in the future, just /startcamp center
Camps are set in your \mq2\Camps.ini folder if you want to delete camps later or share them.
[Roles] <-- This section only functions if you are leader of your group
SetRoles=TRUE <-- Do you want to use this section? GroupLeader=PeteSampras <-- After setting all the other roles, you will make Petesampras leader GroupMainTank=KimJongUn <-- KimJongUn will be set as GroupMainTank GroupMainAssist=HansBrix <-- HansBrix will be set as GroupMainAssist GroupPuller=Fancy <-- Fancy will be set as puller GroupXTarget1=Group Assist Target <-- When not in raid, a 1 time check will be made to see if XTarget1 is set to this role, and if not, set it RaidXTarget1=Raid Assist 1 Target <-- When in raid, a 1 time check will be made to see if XTarget1 is set to this role, and if not, set it
[Merc] <-- this will auto manage your merc, leave the merc window open
MercAssistAt=100 <-- tired of your merc nuking/attacking right away? turn off autoassist on merc window and set this to 97 or so MercStanceNormal=Reactive <-- Do you want this to be balanced on normal mobs? Reactive? Burn? Set that stance here MercStanceNamed=Reactive <-- what mode do you want your merc to be in for named? set that here MercStanceOOC=Reactive <-- What mode do you want your merc to be in when nothing is going on? passive? dont care? set that here
[AA] <-- This section only fires during combat
AATotal=12 <-- total AAs you want to use AAAnnounce=FALSE <--announce them in AnnounceChannel? AAUse1=TRUE <-- Use this AA? AASpellName1=Reluctant Benevolence <-- AA Name AAUseAtMobPctHP1=100 <-- Use when mob is 100% or less HP AAStopAtMobPctHP1=1 <-- Stop using when mob is 1% hp AARecast1=1s <-- How often do I want this to recast? 1s if as soon as ready, 10m if I only want it every 10 minutes even though it is ready sooner AANamedOnly1=FALSE <-- Use this only on mobs that are named? (you will get some false positives) AAConditions1=${Spell[Reluctant Benevolence].Stacks} <-- What conditions need met for this? AAUse2=TRUE AASpellName2=Empowered Focus of Arcanum AAUseAtMobPctHP2=98 AAStopAtMobPctHP2=5 AARecast2=1s AANamedOnly2=FALSE AAConditions2= AAUse3=TRUE AASpellName3=Army of the Dead AAUseAtMobPctHP3=96 AAStopAtMobPctHP3=5 AARecast3=1s AANamedOnly3=FALSE AAConditions3=${SpawnCount[corpse radius 50]}>4 <-- This spell only works if corpses are nearby AAUse4=TRUE AASpellName4=Silent Casting AAUseAtMobPctHP4=98 AAStopAtMobPctHP4=5 AARecast4=1s AANamedOnly4=TRUE AAConditions4= AAUse5=TRUE AASpellName5=Fundament: Third Spire of Necromancy AAUseAtMobPctHP5=98 AAStopAtMobPctHP5=5 AARecast5=1s AANamedOnly5=FALSE AAConditions5=(${Me.Buff[Curse of Muram].ID}||${BurnMode}||${Me.Buff[Gift of Deathly Resolve].ID}) <-- This AA amplifies these other buffs and I only want to use it if they are on or I am in BurnMode AAUse6=TRUE AASpellName6=Embrace The Decay AAUseAtMobPctHP6=96 AAStopAtMobPctHP6=5 AARecast6=1s AANamedOnly6=FALSE AAConditions6=((${Debuffs.Poisoned}||${Debuffs.Diseased}) && !${Raid.Members}) <-- This is a cure, and I only want to auto cure outside of raids because some raids require you NOT to cure AAUse7=TRUE AASpellName7=Swarm of Decay AAUseAtMobPctHP7=96 AAStopAtMobPctHP7=5 AARecast7=1s AANamedOnly7=FALSE AAConditions7= AAUse8=TRUE AASpellName8=Rise of Bones AAUseAtMobPctHP8=96 AAStopAtMobPctHP8=5 AARecast8=1s AANamedOnly8=FALSE AAConditions8= AAUse9=TRUE AASpellName9=Frenzy of the Dead AAUseAtMobPctHP9=96 AAStopAtMobPctHP9=5 AARecast9=1s AANamedOnly9=FALSE AAConditions9=${Me.Pet.ID} <-- This AA only works if I have a pet up AAUse10=TRUE AASpellName10=Gift of Deathly Resolve AAUseAtMobPctHP10=96 AAStopAtMobPctHP10=50 AARecast10=1s AANamedOnly10=TRUE AAConditions10=(!${Raid.Members}||${BurnMode}) <-- I only want this to fire on a raid if I tell it to because of trashed appearing as named, or mini named before the big named. Otherwise it will only fire on named if not in a raid AAUse11=TRUE AASpellName11=Funeral Pyre AAUseAtMobPctHP11=96 AAStopAtMobPctHP11=50 AARecast11=1s AANamedOnly11=TRUE AAConditions11=!${SpawnCount[group brd]} <-- Bard Aria gives the same effect as this AA, only with no penalties. So I dont want to use this if a bard is in group. AAUse12=TRUE AASpellName12=Mercurial Torment AAUseAtMobPctHP12=96 AAStopAtMobPctHP12=50 AARecast12=1s AANamedOnly12=TRUE AAConditions12=(!${Raid.Members}||${BurnMode}) <-- this is a really long reuse AA that I only want to use in BurnMode or if i click it manually when on a raid, otherwise it will get used on group named whenever ready.
[Aggro]
AggroSpellName=Force of Emarr <-- name of disc/aa/spell/item. AggroSpellGem=gem2 <-- gem#,alt,disc,item AggroConditions=!${Raid.Members} <-- any addition conditions AggroAtAggroPct=50 <-- if any group members are above this percent on aggro meter, you will use one of your automatically used aggro spells if available or your AggroSpellName AEAggroMinMobCount=1 <-- Will only use AE aggro spells if at least this many NPCs are nearby on aggro
NOTE: PAL/SK automatically use Audacity, Challenge, and AE/single target Aggro AAs. Additionally, SK auto uses terror line.
[Aura] <-- section for aura, by default this is only called during rest. You can have it call during combat by adding it to the [Combat] section
AuraTotal=2 <-- Total auras, if you dont have any auras, set this to 0 or it could hang you up AuraAnnounce=FALSE <-- Announce auras to AnnounceChannel? AuraUse1=TRUE <-- Use? AuraSpellName1=Aura of the Pious <-- Name of the spell/item/disc you cast AuraSpellIcon1=Aura of the Pious Effect <-- Name of the song icon in song window, if any AuraSpellGem1=gem12 <-- gem#, alt, item, disc AuraName1=Aura of the Pious <-- name of aura as it appears in your aura window. (shift a) AuraUse2=TRUE AuraSpellName2=Circle of Divinity Rk. II <-- notice SpellName, Icon, and Name are all different. Ensure everything is correct. Case Sensitive. circle of divinity isnt the same as Circle of Divinity AuraSpellIcon2=Divinity Effect AuraSpellGem2=gem12 AuraName2=Circle of Divinity
[Bard] <-- bard specific section
UseSlow=TRUE <-- use SlowName to slow mobs? SlowName=Requiem of Time <-- Item/song name to slow with UseTashOrb=FALSE <-- if you have this clicky and want to use it, TRUE RestTwist=5 6 7 9 10 <-- twist these songs in rest mode. NOTE: If your [Aura] section isnt filled out correctly or you leave something blank there, your twist will screw up in rest mode. CombatTwist=5 6 7 9 <-- twist these songs in combat mode 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
[Buff]
BuffXTargets=FALSE <-- Allows you to buff pc/mercs/pets on your extended window that arent aggro on you BuffPets=FALSE <-- Allows you to buff pets in group AutoInvis=FALSE <-- Will autoinvis using InvisSpell if an NPC is within 50 range of you during rest routine, AutoBreakInvis must be set to TRUE for this feature to work. AutoBreakInvis=FALSE <-- Allow macro to work even while invis? or stand there and let nature take its course if someone aggros on accident. InvisSpell=Group Perfected Invisibility <-- invis spell InvisSpellGem=alt <-- [gem#|alt|item] InvisUndeadSpell=Group Perfected Invisibility to Undead <-- ivu spell InvisUndeadSpellGem=alt <-- [gem#|alt|item] LevitateSpell=Group Perfected Levitation <-- levitate spell LevitateSpellGem=alt <-- [gem#|alt|item] BuffTotal=2 <-- Total buffs to check BuffAnnounce=FALSE BuffUse1=TRUE <-- Use? BuffSpellName1=Voice of Premeditation <-- Spell/AA/item name to cast BuffSpellIcon1=Voice of Premeditation <-- Icon in BuffWindow to know if it is already on the person BuffSpellGem1=gem12 <-- [gem#|alt|item] BuffAlias1=|encvoice| <-- Alias to request, must be in |alias| to separate it. saying "encvoice" in any chat channel will request this buff. May require being asked twice depending on spell gem timer of that spell BuffClasses1=BST,CLR,DRU,ENC,MAG,PAL,RNG,SHD,SHM,WIZ <-- specify what classes get it, or leave it blank so it will ONLY cast on demand. BuffUse2=TRUE BuffSpellName2=Hastening of Aransir BuffSpellIcon2=Hastening of Aransir BuffSpellGem2=gem12 BuffAlias2=|enchaste| BuffClasses2=BER,BRD,BST,MAG,MNK,NEC,PAL,RNG,ROG,SHD,WAR
Protips:
There are several aliases that can by used in any chat channel by your AuthorizedUsers to invis, ivu, univis, levitate, and remove levitate:
invison
ivuon
invisoff
levon
levoff
To see what category your buff fits into, or to use it as a conditions, use this format: ${BuffType1}
You can use Buffs to request *ANY* spell/aa/item be cast by someone.
You can also ask for a buff to be done on someone else. like if you want "encvoice" on your friend Francisco, you would use: encvoice on Francisco
Want a mod rod? set it up! Want a port? want 15 different ports?
want cures on demand? Want to set up a heal that will cast on demand so you can heal whomever you want?
Example wizard translocate request:
BuffUse2=TRUE
BuffSpellName2=Teleport
BuffSpellIcon2=
BuffSpellGem2=alt
BuffIconAlt2=
BuffAlias2=|AE TL| <-- if you say AE TL in any chat channel, it will cast Teleport
BuffClasses2= <-- no classes, so it wont ever cast it without being asked
Example cure request:
BuffUse2=TRUE
BuffSpellName2=Radiant Cure
BuffSpellIcon2=
BuffSpellGem2=alt
BuffIconAlt2=
BuffAlias2=|cureme| <-- if you say "cureme", it will cast radiant cure
BuffClasses2= <-- no classes, so it wont ever cast it without being asked
[ClickyMaintenance]
clickies=1 <-- total number of clickies to use. Note all modern clickies are automatically clicked other than Geomantra and damage shields due to stacking issues. So only add clickies that arent auto used. click1=Black Chain Bridle <-- Name of click. If clicky is a mount, it will always attempt to click it at least once to check indoor/outside zone status. doclickies=1 <-- use clickies? this is toggled in game via /click
Associated commands:
/addclicky < link >
/removeclicky < link >
/clicky
[ClickyNuke]
ClickyNukeTotal=3 <-- Total clicky nukes ClickyNukeAnnounce=FALSE <-- Announce in AnnounceChannel? ClickyNukeUse1=TRUE <-- Use? ClickyNukeName1=Deathwhisper <-- Name of item ClickyNukeConditions1= <-- any conditions I should check? ie. shaman epic can look to make sure you dont already have the song on you in case of double shaman in group. or ${BurnMode} ClickyNukeSpellGem1=item <-- item ClickyNukeRecast1=30s <-- recast timer, default is 1s, but sometimes item timers get bugged and appear as if there is no timer, when it is still locked out. placing a Recast timer here is useful in those conditions, especially for bards. ClickyNukeUseAtMobPctHP1=96 <-- use at mob HP ClickyNukeStopAtMobPctHP1=1 <-- stop using at mob's HP ClickyNukeNamedOnly1=FALSE <-- named only? ClickyNukeUse2=TRUE ClickyNukeName2=Lucid Soulreaper Robe ClickyNukeConditions2= ClickyNukeSpellGem2=item ClickyNukeRecast2=180s <-- I suggest a recast timer that is at least .25-.33 of the duration of the normal item recast timer so that it doesnt spam you if timer bugs, but it still checks it early. ClickyNukeUseAtMobPctHP2=96 ClickyNukeStopAtMobPctHP2=1 ClickyNukeNamedOnly2=FALSE ClickyNukeUse3=TRUE ClickyNukeName3=Blightbringer's Tunic of the Grave ClickyNukeRecast3=120s ClickyNukeUseAtMobPctHP3=96 ClickyNukeStopAtMobPctHP3=1 ClickyNukeNamedOnly3=FALSE ClickyNukeConditions3=
[Debuff] <-- Debuffs get checked every combat cycle right after mezzes and roots, you do not need to add them to [Combat] section unless you just want to check that much more often
DontDebuffConColor=|GREY|GREEN| <-- dont bother debuffing these Target.ConColor DebuffAdds=TRUE <-- Debuff adds? I would only worry about this if you arent mezzing/rooting adds. DebuffTotal=4 <-- Total for non-named DebuffTotalIfNamed=4 <-- Total for named, maybe add some AAs or extra resist debuffs ForceMemDebuff=FALSE <-- memorize a spell if it isnt already memorized DebuffAnnounce=FALSE <-- Announce attempts, success, resists, immune messages in AnounceChannel DebuffUse1=TRUE <-- Use? DebuffSpellName1=Enunciation of Tashan <-- Name of spell, AA, item, disc DebuffConditions1= <-- any special conditions? DebuffSpellGem1=gem6 <-- [gem#|alt|disc|item] DebuffUseAtMobPctHP1=100 <-- if you want to debuff adds, set this to 100% DebuffStopAtMobPctHP1=1 <-- stop debuffing if mob gets below this % hp DebuffRecast1=12m <-- Dont try to recast before this time. DebuffMaxTries1=2 <-- If spell gets resisted, try it this many times at most DebuffUse2=TRUE DebuffSpellName2=Diminishing Helix DebuffSpellGem2=gem2 DebuffUseAtMobPctHP2=100 DebuffStopAtMobPctHP2=1 DebuffRecast2=5m DebuffMaxTries2=2 DebuffConditions2=!${Debuff3${DebuffID}} <-- I dont want to slow it if it is already slowed, but I prefer this slow, so try it first DebuffUse3=TRUE DebuffSpellName3=Dreary Deeds DebuffConditions3=!${Debuff2${DebuffID}} <-- I dont want to slow it if it is already slowed by the other spell, and I prefer the other spell so i set this at a lower pct HP and checks after previous DebuffSpellGem3=alt DebuffUseAtMobPctHP3=95 DebuffStopAtMobPctHP3=1 DebuffRecast3=2m DebuffConditions3= DebuffUse4=TRUE DebuffSpellName4=Bite of Tashani DebuffSpellGem4=alt DebuffUseAtMobPctHP4=100 DebuffStopAtMobPctHP4=1 DebuffRecast4=2m DebuffMaxTries4=2 DebuffConditions4=!${Debuff1${DebuffID}} <-- I am only using this if the first spell failed or wasnt available for recast yet.
Protip:
[Debuff]
DebuffConditions2=!${Debuff1${DebuffID}}
${Debuff#${DebuffID}} is the timer, ${DebuffID} is the npc id. so if you wanted to see if your debuff1 was on the mob in the conditions, it would be ${Debuff1${DebuffID}}. Useful if you want to use 2 slows, or 2 malos, but dont want to use both on same mob.
With the ID, you can use the Spawn TLO.
Such as:
DebuffConditions2=${Select[${Spawn[${DebuffID}].ConColor},RED,YELLOW]}
[Disc]
DiscTotal=2 <-- Total DiscUse1=TRUE <-- Use DiscName1=Deftdance Discipline <-- Leave as rank 1 to auto detect future ranks DiscNamedOnly1=TRUE <-- only use this on named? DiscEndCost1=0 <-- how much endurance does this require, if any DiscRecast1=1s <-- how often do you want this used if something other than as available DiscConditions1= <-- do you only want to use this if a certain buff or AA combination is on you or available? or only if another disc is already used? that information goes here DiscUse2=TRUE DiscName2=Thousand Blades DiscNamedOnly2=TRUE DiscEndCost2=0 DiscRecast2=1s DiscConditions2=${Me.PctHPs}<40
[Dot] <-- This is the only standard section that has a max amount you can use because there are some hardcoded checks. If I can use every necro dot in last 5 levels with 15, so can you.
DotTotal=11 <-- Total dots to use against non-named (Max 15) DotTotalIfNamed=11 <-- Total dots to use against named mobs (Max 15) ForceMemDot=FALSE <-- should I memorize dots if they arent already memmed? [TRUE/FALSE]. I *highly* suggest mq2mmofastmem if TRUE DotAnnounce=FALSE <-- Announce in AnnounceChannel? DotUse1=TRUE <-- Use? DotSpellName1=Osalur's Flashblaze <-- Name of spell. You can leave as rank 1, and it will auto detect ranks as you level. DotSpellGem1=gem4 <-- gem#, really only matters if you use forcemem, otherwise it will cast correctly if spell is already memorized DotUseAtMobPctHP1=98 <-- use at mob's HP DotStopAtMobPctHP1=5 <-- stop using at this percent DotRecast1=1s <-- recast timer, if any. Do you only want to Use this dot every minute even though it wears off every 18 seconds DotMaxTries1=2 <-- how many times per mob can this spell be resisted before you dont try it again DotConditions1=((!${Me.Buff[Gift of Deathly Resolve].ID} && (${Target.Named}||${Target.Name.Find[#]}||${Target.PctHPs}>20))||${Me.Song[Deathly Resolve].ID}) <--conditions to use the dot. In this example, I will use this dot down to 5% hp if: (I dont have the buff "Gift of Deathly Resolve" and it is a named mob or not a named and above 20% health.) OR if i do have the buff "Gift of Deathly Resolve" on me DotUse2=TRUE DotSpellName2=Itkari's Swift Lifedraw DotSpellGem2=gem3 DotUseAtMobPctHP2=98 DotStopAtMobPctHP2=5 DotRecast2=1s DotMaxTries2=2 DotConditions2=((!${Me.Buff[Gift of Deathly Resolve].ID} && (${Target.Named}||${Target.Name.Find[#]}||${Target.PctHPs}>20))||${Me.Song[Deathly Resolve].ID}) DotUse3=TRUE DotSpellName3=Bora's Swift Sickness DotSpellGem3=gem2 DotUseAtMobPctHP3=98 DotStopAtMobPctHP3=5 DotRecast3=1s DotMaxTries3=2 DotConditions3=((!${Me.Buff[Gift of Deathly Resolve].ID} && (${Target.Named}||${Target.Name.Find[#]}||${Target.PctHPs}>20))||${Me.Song[Deathly Resolve].ID}) DotUse4=TRUE DotSpellName4=Pernicious Wounds DotSpellGem4=gem12 DotUseAtMobPctHP4=97 DotStopAtMobPctHP4=30 DotRecast4=1s DotMaxTries4=2 DotConditions4=((!${Me.Buff[Gift of Deathly Resolve].ID} && (${Target.Named}||${Target.Name.Find[#]}||${Target.PctHPs}>90))||${Me.Song[Deathly Resolve].ID}) DotUse5=TRUE DotSpellName5=Pyre of Marnek DotSpellGem5=gem7 DotUseAtMobPctHP5=98 DotStopAtMobPctHP5=10 DotRecast5=1s DotMaxTries5=2 DotConditions5=((!${Me.Buff[Gift of Deathly Resolve].ID} && (${Target.Named}||${Target.Name.Find[#]}||${Target.PctHPs}>30))||${Me.Song[Deathly Resolve].ID}) DotUse6=TRUE DotSpellName6=Coruscating Shadow DotSpellGem6=gem12 DotUseAtMobPctHP6=96 DotStopAtMobPctHP6=20 DotRecast6=1s DotMaxTries6=2 DotConditions6=((!${Me.Buff[Gift of Deathly Resolve].ID} && (${Target.Named}||${Target.Name.Find[#]}||${Target.PctHPs}>40))||${Me.Song[Deathly Resolve].ID}) DotUse7=TRUE DotSpellName7=Ignite Thoughts DotSpellGem7=gem12 DotUseAtMobPctHP7=98 DotStopAtMobPctHP7=10 DotRecast7=1s DotMaxTries7=2 DotConditions7=((!${Me.Buff[Gift of Deathly Resolve].ID} && (${Target.Named}||${Target.Name.Find[#]}||${Target.PctHPs}>30))||${Me.Song[Deathly Resolve].ID}) DotUse8=TRUE DotSpellName8=Termination DotSpellGem8=gem12 DotUseAtMobPctHP8=98 DotStopAtMobPctHP8=10 DotRecast8=1s DotMaxTries8=2 DotConditions8=((!${Me.Buff[Gift of Deathly Resolve].ID} && (${Target.Named}||${Target.Name.Find[#]}||${Target.PctHPs}>30))||${Me.Song[Deathly Resolve].ID}) DotUse9=TRUE DotSpellName9=Pyre of the Forsaken DotSpellGem9=gem12 DotUseAtMobPctHP9=98 DotStopAtMobPctHP9=10 DotRecast9=1s DotMaxTries9=2 DotConditions9=((!${Me.Buff[Gift of Deathly Resolve].ID} && (${Target.Named}||${Target.Name.Find[#]}||${Target.PctHPs}>30))||${Me.Song[Deathly Resolve].ID}) DotUse10=TRUE DotSpellName10=Dissolution DotSpellGem10=gem12 DotUseAtMobPctHP10=96 DotStopAtMobPctHP10=10 DotRecast10=1s DotMaxTries10=2 DotConditions10=((!${Me.Buff[Gift of Deathly Resolve].ID} && (${Target.Named}||${Target.Name.Find[#]}||${Target.PctHPs}>30))||${Me.Song[Deathly Resolve].ID}) DotUse11=TRUE DotSpellName11=Halstor's Pallid Haze DotSpellGem11=gem12 DotUseAtMobPctHP11=96 DotStopAtMobPctHP11=10 DotRecast11=1s DotMaxTries11=2 DotConditions11=((!${Me.Buff[Gift of Deathly Resolve].ID} && (${Target.Named}||${Target.Name.Find[#]}||${Target.PctHPs}>30))||${Me.Song[Deathly Resolve].ID}) DotUse12=TRUE DotSpellName12=Halstor's Grasp DotSpellGem12= DotUseAtMobPctHP12=96 DotStopAtMobPctHP12=10 DotRecast12=1s DotMaxTries12=2 DotConditions12=((!${Me.Buff[Gift of Deathly Resolve].ID} && (${Target.Named}||${Target.Name.Find[#]}||${Target.PctHPs}>30))||${Me.Song[Deathly Resolve].ID}) DotUse13=TRUE DotSpellName13=Binaesa Venom DotSpellGem13= DotUseAtMobPctHP13=96 DotStopAtMobPctHP13=10 DotRecast13=1s DotMaxTries13=2 DotConditions13=((!${Me.Buff[Gift of Deathly Resolve].ID} && (${Target.Named}||${Target.Name.Find[#]}||${Target.PctHPs}>30))||${Me.Song[Deathly Resolve].ID})
Available Variable: ${DotOn1}, ${DotOn2}, etc. Returns TRUE if that dot is on mob, FALSE if not.
[Fade]
FadeTotal=1 <-- Fade total FadeAnnounce=TRUE <-- Announce in AnnounceChannel? FadeUse1=TRUE <-- Use? FadeSpellName1=Death's Effigy <-- Name of deaggro AA FadeUseAtMyHP1=15 <-- Use if my % HP get below this amount FadeConditions1=${Group.MainTank.ID}==${Me.ID} <-- any special conditions i should do?
[FeignDeath]
FeignDeathStandAtMyHP=50 <-- If the macro feigned you because you fellow below the designated % HP, it will not stand you until you reach this mount. It ignores if you feign yourself manually. FeignDeathTotal=2 <-- Total FeignDeathAnnounce=FALSE <-- Announce in AnnounceChannel? FeignDeathAfter1=100 <-- This is same as jolt. There really isnt a point to this any more, but people specifically asked for it, i suggest setting it really high. FeignDeathUse1=TRUE <-- Use? FeignDeathSpellName1=Death's Effigy <-- Spell/AA/Disc name. Use your best stuff w/ lowest HP to check first so you live more often. FeignDeathSpellGem1=alt <-- [gem#|alt|disc|item] FeignDeathRecast1=1s <-- Recast delay between attemps if used as a jolt FeignDeathUseAtMyHP1=20 <-- Use if my HP % gets below this FeignDeathConditions1= <-- Any special conditions. like ${Me.ID}!=${Group.MainTank.ID} if you are an SK that doesnt want to FD if you are tanking FeignDeathAfter2=100 FeignDeathUse2=FALSE FeignDeathSpellName2=Improved Death Peace FeignDeathSpellGem2=alt FeignDeathRecast2=10s FeignDeathUseAtMyHP2=40 FeignDeathConditions2=
[FightBuff]
FightBuffTotal=1 <-- Total fightbuffs ForceMemFightBuff=FALSE <-- memorize if not memmed? FightBuffAnnounce=FALSE <-- Announce in AnnounChannel FightBuffUse1=TRUE <-- Use FightBuffSpellName1=Bestow Mortality <-- Name of spell/disc/aa/item FightBuffSpellIcon1=Bestow Mortality <-- name of the song/buff icon as it appears on you FightBuffSpellGem1=gem7 <-- gem#,alt,disc,item FightBuffNamedOnly1=FALSE <-- Use this only on named mobs? FightBuffForAggro1=FALSE <-- remnant mostly, this was for SK/PAL that only wanted to use temp hp buffs if tanking FightBuffConditions1=!${Me.Buff[Gift of Deathly Resolve].ID} <-- any special conditions to use this FightBuff? In this example, this FightBuff blocks a proc from that other buff, even though it stacks with the spell itself. Alternate example to use yaulp and cast group HoT if a cleric: [FightBuff] FightBuffTotal=2 ForceMemFightBuff=FALSE FightBuffAnnounce=FALSE FightBuffUse1=TRUE FightBuffSpellName1=Elixir of the Beneficent FightBuffSpellIcon1=Elixir of the Beneficent FightBuffConditions1=${Group.MainTank.Distance}<${Spell[Elixir of the Beneficent].AERange} FightBuffSpellGem1=gem7 FightBuffNamedOnly1=FALSE FightBuffForAggro1=FALSE FightBuffUse2=TRUE FightBuffSpellName2=Yaulp XIII FightBuffSpellIcon2=Yaulp XIII FightBuffSpellGem2=gem12 FightBuffNamedOnly2=FALSE FightBuffForAggro2=FALSE
[GoM] <-- This section only checks if you have GoM on and it is in the nuke or dot cycle
GoMTotal=0 <-- This can only be 1 or 0 GoMTotalIfNamed=0 <-- This can only be 1 or 0 GoMAnnounce=FALSE <-- Announce to AnnounceChannel? GoMUse1=TRUE <-- Use? GoMSpellName1= <-- Name of spell to cast, usually people set up huge mana spells here or group buffs like champion (back in the day), group lion, group hots, etc. but the purpose of this has been trivialized in recent expansions due to massive mana regen GoMSpellIcon1= <-- I honestly have no idea. It was originally supposed to be a buff icon if you were casting a buff as your GoM spell.. but I dont see it getting used in the macro and i think it can be deleted. GoMSpellGem1= <-- [gem#]
[HealSingle] <-- only heals group members
HealPullerName=PeteSampras <-- This guy is out messing with mobs on pulls, dont heal him until he is within range of HealPullerDist or else you may cause unintended aggro HealPullerDist=50 <-- safe distance to heal designated puller HealSingleTotal=6 <-- total heals HealSingleAnnounce=FALSE HealSingleUse1=TRUE <-- Use? HealSingleSpellName1=Burst of Life <-- Nameof spell/aa/item HealSingleConditions1=${Group.Member[${gmember}].Class.ShortName.NotEqual[SHM]} <-- I dont want to waste this spell on a shaman that can self heal, the check to see members is: ${Group.Member[${gmember}].Whatever} HealSingleSpellGem1=alt <-- [gem#|alt|item] HealSingleUseAt1=80 <-- Only use this if the person is below this % HP HealSingleStopAt1=90 <-- Cancel the cast if the person gets above this % HP HealSingleStopAtMobPctHP1=0 <-- if the mob gets below this %, dont bother casting heal. HealSingleRecast1=1s <-- artificial delay to enable use of HoT and delayed heals. unique timer for each group member HealSingleUse2=TRUE HealSingleSpellName2=Beacon of Life <-- I suggest using any free heals first, like AAs to conserve mana HealSingleConditions2= HealSingleSpellGem2=alt HealSingleUseAt2=80 HealSingleStopAt2=90 HealSingleStopAtMobPctHP2=0 HealSingleRecast2=1s HealSingleUse3=TRUE HealSingleSpellName3=Fifteenth Emblem <-- After the free heals, put your most important/lowest hitpoint heals first so they check first. This one only works if target is below 45% health, so checks are added. This should aways be first real heal for cleric if you use it at all. HealSingleSpellGem3=gem1 HealSingleUseAt3=35 HealSingleStopAt3=45 HealSingleStopAtMobPctHP3=0 HealSingleRecast3=1s HealSingleConditions3= HealSingleUse4=TRUE HealSingleSpellName4=Graceful Remedy <-- again, fast heals first are my personal preferred method. HealSingleSpellGem4=gem12 HealSingleUseAt4=80 HealSingleStopAt4=90 HealSingleStopAtMobPctHP4=0 HealSingleRecast4=1s HealSingleConditions4= HealSingleUse5=TRUE HealSingleSpellName5=Reverent Light <-- big heal now HealSingleSpellGem5=gem12 HealSingleUseAt5=80 HealSingleStopAt5=90 HealSingleStopAtMobPctHP5=0 HealSingleRecast5=1s HealSingleConditions5= HealSingleUse6=TRUE HealSingleSpellName6=Fervent Renewal <--biggest heal with longest recast, and it has cures, so maybe a condition in there. if i am using netbots, i can make it known if my group mate is dotted. HealSingleSpellGem6=gem12 HealSingleUseAt6=80 HealSingleStopAt6=90 HealSingleStopAtMobPctHP6=0 HealSingleRecast6=1s HealSingleConditions6= <-- Using netbots + conditions, you can use cures as "heals" and just set the use at as 100% if the group member is debuffed and you can cure it. HealSingleUse7=TRUE HealSingleSpellName7=Promised Reformation <-- example delayed heal HealSingleSpellGem7=gem11 HealSingleUseAt7=95 <-- higher percent than rest HealSingleStopAt7=100 <-- higher than rest because I am anticipating future damage HealSingleStopAtMobPctHP7=20 <-- higher than rest because of delay HealSingleRecast7=20s <-- note the recast timer HealSingleConditions7=${Group.Member[${gmember}].ID}==${Group.Puller.ID} <-- I am only using this on the puller as an example of conditions usage HealSingleUse8=TRUE HealSingleSpellName8=Halcyon Breath <-- example shaman HoT HealSingleSpellGem8=gem8 HealSingleUseAt8=95 <-- higher percent than rest HealSingleStopAt8=100 <-- higher percent than rest HealSingleStopAtMobPctHP8=50 <-- higher percent than rest due to delay HealSingleRecast8=1m <-- higher percent than rest (1m duration on sham HoT) HealSingleConditions8=!${Select[${Group.Member[${gmember}].Class.ShortName},CLR,DRU,SHM,NEC]} && ${Me.Song[Wisp of Renewal].ID} <-- i only want to HoT them if they arent a priest/necro and if we dont already have group HoT on.
[HealGroup] <-- only used by priests and paladin
HealGroupTotal=3 <-- Total HealGroupAnnounce=FALSE <-- Announce in AnnounceChannel? HealGroupUse1=TRUE <-- Use? HealGroupSpellName1=Beacon of Life <-- Name of spell/aa/item HealGroupConditions1= <-- any special conditions HealGroupSpellGem1=alt <-- [gem#|alt|item] HealGroupUseAt1=50 <-- Use this if single group member gets below this amount. I *highly* encourage setting this to 0 unless you want to use group heals as primary source of healing or have super fast group heals like shaman intervention. In this case, the AA is instant cast, so i will leave it at 50 HealGroupStopAt1=80 <-- stop casting the spell if group member gets above this amount HealGroupAvgHP1=60 <-- cast if the group average HP reaches this amount. This is the number you should focus on. HealGroupUse2=TRUE HealGroupSpellName2=Word of Rehabilitation HealGroupSpellGem2=gem5 HealGroupUseAt2=50 HealGroupStopAt2=80 HealGroupAvgHP2=60 HealGroupConditions2= <-- you can set ${Debuffs.Poisoned} etc conditions here to do cures as well, or heals with cures. Netbots makes this even more effective. HealGroupUse3=TRUE HealGroupSpellName3=Word of Renewal HealGroupSpellGem3=gem12 HealGroupUseAt3=50 HealGroupStopAt3=80 HealGroupAvgHP3=60 HealGroupConditions3=
[HealBalance] <-- slightly different version of group heal, really designed for cleric epic 1.5/2.0 shield and divine arb, shaman intervention could be applied, but just use it as a group heal
HealBalanceTotal=2 HealBalanceAnnounce=FALSE HealBalanceUse1=TRUE HealBalanceSpellName1=Divine Arbitration HealBalanceConditions1= HealBalanceSpellGem1=alt HealBalanceUseAt1=30 <-- if individual gets below this amount, use it. HealBalanceStopAt1=70 HealBalanceUse2=TRUE HealBalanceSpellName2=Aegis of Superior Divinity HealBalanceConditions2= HealBalanceSpellGem2=item HealBalanceUseAt2=30 <-- if individual gets below this amount, use it. HealBalanceStopAt2=70
[HealSplash] <-- cleric/pal get a splash heal, this allows them to use it. additionally, you can say "splashp" in any chat channel and your paladin will splash on command if it is memorized. "splashc" for cleric to do the same.
HealSplashTotal=0 HealSplashAnnounce=FALSE HealSplashUse1=TRUE HealSplashSpellName1=Rejuvenating Splash HealSplashSpellGem1=gem12 HealSplashAvgHP1=60 <-- will splash if group HP avg gets to this. HealSplashUse2=TRUE HealSplashSpellName2= HealSplashSpellGem2= HealSplashAvgHP2=60
[HealPet] <-- group member pets are ignored if you dont specify heals in this section
HealPetTotal=2 HealPetAnnounce=FALSE <-- see [HealSingle] as example to fill section. HealPetUse1=TRUE HealPetSpellName1=Graceful Remedy HealPetSpellGem1=gem12 HealPetUseAt1=60 HealPetStopAt1=90 HealPetConditions1= HealPetUse2=TRUE HealPetSpellName2= HealPetSpellGem2= HealPetUseAt2=50 HealPetStopAt2=90 HealPetConditions2=
Paladin get [HealSelf] section, but i dont have an example. They have several self heals and group heals they can use, it is common sense to fill in. If someone provides me with an example, i can post it.
[Jolt] <-- This is the jolt/deaggro section. Useful to deaggro the mob
JoltTotal=1 <-- Total jolts ForceMemJolt=FALSE <-- memorize if it is a spell and is not memmed already JoltAnnounce=FALSE <-- Announce attempts, success, failures in AnnounceChannel? JoltAfter1=10 <-- standard detrimental spells are worth 1 point, stuns worth 2. So this means after 10 points, you will use this spell. ie. 10 nukes, or 2 nukes and 3 stuns, or 1 dot and 4 stuns. JoltUse1=TRUE <-- Use? JoltSpellName1=Improved Death Peace <-- spell/aa name JoltConditions1= <-- any special conditions? JoltSpellGem1=alt <-- [gem#|alt] JoltUseAtMobPctHP1=96 <-- Use this if mob is below this % HP JoltStopAtMobPctHP1=5 <-- dont bother jolting if mob is below this % HP JoltRecast1=18s <-- artificial recast timer in case you cast a bunch of fast spells and dont want to jolt within this time period JoltValue1=10 <-- how many points does using this jolt erase? some jolts do better than others, some erase entirely JoltNamedOnly1=FALSE <-- only jolt on named? JoltAtAggroPct1=50 <-- jolt if my aggro gets above this %. Must have ROF expansion. If you have ROF, you can set your JoltAfter to really high since it is not really needed any more
[Lifetap]
LifetapTotal=2 <-- Total Lifetaps if fighting normal mob LifetapTotalIfNamed=2 <-- Total Lifetaps if fighting named mob ForceMemLifetap=FALSE <-- Memorize the spell if not already memorized LifetapAnnounce=FALSE <-- Announce in AnnounceChannel InterruptToLifetapAt=40 <-- Interrupt nuke/dot/etc to cast a Lifetap if your HP falls below this amount LifetapUse1=TRUE <-- Use? LifetapSpellName1=Dying Grasp <-- AA/disc/spell name LifetapSpellGem1=alt <-- gem#,alt,disc,item LifetapUseAtMyHP1=40 <-- Use if my hp falls below this amount LifetapConditions1= <-- any conditions required? Only lifetap if a certain buff is/isnt on? LifetapUse2=TRUE LifetapSpellName2=Plunder Essence LifetapSpellGem2=gem1 LifetapUseAtMyHP2=70 LifetapConditions2=
[MainTankBuff] <-- This section is ONLY used to cast spells on the designated ${Group.MainTank} that you set using group roles. It ONLY uses memorized spells or AAs/items that are ready.
MainTankBuffTotal=7 <-- Total MainTankBuffAnnounce=FALSE <-- Announce in AnnounceChannel? MainTankBuffUse1=TRUE MainTankBuffSpellName1=Divine Guardian MainTankBuffConditions1= <-- several classes get this line, and it doesnt stack with divine intervention line, so you may want to check for classes as a condition MainTankBuffSpellGem1=alt <-- [gem#|alt|item] MainTankBuffUseAt1=100 <-- Use at MainTank's % HP MainTankBuffStopAt1=5 <-- stop at MainTank's % HP MainTankBuffNamedOnly1=FALSE <-- Use this only if fighting a named mob? MainTankBuffRecast1=5m <-- Duration check, this is 10m recast spell and 5m duration. MainTankBuffUse2=TRUE MainTankBuffSpellName2=Focused Celestial Regeneration MainTankBuffConditions2= MainTankBuffSpellGem2=alt MainTankBuffUseAt2=100 MainTankBuffStopAt2=5 MainTankBuffNamedOnly2=FALSE MainTankBuffRecast2=1m <-- 1m duration HoT that only is cast on MainTank, recast is much longer MainTankBuffUse3=TRUE MainTankBuffSpellName3=Shining Armor MainTankBuffSpellGem3=gem12 MainTankBuffUseAt3=100 MainTankBuffStopAt3=5 MainTankBuffNamedOnly3=FALSE MainTankBuffRecast3=8m <-- 8m duration buff, recast is instant MainTankBuffConditions3= MainTankBuffUse4=TRUE MainTankBuffSpellName4=Galvos' Retort MainTankBuffSpellGem4=gem6 MainTankBuffUseAt4=100 MainTankBuffStopAt4=5 MainTankBuffNamedOnly4=FALSE MainTankBuffRecast4=2m MainTankBuffConditions4= MainTankBuffUse5=TRUE MainTankBuffSpellName5=Hand of Faithful Infusion MainTankBuffSpellGem5=gem12 MainTankBuffUseAt5=100 MainTankBuffStopAt5=5 MainTankBuffNamedOnly5=FALSE MainTankBuffRecast5=2m MainTankBuffConditions5= MainTankBuffUse6=TRUE MainTankBuffSpellName6=Promised Reformation MainTankBuffSpellGem6=gem12 MainTankBuffUseAt6=100 MainTankBuffStopAt6=5 MainTankBuffNamedOnly6=FALSE MainTankBuffRecast6=30s <-- delayed heal with ~18s duration and near instantly recast. set to 30s recast that is ONLY cast on the tank MainTankBuffConditions6=
[Mana] <-- Mana section, this will look slightly diffrent for every class based on unique AAs/abilities
MedAt=75 <-- If mana is below this amount, and no combat is going on, /sit down MedToFull=FALSE <-- If TRUE, you will sit to med until you are above 90+ mana. Even if group is combat, you will remain sitting. MedEvenIfNotInOOCRegen=FALSE <-- If TRUE, you will sit down immediately after combat, even if you wont get OOC regen MedTimer=10s <-- How often to check if you are standing before you /sit again. UseClarityPotions=FALSE <-- Use clarity potions? Then there are several class specific settings that only show up on those classes' INIs. Missing BST/WIZ/MAG examples. ie. SecondSpire_IfManaBelow=65 <-- ENC specific, will use second spire if your own mana is below this amount SecondSpire_Others_IfManaBelow=5 <-- ENC specific, will use if any other caster's mana in group is below this amount DeathBloom_IfManaBelow=70 <-- NEC specific to for sure death bloom if mana is below this amount DeathBloom_IfMyHPAbove=70 <-- NEC specific to death bloom only if HP is above this amount, so you dont die DontDeathBloom_UnlessManaBelow=99 <-- NEC specific to DO NOT death bloom for any reason unless my mana is below this. Required setting to avoid wasted skills Canni_IfManaBelow=70 <-- SHM specific to for sure canni if below this mana percent DontCanni_UnlessManaBelow=99 <-- SHM specific to DO NOT canni for any reason unless my mana is below this. Required setting to avoid wasted skills Canni_IfMyHPAbove=70 <-- SHM specific to only canny if your HP is above this amount QuietMiracle_IfManaBelow=5 <-- CLR specific to QM if own mana dips below this amount and you dont have a corpse in zone QuietMiracle_Others_IfManaBelow=5 <-- CLR specific to QM a caster if their mana dips below this amount and they dont have a corpse in zone ThoughtLeech_IfManaBelow=60 <-- SHD specific to Thought Leech target if your mana is below this amount and you dont have a corpse in zone. (requires |Mana| in [Combat] section to work)
[Mez] <-- Single target mez section (red icon) All mezzes will call every combat cycle, there is no need to add it to [Combat] unless you want extra checks
DontMezConColor=|GREY|GREEN| <-- dont bother mezzing these Target.ConColor MezTotal=1 <-- total mezzes to use ForceMemMez=FALSE <-- memorize if spell isnt already mezzed MezAnnounce=FALSE <-- Announce casts/resists/immunes/success in AnnounceChannel? MezUse1=TRUE <-- Use? [TRUE/FALSE] MezSpellName1=Confound <-- spell|AA name MezConditions1= <-- this doesnt do anything yet MezSpellGem1=gem3 <-- [gem#,alt] MezUse2=TRUE MezSpellName2=Beam of Slumber MezConditions2= MezSpellGem2=alt MezUse3=TRUE MezSpellName3=Chaotic Confusion MezSpellGem3=gem12 MezConditions3= MezUse5=TRUE MezSpellName5=Confounding Flash MezSpellGem5=gem12 MezConditions5= '''[AEMez]''' <-- targeted AE mez section (green icon) AEMezTotal=1 <-- total AE Mezzes AEMezAnnounce=FALSE <-- Announce casts/resists/immunes/success in AnnounceChannel? AEMezUse1=TRUE <-- Use? AEMezSpellName1=Slackening Wave <-- spell name AEMezSpellGem1=gem5 <-- [gem3] AEMezConditions1= <-- doesnt do anything yet '''[PBAEMez]''' <-- point blank AE mez (blue icon) PBAEMezTotal=1 <-- total PBAE Mezzes PBAEMezAnnounce=FALSE <-- Announce casts/resists/immunes/success in AnnounceChannel? PBAEMezUse1=TRUE <-- Use? PBAEMezSpellName1=Disorientation <-- spell name PBAEMezSpellGem1=gem4 <-- [gem#] PBAEMezConditions1= <-- not used yet
Protips: Mez immune mobs are automatically added to Mob_Ignore_List.ini. As you level, immunities may change due to spell level, it is helpful to delete that file whenever you get new level mez spells.
[Nuke]
NukeTotal=5 <-- Total NukeTotalIfNamed=5 <-- Total if named, useful to repeat nukes with different conditions or use instant cast skills or nukes that need to be memmed ForceMemNuke=FALSE <-- memorize spell if not already memmed? NukeAnnounce=FALSE <-- Announce in AnnounceChannel? NukeUse1=TRUE <-- Use NukeSpellName1=Call Skeleton Throng <-- Spell/AA name NukeSpellGem1=gem12 <-- [gem#|alt] NukeUseAtMobPctHP1=96 <-- nuke if mob % HP is below this NukeStopAtMobPctHP1=30 <-- stop using if mob % HP is below this - in this case it is a swarm pet with 12-18 sec duration. so i stop it early since most fights last 30 seconds tops when exping NukeRecast1=1s <-- Artificial recast timer for some nukes that provide a buff that you dont want to recast before a certain period NukeConditions1=(!${Me.Song[Deathly Resolve].ID} && !${Me.Buff[Gift of Deathly Resolve].ID} && (!${Me.Song[Deathly Resolve].ID} && ((${DotOn1}||${Me.GemTimer[4]}) && (${DotOn2}||${Me.GemTimer[3]}) && (${DotOn3}||${Me.GemTimer[2]})))) <-- necro AA does double twincast dots but requires a direct damage spell to trigger. this spell doesnt count, so if that AA is on, i dont want this spell to cast at all. however, i want my 3 quick dots (gem4/3/2) to be on or unavailable before I attempt any nukes at all NukeUse2=TRUE NukeSpellName2=Impel for Blood NukeSpellGem2=gem5 NukeUseAtMobPctHP2=96 NukeStopAtMobPctHP2=15 <-- I stop this at 15% because Nuke4 gives me a free essence emerald 5% chance if i get a kill shot with it NukeRecast2=1s NukeConditions2=((!${Me.Song[Deathly Resolve].ID} && ${Me.Buff[Gift of Deathly Resolve].ID})||(!${Me.Song[Deathly Resolve].ID} && ((${DotOn1}||${Me.GemTimer[4]}) && (${DotOn2}||${Me.GemTimer[3]}) && (${DotOn3}||${Me.GemTimer[2]}))||(!${Me.Song[Deathly Resolve].ID} && ${Target.PctHPs}<30))) <-- only want it to fire if all 3 quick dots are on, or mob is below 30%, or if it needs to trigger the twincast for dots buff NukeUse3=TRUE NukeSpellName3=Scintillate Bones NukeSpellGem3=gem6 NukeUseAtMobPctHP3=96 NukeStopAtMobPctHP3=15 NukeRecast3=1s NukeConditions3=((!${Me.Song[Deathly Resolve].ID} && ${Me.Buff[Gift of Deathly Resolve].ID})||(!${Me.Song[Deathly Resolve].ID} && ((${DotOn1}||${Me.GemTimer[4]}) && (${DotOn2}||${Me.GemTimer[3]}) && (${DotOn3}||${Me.GemTimer[2]}))||(!${Me.Song[Deathly Resolve].ID} && ${Target.PctHPs}<30))) NukeUse4=TRUE NukeSpellName4=Dissolving Venin NukeSpellGem4=gem10 NukeUseAtMobPctHP4=15 <-- I want to save this to try to get kill shot for 5% chane at free essence emerald to rez with NukeStopAtMobPctHP4=1 NukeRecast4=1s NukeConditions4=((!${Me.Song[Deathly Resolve].ID} && ${Me.Buff[Gift of Deathly Resolve].ID})||(!${Me.Song[Deathly Resolve].ID} && ((${DotOn1}||${Me.GemTimer[4]}) && (${DotOn2}||${Me.GemTimer[3]}) && (${DotOn3}||${Me.GemTimer[2]}))||(!${Me.Song[Deathly Resolve].ID} && ${Target.PctHPs}<30))) NukeUse5=TRUE NukeSpellName5=Mind Strip NukeSpellGem5=gem12 NukeUseAtMobPctHP5=96 NukeStopAtMobPctHP5=1 NukeRecast5=1s NukeConditions5=(!${Me.Song[Deathly Resolve].ID} && !${Me.Buff[Gift of Deathly Resolve].ID} && (!${Me.Song[Deathly Resolve].ID} && ((${DotOn1}||${Me.GemTimer[4]}) && (${DotOn2}||${Me.GemTimer[3]}) && (${DotOn3}||${Me.GemTimer[2]}))))
Protip: I could set a conditions to check % mana of group mates, but i dont use nuke 5 anyway, so i didnt bother. You can add all your AA/song checks as conditions for nuke to fire. You can also repeat the same nuke with different conditions if needed, but if you get complex enough, you can make a single condition for each nuke to fit every setting you want.
[Pet]
UsePet=TRUE <-- Use a pet? PetSpell=Unearthed Assassin <-- name of pet spell PetSpellGem=gem12 <-- [gem#] UsePetFocusAA=TRUE <-- Use /pet focus? PetAttackAt=97 <-- /pet attack once mob reaches this amount ShrinkPet=TRUE <-- shrink pet? ShrinkPetIfHeightAbove=1.5 <-- Me.Pet.Height. 1.5 works for most pets, but not all. ShrinkPetSpell=Modest Earring <-- what spell/item/aa do you want to use to shrink? ShrinkPetSpellGem=item <-- [gem#|item|alt] DoPetHeals=FALSE <-- heal your pet? PetHealAt=50 <-- at what % HP PetHealSpell= <-- name of spell PetHealSpellGem= <-- gem# UseAAPetHeal=TRUE <-- use AA heal for pet? (long recast) PetAAHealAt=20 <-- when do you want to use it DoPetBuffs=TRUE <-- Buff your pet? PetBuffRecheck=10s <-- How often do you want to check your pet's buffs PetBuffTotal=2 <-- total pet buffs PetBuffName1=Sigil of the Sundered <-- name of pet buff spell/AA as shown on pet buff window PetBuffSpell1=Sigil of the Sundered <-- name of pet buff spell/AA to cast PetBuffGem1=gem12 <-- [gem#|item|alt] PetBuffRecast1=1s <-- Artificial limit on casting a buff on pet so you dont spam it PetBuffName2=Aegis of Kildrukaun PetBuffSpell2=Aegis of Kildrukaun PetBuffGem2=alt PetBuffRecast2=1s 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 fire=Summoned: Frightforged Fireblade <-- Added alias "fire" to equipped this item ice=Summoned: Frightforged Iceblade <-- Added alias "ice" to equipped this item aggro=Summoned: Frightforged Ragesword <-- Added alias "aggro" to equipped this item jolt=Summoned: Frightforged Mindblade <-- Added alias "jolt" to equipped this item mask=Summoned: Visor of Gobeker <-- Added alias "mask" to equipped this item 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|< 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.
[Rez]
GrabCorpse=TRUE <-- /corpse the corpse to you or leave it where it is? RezTotal=2 <-- Total ForceMemRez=FALSE <-- Force the spell to be memorized if in combat? RezAnnounce=FALSE <-- Announce in Announce Channel? RezUse1=TRUE <-- Use? RezSpellName1=Blessing of Resurrection <-- AA/spell/item name RezConditions1= <-- this doesnt do anything yet, i need to add it in. Someone remind me if anyone reads this and cares about rez conditions working or not. RezSpellGem1=alt RezDuringCombat1=TRUE RezUse2=TRUE RezSpellName2=Divine Resurrection <-- 100% rezzes are ignored from auto rezzes so they arent wasted RezConditions2= RezSpellGem2=alt RezDuringCombat2=TRUE RezTrustedTotal=1 RezTrusted1=PeteSampras RezTrusted2= RezTrusted3= RezTrusted4= RezTrusted5= RezRaidTimer=5m <-- How often to try to rez again if you are in a raid RezGroupTimer=1m <-- How often to try to rez again if you arent in a raid.
Associated commands: /trusted name - /trusted PeteSampras = adds RezTrusted1=Petesampras; RezTrustedTotal=1, and will now rez Petesampras corpse whenever it comes across it, regardless of group status
[Root] <-- Root section. This will call every cycle, after mezzes and before debuffs. It is meant to be used as crowd control
DontRootConColor=|GREY|GREEN| <-- ignore root if it is this Target.ConColor RootPrimaryTarget=FALSE <-- root the mob we are fighting? Useful if you are root rotting or pet tanking. RootAdds=${If[${Select[${Zone.ShortName},breedinggrounds]},TRUE,FALSE]} <-- Do you want to root any adds? This can be a standard [TRUE/FALSE], Mobs in breedinggrounds and kaeldrakkel are mez immune, so i want it set to TRUE in those zones, but FALSE in every other zone for my personal group FaceNPCToRoot=TRUE <-- do you want to /face the mob before rooting, useful for knockback roots so you throw them in the correct direction. RootTotal=1 <-- Total RootTotalIfNamed=1 <-- Total if named RootAnnounce=TRUE <-- Announce attempts,success,fail,immune messages in AnnounceChannel RootUse1=TRUE <-- Use? RootSpellName1=Pestilent Paralysis <-- AA,spell,item name RootSpellGem1=alt <-- [gem#|alt|item] RootUseAtMobPctHP1=100 <-- To use this as crowd control, this should be 100% RootStopAtMobPctHP1=1 <-- stop rooting at this % RootRecast1=1s <-- Any artifical recast timer that you want added RootMaxTries1=2 <-- Number of resists before you stop trying to use it on that mob RootConditions1=!${Root2${RootID}} <-- Any special conditions? If you had a root2, this example would check to make sure it isnt already rooted with that spell.
Protips: Root/snare immunities are automatically added to Mob_Ignore_List.ini. If a mob isnt getting rooted and it is rootable, check there. ${Root#${RootID}} is the timer, ${RootID} is the npc id. so if you wanted to see if your Root1 was on the mob in the conditions, it would be ${Root1${RootID}}. Useful if you want to use multiple roots, but dont want to use both on same mob. Example conditions: RootConditions3=((${Root1${RootID}}||${Root2${Root ID}}) && ${Spawn[id ${RootID}].Distance}<50) What do i mean? Ok, say you have 3 spells: Example (note that these are paraphrases and not the real things): RootSpellName1=KnockBack + Root Spell RootCondition1=!${Root2${RootID}} && !${Root3${RootID}}
RootSpellName2=Root Spell RootCondition2=!${Root1${RootID}}
RootSpellName3=Knockback Spell RootCondition3=${Root2${RootID}}
[Snare]
SnareTotal=1 <-- Total ForceMemSnare=FALSE <-- memorize if a spell isnt memorized? SnareAnnounce=FALSE <-- Announce attempts,success,fail,immune messages in AnnounceChannel SnareUse1=TRUE <-- use? SnareSpellName1=Encroaching Darkness <-- AA,spell,item name SnareSpellGem1=alt <-- [gem#|alt|item] SnareUseAtMobPctHP1=99 <-- Use if mob % HP is below this, auto recast SnareMaxTries1=2 <-- max resists to stop attempting SnareConditions1= <-- any special conditions?
Protips: Root/snare immunities are automatically added to Mob_Ignore_List.ini. If a mob isnt getting rooted and it is rootable, check there.
[SelfBuff] <-- by default, this section is only called when not in combat. use [FightBuffs] for buffs to use only in combat or add |SelfBuff| to the [Combat] section to use these any time
SelfBuffTotal=4 <-- Total SelfBuffAnnounce=FALSE <-- Announce in AnnounceChannel? SelfBuffUse1=TRUE <-- Use? SelfBuffSpellName1=Perfected Dead Man Floating <-- Name of spell, AA, Item, Disc to cast SelfBuffSpellIcon1=Perfected Dead Man Floating <-- Name of song/buff icon on you SelfBuffConditions1=!${Me.Levitating} <-- Conditions to check, ie, already levitating, buffs you dont want to overwrite or that dont stack correctly but still try to cast SelfBuffSpellGem1=alt <-- [gem#|alt|disc|item] SelfBuffUse2=TRUE SelfBuffSpellName2=Forsakenside SelfBuffSpellIcon2=Forsakenside SelfBuffSpellGem2=gem12 SelfBuffConditions2= SelfBuffUse3=TRUE SelfBuffSpellName3=Shield of the Dauntless SelfBuffSpellIcon3=Shield of the Dauntless SelfBuffSpellGem3=gem12 SelfBuffConditions3= SelfBuffUse4=TRUE SelfBuffSpellName4=Zombieskin SelfBuffSpellIcon4=Zombieskin SelfBuffSpellGem4=gem12 SelfBuffConditions4=!${Me.Song[Death Bloom].ID} <-- Death Bloom just eats this rune, so i wait until it is over
[Stun]
StunTotal=2 <-- Total StunTotalIfNamed=0 <-- I personally dont bother with trying to stun named ForceMemStun=FALSE <-- Mem the spell if not already memmed? StunAnnounce=FALSE <-- Announce in AnnounceChannel? StunUse1=TRUE <-- Use? StunSpellName1=Dizzying Squall <-- Spell/AA name StunSpellGem1=gem6 <-- [gem#|alt] StunUseAtMobPctHP1=100 StunStopAtMobPctHP1=1 StunRecast1=9s <-- Most stun spells have a long recast, but in case you want to space out your stuns you can modify this to stun lock your targets. StunConditions1= <-- Maybe you only want to stun if there are multiple mobs or no clerics in group or someone died. Whatever tickles your fancy. StunUse2=TRUE StunSpellName2=Color Confluence StunSpellGem2=gem10 StunUseAtMobPctHP2=100 StunStopAtMobPctHP2=1 StunRecast2=9s StunConditions2=
[SummonItem] <-- This section should be used for items you want to summon for yourself if conditions are met
[SummonItem] SummonItemTotal=2 <-- Total? SummonItemUse1=TRUE <-- Use? SummonItemName1=Grant Icebound Paradox <-- Name of Spell/item to cast SummonItemSpellGem1=gem1 <-- [gem#|item|alt] SummonItemConditions1=!${FindItemCount[Summoned: Icebound Sliver]} && ${Me.PctMana}>70 SummonItemUse2=TRUE SummonItemName2=Warm Milk Dispenser SummonItemSpellGem2=item SummonItemConditions2=(${FindItemCount[=Warm Milk]}<5 ||${Me.Thirst}<3000)
[XHeal] <-- target NPC/mercs and add them as "Current Target" to your extended target window (DO NOT USE XTARGET1 AS A PC/MERC TO HEAL. IT IS REQUIRED TO REMAIN AS YOUR "KILL" TARGET). If i had 10 XTarget slots, and wanted to add 5 people to heal, I would add them as XTarget6-10. That way i could use XTarget1 to kill/debuff mob and easily see how many mobs are attacking group and perform Rooting if needed.
XHealPullerName=PeteSampras <-- This guy is the puller, so i dont want to heal too early and screw up pulls XHealPullerDist=50 <-- I will heal PeteSampras at this range XHealTotal=1 <-- Total XHealUse1=TRUE <-- Use? XHealSpellName1=Gotikan's Mending <-- Name of spell/aa/item XHealSpellGem1=gem1 <-- [gem#|alt|item] XHealUseAt1=90 <-- heal if my XTarget goes below this amount XHealStopAt1=90 <-- stop healing my XTarget if they go above this amount
Frequently Asked Variables:
${AddCount} - How many mobs are aggro on you
${BurnMode} - Are you in burn mode?
${Debuff1${DebuffID}} - used in debuff conditions to check against other debuffs - Example checks if DebuffSpellName1 is on the mob
${Root1${RootID}} - used in [Root] conditions to check against other roots - Example checks if RootSpellName1 is on the mob
${Group.Member[${gmember}].X} - Check whatever .Variable for group member that you want for [HealSingle] Conditions
${DotOn1} ... ${DotOn15} - Is dot 1-15 currently on the mob? Max dots are 15.
Refer to ANY variable in the INI in a condition: ${StunTotal} = Would give the current StunTotal=
AAtoBuy
This is similar to MQ2AAspend, just macro based.
[AAtoBuy] AABuy=FALSE AABuyChannel=/echo AABuyAt=15 (won't start buying until you have this many saved, suggest at least 12/15/18 for class AA purchases) AABuyMode=classic (options are: classic,limited,brute) AABuyPageOrder=class|archetype|general|special LimitedGeneral=Innate Run Speed|Combat Stability|Combat Agility|Innate Regeneration LimitedArchetype=Fury of Magic|Spell Casting Reinforcement Mastery|Spell Casting Mastery LimitedClass=Blood Tithe LimitedSpecial=Glyph of the Cataclysm AACount=5 AA1=Combat Stability|E|1 AA2=Combat Agility|E|1 AA3=Innate Run Speed|M|1 AA4=Spell Casting Reinforcement Mastery|4|2 AA5=Levant|1|3
AA name|ranks to buy|page number
options: #|M|E
# buys the exact number you list
M buys all available
E will evenly spend on all AAs marked with E until max rank is achieved
AABuyMode=classic
classic = uses list
brute uses AABuyPageorder
limited uses AABuyPageOrder, then if any Limited are listed, it will only buy those from corresponding page and skip rest, if blank, buys all
Associated Command:
/aaspew - will create a "limited" version for you into your INI file. **It will replace whatever you have there already.
Loot.ini
Loot.ini is used to control what items are looted/sold/kept/destroyed
[Loot] Version=v2.24 <-- Version LootOnRaids=FALSE <-- Loot if in a raid? HideCorpseLooted=TRUE <-- /hidecorpse looted on macro start LootMobs=TRUE <-- Master setting, will not allow any looting if set to FALSE CorpseRadius=150 <-- Radius scan for corpses MobTooClose=75 <-- How close an NPC can be before you ignore looting ReportLoot=TRUE <-- Announce loot in LootChannel? ReportOnlyGear=TRUE <-- ONLY announce wearable gear that is rotting. LootChannel=g <-- channel to announce in. g or bc MinValue=30 <-- min plat value of item in order to loot (Tradeskill items over this value will be set as Sell) LootTradeskills=TRUE <-- Loot tradeskill items, regardless of value LootDuringCombat=FALSE <-- Loot even when in Me.Combat? OpenAllBags=TRUE <-- Open all your bags when selling/depositing items AddNewSales=TRUE <-- Allow adding of items for sale LootForage=TRUE <-- Auto add items you forage to ini LootIgnoreList=Ornamentation,Chorosene,Mamba,Words of,Rune of,Etched Rune, Delphinium, Privit, Meat,Larkspur,Ornament,Velium ,Fine Steel,Salil's,Laburnum,Muscimol,Nihilite,Uncut ,Oleander, <-- Ignore anything that contains a phrase on this list Loot_PeteSampras=trinkets-5|thingamajigs-1|top hats-4| Loot_FrankyJ=wrist molds-2|
Associated Command:
/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:
/lootignore <-- change status of item on cursor to ignore in loot.ini
/lootsell <-- change status of item on cursor to sell in loot.ini
/lootdestroy <-- change status of item on cursor to destroy in loot.ini
/lootkeep <-- change status of item on cursor to keep in loot.ini
/loottradeskills <-- change status of item on cursor to tradeskills in loot.ini
/sell <-- sell items marked as Sell to currently targeted vendor
/deposit <-- deposit items to banker/guildbanker that is on target
MQ2MyButtons
Use MQ2MyButtons to create hotkeys outside of normal eq hotkeys on its own special set of keys. Here is a demo of 20 keys and how they can make your life much easier using bot40.mac.
1. Download the .xml file for 20 hotkeys +reload button from the first post.
2. /plugin mq2labels
3. /plugin mq2mybuttons unload
4. go into your mq2\server_charname.ini and add the following info (modifying to your actual aliases):
[MQ2MYButtons_Buttons] MyButtonLabel_1=bot40 MyButtonCommand_1=/mac bot40 MyButtonLabel_2=clr tar MyButtonCommand_2=/bc ClearTargetDataAlias MyButtonLabel_3=emerg MyButtonCommand_3=/bc EmergencyAlias MyButtonLabel_4=imob MyButtonCommand_4=/imob MyButtonLabel_5=imob1 MyButtonCommand_5=/imob1 MyButtonLabel_6=puller MyButtonCommand_6=/puller MyButtonLabel_7=pause MyButtonCommand_7=/bcaa //mqpause MyButtonLabel_8=fol on MyButtonCommand_8=/bc FollowCommand MyButtonLabel_9=fol off MyButtonCommand_9=/bc StopFollowCommand MyButtonLabel_10=invis MyButtonCommand_10=/bc invison MyButtonLabel_11=uninvis MyButtonCommand_11=/bc invisoff MyButtonLabel_12=exp MyButtonCommand_12=/bc expreport MyButtonLabel_13=camp MyButtonCommand_13=/bcaa //camp MyButtonLabel_14=ass MyButtonCommand_14=/bcaa //assist group MyButtonLabel_15=/off MyButtonCommand_15=/offtank MyButtonLabel_16=/sum MyButtonCommand_16=/sumtank 20 MyButtonLabel_17=/leap MyButtonCommand_17=/leap 30 MyButtonLabel_18=/clicky MyButtonCommand_18=/clicky MyButtonLabel_19=move MyButtonCommand_19=/bc MoveUpCommand MyButtonLabel_20=buff1 MyButtonCommand_20=/bc BuffAlias1
5. /plugin mq2mybuttons
6. /loadskin if UI wasnt already loaded.
Now you have a hotkey bar with most of the Bot specific aliases and dont have to figure out /slash commands or alt tab over to other toons to get things done.
Conditions
"Conditions" 101:
Conditions should allow full customization for a bunch of questions people have had about how do i only cast when this and this and this are the case. People have stated things like: i only want to use this necro nuke when i dont have Chaotic Power song on. ok. Then add this as your Conditions for that nuke. NukeConditions1=!${Me.Song[Chaotic Power].ID} or theyve asked if i have whatever that mage and wizard that if i have the fire boost song on, i dont want to cast magic or cold based nukes. Here could be how to avoid casting a fire nuke if the Ice or Magic booster are on: NukeConditions1=!${Me.Song[Syllable of Ice]} && !${Me.Song[Syllable of Magic]} I only want to use my sk self mana buff if there are no encs in my group. SelfBuffConditions1=!${Spawn[group enc].ID} I only want to use this AA when i am in range mode. AAConditions1=${Me.AutoFire} or i only want to do this when i am meleeing and NOT at range: AAConditions1=${Melee.Status.Equal[ENGAGED MELEE ATTACK ]} && !${Me.AutoFire} Or you only want to do a disc when you have Auspice and Shaman epic on. etc etc etc. You can set whatever conditions you want for something to trigger.
Availability
This macro is located in at the following forum link at MMOBugs.com.
http://www.mmobugs.com/forums/bot-mac-botting-macro/31681-bot-mac-updates-bug-fixes-40oz.html