File Details
iddqd v0.8.2
- R
- Apr 8, 2026
- 411.60 KB
- 45
- 2.5.5
- Classic TBC
File Name
iddqd_app.zip
Supported Versions
- 2.5.5
iddqd app v0.8.2
Loot Automation
- Added Auto Need system — automatically rolls Need on group loot items matching enabled rarities
- Per-rarity toggles: Uncommon (off), Rare (on), Epic (on), Legendary (off) by default
- Tooltip-based BoP detection via hidden
scanTooltipframe — scans forITEM_BIND_ON_PICKUPandITEM_SOULBOUNDusing locale-safe WoW globals - Fail-closed tradability check: item must be positively confirmed tradable before any auto-roll; any uncertainty = skip
- Deferred evaluation with retry:
TryAutoNeed()retries up to 3 times at 200ms intervals if item info or tooltip is not ready; bonus retry ifGetLootRollTimeLeft()> 500ms - Added Auto Master Loot — automatically distributes items to assigned players when you are master looter
- Master loot requires 90%+ guild members in raid via new
Sync:IsHighConfidenceGuildRaid(threshold), separate from the 75% broadcast threshold - Strict validation chain: assignment exists → player in raid → candidate index resolved → name re-verified →
GiveMasterLoot(slot, index) - No fallbacks: if any validation step fails, item is left for manual handling
- Both features disabled by default
Session System
- Added
sessionKeyfield to all loot entries — format:instanceId-difficultyId-startTimestamp - Session key generated lazily on first loot event via
EnsureSessionKey(), not on zone entry — ensures all raid members converge on the same key - Sync convergence:
AdoptSessionKey()called when receiving LD messages — first looter's key propagates to all players - Relog recovery:
TryRecoverSessionKey()scans recent loot history (30-minute window) for matchinginstanceIdon zone entry sessionKeytreated as opaque identifier — never parsed to derive other fields- Added
originalInstanceIdandoriginalSessionKeyto every loot entry for trade/DE audit trail Export:BuildSessionsFromHistory()now groups bysessionKeyfirst (no time-gap check needed), falls back toinstanceId:difficultyId+ gap, then raid nameLootLog:GetCurrentSession()matches bysessionKey(priority),instanceId, then raid name- LD sync payload extended with 9th field (
sessionKey) — backward compatible with older addon versions - Loot history sync payload includes
sk,oi,okfields for sessionKey, originalInstanceId, originalSessionKey
Sync & Data Integrity
- PUG filtering reworked: loot is now always tracked locally regardless of guild raid status
- Broadcast gating: guild raid (75%+) → full RAID + GUILD broadcast; PUG with guild member loot → GUILD-only via new
SendGuildOnlyLootMessage(); PUG with non-guild loot → no broadcast - Added
Sync:IsPlayerInGuild(playerName)using cached guild member set - Added
Sync:SendGuildOnlyLootMessage()with same LD throttle asSendLootMessage()(sharedsyncSendThrottle) - Added
Sync:IsHighConfidenceGuildRaid(threshold)— independent from 75%IsGuildRaid(), used exclusively by auto master loot HandleLootOpensimplified — setting enforcement moved toUI:ShowMiniLoot()
UI & Settings
- Added Loot Automation section to General Settings panel
- Auto Need toggle with per-rarity checkboxes (Uncommon/Rare/Epic/Legendary) — each independently toggleable
- Auto Master Loot toggle
- Both toggles include descriptive tooltips listing safety restrictions
UI:ShowMiniLoot(force)now accepts aforceparameter — explicit user actions (officer button, toggle) passforce=true; automated paths (sync LO, auto-open) respectautoOpenMiniLootsetting- Added
autoOpenMiniLoot = falsetolootSettingsdefaults — mini loot window no longer auto-opens from sync - Removed Split Roster button, Split Options section (Parts dropdown, Rule dropdown, Group checkboxes) from Raid Groups panel
- Added
/iddqd autoneeddebug command — prints settings state, active roll guards, and live tooltip tradability scan for hovered item - Added
/iddqd sessiondebug command — prints session key, instance info, recent sessions from history, guild raid status
Safety Improvements
- Permanent blacklist: Splinter of Atiesh, Frame of Atiesh, Nether Vortex, Fragment of Val'anyr, Eye of Sulfuras, both Bindings of the Windseeker, Eye of C'Thun, Badge of Justice, Heart of Darkness, Sunmote
- Inverted safety model:
CanConfirmTradable()must returntrueto proceed — default is deny - Tooltip scan uses
ITEM_BIND_ON_PICKUP/ITEM_SOULBOUNDWoW globals for locale-safe detection (German, French, etc.) - Roll guard keyed by
rollID-itemIdwith 60-second TTL — prevents duplicate rolls and avoids stale rollID collisions - Auto master loot: 0.5s delay after
LOOT_OPENEDfor candidate list population; candidate name double-verified after index lookup - All automation disabled by default — requires explicit opt-in per feature
Fixes
- Fixed mini loot window opening for all raid members when officer clicks "Open Raid Loot" — now respects per-user
autoOpenMiniLootsetting - Fixed PUG raids blocking all loot tracking — loot is now tracked locally even in non-guild raids
- Fixed loot from multiple runs of the same raid merging into one session —
sessionKeyprovides unique identity per run - Fixed session divergence across players entering raid at different times —
EnsureSessionKey()triggers on first loot, not zone entry; sync convergence adopts sender's key
Internal Changes
- Version bumped to 0.8.2 in
iddqd_app.tocandcore.lua - New module:
auto_loot.lua— self-contained, no modifications to existing loot flow - Removed
SplitRoster()function andSPLIT_CLASS_PRIOconstant fromraid_groups.lua - Removed
splitGroups,splitParts,splitRulefrom database defaults;OnInitializecleans up old saved data LootTrackerstate extended withcurrentSessionKey,sessionStartTime,currentInstanceId,currentDifficultyIdSESSION_GAP_SECONDS = 30 * 60inloot_tracker.luafor relog recovery (export.lua retains 4-hour gap for historical session grouping)- Alt+click loot handler now includes
sessionKeyin entry and LD sync payload MergeLootHistory()in sync now reads and writessk,oi,okfields