# Beef Server Snapshot Plan

## Goal

Build a TBC 2.4.3 addon that records observable server NPC and combat data, especially exact mob and boss HP, spell casts, damage ranges, aura events, and encounter timing.

## Addon

- Name: `BeefSnapshot`
- SavedVariables: `BeefSnapshotDB`
- Minimum supported client: WoW TBC 2.4.3 build 8606

## Core Data

Per observed NPC entry:

- NPC GUID and parsed entry ID where possible
- Name, level, classification, creature type, reaction
- Zone, subzone, and player map coordinates
- Current HP and max HP from `UnitHealth` / `UnitHealthMax`
- Current run label for difficulty or session notes
- First seen, last seen, and observation count

Per combat event:

- Timestamp
- Source and destination GUID/name/entry
- Event type
- Spell ID, spell name, and school where present
- Damage amount, overkill, absorbed, resisted, blocked
- Critical, crushing, and glancing flags where present
- Miss type
- Aura applied/removed counters through aggregate spell records

Per NPC aggregate:

- Highest observed max HP
- Observed levels, classifications, creature types, and reactions
- Melee swing damage min/max/avg/count
- Spell damage min/max/avg/count by spell ID
- Cast timestamps by spell ID
- Per-source GUID cast tracking so cooldown samples remain useful during large pulls
- Aura applied/removed counts by spell ID
- Monster yells, monster emotes, and raid boss emotes in the active session

## Caps

- `maxCombatEvents = 50000`
- `maxObservationsPerNpc = 200`

Aggregates are retained even if raw event or observation caps roll over.

## Slash Commands

- `/sfs start`
- `/sfs stop`
- `/sfs status`
- `/sfs mark <label>`
- `/sfs target`
- `/sfs mouseover`
- `/sfs scan`
- `/sfs wipe`
- `/sfs print`
- `/sfs help`

## Event Hooks

- `PLAYER_LOGIN`
- `PLAYER_LOGOUT`
- `PLAYER_TARGET_CHANGED`
- `UPDATE_MOUSEOVER_UNIT`
- `COMBAT_LOG_EVENT_UNFILTERED`
- `ZONE_CHANGED`
- `ZONE_CHANGED_NEW_AREA`

## First Milestone

Implemented:

1. Loads as a TBC 2.4.3 addon.
2. Supports `/sfs start`, `/sfs stop`, `/sfs status`, `/sfs target`, and `/sfs print`.
3. Records target name, GUID, parsed entry if possible, level, classification, HP, max HP, zone, subzone, and coords.
4. Records combat log events enough to list observed spell IDs by NPC.
5. Saves to `BeefSnapshotDB`.

## Next Milestone

1. Add export helpers or compact print commands for selected NPC records.
2. Add more robust compatibility testing on a live 2.4.3 client.
