NARC

Guild readiness dashboard surfacing crest, catalyst, and gear upgrade visiblity. Includes RCLootCouncil integration.

File Details

v1.3.0

  • R
  • Apr 5, 2026
  • 53.35 KB
  • 8
  • 12.0.1
  • Retail

File Name

NARC-v1.3.0.zip

Supported Versions

  • 12.0.1

NARC

v1.3.0 (2026-04-05)

Full Changelog Previous Releases

  • Dim offline members in main display, bump to 1.3.0
    Rows for guild or group members who are currently offline render at
    45% alpha with "(offline)" appended to the name. Online status is
    computed once per table rebuild from guild roster, party/raid, and
    self, so row lookups are O(1). Stale entries for members not in any
    roster show as offline until they age out of the 7 day cache.
    A new roster event frame listens to GUILD_ROSTER_UPDATE,
    GROUP_ROSTER_UPDATE, and PLAYER_GUILD_UPDATE and refreshes the visible
    table when members log on or off. NarcReceiverUI.Show requests a
    fresh guild roster so dimming is accurate immediately when the window
    opens.
    Bump version to 1.3.0.
    Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com
  • Add Great Vault tracking with main UI and RC columns
    Captures each member's weekly Great Vault (3 Raid, 3 Mythic+, 3 World
    reward slots), broadcasts snapshots guild-wide, and hooks
    C_WeeklyRewards.ClaimReward to record the chosen item. Stored item
    links preserve full context (sockets, tertiary stats, ilvl, bonus IDs).
    New NARC_Vault.lua handles collection, wire format (control-byte
    delimited so embedded item link pipes do not collide), passive
    broadcast, claim hook, and a five-layer stale guard (write, broadcast,
    receive, store, render) keyed on a weekId from
    C_DateAndTime.GetWeeklyResetStartTime. Previous weeks' data is
    aggressively purged and never broadcast or displayed.
    Main UI: new Vault column with icon status (dash, pending, claimed)
    and a hover popup showing a 3x3 grid of Raid/Mythic+/World slots with
    item icons, ilvls, a green check on the claimed slot, and
    progress/threshold for unearned slots. Popups open instantly; leaving
    uses a 250ms delay to prevent flicker; hovering a different column's
    popup zone closes the current popup immediately.
    RCLootCouncil: new Vault column with the same status icon and a
    tooltip listing all nine reward options with a [Chosen] marker.
    Toggleable via settings, defaults on.
    Frame width now auto-sizes from TABLE_W so new columns do not clip.
    Scroll bar is hidden for a cleaner window (mouse wheel still works).
    Debug commands: /narc vault, /narc vault broadcast, /narc vault purge.
    Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com
  • Add version check window and /narc version command
    New NARC_Version.lua ships an ephemeral VREQ/VRES protocol and a
    scope-switching window (guild / party / raid) that lists responders
    with semver-aware comparison against the highest version seen. Self
    is pinned at the top; guild view sorts by rank. The existing scan
    and passive broadcast paths now piggyback a VER/PVER message so
    cache entries carry the reporter's addon version for future format
    invalidation, kept independent of data-field rewrites.
    Main window gets a "v" icon button next to rescan, the hardcoded
    v1.2 label is replaced with a live NarcVersion string in the
    status bar, and the close/rescan/version button cluster moves
    inside the frame edge.
    Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com
  • Unify all player data behind NarcDB.guildCache (single source of truth)
    Eliminates the split between NarcData (in-memory, per-scan) and
    NarcDB.guildCache (persistent). Both the standalone UI and the RC voting
    frame integration now read from the same cache through the same API, so
    data visible in one is always visible in the other.
    New unified data API in NARC.lua:
    • NarcGetPlayer(name): single-player lookup with name-prefix fallback
    • NarcGetAllPlayers(): iterate every known player
    • NarcCacheUpdate(...): centralized write with timestamp-based conflict check
    • NarcGetScanRespondedCount(): in-memory counter for scan status UI
    • EnsureEntryShape(): backfills missing name/playerKey on legacy cache
      entries written before those fields were mandatory
      Scan lifecycle simplified:
    • StartScan no longer wipes player data; it clears an in-memory
      scanResponded set instead. Players who don't respond this scan keep
      their previously cached data.
    • FinalizeScan no longer injects noResponse placeholder rows. Staleness
      is conveyed via the timestamp on each cache entry.
    • BeginScanState helper extracted to remove duplication between StartScan
      and NarcTriggerGroupScan.
      NARC_Cache.lua cleanup:
    • Local CacheUpdate is now a thin alias for NarcCacheUpdate.
    • NarcCacheGet removed (superseded by NarcGetPlayer).
    • HandleCacheChunk and OnPlayerLogout now route through CacheUpdate.
      NARC_RC.lua:
    • GetNarcPlayer is a wrapper over NarcGetPlayer.
    • Staleness detection switched from a fromCache flag to a timestamp check
      (10-minute threshold), so cell dimming reflects actual age rather than
      storage layer provenance.
    • StartDataRetry treats stale entries as missing, pushing for fresh data
      during active loot sessions.
      NARC_UI.lua:
    • GetSortedRows iterates NarcGetAllPlayers instead of the old NarcData.
    • Status line counts members in cache and the current scan's responders.
    • noResponse rendering branch removed; paperdoll and crafted hover zones
      check for gear presence instead.
    • Sort and getVal callbacks hardened against missing crests/gear fields
      on legacy cache entries.
      Result: opening /narc now shows every guild member in the persistent
      cache, including players whose data was populated by passive broadcasts
      or login sync rather than the current scan. The RC voting frame sees
      the same data through the same code path.
      Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com
  • Add All History column, rename Slot History setting, tooltip polish
    New All History column:
    • Shows a book icon with the total count of items previously awarded to
      each candidate across all slots and difficulties
    • Hover tooltip groups by difficulty with a concise subtitle explaining
      the column's purpose
    • New NarcDB.colAllHistory setting (default on) with a Settings toggle
      Slot History setting renamed to "Show Slot History Column" with a
      description that accurately reflects slot-based scope.
      Slot History cell now shows a dimmed dash instead of a blank cell when
      a candidate has no prior awards in the slot, so it's clear there's no
      data rather than a rendering error.
      Tooltip headers and subtitles updated:
    • Gear header reads "Mythic Gear" at Mythic, "[Tier] Gear or Higher"
      otherwise. Piece count removed since it is already in the cell text.
    • Gear subtitle: "Items at this difficulty+. Weigh crest budget,
      unfinished upgrades, and other priorities." Suggestion-toned copy
      that acknowledges multiple decision factors.
    • Slot subtitle: "Awards in this slot across all difficulties.
      Sanity-check prior awards."
    • Subtitles shrunk to GameFontHighlightSmall for visual hierarchy.
      Codebase cleanup: all em dashes purged from source files, comments,
      strings, and tooltip copy. Replaced with colons or rewritten.
      Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com