• You've discovered RedGuides 📕 an EverQuest multi-boxing community 🛡️🧙🗡️. We want you to play several EQ characters at once, come join us and say hello! 👋
  • Hail Guest, RedGuides is proud to announce the official release of MacroQuest, which we're now using as the base for Very Vanilla. Join the release party!
  • IS THIS SITE UGLY? Click "RG3" at the very bottom-left of this page to change it. To dismiss this notice, click the X --->

Combat Assist MQ2Melee 2021-04-02

Other Authors
s0rcier, Wasted, Jobey, htw, pms, Maskoi, teichou, cr4zyb4rd, rswiders, Nayenia, winnower, Saar, eqmule, alynel, Sic, Redbot, Knightly, BigDorf
Software Requirements
MQ2MoveUtils for movement (/stick parameters)
MQ2Cast for spells, AA's and item clicks
Included in Very Vanilla
Very Vanilla Included! No need to download.
Server Type
  1. Live
  2. Emu
  3. TLP
  4. Test Server
Are we missing something? Level 2 users can edit this manual to add it. If you make a good change please reply to the discussion for praise / critiques / rewards.

  1. Features
  2. Commands
    1. /melee
  3. INI File
    1. "IF" Options
    2. Other Options
    3. HolyShit and DownShit
  4. INI File Examples
  5. Optional Global INI File
  6. Top-Level Objects
    1. Debugging TLOs
  7. Troubleshooting
  8. FAQ
  9. More Examples & Guides
The classic MQ2Melee, used for automating melee skills, abilities, AA's and movement in combat. It can also be configured to handle pets and some items depending on combat conditions.

  • Auto use abilities according to user settings and game conditions.
  • Auto-equip defined items for bashing, backstabbing or ranged attack.
  • Built in user conditions to restrain the use of certain abilities.
    • Auto-stand on Failed/Broken Feign Death.
    • Monitoring of "Begin to Cast" messages for automatic Bash/Slam/Kick or casting of defined stuns.
    • Automatic turning on/off of Attack on Enrage/Infuriate.
  • MELEE:
    • Auto-equipping of weapon set(s) prior to engaging (aggro/non-aggro sets).
    • Auto-use of defined combat or other abilities.
    • User-configurable /stick arguments.
    • Auto Taunt when you loose aggro on target.
    • Configurable spells to cast to gain/maintain aggro.
    • Back off/Feign/Evade fight if your health goes below a point.
    • Auto Resume fight if your health goes back above a point.
    • Provoke can be configured to cast any AA, disc or spell. It will auto-detect if you lose aggro, and then attempt to use any of the defined spells to regain it.
      • To determine the proper Spell ID for any Discipline, Alternate Ability or Spell to be used with the provoke/stun commands use one of the following commands:
        • For Disciplines use: /echo ${Me.CombatAbility[${Me.CombatAbility[<disc>]}].ID}, replacing <disc> with the name of the Discipline.
        • For AAs, use /aa info <AA name>. The first number (before the AA name) is the Spell ID.
        • For Spells, use /echo ${Spell[<spell>].ID}, replacing <spell> with the spell name.
      • Alternatively, you can look on Lucy for the discipline/spell/AA and get the ID from there.
    • Stuns can also be configured to cast any AA, disc or spells when MQ2Melee detects that your target begins to cast a spell.
    • Provoke and Stun have built-in values, but they can always be overwritten using the command line (eg. /melee provoke0=5015) or by editing the provoke0 setting in the INI file and then typing /melee reload in game.
    • Toggle between Melee/Ranged mode according to Target distance.
    • Swap In/Out defined ranged items (bow/throwing).
    • Auto refill ammunition slot when less than 80 in a stack.
    • Built-in /throwit command you could use to pull (see below for explanation).
    • Auto-Sleep mode while auto-fire is on.
    • Configurable automatic facing of target.
    • Issue /pet back and /pet hold after each mobs dies.
    • Configure pet to wait to assist till mobs within range.
    • Configure pet to wait for a specified time before assisting.
    • Pet mend if its life goes below a certain point.
    • Option to automatically re-engage target when no longer mezzed.
    • Backup pet on enrage/infuriate events and re-engaging of target.
    • Auto /pet hold if you manually hit back button or do /pet back.
    • Allows for conditional use of various abilities/disciplines.
    • Allows for customized actions based on conditional statements.
    • Provides MQ2Data information for better macro integration and HUD designs.
    • Can be used with custom user-defined conditions.
  • All [on|off] options listed below are controlled with on or off as the argument used to enable or disable the option, however true or 1 can be used in place of on, and false or 0 can be used in place of off.
    • Example: /melee on aggro=on taunt=on kick=1 bash=0 intimidation=false disarm=true
  • /melee by itself will list all abilities and settings that are available to you. Some settings are dependent on others being active, so may not show up until you enable the prerequisite option.
  • To find the relevant Item IDs for the various options, you can use the following command:
    • /echo ${FindItem[=<item>].ID}, replacing <item> with the name of the item you are looking for (no need to use quotes). Eg. /echo ${FindItem[=Blade of Carnage].ID} results in "25210".
  • /melee load
    Any changes you make manually by editing your INI file, if you are already in-game, will not be seen by MQ2Melee. You can force it to see these changes by using /melee load. This will load all options from the INI file, including any holyshits, downshits, or various if* options. This is also required if you scribe or purchase an upgrade to a spell/ability/disc/aa in game.
  • /melee save
    Changes to mq2melee options via the /melee command in-game, are not automatically saved. You must tell mq2melee to save, if you want any changed options to persist the next time you load EQ/MQ2. The save command will save all current options to the INI file. Any downshit, holyshit, or various *if options will not be affected.
  • /melee reset
    This will turn off attack, and reset melee engagement variables (stop stick, combat, etc.).
  • /melee key
    Displays the bound melee keys - attack, melee, range.
  • /killthis
    This command is generally to be used within macros, to tell the plugin that you want to engage the current target. If you are feigning death, this will stand you up. It will also reset all the plugin's internal values. If you play your toon manually you don't need to use this command at all, just press the melee attack key (default z). /killthis is mainly for use in macros, but you can use it via button assignment if you wish. See the section in this wiki on key customization (default z), for attack engagement with mq2melee, which does the same thing as /killthis does, but with a keypress instead of a / command.
  • /throwit
    Tells the plugin to perform a single ranged attack on current target. It will do the following:
    1. Equip the defined ammunition and ranged item
    2. Refill ammunition
    3. Perform archery/throwing
    4. Swap back previous range item
/melee [options]
  • [on|off]
    Turns plugin On/Off.
  • aggro=[on|off]
    Plugin tries to keep aggro on target using all enabled aggro abilities/disciplines until aggro is regained, or either you or the target dies.
  • aggropri=[Item ID]
    Item ID for primary weapon to be used in aggro mode.
  • aggrosec=[Item ID]
    Item ID for secondary weapon to be used in aggro mode.
  • arrow=[Item ID]
    Item ID of ammunition to use for ranged/throwing attacks.
  • asp=0|1 [off|on]
    Bite of the Asp, Beastlord AA
  • assassinate=[on|off]
    Activate the assassinate skill (ie. Sneak, Hide, move behind target, activate Strike disc, backstab)
  • assault=[0-100]
    Will use Assault/Battery/Onslaught/Incursion/Barrage disc if endurance above this %.
  • backoff=[0-100]
    Turns attack off if your life percentage goes below the designated value. Will never back off due to low health if aggro=on.
  • backstab=[on|off]
    Will try to backstab if you wielding a piercing weapon in your main hand (or have poker option set properly) and you are behind the target.
  • bash=[on|off]
    Will try to bash target if you have a shield equipped or have have a 2-handed weapon and the 2 Hand Bash AA.
  • battleleap=[on|off]
    Whether or not to use Battle Leap AA (Default=0/off)
  • begging=[on|off]
    Will turn attack off and beg target and turn back on
  • bleed=[0-100]
    Uses Bleed/Wound/Lacerate/Gash/Hack disc if endurance is over this %.
  • bloodlust=[0-100]
    Uses Shared Bloodlust/Shared Brutality/Shared Savagery/Shared Viciousness/Shared Cruelty disc if endurance is over this %. If Cry Havoc is enabled, will only fire after Cry Havoc does.
  • boastful=[on|off]
    Will use Boastful Bellow AA.
  • bow=[Item ID]
    Item ID for ranged weapon.
  • bvivi=[0-100]
    Uses Bestial Fury Discipline/Empathic Fury/Bestial Vivisection/Bestial Rending/Bestial Evulsing/Bestial Savagery disc if endurance is over this %.
  • callchallenge=[on|off]
    Will use Call of Challenge AA.
  • challengefor=[on|off]
    Activate Challenge/Trial/Charge/Confrontation/Provocation/Demand/Impose for Honor (Paladin) or Challenge/Trial/Charge/Confrontation/Provocation/Demand/Impose for Power (Shadowknight) spells once aggro has been established.
  • cloud=[0-100]
    Uses the Cloud of Fists disc if endurance is over this %.
  • commanding=[0-100]
    Uses Commanding Voice disc if endurance is over this %.
  • cripple=[0-100]
    Use ability when endurance above [X]% (0=off). Leg Strike, Leg Cut, Leg Slice, Crippling Strike, Tendon Cleave, Tendon Sever, Tendon Shear, Tendon Lacerate, Tendon Slash, Tendon Gash
  • cryhavoc=[0-100]
    Uses the Cry Havoc/Cry Carnage disc if endurance is over this %.
  • cstrike=[on|off]
    Will use Chameleon Strike AA.
  • defense=[0-100]
    Uses the Bracing/Staunch/Stalwart/Steadfast/Stout Defense disc if endurance is over this %.
  • disarm=[on|off]
    Will try to disarm target if target is wielding a weapon.
  • dragonpunch=[on|off]
    Will use dragon punch if available.
  • downflag0-19=[on|off]
    Whether or not to use defined DownShit0 from ini. After enabling this option, you must edit the INI file with your relevant DownShit command and then issue /melee load to enable it.
  • eaglestrike=[on|off]
    Will use eagle strike if available.
  • enrage=[on|off]
    Turns attack off and issues /pet hold (/pet back if hold not available) if target enrages and you are facing it. Automatically re-engages when enrage ends or if you are behind the target.
  • escape=[0-100]
    Turn off Attack and use rogue escape AA if your life percentage goes below the designated value. Will never happen if aggro=on.
  • evade=[on|off]
    Will attempt to evade in combat to drop some aggro each time the hide skill is available. It is strongly suggested that you set unhide=1 to authorize plugin to break hide and rejoin the fight. Will never happen if aggro=on.
  • eyegouge=0|1 [off|on]
    Uses the monk AA Eye Gouge
  • facing=[on|off]
    Whether or not to face target (checked every 2 seconds and only in ranged mode).
  • falls=[on|off]
    (Monk only) Auto-feign to reduce aggro
  • fclaw=[0-100]
    Uses Flurry of Claws/Tumult of Claws/Clamor of Claws/Storm of Claws disc if endurance is over this %.
  • feigndeath=[0-100]
    Attempt to feign death when life is below [X]%. 0=Off
  • feign=[0-100]
    Uses monk line of AA's, Feign Death, Imitate Death. Attempt to feign death when life is below [X]%. 0=Off
  • feign0=[0-100]
    Uses each class's line of feign spells when life is below [X]%. 0=Off
  • feign1=[0-100]
    Uses each class's line of feign AA abilities when life is below [X]%. 0=Off
  • feralswipe=0|1 [off|on]
    Beastlord AA Feral Swipe
  • ferociouskick=[on|off]
    Will trigger Ferocious Kick AA.
  • fieldarm=[0-100]
    Uses Field Armorer/Outfitter/Defender/Guardian/Protector disc if endurance is over this %.
  • fistofwu=[0-100]
    Monk AA Fists of Wu. Use ability when endurance above [X]% (0=off).
  • flyingkick=[on|off]
    Will use flying kick if available.
  • gblade=[0-100]
    Uses the Gouging/Gashing/Lacerating Blade disc if endurance is over this %.
  • gorillasmash=0|1 [off|on]
    Beastlord AA Gorilla Smash
  • gutpunch=[on|off]
    Will try to use Gut Punch AA if available.
  • harmtouch=[on|off]
    Will try to use Harm Touch skill if available.
  • hide=[on|off]
    Will try to hide if you're not in a combat and not moving.
  • holyflag0-19=[on|off]
    Whether or not to use defined HolyShit0 from ini. After enabling this option, you must edit the INI file with your relevant HolyShit command and then issue /melee load to enable it.
  • infuriate=[on|off]
    Turns attack off and issues /pet hold (/pet back if hold not available) if target infuriates and you are facing it. Re-engages when infuriate ends or if you are behind the target.
  • intimidation=[on|off]
    Will use intimidation if available.
  • jolt=[0-100]
    Jolt every # of hits (0=off). This is a de-agro routine, for BER (Divertive Strike/Distracting Strike/Confusing Strike/Baffling Strike/Jarring Strike/Jarring Smash/Jarring Clash/Jarring Slam/Jarring Blow/Jarring Crush disc), RNG (Jolt/Jolting Blades/Cinder Jolt spell), ROG (Imperceptible/Indiscernible Discipline), and BST (Roar of Thunder AA). NOTE: jolt will not be used if you have aggro=on set.
  • jltkicks=[0-100]
    for Monk's Jolting Kicks/Snapkicks/Frontkicks/Hook Kicks/Crescent Kicks/Heel Kicks/Cut Kicks
  • jugular=[0-100]
    Uses the Jugular Slash/Slice/Sever/Gash/Lacerate/Hack disc if endurance is over this %.
  • kick=[on|off]
    Will use kick if available
  • kneestrike=[on|off]
    Will use Knee Strike AA if available.
  • layhand=[0-100]
    Use Lay on Hands AA or Lay Hands skill on myself when my HP falls below this %.
  • leopardclaw=[0-100]
    Will use Leopard Claw/Dragon Fang/Clawstriker's Flurry/Wheel of Fists/Whorl of Fists/Six-Step Pattern/Seven-Step Pattern/Eight-Step Pattern disc when endurance is over this %. .
  • melee=[on|off]
    Turn Melee Mode On/Off.
  • meleepri=[Item ID]
    Item ID for primary weapon to be used in non-aggro mode.
  • meleesec=[Item ID]
    Item ID for secondary weapon to be used in non-aggro mode
  • mend=[0-100]
    Mend wounds if your life percentage goes below the designated value.
  • monkey=[0-100]
    Uses the Drunken Monkey Style disc if endurance is over this %.
  • opfrenzy=[0-100]
    Will use Overpowering/Overwhelming/Conquering/Vanquishing/Demolishing Frenzy disc if endurance is above this %
  • opportunisticstrike=[0-100]
    Will use Opportunistic Strike/Strategic Strike/Vital Strike/Calculated Strike disc if endurance above this %. Additionally the mob needs to be <=20% health to fire.
  • petassist=[on|off]
    Will send pet attack on engage and backoff on enrage/infuriate if those options are enabled. The plugin will also use /pet hold if you have that AA.
  • petdelay=[0-30]
    Will not engage pet until [x] seconds has passed.
  • petmend=[0-100]
    Cast "Mend Companion" or "Replenish Companion" if pet is at or below given health % (will cast higher of the two if you have both).
  • petrange=[0-150]
    Will not engage pet until mob is within [x] range of your pet.
  • pickpocket=[on|off]
    Turn off attack & try to pickpocket if not in aggro mode
  • pinpoint=[0-100]
    Uses the Pinpoint Vulnerability/Weaknesses/Vitals/Flaws/Liabilities/Deficiencies disc if endurance is over this %.
  • plugin=[on|off]
    Turn plugin on/off.
  • poker=[Item ID]
    Item ID for backstabbing weapon. Will be swapped in before backstabbing if necessary.
  • pothealfast=[0-100]
    Use fast heal potion when my HP falls below [X]% (default=30).
  • pothealover=[0-100]
    Use heal over time potion when my HP falls below [X]% (default=60).
  • provoke0=[Disc/AA/Spell ID #]
    ID of the Disc/AA/Spell to use for provoking (0=off). provokemax must be set, and aggro must be on.
  • provoke1=[Disc/AA/Spell ID #]
    ID of the Disc/AA/Spell to use for provoking (0=off). provokemax must be set, and aggro must be on.
  • provokeend=[0-100]
    Stop trying to provoke when target's health falls below [X]% (default=15).
  • provokemax=[0-100]
    Number of times you will try provoking aa/disc/spells to regain aggro (default=1).
  • provokeonce=[on|off]
    Only use provoke once to attempt to gain aggro.
  • ragevolley=[0-100]
    Will use Rage Volley/Destroyer's Volley/Giantslayer's Volley/Annihilator's Volley/Decimator's Volley/Eradicator's Volley/Savage Volley/Sundering Volley/Brutal Volley/Demolishing Volley disc if endurance is above this %.
  • rake=[0-100]
    Use Rake/Harrow/Foray/Rush/Barrage/Pummel/Maul/Mangle disc when endurance is above this %.
  • rallos=[0-100]
    Use Axe of Rallos/Axe of Graster/Axe of Illdaera/Axe of Zurel/Axe of Numicia disc when endurance above this %.
  • range=[0-250]
    Enables ranged attacks when target is at or beyond this range. Note that 0 disables ranged attacks completely.
  • ravens=0|1 [off|on]
    Beastlord AA Raven's Claw
  • resume=[0-100]
    Stand up and turn back attack on if your life percentage goes above this value. Used with /melee feigndeath=on.
  • rightind=[0-100]
    Will use Righteous Indignation/Righteous Vexation/Righteous Umbrage disc if endurance above this %.
  • roundkick=[on|off]
    Will use the Round Kick skill if available.
  • selos=[on|off]
    Will use bard AA Selo's Kick if available.
  • sensetraps=[on|off]
    Will try to sense traps if not in combat.
  • shield=[Item ID]
    Item ID of shield to use for bashing
  • slam=[on|off]
    Will slam as often as possible.
  • slapface=[0-100]
    Will use Slap In The Face/Kick In The Teeth/Punch In The Throat disc when ready and target is in range and your endurance is above this %. Note: As this is an out of combat engage style attack, it will only fire on first engagement of a mob - and ONLY if you use the mq2melee attack key (default is z) to engage, or /killthis. Using EverQuest's built in key binding to attack, or Attack hotbutton, will not fire this.
  • sneak=[on|off]
    Will try to sneak if not in combat.
  • standup=[on|off]
    Will stand you if when you are feigning.
  • steely=[on|off]
    Will use Steely/Stubborn/Stoic/Steadfast Stance/Staunch Stance spell if available.
  • stickdelay=[0-100]
    Wait [X] seconds before sticking to target.
  • stickmode=[on|off]
    If on, it will use the stickcmd as defined in the INI file, if off, it will use the default stick command.
  • stickrange=[0+]
    Enables sticking when target is at set distance away (0=no sticking).
  • stormblades=0|1 0=OFF/1=ON
    Will use Storm of Blades/Focused Storm of Blades/Focused Squall of Blades disc if endurance above this %
  • strike=[on|off]
    Whether to use your best sneak attack disc. If enabled, initial attack (backstab) may be a few seconds delayed while disc is readied. You must use the melee attack key (see Optional Global INI File section below), default is z, or /killthis to engage attack. If you do not, strike will not work. Strike line: Sneak Attack, Thief's Vengeance, Assassin's Strike, Kyv Strike, Ancient Chaos Strike, Daggerfall, Razor Arc, Swiftblade, Daggerlunge, Daggerswipe, Daggerstrike, Daggerthrust.
  • stun0=[Disc/AA/Spell ID #]
    ID of the Disc/AA/Spell to use for stunning (0=off).
  • stun1=[Disc/AA/Spell ID #]
    ID of the Disc/AA/Spell to use for stunning (0=off).
  • stunning=[0-100]
    Cast defined Stun spell(s) if target at or below [X]% and/or if detected that target is casting a spell.
  • synergy=[0-100]
    Will use Calanin's/Dreamwalker's/Veilwalker's/Shadewalker's Synergy/Doomwalker's Synergy disc if endurance above this %.
  • taunt=[on|off]
    Will push taunt button if aggro=on and you're not the target's target. Without a TauntIF statement, this will cause your toon to chain taunt. If you do not wish for that, use a TauntIF command (see below).
  • thiefeye=[0-100]
    Uses the Thief's Eye/Thief's Vision disc if endurance is over this %.
  • throatjab=[on|off]
    Will try to use Throat Jab AA if available.
  • throwstone=[0-100]
    Will use throw stone disc when ready and target in range. Note: Will not use in aggro/provoke mode if provoke has not been used yet.
  • tigerclaw=[on|off]
    Will try to use Tiger Claw if available.
  • vigaxe=[0-100]
    Will use Vigorous Axe Throw/Energetic Axe Throw/Spirited Axe Throw/Brutal Axe Throw/Demolishing Axe Throw disc if endurance above this %.
  • vigdagger=[0-100]
    Will use Vigorous Dagger-Throw/Vigorous Dagger-Strike/Energetic Dagger-Strike/Energetic Dagger-throw/Exuberant Dagger-throw disc if endurance above this %.
  • vigshuriken=[0-100]
    Will use Vigorous Shuriken disc if endurance above this %.
  • withstand=[0-100]
    Will try to use Withstand/Defy/Renounce/Reprove/Repel disc if endurance above this %.
MQ2Melee saves most options for each character in the INI file called <server>_<charname>.ini. Most options in the INI file are set using the command line (/melee command=on|off) and they are best set this way, and not by editing the INI file. Any options given this way are then saved to the INI file when you issue the command /melee save. Options that contain macro commands are set by editing the INI file and then loading the values with /melee load.

"IF" Options
  1. The following "IF" options can be set in the INI file. They will then be evaluated before the relevant disc/skill is triggered.
  2. They all need to take the form of ${If[condition,1,0]} statements and must return an integer. Any return of 0 is considered FALSE, any other integer is considered TRUE.
    Eg. ${If[${Me.Combat},1,0]} will always be evaluated correctly.
  3. Your defined condition must not exceed 255 characters, or it will cause the plugin to crash.

  • backstabif
  • bashif
  • beggingif
  • callchallengeif
  • challengeforif
  • commandingif
  • cryhavocif
  • disarmif
  • dragonpunchif
  • eaglestrikeif
  • evadeif
  • fallsif
  • feralswipeif
  • fistofwuif
  • flyingkickif
  • forageif
  • frenzyif
  • harmtouchif
  • pothealfastif
  • pothealoverif
  • hideif
  • intimidationif
  • joltif
  • kickif
  • layhandif
  • leopardclawif
  • mendif
  • pickpocketif
  • provokeif
  • ragevolleyif
  • rakeif
  • roundkickif
  • sensetrapif
  • slamif
  • sneakif
  • strikeif
  • stunningif
  • tauntif
  • thiefeyeif
  • throwstoneif
  • tigerclawif
  • twistedshankif
Other Options
  • stickcmd
    This command takes a list of options that should be passed to the /stick command. Eg. "hold 15"
  • downshit0-downshit91
    Each one of these takes a macro command that will be run when you are not in combat. Remember, you have to enable each option with /melee downflag#=on.
  • holyshit0-holyshit91
    Each one of these takes a macro command that will be run at the beginning of combat. Remember, you have to enable each option with /melee holyflag#=on.
HolyShit and DownShit

MQ2Melee now supports up to 20 macro command lines of each that will be executed when one of the following conditions are true:
  • Holyshit:
    Commands will be executed when in combat, no casting going on and the cursor is free.
  • Downshit:
    Commands will be executed when not in combat, not casting and the cursor is free.
When setting these commands, you must be careful not to fall into an endless loop or create a spam war. Make sure that when your line finishes, it will set up something that will force it to be FALSE for a while! These Commands are turned on and off by downflagx and holyflagx if your downshit or holyshit parses ANY macro variables, you MUST set these flags to 2 instead of 1.

INI File Examples
  • Please Note: Use this section only for adding useful examples that can be included in the INI file, not for copy/pastes of the INI files themselves. Anyone can see what a default INI is by loading up the plugin, running /melee on, /melee save and then opening the INI file in Notepad.
; Will just echo that the macro is paused (this is stupid btw, but its an example.)
downshit0=/if (${Macro.Paused}) /echo ${Macro} ${ModVersion} is PAUSED!

; Swapping an Avatar-proccing weapon when needed.
; - The first line swaps your Ancient Prismatic Spear [id=29435] into your offhand if you don't already have it equipped and you don't have the Avatar buff
; - The second line swaps your Orcish Bone Axe [id=82634] back into your offhand if it's not equipped and you have the Avatar buff already
holyshit0=/if (${Me.Inventory[offhand].ID}==82634 && !${Me.Buff[avatar].ID} && ${Spell[avatar].Stacks} && (${Melee.AggroMode} && ${Melee.GotAggro})) /exchange 29435 offhand
holyshit1=/if (${Me.Inventory[offhand].ID}==29435 && (${Me.Buff[avatar].ID} || !${Spell[avatar].Stacks} || (${Melee.AggroMode} && !${Melee.GotAggro}))) /exchange 82634 offhand

; Activating the Area Taunt AA when multiple mobs in range
holyshit2=/if (${Melee.Combat} && ${SpawnCount[npc radius 50 zradius 10]}>1 && ${Me.AltAbilityReady[area taunt]} && ${Melee.AggroMode}) /alt activate 110

; Forage if you have a chest item (usually used to check if you awaiting a rez) and your cursor is free
forageif=${If[${Me.Inventory[chest].ID} && !${Cursor.ID},1,0]}

;Swap in and click monk epic haste gloves [id=10652] (or monk ornate gloves [id=12623]) if needed
holyshit0=/if (!${Me.Buff[Celestial Tranquility].ID} && ${Spell[Celestial Tranquility].Stacks} && ${Me.FreeBuffSlots}>=1) /casting 10652|hands

;For monks, toggle enrage detection if you have Master's Aura (makes you immune to enrage)
holyshit2=/if (!${Me.Song[Master's Aura Effect].ID} && !${meleemvi[enrage]}) /melee enrage=1
holyshit3=/if (${Me.Song[Master's Aura Effect].ID} && ${meleemvi[enrage]}) /melee enrage=0

; During downtime, check my clicky buffs and recast them if needed
downshit0=/if (${Spell[Form of Defense I].Stacks} && !${Me.Buff[Form of Defense I].ID} && !${Me.Moving}) /casting "Shroud of the Fallen Defender"|back
downshit1=/if (${Spell[Shield of the Arcane].Stacks} && !${Me.Buff[Shield of the Arcane].ID} && !${Me.Moving}) /casting "Kizrak's Chestplate of Battle"|chest

; Cast my clicky DS ring during combat if needed (it's insta-cast, so I can do so while in combat without affecting anything)
holyshit4=/if (${Spell[Shield of the Eighth].Stacks} && !${Me.Buff[Shield of the Eighth].ID}) /casting "Velium Coldain Insignia Ring"|item

;Uses crippling strike to snare
holyshit4=/if (${Target.CurrentHPs}<20 && ${Target.Speed}>50) /disc crippling strike

;During downtime, check my aura's and recast if needed
downshit1=/if (!${Spell[${Me.Aura[1]}].ID} && !${Me.Moving} && !${Me.Invis} && ${Me.PctEndurance} > 4 && ${Me.Standing}) /disc Myrmidon's Aura

;Activate Respite on Warrior if Endurance is low and deactivate running defensive if needed
downshit1=/if (${Me.PctEndurance}<25 && ${Me.CombatAbilityReady[Respite Rk. II]} && ${Me.CurrentEndurance}>100 && (${Zone.ID}!=344)) /disc Respite Rk. II
downshit2=/if (${Window[CombatAbilityWnd].Child[CAW_CombatEffectLabel].Text.Equal[Staunch Defense Rk. II]} && ${Me.PctEndurance}<25) /notify CombatAbilityWnd CAW_CombatEffectButton leftmouseup

;Change cleric merc to reactive on named mobs, to balanced on non named mobs. Easily adjustable for DPS mercs
holyshit1=/if (!${Target.Named} && ${Mercenary.State.Equal[ACTIVE]} && ${Mercenary.Stance.NotEqual[Balanced]} && ${Mercenary.Class.Name.Equal[Cleric]}) /stance balanced
holyshit2=/if (${Target.Named} && ${Mercenary.State.Equal[ACTIVE]} && ${Mercenary.Stance.NotEqual[Reactive]} && ${Mercenary.Class.Name.Equal[Cleric]}) /stance reactive

;Pal/Sk check if target is undead and is not otherwise slowed, then use Helix of the Undying
holyshit4=/if (${Target.Body.Name.Equal[Undead]} && ${Me.AltAbilityReady[2018]} && !${Bool[${Target.Slowed}]}) /alt activate 2018
;Alernatively a slow weapon exchange using the Bandolier and mainhand check, if there is no enc/sham nearby to slow
holyshit19=/if (!${Bool[${Target.Slowed}]} && ${Me.Inventory[mainhand].ID}!=133167  && !${SpawnCount[pc class shaman radius 50]} && !${SpawnCount[pc class enchanter radius 50]}) /Bandolier Activate Slow
holyshit20=/if (${Bool[${Target.Slowed}]} && ${Me.Inventory[mainhand].ID}!=140616) /Bandolier Activate 1Hand

;Necro - utilize the aggro meter to FD off aggro when over a set percentage
holyshit3=/if (${Me.PctAggro}>80 && ${Target.Distance}<15) /casting "Improved Death Peace" alt

;Sk centric but can be edited for use with any tank
;first line checks if first damage mod disc is ready, the target is named , endurance is over needed amount, and there is no current disc running
;second line does the same as first, but also check that first damage mod disc is unavailable
;third line does same as second , except it also checks that the second damage mod disc is unavailable
holyshit7=/if (${Me.CombatAbilityReady[${Spell[Unholy Guardian Discipline].RankName}]} && ${Target.Named} && ${Me.CurrentEndurance}>5300 && !${Melee.DiscID}) /disc ${Spell[Unholy Guardian Discipline].RankName}
holyshit8=/if (${Me.CombatAbilityReady[${Spell[Doomscale Mantle].RankName}]} && !${Me.CombatAbilityReady[${Spell[Unholy Guardian Discipline].RankName}]} && ${Target.Named} && ${Me.CurrentEndurance}>7700 && !${Melee.DiscID}) /disc ${Spell[Doomscale Mantle].RankName}
holyshit9=/if (${Me.CombatAbilityReady[${Spell[Grelleth's Carapace].RankName}]} && !${Me.CombatAbilityReady[${Spell[Doomscale Mantle].RankName}]} && !${Me.CombatAbilityReady[${Spell[Unholy Guardian Discipline].RankName}]} && ${Target.Named} && ${Me.CurrentEndurance}>2700 && !${Melee.DiscID}) /disc ${Spell[Grelleth's Carapace].RankName}

Optional Global INI File

MQ2Melee also has 3 global (not character specific) parameters that
can be set in a second, optional INI file. MQ2Melee uses default values
for these parameters unless it finds a file named MQ2Melee.ini that you
created in the same directory. Here is an example of a MQ2Melee.ini file
and a description of the parameters:

MQ2Melee.ini (This file must be manually created)
This file should be created in the Release folder.
  • SpawnType: 0 + all desired target type modifier: (+1 PC) (+2 NPC) (+4 PC PET) (+8 NPC PET) (+16 PC CORPSE) (+32 NPC CORPSE) default is 10 (0 for base + 2 for NPC and + 8 for NPC PET).
  • MeleeKeys: Melee Attack Key (not same as eq please unless you like problems) default is z.
  • RangeKeys: Range Attack Key default is x.
TLOs (Top-Level Objects)
For macro and plugin developers
  • bool ${Melee}
    Same as ${Melee.Enable} (see below).
  • bool ${Melee.AggroMode}
    TRUE/FALSE if the plugin is operating in Aggro-mode or not.
  • int ${Melee.Ammunition}
    Count of defined ammunition or current equipped ammunition.
  • float ${Melee.BackAngle}
    Angle representing heading difference with current target's back.
  • bool ${Melee.BackStabbing}
    TRUE/FALSE if backstab setting is on/off.
  • int ${Melee.Casted}
    Time (in miliseconds) elapsed since last detected spell casting (60000 if none).
  • bool ${Melee.Combat}
    TRUE/FALSE if plugin enable and got valid kill target. Should replace ${Me.Combat} logic.
  • int ${Melee.DiscID}
    Spell ID of currently running discipline, 0 if none.
  • bool ${Melee.Enable}
    TRUE/FALSE if plugin on/off, NULL if not loaded.
  • bool ${Melee.Engage}
    TRUE if we have a valid kill target and it's okay to turn attack on, FALSE if not.
  • bool ${Melee.Enrage}
    Is kill target enraged?
  • bool ${Melee.GotAggro}
    TRUE/FALSE if current target seems to be aggroed on you (not perfect).
  • bool ${Melee.Immobilize}
    TRUE if you have been standing still for more then 250ms, FALSE if not.
  • bool ${Melee.Infuriate}
    TRUE if kill target is infuriated!
  • int ${Melee.MeleeMode}
    Maximum distance to target to be considered in melee range.
  • int ${Melee.RangeMode}
    Minimum distance to target to be considered in archery range.
  • string ${Melee.Status}
  • int ${Melee.Target}
    SpawnID of current valid kill target, otherwise 0.
  • float ${Melee.ViewAngle}
    Angle of view with current target.
Debugging TLOs:
  • int ${meleemvb[idskill]}
    1 if the skill is ready and target in range, 0 if not. Most combat and/or character kills that can use an ID are testable here. Examples of idskills are: idleopardclaw, idslam, idforage, idfrenzy, idtigerclaw, idescape.
  • int ${meleemvi[variable]}
    1/0 if the variable is set to on/off. This includes all variables that can be set on the command line.
  • string ${meleemvs[option]}
    Evaluates option based on the current conditions and target. Options are all the INI options that contain command lines that need to be evaluated. Examples are: bashif, beggingif, tauntif, holyshit0, holyshit1, downshit1, slamif, etc. Echoing one of these options will show you how they evaluate.
  • I have made changes to my INI settings. How do I activate the new settings?
    If you have MQ2Melee loaded and use an editor to make changes to your INI file, use /melee load to reload your settings. Alternatively, you can unload and reload the plugin.
  • I keep having to making changes to my melee settings from the command line. How do I save the new settings?
    From the command line type /melee save.
  • I can't get the StickCmd to work
    With Version 4 of the MQ2Melee plugin there was a change to the StickCmd, wherein it no longer requires "/stick" in the parameters. The old format of "StickCmd=/Stick hold 10 moveback" thus becomes "StickCmd=hold 10 moveback". Also you will have to execute /melee stickmode=1 to tell the plugin to use stick arguments from ini and not built-in default /stick behaviour.

Q. What is the name of my ini file?
Your MQ2Melee ini is named after your server and charter in the following format sever_Charactername.ini
  • If your character's name is Bob and is on the Povar server the file would be povar_Bob.ini.
Q. Where is my ini file?
Your MQ2Melee ini file is located in the root folder of your MQ2 compile. i.e. c:/macroquest2/povar_Bob.ini

Q. Why is there no ini file in my Macroquest folder?
MQ2Melee does not automatically create your character ini file. You must use the following command to create the file.
/melee save
Q. Why are my /melee commands not working?
There are some macros that create an alias for /melee that can change what echos in the MQ2 window i.e Zbot. To fix this, type the command below but be aware it will over write any alias your macro created for /melee.
/alias /melee /melee
Q. How many downshits/holyshits does MQ2Melee support?
MQ2Melee currently supports up to 15 of each downshits/holyshits.

Q. My downshits/holyshits are not working?
Check to see if they are turned on. Each downshits/holyshits must be numbered and have corresponding downflag/holyflag set to 1. If you had 4 holyshits in your ini file you need to have 4 holyflags as well See example below.
Q. Why isn't my spell/item/AA isn't being cast?
MQ2Melee uses MQ2Cast for casting a spell/item/AA. It must be loaded and the proper syntax is as follows:
/casting "Minor Shielding"
/casting "Fabled Journeyman's Boots" item
/casting "Radiant Cure" alt
Q. Why isn't my Aura casting? ${Me.Aura[Aura of the Pious].ID}
Recent changes in MQ2 changed the syntax of Auras as follows: ${Me.Aura[Aura of the Pious].Length} See cleric example below.
downshit1=/if (${Spell[Aura of the Pious].Stacks[0]} && !${Me.Aura[Aura of the Pious].Length} && !${Me.Moving} && !${Me.Invis}) /casting "Aura of the Pious"|8

More Examples & Guides

Holyshit and Downshit snippets.

Do something when target health below 95%
Do something when target health above 85%
Do something when target health between 85% and 98%
${Target.PctHPs}>85 && ${Target.PctHPs}<98

MQ2Melee Examples (Timers and /multiline and Healing, Oh my!) by @Araaak
First release
Last update
0.00 star(s) 0 ratings

More resources from BigDorf

Latest updates

  1. epic 1.0 bashing

    This is update to melee impacts the BashCheck function thats called frequently during combat to...
  2. Don't 2h bash if you don't have the AA

    fix low level AA tests for 2H Bash, dont try to bash with 2H without AA
  3. Stop unecessary item swaps in combat (Equip same ID from bags already in target slot)

    In MQ2Melee it can decide to equipment manage to carry out an action, then swap again...