MQ2HUD

From the wonderful RedGuides Wiki
MQ2HUD
Draws an overlay onto the screen to display information
View details
Authors Lax, Cr4zyb4rd, eqmule, brainiac, Knightly, dannuic
Software type Plugin
Config file MQ2HUD.ini


Maintained Yes and supported
Links

🏠Resource (review)
🤝Support •🛠️Repository

This plugin provides a Heads Up Display, which can provide a large amount of information in a relatively small amount of space. The HUD acts as a transparent background layer upon which any information can be displayed. Each element of the HUD gets parsed each time MQ2Data is displayed, so there is no need to reload the HUD after making changes to the config file, as they are instantaneously available.

Mq2hud.png

Commands

Syntax Description
/backgroundhud {on|off} Turns background updates ON or OFF. When OFF, the HUD will only appear on the active screen, saving CPU cycles on each background client.
/classhud {on|off} Toggles loading the HUD section for your class. You must have a [class] section in MQ2HUD.ini, and the full name of the class is used e.g. [Magician]
/defaulthud Loads the default HUD, named [Elements]
/loadhud <HUD Name> Load the specified HUD from the configuration file. e.g. /loadhud elements
/unloadhud <HUD Name> Unload the specified HUD, e.g. /unloadhud elements
/zonehud {on|off} Toggles loading the HUD section for the current zone. You must have a [zone] section in MQ2HUD.ini, long names are used.

Settings

The HUD is customized by entries in the MQ2HUD.ini file. The ini file allows any number of HUDs to be created and saved within. Loading a new HUD from the ini file can be done with /loadhud. The entry names are not case-sensitive.

You can toggle display of the HUD by press F11 (by default). This display setting can be changed with Command:/hud

Example MQ2HUD.ini

[MQ2HUD]
UseFontSize=off
; Will look for an additional value in every HUD line for all characters. The new syntax will look for "Size", LineName=Type,Size,XPos,YPos,R,G,B,Text.  Changing this setting without adding the extra value to each line may cause a crash.

[Voxvox_vox]
; Character name, and server shortname
Last=Elements
; The last HUD(s) loaded, comma seperated
SkipParse=3
; Number of screen updates that must pass before MQ2HUD will actually refresh the information displayed. The default is 1 (no skipping). This value is directly tied into your fps, so you may have to play with it to find a satisfactory setting that gives you good performace without the HUD items seeming sluggish. Values from 3-10 or so are probably good to start, and won't be noticable to the human eye.
CheckINI=100
; Number of screen updates that must pass before MQ2HUD will check the INI file for changes. Originally this was done every 10 frames, which is still several times per second on a fast machine, and file access is fairly computationally expensive. This value is also used to determine how often to check if a background window has gained focus again, so if you find it's taking too long for your hud to "pop up" again when you tab back, set this lower. A setting of 100 works well for me.
UpdateInBackground=off
; Update the HUD even while EQ is in the background on/off (default is on) Depending on your setup, off can save some serious CPU.
ClassHUD=on
; Loads the HUD section for your class. You must manually add each [class] section in MQ2HUD.ini. Full class names are used, e.g. [Enchanter] 
ZoneHUD=on
; Loads the HUD section for your current zone. You must have a [zone] section in MQ2HUD.ini. Zone long names are used. e.g. [Plane of Knowledge]

[Elements]
; This is the default HUD, and it shows off some ideas. You are encouraged to edit this and experiment. More examples can be found in the RedGuides support thread.
TargetInfo=3,5,35,255,255,255,${Target}
CursorItemName=7,-15,-15,255,255,255,${If[${Cursor.ID},${Cursor},]}
ClickMeForFun=6,-25,-25,255,255,255,${If[!${Cursor.ID},click me,]}
Time=3,5,38,0,255,0,Time: ${Time}
LastTell=3,5,50,0,255,0,LastTell - ${MacroQuest.LastTell}
RegExp=3,5,62,0,255,0,EXP - ${Me.PctExp}%
AAExp=3,5,74,0,255,0,AAExp - ${Me.PctAAExp}%
Spawn1=3,5,86,255,255,0,${If[${NearestSpawn[1,npc named].Name.NotEqual["NULL"]},${NearestSpawn[1,npc named].Level} - ${NearestSpawn[1,npc named].Name},]}
Spawn2=3,5,98,255,255,0,${If[${NearestSpawn[2,npc named].Name.NotEqual["NULL"]},${NearestSpawn[2,npc named].Level} - ${NearestSpawn[2,npc named].Name},]}
Spawn3=3,5,110,255,255,0,${If[${NearestSpawn[3,npc named].Name.NotEqual["NULL"]},${NearestSpawn[3,npc named].Level} - ${NearestSpawn[3,npc named].Name},]}
Spawn4=3,5,122,255,255,0,${If[${NearestSpawn[4,npc named].Name.NotEqual["NULL"]},${NearestSpawn[4,npc named].Level} - ${NearestSpawn[4,npc named].Name},]}
GMInd1=3,5,134,0,250,0,GM - ${If[${Spawn[gm].ID},${SpawnCount[gm]} GM's in zone.,No GM's Present]}
GroupLeader=3,5,146,0,255,0,${If[${Group.Members}>0,GroupLDR - ${Group.Leader},]}
RaidLeader=3,5,158,0,255,0,${If[${Raid.Members}>0,RaidLDR - ${Raid.Leader},]}
PPLinRaid=3,5,170,0,255,0,${If[${Raid.Members}>0,In Raid - ${Raid.Members},]}
PlayersInZone=3,5,175,0,255,0,Players in Zone - ${SpawnCount[PC]}
Macro1=3,5,187,50,50,255,Macro Running - ${If[${Macro.Name.NotEqual["NULL"]},${Macro.Name},]}
Macro2=3,5,198,255,0,0,Macro Paused? ${Macro.Paused}

[Rogue]
; This is a class-specific section. See ClassHUD above.
InvisStatus=3,5,210,255,0,0,${If[${Me.Invis},(Invis),]}

The syntax for adding a line is as follows,
LineName=Type,X,Y,R,G,B,Text.

  • Type can be a combination of the following (just add the numbers):
  • 1 Display in non-full screen mode
  • 2 Display in full screen mode ("F10 mode")
  • 4 Based on cursor location
  • 8 Display at charselect
  • 16 Only parse if a macro IS running
  • X and Y denote the location of the entry on the screen (0,0 is the upper left of your screen)
  • R, G and B are values for the TEXT color (255,0,0 is the best color)
  • Text is the text you wish to display, e.g. "Hello World". TLO's are parsed here, and as a tip TLO:If is especially useful!

Examples

[Date]
Date=3,10,25,255,234,8,${Time.Date}

I named this section [Date], so I load it with /loadhud date. I named the line "Date" which is an arbitrary and unique name. Type "3" means it will display in window (1) and full screen modes (2), and at position 10x, 25y on my screen, with the RGB color 255,234,8. Finally the results of ${Time.Date} will display, which is today's date.

If UseFontSize=on, then FontSize will be expected to appear on each line. The syntax will be,
LineName=Type,FontSize,X,Y,R,G,B,Text. For a font size of 5, it looks like this,

[Date]
Date=3,5,10,25,255,234,8,${Time.Date}

More ideas and example HUD elements can be found in the support thread.

Troubleshooting

  • If you're experiencing high CPU usage, consider removing some HUD elements, or modifying settings such as: SkipParse, CheckINI and UpdateInBackground for each character. The default settings are CPU intensive.
  • If you copy a UI element from somewhere, make sure the syntax is correct. If you use UseFontSize=on and copy from someone who doesn't, it will not work until you modify each line.

See also


Top-Level Object(s)

TLOs added by MQ2HUD:

TLO Data Type(s) Description
HUD Shows the names of the HUDs that are loaded

Forms. Typical usage, /echo ${TLO}

Type TLO Description
string HUD Shows the names of HUDs that are currently loaded. e.g. /echo ${HUD}