Zeal adds quality of life functionality to the legacy (2002) Everquest client used by most TAKP EqEMU players. The Miles Sound System used by that client supports plug-ins for arbitrary filtering, and Zeal injects itself into the client like a standard dll by using the .asi extension in the EQ root directory. It can then patch itself into the client's processing loop and callbacks to add new functionality and smooth out issues in the old client.
Zeal custom code is entirely open source and the releases are built directly from the repo using github actions, providing clear transparency on the contents.
- Camera motion improvements
- Additional key binds (tab targeting, strafe, pet)
- Additional commands (melody, useitem, autoinventory)
- Additional ui support (new gauges, bag control, looting, spellsets, targetrings)
- Third party tool support (silent log messages, direct ZealPipes)
- Integrated (in-game) map
- Various bug fixes
- Unique npc naming for better parsing
A comprehensive guide, including troubleshooting, can be found at https://quarm.guide/install-guides under "Installing Zeal" or a simplified checklist under "Checklist for Installing Zeal".
Note that the method Zeal uses to inject itself into the client can trigger the
heuristics of anti-virus scanners to label it as malware. See trouble-shooting
guide above if your Zeal.asi file keeps disappearing.
A summary of the process is below:
- Ensure that sound is enabled in the game (the volume level can be set to zero).
- Check that
Sound=TRUEin the eqclient.ini in your root Everquest directory.
- Download the latest Zeal
release zip file (
zeal_v#.#.#_*.zip) from the "Assets" section.
- Ignore the Source code files. See troubleshooting if your browser complains.
- Quit Everquest and extract the
Zeal.asifrom the zip file to your root Everquest install directory.
- The
Zeal.pdbfile is a symbol file only needed by developers for debugging and can be ignored.
- Extract the
EQUI_Options.xmlto theuifiles/defaultdirectory or to your active custom UI skin directory (likeuifiles/duxaui).
- Some functionality is only accessible through the updated options UI.
- Recommended: Install a UI skin modified with the extra Zeal UI functionality such as mana gauges, experience per hour, loot all / link buttons, etc.
- If the UI is not updated, there will be some XML error complaints that can be ignored
- Check the list below, the Quarm discord
#ui-discussionchannel, or the Quarm guide link above for compatible UI's
- Optional: Extract the
crashesfolder to your Everquest root directory.
- If the folder is present and includes the ZealCrashSender.exe, a crash log can be automatically submitted for debugging.
- Test Zeal installation in game by typing "/zeal version" and "/help zeal".
- Configure Zeal using the new Zeal tabs in EQ options and assign new key binds.
- https://github.com/NilliP/NillipussUI_1080p
- https://github.com/NilliP/NillipussUI_1440p
- https://www.eqinterface.com/downloads/fileinfo.php?id=6959
- https://github.com/LordDemonos/Quarm.Guide/blob/master/assets/duxaUI.7z?raw=true
- %n or %mana for mana%
- %h or %hp for hp%
- %loc for your location
- %th or %targethp for your targets health %
-
/cc- Arguments: ``
- Example:
/cc - Description: toggles classic classes in who and other areas.
-
/targetring- Arguments:
size,indicator - Example:
/targetring 0.25 - Example:
/targetring indicatortoggles auto attack indicator. - Description: toggles targetring on/off.
- Arguments:
-
/resetexp- Arguments: ``
- Example:
/resetexp - Description: resets the exp per hour calculations.
-
/timer- Arguments:
int - Example:
/timer 10 - Description: holds the last hotbutton pressed down for the duration (decisecond like /pause).
- Arguments:
-
/pipedelay- Arguments:
int - Example:
/pipedelay 500 - Description: changes the delay between each loop of labels/gauges being sent out over the named pipe.
- Arguments:
-
/pipe- Arguments:
string - Example:
/pipe set a respawn timer for 30 seconds - Description: outputs a string through the named pipe.
- Arguments:
-
/ttimer- Arguments:
int - Example:
/ttimer 500 - Description: change the delay in which a tooltip pops up on mouse hover.
- Arguments:
-
/inspect target- Description: adds target argument to /inspect, this just inspects your current target.
-
/loc noprint- Description: adds noprint argument to /loc, this just sends loc directly to your log.
-
/reloadskin- Description: reloads your current skin using ini.
-
/fov- Arguments:
int - Example:
/fov 65 - Description: changes your field of view with a value between 45 and 90.
- Arguments:
-
/melody- Arguments:
song gem #'s (maximum of 5) - Aliases:
/mel - Example:
/melody 1 4 2 3 - Description: plays songs in order until interrupted in any fashion.
- Arguments:
-
/map- Arguments:
on,off,size,alignment,marker,background,zoom,poi,labels,level - Example:
/maptoggles map on and off - Example:
/map marker 500 -100sets a target marker at loc 500, -100 (default size) - Example:
/map marker 500 -100 3sets a target marker at loc 500, -100 with size = 3% of screen - Example:
/map 500 -100shortcut for map marker 500 -100 - Example:
/map 0shortcut for map marker 0 0 0 (clears marker) - Example:
/map zoom 200sets map scaling to 200% (2x) - Example:
/map size 2 3 50 60map window top=2% left=3% height=50% width=60% of screen dimensions - Example:
/map alignment centeraligns the aspect ratio constrained map to the top center of the window - Example:
/map poilists points of interest, use/map poi 2to drop marker at index [2] of list - Example:
/map search_termsearches poi list for 'search_term' and drops a marker at first match - Example:
/map labels summaryadds a selected summary list of poi text labels to the map - Example:
/map data_mode externalloads external custom map files (Brewall format) from map_files directory - Description: controls map enable, size, and markers
- Arguments:
-
/pandelay- Arguments:
ms delay,none - Example:
/pandelay 200 - Description: changes the amount of delay before left click panning will start to happen
- Arguments:
-
/hidecorpse- Arguments:
looted,none - Aliases:
/hideco,/hidec,/hc - Example:
/hidecorpse looted - Description:
lootedHides a corpse after you have looted it.,nonereveals all hidden corpses
- Arguments:
-
/spellset- Arguments:
save,load,delete - Example:
/spellset save buffs - Example:
/spellset load buffs - Example:
/spellset delete buffs - Description: allows you to save and load spellsets
- Arguments:
-
/showhelm- Aliases:
/helm - Arguments:
on, off - Example:
/showhelm on - Description: Toggles your helmet.
- Aliases:
-
/showlootlockouts- Aliases:
/showlootlockout,/showlockout,/sll - Description: Shows you your current loot lockouts on Quarm.
- Aliases:
-
/zealcam- Aliases:
/smoothing - Arguments:
x y 3rdperson_x 3rdperson_y - Example:
/zealcam 0.7 0.2 0.7 0.2if 3rd person arguments are not supplied, the first x and y are applied to both - Description: Toggles Zeal's mouse look smoothing methods, the first 2 arguments are first person sensitivity, and the last 2 are for 3rd person
- Aliases:
-
/autoinventory- Aliases:
/autoinv,/ai - Description: Drops whatever is on your cursor into your inventory.
- Aliases:
-
/autobank- Aliases:
/autoba,/ab - Description: Drops whatever is on your cursor into your bank. [requires you to be at a banker] (not fully functional atm)
- Aliases:
-
/target- Aliases:
/cleartarget - Description: acts as normal /target unless you provide no argument in which case it will clear your target.
- Aliases:
-
/sit- Description: The /sit command now accepts "on" as an argument. Using "/sit on" will always make you sit, even if you are currently sitting. This matches the game's native "/sit off" which always makes you stand even if you are currently standing. The "/sit" command will continue to toggle sit/stand state if no argument is provided or if the argument provided is not on or off. Additionally, "/sit down" now works as well and will always make you sit, even if already sitting.
-
/camp- Description: Auto sits before camping.
-
/zeal- Arguments:
version - Description: Shows the version of zeal.
- Arguments:
-
/zealinput- Description: toggles the zeal input setup for any input in game, giving you a more modern input (ctrl+c, ctrl+v, left, right, shift left+right for highlighting, home, end ect).
-
/help zeal- Description: Shows the custom Zeal commands.
-
/timestamp- Aliases:
/tms - Description: Shows message timestamps.
- Aliases:
-
/outputfile- Aliases:
/output,/out - Arguments:
inventory | spellbook[optional_name] - Example:
/outputfile inventory my_inventory - Description:
inventoryoutputs information about your equipment, inventory bag slots, held item, and bank slots to a file.spellbookoutputs a list of all spell ids current scribed in your spellbook.
- Aliases:
-
/buffs- Description: Outputs the players buff timers to the chat only if they are using OldUI.
-
/bluecon- Description: Changes the blue con color to usercolor #70 which is otherwise unused, you can edit in the options window.
-
/alarm- Arguments:
oldui - Description: Re-opens the alarm window, if oldui is specified it allows for an alarm on it.
- Arguments:
- Cycle through nearest NPCs
- Cycle through nearest PCs
- Strafe Right
- Strafe Left
- Auto Inventory
- Toggle last 2 targets
- Reply target
- Pet Attack
- Pet Guard
- Pet Follow
- Pet Back
- Slow turn left
- Slow turn right
- Target nearest pc corpse
- Target nearest npc corpse
- Toggle map on/off
- Toggle through map default zooms
- Toggle through map backgrounds
- Toggle through map label modes
- Toggle up or down through visible map levels
-
Gauge EqType's
23EXP Per Hour
-
Label EqType's
80Mana/Max Mana81Exp Per Hour Percentage124Current Mana125Max Mana134Spell being casted
-
LootAllButton
-
LinkAllButton
-
ScreenID Checkboxes
- Zeal_ShowHelm
- Zeal_HideCorpse
- Zeal_Cam
- Zeal_BlueCon
- Zeal_Timestamp
- Zeal_Input
- Zeal_Escape_
-
ScreenID Sliders
- Zeal_PanDelaySlider
- Zeal_FirstPersonSlider_X
- Zeal_FirstPersonSlider_Y
- Zeal_ThirdPersonSlider_X
- Zeal_ThirdPersonSlider_Y
-
ScreenID Labels
- Zeal_ThirdPersonLabel_X
- Zeal_ThirdPersonLabel_Y
- Zeal_FirstPersonLabel_X
- Zeal_FirstPersonLabel_Y
- Zeal_PanDelayLabel
- Commit an updated, unique ZEAL_VERSION in Zeal/Zeal.h that will be used as the release tag.
- Go to the "Actions" tab of the Github workspace
- Select the "Create Manual Release" workflow on the left
- Click the drop-down menu on the right top side titled "Run workflow"
- Select the branch with the commit to be released
- Add a summary description that will be prepended to the change log notes
- Click the green "Run workflow" button
- After the green checkmark appears, go back to the main workspace and verify the content of the new release tag.
Build in 32bit x86 mode using Microsoft Visual Studio 2022 (free Community edition works)