File Details
Dibs-v0.1.2-classic
- R
- Jul 13, 2026
- 70.92 KB
- 8
- 1.15.8
- Classic
File Name
Dibs-Dibs-v0.1.2-classic.zip
Supported Versions
- 1.15.8
Changelog
[v0.1.2] — accurate stats, deterministic enchants, per-character wishlists
Added
- Per-character wishlists with an all-alts view. Each character keeps its own list
(
DibsDB.chars[key]), and a Character selector in the Wishlist tab lets you view and plan any of your alts' lists from one place. Your existing flat list migrates into the logged-in character automatically. - Tag dibs to a scheduled event. When ClassicCalendar is present, the Wishlist tab
gains an Event box that filters to a scheduled raid and auto-tags new dibs to it, a
per-row "tag to event" action, and an Event column.
Data\Events.lua(ns.Events) reads the calendar'sCalendarHelperDB; fully optional — no calendar, no event UI. - Magic resistances in the summary. Per-school character totals (Fire/Nature/Frost/
Shadow/Arcane, and any school a future flavour exposes) read from
UnitResistance, shown when non-zero — data-driven and version-agnostic.
Changed
- Hit % now matches the character sheet. Melee and Ranged Hit read the game's own
GetHitModifier()total (gear + talents + head/leg enchants) plus the planned gear/enchant delta, with a worn ranged-weapon scope's hit read off that slot's enchant. Fixes the 9%-vs-11% gap (the missing 2% was the Zandalar head/leg hit enchants). - Deterministic worn enchants via ProfessionDB. With LibProfessionDB's new
enchantId/enchantSlot/statsfields, a worn item's applied enchant resolves straight from its link id to structured stats — retiring the recipe-name grep and the effect-string parser for enriched recipes (both kept only as fallbacks). The tooltip scan remains for enchants no data source carries (head/leg, scopes). - LibAceGUIWidgets and ProfessionDB are required dependencies. Both are restored to
## Dependenciesand the.pkgmetaCurseForge relations (libaceguiwidgets/libprofessiondb) now that LibAceGUIWidgets' CF project is approved — so CurseForge auto-installs the full stack. ProfessionDB backs the enchant data (enchantId/enchantSlot/stats).
[v0.1.1] — packaging fix
Changed
- LibAceGUIWidgets is an optional dependency for now. Its CurseForge project
(id
1599206) is still awaiting moderator approval, so it isn't publicly accessible — and CurseForge rejects a release whose project relations point at an unapproved project (errorCode 1018), which failed the v0.1.0 CurseForge upload (the GitHub release succeeded). Removed it from the.pkgmetaCurseForge relations and moved it to## OptionalDepsinDibs.tocso the addon packages and uploads. The library is still required for the UI — install it alongside Dibs — and it will be restored as a dependency once its CF project is approved. No code changes.
[v0.1.0] — initial development
First release. New capabilities, folded in as they land — this is initial build-out, so entries describe new things, not iteration.
Added
- Loadable Classic Era addon +
/dibs.Dibs.luabootstrap registers theDibsDBSavedVariable (defaults-merge), resolves its version viaC_AddOns.GetAddOnMetadata(legacy fallback), and adds the/dibsslash command. Full pre-implementation design underdocs/; BigWigs packager.pkgmeta, GitHub release workflow, MITLICENSE, markdownlint/luarc config. - FastGuildInvite-style layout + family branding. Bootstrap +
Constants.luaat root, feature/comms logic underModules\, UI underGUI\(AceGUI-3.0 via the shared LibAceGUIWidgets), shipped data underData\, localization underLocale\. Brand orangeffFF8000, shared with FGI / TOGProfessionMaster. - External shared dependencies. Ace3, AceCommQueue-1.0, VersionCheck-1.0,
LibGuildRoster, LibLocaleOverride, LibAceGUIWidgets, LibItemDB (ItemDB), DeltaSync —
declared in
Dibs.toc+.pkgmeta(not vendored), matching the DeltaSync consumer ecosystem. Only LibDataBroker-1.1 + LibDBIcon-1.0 are vendored (Libs\). - Localization system.
ns.L.<code>tables (FGI model, not AceLocale) registered with LibLocaleOverride;ns.GetLocale()returns the merged table (key-as-fallback), and the UI reuses LLO's AceGUI helpers. English (enUS) for dev; every user-facing string routes through the accessor. - Data-sync + version-check scaffold.
Modules\Comms.luawires the shared comms stack — an AceComm/AceCommQueue send instance, an isolated DeltaSync host (NewHost), a LibGuildRoster identity/trust gate, and a per-type sync-handler registry.Modules\Version.luawires VersionCheck-1.0 for an out-of-date reminder. The wishlist diff/merge + P2P catch-up are registry seams pending the sync-scope decisions (docs/06). - Main window.
/dibsopens a branded LibAceGUIWidgetsClearFramewith a tab strip (Planner / Wishlist), a bottom status bar (Close button + info "i" tooltip, lifted above the resize strips), and localized tab fonts. Size/position, the open tab, and the Wishlist scroll persist across sessions; a minimum size keeps it from shrinking below the Planner's contents. - Minimap button. A LibDataBroker launcher shown via vendored LibDBIcon-1.0; position +
hidden state persist in
DibsDB.minimap. - Item data layer (
Data\ItemSources.lua). A thinns.Itemsadapter over LibItemDB (metadata, drop sources, EP/BiS, item sets) so no module touches the lib directly. Also owns Dibs-side logic: an item→instance reverse index for the Source column, a talent-tree → spec resolver, and the full equipment-eligibility gate. - Wishlist tab. A sortable
RowListof your called-dibs items by source instance; add by shift-click/paste + Enter, remove via the row action; backed byDibsDB.wishlist. - Paperdoll Planner — a SixtyUpgrades-style loadout builder. A character-sheet slot
grid where each slot shows the item slotted in your active loadout (falling back to
equipped). Click a slot to list every gear option that fits it — a whole-DB, EP-ranked
list (community-standard HawsJon weights via LibItemDB, scored for your real spec)
with click-sortable Source / EP / iLvl columns, item tooltips on hover, an "Upgrades
only" filter, and a Main-Hand "Hide two-handed" toggle. Left-click a row to slot the
item; the coin icon adds it to your wishlist; right-click a slot to clear it.
- Only shows what the character can use. One
ns.Items:CanUse(id [, profile])gates every row by faction, class (armor + shield + weapon proficiency + "Classes:" tag) and race ("Races:" tag), read from the client's own tooltip data and applied at render so it self-heals as item data streams in.profileis parameterized for the future "plan for an alt" feature. - Loadout templates. Save / load named loadouts (account-wide, tagged by class) from a
top bar — Save As, Load, Delete, Reset to equipped.
Modules\Loadout.lua(ns.Loadout) owns loadouts + aggregation;DibsDB.loadoutspersists them. - Live summary (centre panel, replacing the 3D model): total EP, average + total item level, and a full character-total stat block — primary stats plus derived Attack Power / Ranged AP / Crit / Armor / melee + ranged Hit and melee + ranged DPS computed to match the character sheet exactly for your current gear (game value + gear delta + per-class conversion ripple) — and active set bonuses with their real effect text. Scrollable; the loadout picker is the shared library dropdown (checkbox rows, click-outside to close); controls carry tooltips.
- Enchants, SixtyUpgrades-style. A per-slot enchant picker (dropdown box, populated
from LibProfessionDB's Enchanting catalog, handedness-aware for weapons/off-hands)
lets you assign an enchant to a planned piece; its stats — parsed from the recipe's
effect text via a shared free-text→stat parser — fold straight into the loadout totals.
Your currently-worn enchants are read live off each equipped item's tooltip (the
applied enchant's green line, wherever it renders, incl. an engineering scope's ranged-
hit), so the current-gear totals reflect them without any applied-enchant-id map (which no
data source ships). Hovering a paperdoll slot uses the worn item link (the same one the
character sheet uses), so its applied enchant shows in the tooltip too.
Modules\Loadout.luastores enchant assignments per loadout (copied by Save As, dropped by Reset) and layers them instatsOf;Data\Enchants.lua(ns.Enchants) is the catalog adapter + parser. ProfessionDB is an optional dependency — absent, planned enchants simply aren't offered and worn enchants still scan. - Tooltip-authoritative equip effects. A few item "Equip:" values render differently from the offline DB's stored number (classic mp5 rounds the DB value down — e.g. Scythe of the Unseen Path shows 3 mana/5s where the DB has 2); the item's live tooltip now overrides the DB for those, so the summary matches the game.
- Only shows what the character can use. One
EP stat weights are HawsJon / Pawn / Vger (CC BY-NC-ND), credited in-app per the weights' licence.