Skip to content

BeardedRepoWrangler/EQXPInfo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EQXPInfo

A lightweight XP and AA session tracker overlay for EverQuest, built on MacroQuest with Lua and ImGui. Live progress bars, hourly rates, average per-kill XP, and predicted time/kills to the next level or AA point — all in a clean, always-on-top window.

EQXPInfo overlay

Features

  • Live Level XP and AA XP progress bars with exact percentages
  • Split-aware tracking: reads your in-game Level/AA split and displays it inline
  • Two complementary rate views per channel: current-window (XP%/hr, AA%/hr) and session-wide (Sess%/hr)
  • Predicted Kills/Lvl, Time/Lvl, Kills/AA, Time/AA driven by the session rate
  • Automatic proportional rescaling of historical data when you change your XP split mid-session — no reset required to get sensible predictions at the new ratio
  • Graceful fallback to the session rate when the per-level/per-point window is too fresh to compute (e.g., immediately after leveling)
  • One-click session reset

Requirements

  • MacroQuest with MQ2Lua
  • MQ2ImGui (ships with most modern MQ builds)
  • An EverQuest client compatible with your MQ build

Installation

Place the EQXPInfo folder inside your MQ installation's lua directory so the final path reads:

<MQ install>/lua/EQXPInfo/init.lua

Clone directly into lua:

cd <MQ install>/lua
git clone https://github.com/BeardedRepoWrangler/EQXPInfo.git

Or download a release zip from the releases page and extract it there.

Running

In-game:

/lua run EQXPInfo

To stop, click Stop in the overlay or run /lua stop EQXPInfo.

Understanding the metrics

XP%/hr vs Sess%/hr (and the AA equivalents)

This is the most common source of confusion, so it's worth understanding both.

XP%/hr and AA%/hr are current-window rates. XP%/hr measures level XP gained within your current level — when you ding, its baseline resets and it starts over. AA%/hr measures AA XP gained toward your current AA point — when you earn a point, its baseline resets. These are great for answering "how fast am I progressing right now?" because they respond quickly to changes in pull quality, group composition, or mob density.

Sess%/hr is the session-wide cumulative rate. It sums every XP gain since the session started (or since your last manual reset) and divides by total elapsed time. It does not reset on level-up or AA-point-earned events, because those aren't real slow-downs — they're just baseline shifts in a continuous grind.

Because it spans the whole session, Sess%/hr is stable (it won't drop to 0 every time you ding), predictive (this is the rate Time/Lvl and Time/AA are computed from, since a long-horizon average is more trustworthy for planning than a short-window snapshot), and immune to level boundaries (if you level three times in a session, XP%/hr resets three times but Sess%/hr keeps integrating the whole journey).

When the per-window rate hasn't had time to accumulate (right after a ding or point-earn), XP%/hr / AA%/hr fall back to Sess%/hr so you always see a meaningful number.

Rule of thumb: use the current-window rate to feel the tempo right now, use the session rate to plan.

Avg%/Kill

The mean XP (or AA) percentage gained per detected XP event this session. The script counts each frame where your absolute XP% increases as one event, which is a good proxy for kills but can batch multi-kills landing in the same 100 ms frame.

Kills/Lvl, Time/Lvl, Kills/AA, Time/AA

Predictions for completing your current level (or earning your current AA point). Kills/Lvl is ceil(remaining% / Avg%/Kill). Time/Lvl is remaining% / Sess%/hr × 3600s. When there's no data yet, the field shows --- or --:--:--.

Levels Gained

Cumulative fractional levels gained this session — unaffected by the session's own level-up boundaries. 0.50 means half a level past where you started, whether or not you dinged in between.

AA Unspent

Current unspent AA pool pulled directly from the game. Highlighted in green with a (train!) hint when ≥1.

XP Split auto-rescaling

The in-game XP Split controls what percentage of each kill's XP goes to leveling vs. to AA. When you change it mid-session, historical rates no longer describe the new behavior — so the script proportionally rescales them. Level accumulators scale by newPctToLevel / oldPctToLevel; AA accumulators scale by newPctToAA / oldPctToAA. After a split change, Avg%/Kill, %/hr, Kills/*, and Time/* all read as if the new split had been active the whole session. No reset required.

Edge case: if one side was at 0% before the change (no observations to scale from), that side's accumulators reset cleanly instead of trying to divide by zero.

Session controls

  • Reset Session — wipes all accumulators and re-baselines every timer at the current XP/AA position. Use this when you move to a new camp, change group composition, or start a new session.
  • Stop — closes the overlay (equivalent to /lua stop EQXPInfo).

Versioning

Follows Semantic Versioning. Current release: 1.0.0.

Major bumps indicate breaking changes to configuration, file layout, or display format. Minor bumps add features. Patch bumps fix bugs.

Contributing

Pull requests welcome. For larger changes, open an issue first to discuss the direction. New users should start with ONBOARDING.md for a guided tour of the overlay.

See CHANGELOG.md for the release history.

License

MIT — free to use, modify, and redistribute with attribution.

About

Lightweight XP and AA session tracker overlay for EverQuest (MacroQuest + Lua/ImGui) with split-aware rates and kills/time-to-next-level predictions.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages