v2.0.0
LevelTimer
v2.0.0 (2026-10-02)
Full Changelog Previous Releases
- Note roadmap items released in v2.0.0
- Merge pull request #8 from Noobygames/feature/roadmap-next
Roadmap: charts, journals, death recap, info bar and more - Fit settings and history layout to localized text
Settings size their toggle columns and width from the label widths, so
long French/Spanish labels and the language row no longer overlap or
overflow. History sub-tabs wrap into extra rows and push the content
down. Column charts cap the column width, so a single value no longer
fills the whole chart. - Add horizontal bar layout for the timer window (roadmap 25)
Setting horizontalLayout (/lt bar) chains tabs, play time and stat rows
on one line with the XP bar below, like an info bar. Works together with
compact mode and all existing window settings. Also ticks off roadmap 21
and 24. - Read death cause from the death recap (roadmap 24)
Retail-API clients (Retail, WoW Forever) hide the combat log from addons.
When the combat log gives no cause, take the killing blow (first event)
from C_DeathRecap.GetRecapEvents(), retrying once if the recap is not
ready yet. The test stub queues C_Timer.After callbacks for wow.runTimers(). - Upload releases to Wago and WoWInterface (roadmap 21)
The packager uploads to each platform once its .toc ID (X-Wago-ID,
X-WoWI-ID) and its secret (WAGO_API_TOKEN, WOWI_API_TOKEN) exist;
without them the upload is skipped. - Add French and Spanish (roadmap 23)
- frFR and esES translations; esMX uses Spanish; default language
follows the client - Language chooser offers all four languages; .toc notes translated
- locales_test checks that every language has every key with the same
%s/%d placeholders as English
- frFR and esES translations; esMX uses Spanish; default language
- Add LibDataBroker data text (roadmap 19)
- Data object for Titan Panel, ElvUI, Bazooka and similar displays:
play time and XP/h, tooltip with all enabled values, same clicks
as the minimap button - Uses LibDataBroker only when another addon provides it; no bundled
libraries
- Data object for Titan Panel, ElvUI, Bazooka and similar displays:
- Add compact window mode (roadmap 18)
- Compact mode shows only play time, XP bar and XP/h, without tabs
- Toggle in the window settings or with /lt compact
- Export history tables as CSV (roadmap 16)
- "Export" button on every table opens a window with the visible rows
(filter and sort applied) as CSV, selected for Ctrl+C - Separator per language (; for German, , for English), fields quoted
when needed, color codes and link markup removed - Tests find table views via a shared stub helper
- "Export" button on every table opens a window with the visible rows
- Sort and filter history tables (roadmap 15)
- Click a column header to sort, again to reverse; formatted columns
(durations, gold, dates) sort by their raw value - Filter box above every table searches all columns, case-insensitive,
ignoring color codes and link markup - Total row covers the filtered rows only
- Click a column header to sort, again to reverse; formatted columns
- Add XP bar with rested bonus to the window (roadmap 14)
- Bar under the play time: progress in the level, rested bonus as a
lighter segment; hidden at max level - Toggle "XP bar" in the window settings
- Bar under the play time: progress in the level, rested bonus as a
- Track near deaths (roadmap 12)
- NearDeath.lua: health below 10 % that recovers above 30 % without
dying counts as a near death (hysteresis avoids double counting) - Journal entry with lowest health, cause (last hit), level and zone
- Optional "Near deaths" row and journal sub-tab
- NearDeath.lua: health below 10 % that recovers above 30 % without
- Count elite and rare kills (roadmap 11)
- Classification.lua remembers enemy classification by name from
target, mouseover and nameplates; works without the combat log - New counters and optional rows "Kills (elite)" / "Kills (rare)"
- Kill journal stores the classification; the type column shows
elite, rare, rare elite or boss
- Classification.lua remembers enemy classification by name from
- Add loot journal (roadmap 10)
- Loot.lua logs rare and better items with time, quantity and a likely
source (last quest within 5 s or last kill within 60 s) - Quality from item info, falling back to the link color (old and new
link formats) - Chat format parsing moved to ChatPatterns.lua, shared with kills
- "Loot" sub-tab in the journal
- Loot.lua logs rare and better items with time, quantity and a likely
- Track dungeon, raid and scenario runs (roadmap 9)
- Instances.lua records each run with duration, XP, kills and deaths;
/reload inside continues the run, a long break closes it - "Instances" sub-tab in the journal with the running run on top and
a total row over all runs
- Instances.lua records each run with duration, XP, kills and deaths;
- Add quest journal (roadmap 7)
- Every quest turned in is logged with time, name, XP, gold, level
and zone (newest 2000) - Name from C_QuestLog where available, otherwise the title of the
open turn-in dialog - "Quests" sub-tab in the journal
- Every quest turned in is logged with time, name, XP, gold, level
- Keep daily totals for long-term charts (roadmap 6)
- Daily values also count kills, deaths and XP, so charts survive
the journal limit - Character schema 5 seeds daily kills and deaths from the journal
- "Kills/day" reads daily totals and covers 30 days; daily series
share one helper
- Daily values also count kills, deaths and XP, so charts survive
- Chart the XP timeline of the session (roadmap 5)
- Session tallies gained XP in 5-minute steps (xpTimeline, not kept
for archived sessions) - "XP timeline" chart shows the last 3 hours; breaks appear as gaps
- Death causes sub-tab shortened to "Causes" so all charts fit
- Session tallies gained XP in 5-minute steps (xpTimeline, not kept
- Chart play time per day and week (roadmap 4)
- Daily.lua keeps per-day values; play time is split at midnight
- Character schema 4 seeds past sessions into their start day
- Charts "Time/day" (14 days) and "Time/week" (8 weeks, from Monday)
- Shorter chart sub-tab labels so all charts fit one row
- Schema version is public so the migration test follows bumps
- Track statistics per zone (roadmap 3)
- Zones.lua: play time, XP, kills and deaths per zone, time booked on
zone change and logout - Stats.OnIncrement lets modules tally counters elsewhere
- "Zones" tab sorted by XP/h with a total row, plus an
"XP/h per zone" chart (stays under 5 minutes are skipped)
- Zones.lua: play time, XP, kills and deaths per zone, time booked on
- Compare all characters side by side (roadmap 2)
- New "Compare" tab: one row per character in class color with
level, levels gained, average time per level, XP/h, kills, deaths
and gold; fastest leveler first, characters without data last - Table views accept an optional rowColor
- New "Compare" tab: one row per character in class color with
- Group history views into tabs with sub-tabs
- Views sharing a group get one tab and appear as sub-tabs:
Levels (overview, timeline), Journal (kills, deaths), Charts - Each chart is its own view; history window is wider for the
upcoming views
- Views sharing a group get one tab and appear as sub-tabs:
- Add roadmap, level-up summary, forecast, timeline, data deletion and PR tests
- ROADMAP.md with planned features; done: 1, 8, 13, 17, 22
- Chat summary on level-up (toggle in settings)
- "Max level in" row: rest of current level plus average of recent levels
- Timeline tab: level reached, date, total /played and level duration
- Delete a character's statistics from the history window; the
logged-in character restarts tracking immediately - test.yml runs vet and tests on every PR and push to main;
workflows on checkout@v7 / setup-go@v7 with go.sum cache path
- Add history charts and lazy-loaded journal tables
- Charts tab: time and XP/h per level, kills per day, top enemies
and death causes (Analysis.lua data, Charts.lua texture charts) - Rank charts use the available height, show rank, share and a
background track; tooltips show truncated names in full - Tables render only visible rows and refill on scroll, so the
journal keeps 5000 kills and 1000 deaths - Own slim scrollbar and smaller close button; text columns left
aligned; journal times with seconds - HistoryWindow split into frame, table views and chart view
- Charts tab: time and XP/h per level, kills per day, top enemies