From RedGuides Wiki
Jump to: navigation, search
MacroQuest logo.png
A platform for customization and automation of EverQuest
Authors Plazmic, eqmule, brainiac, rswiders, Lax, ieatacid, dont_know_at_all, Amadeus, dannuic, alynel
Software type Core
User config file MacroQuest.ini
Maintained Yes and supported

🏠 Resource (download) (review)
🥤 Quick start
🤝 Support
🛠️ Repository

MacroQuest is an open source platform for customization and automation of EverQuest. It's been modified to work with every popular EverQuest server, both official and emulated. While it's used by many players for simple multi-boxing functions, more experienced users enhance their play by writing their own scripts and plugins.


Syntax Description
/aa { list (all | timers)] | [info <abilityname>] | [act <abilityname> } Used to retrieve information on AA Abilities, or to activate an AA ability.
/advloot {personal | shared} [item] [giveto <name> [quantity] | leave] [set] [option] Extend EverQuest's /advloot command to control options that are otherwise limited to the "Advanced Loot" window.
/alert { add | remove ] #(alert list) [pc|npc|corpse|any] [radius #] [range <lower> <upper>] [spawnname | id #] [clear <#(list)> } Used to manipulate alert lists which "watch" for spawns.
/alias name [delete | command] Add command aliases
/alt <command> Execute a command while telling the window manager that the alt key is pressed.
/assist The /assist command adds the ability to forward /assist so we can set the gbAssist flag
/banklist The /banklist command lists bank contents to chat buffer.
/beep Using the /beep command will 'beep' the system speaker.
/beepontells Toggles 'Beep On Tells is' On | Off in-game. When set to 'On' will produce a system audio 'beep' when a tell is received.
/benchmark Produces a list in MQ window of MQ Benchmarks (parameters); number of observations, total time and average time per parameter.
/bind { list | eqlist | <name> <key_combo | clear } Produces a list of MQ keyboard-binds or EQ keyboard-binds. Can also be used to set keyboard-binds for MQ or EQ commands; movement, combat, etc.
/break Can only use /break command while a macro is active. Will cause the active macro to stop!
/buyitem quantity# Will buy the specified quantity (# number) of the currently selected item
/cachedbuffs { .member[buff] | cleartarget | reset } DataType. Allows checking if cached buffs on others have expired with out targeting
/call <Subroutine> [param [param...]] Used to Call a Subroutine (and 'pass' parameters if required), while a macro is running
/caption {list | type <value> | update # | MQCaptions <on # # Numbered list item | off> } Sets the custom captions from in-game. Using this command will also change the ini settings for the particular level.

EQ itself constantly updates the name of every spawn in the zone, even though only a small portion of those are displayed. Using /caption allows you to modify how many spawn captions updated. The default setting for /caption update is 35.

Player1 through Player4 in MacroQuest.ini are directly related to which /shownames level you use.

  1. Player1 is linked to /shownames 1
  2. Player2 is linked to /shownames 2
  3. Player3 is linked to /shownames 3
  4. Player4 is linked to /shownames 4
/cast { [list] | [<"spellname"> | <#> | item <"itemname">] [loc <x y z>] } Adds additional functionality to EverQuest's /cast command. In addition to gem #, it can now cast by spell name, cast splash spells at a certain location, and perform a right-click of an item that has a clicky spell.
/cecho <text> EchoClean function. Writes text to the MQ Chat channel without color formatting. Echoes the provided text verbatim.


  • Escape codes are not supported.
  • Reverse echo and cecho (color is now clean)
/char or /charinfo Displays character bind points

Note: This is a normal EverQuest command that is detoured by MacroQuest to display additional information.

/ctrl <command> Execute a command while telling the window manager that the control key is pressed.
/destroy Destroys whatever you have on your cursor with no confirmation, even if you have "Destroy Confirmation" enabled in your EQ options.

Use with care.

/drop Drops the item currently on the cursor.
/echo text Echos the specified text (or variables) to the MQ2 chat window.
/face { [predict] [fast] [nolook] [away] [ alert # | loc y,x,z | heading angle | item | door | id # | name ] } Turns your character to face a target, door, item or location at comparable speeds to pressing the left, right, lookup, and lookdown keys.

Some of the options are listed below:

/help macro Adds an additional option to EverQuest's /help command, macro which lists all macroquest and your loaded plugin commands.
/identify Displays further information about the item on the cursor, similar to the spell Identify and item lore displayed by MQ2 in the item stats UI window.
/itemtarget "itemname" "Targets" a ground spawn or environmental container. The item targeted will not show up in the target window.
/location Returns your Y, X, Z location the direction you're facing from a 16-wind compass.
/macro filename [ param0 [ param1 [...]]] Starts running a macro. Optional parameters can be added to the end of the /macro line, and the parameters will be passed to Sub Main within that macro.


  • Calling a macro from another macro will end the calling macro.
  • Invoking a /macro from within a macro will cause the first line to be skipped in the new macro.
/memspell # "spellname" Attempts to memorize "spellname" into gem #.

Any spellname with more than one word must be surrounded by quotes.

/mqpause [ on | off ] Pauses/resumes a macro. Not using a parameter will toggle pausing on/off.
/mqtarget { clear|mycorpse|myself|<spawn search> } Adds the ability to target your corpse, yourself, and most importantly the result of a Spawn search
/multiline delimiter command [ delimiter command [...] ] Executes multiple commands using a single line separated by the delimiter.


  • This is useful for keybinds
  • There must be a space before and after the defined delimiter. e.g. /multiline ; command
  • You do not need to put a space before and after the delimiter separating the individual commands
  • The delimiter is 1 parameter, and the list of commands is 1 parameter, ergo you need a space separating the delimiter from the list of commands
  • /call, /return and /delay are line based and their use on a /multiline line is unpredictable.
/plugin { [list] | [name [load | unload] | name [load | unload [noauto] } The plugin command can be used to list all plugins currently loaded, to load a new plugin, or to unload a plugin that is already loaded.

Loading a plugin will also add an entry to the [Plugins] section of the MacroQuest.ini file. Next time MQ2 is started that plugin will be loaded automatically.

Unloading a plugin will remove it from MacroQuest.ini. Using the noauto switch prevents this modification to MacroQuest.ini from occurring.

/popup text Displays text in the center of your screen. Currently the text is a fixed font and color.

If you desire a custom color or display duration you may perform this modification using a new command via the /popcustom commnd

/reloadui Reloads your UI, basically a shortcut for the EverQuest command /loadskin 1
/shift <command> Execute a command while telling the window manager that the shift key is pressed.
/target [clear|mycorpse|myself|<spawn search>] DEPRECATED. Please use /mqtarget
/who { <SpawnSearch>]... [concolor] [sort <level | name | race | class | distance | guild | id> } Adds on to EverQuest's /who command, with options to search the current zone for many types of spawns, as listed on Spawn search. (Note: adding "all" to the command will revert to EverQuest's normal search. MacroQuest's command is for current zone only.)
/whotarget MacroQuest enhances this EQ command by allowing you to use it on any target (including NPCs). Output is the same as the /who command (set by /whofilter), displaying the target's class, race, level, guild, con color, location and distance.
/xtarget id <id#> <slot#> | assist <#id> | debug [on|off] Add spawns by ID to the xtarget list, or assist a player by their spawn id. Additional syntax for /xtarget is built into EverQuest and can be displayed by typing /xtarget
/cleanup Closes all open windows.
/clearerrors Clears each of the last errors in the MQ type.
/combine <pack#> Activates the Combine button on the designated container e.g. <pack#>
/continue Used in macro, while running, when in /for or /while loop to try the next iteration.
/convertitem <item name> TBC!
/declare <varname | varname [array extents]> [type] [global | outer | local | bind] [default element value] This creates a variable or array of a particular type with a particular scope, and a default value if desired. The parameters must be given in order, but any after varname may be skipped to use the defaults.


  • The default type is string
  • The default scope is local
  • The default value is nothing (empty string, or 0)

These variables can be of any type that exist in MQ2DataVars. The variable will then have access to the members of that type.

/delay <time[s | m]> [condition to end early] Fully pauses the macro for the amount of time specified, or until condition is met.

Time can be specified in 10ths of a second (a number by itself) or in seconds (number followed by an "s") or minutes (number followed by "m").

/deletevar <varname | * global> Deletes the variable varname. Using * global will delete all global variables
/doability [list | ability | #] Does (or lists) your abilities
/docommand <command> Execute <command>, parsing MQ Data first. Useful for executing commands using MQ Data that do not parse immediately, as well as executing a command stored in a variable.
/doevents [flush] [custom event] Runs the first event of any type in the queue, flushes all queued events, or runs/flushes just the custom event.
/doors [filter] Lists all doors in the zone, or those that match 'filter'.
/doortarget [id # | filter] "Targets" a Door or Switch for further manipulation (eg. /face door). The targeting of doors, switches, will not show up in the target window. This is because the EQ servers started monitoring for targeting that is not possible through the normal client, MQ will show indication of your /doortarget
/dosocial [list | "social name"] This command allows you to list all your current socials, by name and number, or activate them by name.

Used to activate a social by name as long as it is in your social window, without having to change hotbar pages, or call a social by name from a macro.

/dumpbinds <filename> Dumps all current binds to filename.cfg file
/endmacro Stops the current macro.
/engine <type> <version> [noauto] Allows for switching engines.

Valid Engine types are: parser

/eqtarget This command gives you access to the normal Everquest target without any of the MQ overloads. (It will function identically to how /target worked prior to loading MQ).
/exec <command> Executes the specified command as if from the command line.
/filter [ macros all | enhanced | none ] [ skills all | increase | none ] [ target | money | food | encumber | debug on | off ] [ name [ add | remove text ] ] [ zrange # ] [ mq on | off ] Filtering of names is now improved! Will filter out some common messages that can be annoying to see.
/flashontells [ on | off ] Used to turn flashing of the Everquest window 'on' or 'off' when you receive a tell.
'''/for varname''' initial-value '''to | downto''' final-value ['''step''' interval]<br> /next varname This runs all commands between the /for line and the /next line, after which it increments/decrements the varname number (#1) by step number (#3) (default is 1) before running through the commands again. It will keep doing this until the varname number equals #2. You can end a /for loop immediately with /break or try the next iteration with /continue.
/foreground Moves the Everquest window to the foreground.
/framelimiter [command] {options} Frame limiter tool: allows adjusting internal frame limiter settings.
/getwintitle Gets the Window Title
/goto <:label_name> This moves the macro execution to the location of <:label_name> in the macro.
/hotbutton [Name] <color> <Line:><Cursor:>[Text] Extends the built in /hotbutton command with multiple lines support
/hud [ normal | underui | always ] Defines how the HUD is displayed
/ini "filename" "keyname" "valuename" "value" Outputs string data to an INI file (using WritePrivateProfileString.)

Note: Currently there is no way to delete an INI file entry.

/insertaug { itemid | "Item name in Quotes" | slot-numbers }
/invoke command Adds the ability to invoke Methods. A Method being the action portion of some of the newer TLOs.
/itemnotify { [ < slotname | # >] | <bag slot> <slot # in bag> | <itemname> ] <notification> } Similar to the /click function, but does not involve the use of the mouse.
/items <filter> Lists all ground spawns and environmental containers in the zone that match filter.

All items will be listed if no filter is supplied

/itemslots DEPRECATED. Please use ??
/keepkeys [ on | off ] Keeps keys that were pressed with /keypress, in their current state when a macro ends. /keepkeys with no arguments displays the current on/off state.
/keypress name [ hold | chat ] Press the key "name"; where name can be an eqcommand or key-combination.

This is used strictly for keys that are mapped by the EQ client, however /keypress will work with EQ binds as well as MQ binds (see /bind).

  • /keypress does not actually press the key, it merely emulates the key being pressed, so it will not interfere with typing.
  • /keypress usage outside of a macro is not recommended nor consistent
/listmacros <partial filename> Lists all files in the "Macros" directory that match <partial filename>. Results are sorted alphabetically.
loadcfg <filename> Loads the specified .cfg file.
/loadspells [ list | <spellset> ] Loads the specified spellset.
/loginname Displays the login name of the account you are currently logged into.
/look [ [ - ] angle ] Changes the angle you are looking. Angle can be any value between -128 (directly down) and 128 (directly up). The default for angle is 0 (straight ahead).
/click left | right [<mouseloc>] Clicks the left or right mouse button at your target or the location specified.

These commands need additional data:/crash, /dumpstack, /if, /lootall, /makemevisible, /mercswitch, /mouseto, /mqanon, /mqconsole, /mqcopylayout, /mqlistmodules, /mqlog, /mqoverlay, /mqsettings, /msgbox, /netstatusxpos, /netstatusypos, /next, /nomodkey, /noparse, /notify, /pet, /pickzone, /popcustom, /popupecho, /quit, /ranged, /removeaug, /removeaura, /removebuff, /removelev, /removepetbuff, /return, /screenmode, /selectitem, /sellitem, /setautorun, /seterror, /setprio, /setwintitle, /skills, /spellslotinfo, /spewfile, /squelch, /substitute, /taskquit, /timed, /unload, /useitem, /usercamera, /varcalc, /vardata, /varset, /where, /while, /whofilter, /windows, /windowstate


MacroQuest.ini is the configuration file used by MacroQuest.

MacroQuest.ini Sections:




[Key Binds]


[SWho Filter]


[Caption Colors]

[Filter Names]


Top-Level Object(s)

TLOs added by MacroQuest:

TLO Data Type(s) Description
Zone currentzone zone Used to find information about a particular zone.

The following TLO pages need data added: