Description
Freeloader
Which addon isn't paying its way?
Shows CPU and memory usage from other addons in a single persistent GUI window.
No libraries, Super Minimal, costs nothing until opened!
Built for the 2.5.6 anniversary client. Also loads on Classic Era and WoW Forever (1.60.1).
Just a little thing Claude built for me, there are likely better options out there, but this one works fine! I'm not sure if I'll be maintaining this one, but feel free to reach out to @wallhackjack on discord.
WoW Forever
Forever has a built-in addon profiler, and Freeloader uses it by default:
- No reload and no script profiling. CPU numbers show up as soon as you open the window, with no profiling overhead.
- Peak column. Each addon's worst single frame, held on screen for 10 seconds so you can catch spikes.
- Spike counts.
/free reportshows how many frames each addon has taken over 5 ms this session.
On other clients, CPU comes from script profiling, which /free toggle turns on (it needs a reload).
Usage
/free Toggle the window, and print this list
/free profiler Forever only: read CPU from the built-in profiler (default on)
/free toggle Toggle script profiling (needs a reload; not needed on Forever)
/free memory Track allocation rate, the KB/s column (default off)
/free report <count> Cumulative worst offenders since login, printed to chat
/free reset Zero the counters and start a fresh window
/free rows <count> How many lines the window shows (3-40)
/free rate <seconds> How often the table refreshes (0.25-10, default 3)
/free lock Stop the window being dragged
Caveats worth knowing
- Attribution is per-owning-file. An addon that hooks or calls into another addon bills the callee. If a number looks wrong, it probably is.
- This is Lua cost only. An addon that spawns 400 frames costs you draw time that never shows up in a CPU column. Watch the fps readout alongside it.
- Negative memory deltas are floored at zero. A drop means the collector ran, not that an addon gave memory back.
- Nothing is sampled while the window is closed. Hidden frames get no
OnUpdate./free reportstill works, since it reads cumulative counters. - On Forever,
/free resetonly clears the window. The profiler's session totals in/free reportcan't be reset.
License
Do what you like with it.


