premium banner
5-man Black Morass dungeon helper

Description

# SequenceHelper

> **5-man Black Morass dungeon helper** for WoW Anniversary / Classic clients.
> One designated **Announcer** clicks the mic button once, and SequenceHelper handles **the entire run's chat**: the beacon order broadcast, the wave 13–17 portal call-outs, and the wave 6/12/18 boss alerts — automatically into party chat.

**Version**: matches `## Version` in `SequenceHelper.toc` (every change recorded in `CHANGELOG.md`).
**Client**: WoW Anniversary / Classic family — verified on Interface `20504` / `20505`. Should run on any Classic flavor whose `## Interface` matches.

---

## Highlights

- **Auto beacon order** — One mic-button click broadcasts `[Beacon order] 1. NameA / 2. NameB / …` to party chat.
- **Auto rift call-outs** — When portals open in waves 13–17, SequenceHelper sends `โ—† [Next rift 16] Name - use beacon!` (real raid-target diamond icon up front).
- **Auto boss alerts** — Just before waves 6/12/18 (Deja / Temporus / Aeonus) it announces `๐Ÿ’€ [BOSS] Aeonus - loot fast and move out!` (real raid-target skull icon).
- **Beacon number badges on unit frames** — Each of the 5 party members shows their beacon number (1–5) on their unit frame.
- **Live rift counter** — `Rift open : 12/18` shown on the helper panel, kept in sync via a triple-redundant detection system (combat log + UI widget event + 1 s widget poller).
- **Announcer conflict guard** — If two SequenceHelper users in the same party both turn Announcer ON, a one-shot warning prints to chat. (Cannot detect non-SequenceHelper sources, e.g. WeakAuras.)
- **Simulation mode** — Outside the dungeon you can fake-run waves 1→18 to verify behaviour. All output previewed to your own chat only.
- **Standard Interface Options panel** — All settings and a full how-to live under ESC → Interface → AddOns → SequenceHelper.

---

## Install

1. Drop the entire `SequenceHelper` folder into your AddOns directory:
   - WoW Anniversary: `World of Warcraft\_anniversary_\Interface\AddOns\`
   - Classic Era: `World of Warcraft\_classic_era_\Interface\AddOns\`
   - Other Classic flavors: same `Interface\AddOns\` location.
2. On the character-select screen, open **AddOns** and tick `SequenceHelper`.
3. Once in game, the mic button next to the minimap confirms the install.

---

## Quick start (3 steps)

1. **Form your 5-man party** → the helper window lists you + your 4 party members in beacon order 1–5.
2. **Enter Black Morass** → one player **left-clicks the mic button** in the helper window. That player becomes the Announcer and the beacon order is sent to party chat immediately.
3. **Run as normal** — every portal opens, every boss spawns, the right alert is in party chat automatically. The Announcer just plays the beacon.

> โš ๏ธ **Only one Announcer.** Two or more = duplicate chat lines. SequenceHelper **auto-resets the Announcer to OFF on instance enter / leave / reload** so the group must consciously pick one player to mic-click after entering.

---

## Helper panel (minimap right-click)

- **Title**: `Sequence Helper`
- **Rift counter** (only inside Black Morass): `Rift open : N/18`
- **Beacon order list**: `1. Name` … `5. Name` (current Announcer gets a green outline next to their icon)
- **Mic button** (centered at the bottom)
  - **Left-click** — Announcer ON + send beacon order now (re-click to re-broadcast).
  - **Right-click** — Announcer OFF immediately.
  - Active when: inside Black Morass / 5-man party is full / sim mode. Greyed out otherwise.

---

## Minimap button

| Action | Result |
|---|---|
| **Left-click** | Open/close the Interface Options → SequenceHelper panel |
| **Right-click** | Open/close the helper window |
| **Shift + drag** | Move the minimap button around the minimap edge |

---

## Interface Options panel

ESC → Interface → AddOns → SequenceHelper:

- **Four option checkboxes**
  - Addon enabled
  - Show numbers on unit frames
  - Lock helper panel position
  - Use class-colored player hyperlinks in chat
- **Scrollable how-to body** — minimap shortcuts, mic button usage, Announcer auto-OFF timing, slash command summary.

---

## Slash commands

`/seq` (also `/sequencehelper`, `/pse`, `/psequence`):

| Command | Description |
|---|---|
| `/seq` or `/seq help` | Print command help |
| `/seq settings` (`config`, `options`) | Toggle the Interface Options panel |
| `/seq show` / `hide` / `toggle` | Helper window visibility |
| `/seq on` / `off` | Enable/disable the addon |
| `/seq announce` | Send beacon order to party chat now |
| `/seq leader on` / `off` / `status` | Toggle Announcer (same as the mic button) |
| `/seq bm on` / `off` | Black Morass auto-call on/off (default on) |
| `/seq links on` / `off` | Toggle class-colored player hyperlinks in chat |
| `/seq peers` | Report other SequenceHelper users in your party |
| `/seq sim on` / `off` / `set <N>` / `next` / `run [sec]` / `stop` / `chat on\|off` | Simulation mode |
| `/seq debug on` / `off` | Send-path debug log |
| `/seq reset` | Reset helper window position |
| `/seq probe` | Print Black Morass diagnostics (trigger counters, widget state) |

---

## Black Morass auto-announce — exact behaviour

| Wave | Trigger | Party-chat message |
|---|---|---|
| 1–5 | (silent) | Beacon users 1–5 don't need calling — only the panel `N/18` counter updates |
| **6** | Deja spawn | `๐Ÿ’€ [BOSS] Deja - loot fast and move out!` |
| 7–11 | (silent) | Counter updates only |
| **12** | Temporus spawn | `๐Ÿ’€ [BOSS] Temporus - loot fast and move out!` |
| **13–17** | Portal opens | `โ—† [Next rift N] Name - use beacon!` |
| **18** | Aeonus spawn | `๐Ÿ’€ [BOSS] Aeonus - loot fast and move out!` |

> The `โ—†` and `๐Ÿ’€` glyphs are real WoW raid-target marker tokens (`{rt3}` / `{rt8}`). They render as actual icons on every receiver's client, making the call-outs visually distinct from regular chatter. SequenceHelper sends **plain text plus raid-target tokens** only — color codes and a few BMP-outside glyphs are silently dropped by the Anniversary client's `SendChatMessage` (see CHANGELOG entries 1.9.2 / 1.9.3 for the full diagnosis).

### Triple-redundant detection

To make sure portal advances are never missed by a single bug, three triggers run in parallel:
1. **Combat log event** — match the rift channel spell IDs.
2. **UI widget event** — react when the in-game 12/18 counter widget changes.
3. **1-second widget poller** — even if both events miss, the next poll catches the change within 1 s.

Any one of the three keeps the call-outs flowing. `/seq probe` prints how many times each path fired.

### Announcer auto-OFF timing (safety default)

SequenceHelper deliberately resets the Announcer to false at every one of these moments, so the group must re-pick one Announcer per run and chat duplication stays at zero:

- Login / `/reload`
- Black Morass enter (outside → inside)
- Black Morass leave (inside → outside)
- Simulation end (when outside the dungeon)
- Mic right-click / `/seq leader off`

---

## Simulation mode

Useful for demoing the addon outside Black Morass or for video capture. Output previews **only to your own chat** with a `[SIM]` prefix (party chat is not touched).

```
/seq sim on             # start sim — show 5 fake party members
/seq sim run            # auto-walk waves 1→18 every 1 s
/seq sim run 2.5        # walk every 2.5 s
/seq sim set 13         # jump rift counter to 13
/seq sim next           # advance one wave
/seq sim stop           # stop the auto walker
/seq sim chat on        # โš ๏ธ send sim lines to real party chat (be careful)
/seq sim off            # leave sim mode
```

---

## Compatibility / known limits

- **Disabled in raids** — this is a 5-man helper. Inside a raid the helper window and chat alerts go quiet.
- **WeakAuras / other auto-callers**: SequenceHelper detects Announcer conflicts only between SequenceHelper users. If somebody else's WeakAuras is also broadcasting the same call-outs, SequenceHelper has no way to see it — chat will duplicate. **Run only one auto-caller per party.**
- **Anniversary `SendChatMessage` silent-drop**: messages containing color codes (`|cXXXXXXXX|r`) or certain non-BMP glyphs (`โ—ˆ`, `»`, `—`) silently disappear after returning OK. SequenceHelper scrubs all outgoing chat to plain text + raid-target tokens to work around this (see `scrubChatLineForSend`).
- **`|T...|t` texture escapes are rejected** by the same path. That's why icons are expressed as `{๋‹ค์ด์•„๋ชฌ๋“œ}` / `{ํ•ด๊ณจ}` / `{rt3}` / `{rt8}` raid-target tokens instead of texture inlines.

---

## Icons / artwork (CurseForge etc.)

- **CurseForge project icon**: `Art/SequenceHelper-CurseForge-400.png` — must be **400 × 400 px, 1:1 aspect**. The repo file matches this spec.
- **In-game minimap icon**: `Textures/MinimapIcon.png` (referenced by `## IconTexture` in the TOC).
- If your client refuses PNG and only accepts TGA/BLP, convert the same image, drop it under `Textures/`, and point `IconTexture` at it.

---

## SavedVariables

`WTF\Account\<account>\SavedVariables\SequenceHelper.lua`

- **Current**: `SequenceHelperDB`.
- **Legacy migration**: users coming from the old `PSequenceHelper` keep their data — `PSequenceHelperDB` is migrated into `SequenceHelperDB` once when the new SavedVariables file is empty.

Stored keys: `enabled`, `showOverlay`, `showList`, `locked`, `point/x/y` (helper window position), `minimap.angle/hide`, `announcePlayerLinks`, `autoAnnounceBlackMorass`, `iAmAnnouncer`, `debug`.

---

## Debugging / triage

If the auto-announce stops feeling reliable:

1. `/seq debug on` — turns on send-path logging in your own chat (party not affected).
2. If portals open but no debug line shows up → run `/seq probe` to see trigger counters.
3. `widgetEvents = 0` means the UI widget event isn't firing → the 1-second poller fallback should still keep it going.
4. `iAmAnnouncer = false` means you're not the Announcer → mic left-click or `/seq leader on`.
5. If debug shows `SendChatMessage(PARTY) OK` but the line never reaches your `[Party]` log → likely a new silent-drop glyph (see CHANGELOG 1.9.2 for the diagnostic protocol).

Full diagnostic history lives in `CHANGELOG.md` entries 1.9.1 / 1.9.2 / 1.9.3.

---

## Version history (milestones)

`CHANGELOG.md` carries every version (Korean + English side by side). Headline milestones:

- **1.9.1** — Fixed the `local DB` scoping bug that kept `featureOn` permanently false. Auto-announce paths come back to life.
- **1.9.2** — Diagnosed and worked around Anniversary `SendChatMessage` silent-drop (`scrubChatLineForSend`).
- **1.9.3** — Added raid-target tokens (`{๋‹ค์ด์•„๋ชฌ๋“œ}` / `{ํ•ด๊ณจ}` / `{rt3}` / `{rt8}`) to wave-call and boss lines — plain text but real icons render on every client.
- **1.9.4** — Removed the duplicate colored echo from the announcer's own chat (kept behind `/seq debug on`).
- **1.9.5** — Reorganized minimap left/right click roles, removed the helper-panel refresh button, added a settings window.
- **1.9.6** — Replaced the standalone settings window with a standard Interface Options category.
- **1.10.0** — Compacted the mic button tooltip.
- **1.10.1** — ElvUI-style backdrop, no border on the helper window.

---

## License & credits

- Practical helper for the 5-man Black Morass dungeon. Use, fork, redistribute freely.
- Locales shipped: Korean (`koKR`) and English (`enUS`) auto-call templates.
- Author notes (especially the post-mortem on the 1.9.1 `local DB` scoping bug) live at the top of `SequenceHelper.lua`.

---

# ํ•œ๊ตญ์–ด (Korean)

> **๊ฒ€์€ ๋Šช(Black Morass) 5์ธ ๋˜์ „ ์ „์šฉ** ๋ด‰ํ™” ์ˆœ์„œ + ์ž๋™ ํ˜ธ๋ช…/๋ณด์Šค์ „ ์•Œ๋ฆผ ์• ๋“œ์˜จ์ž…๋‹ˆ๋‹ค.
> **5๋ช…์ด 1~5๋ฒˆ ๋ด‰ํ™”๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์‚ฌ์šฉ**ํ•ด์•ผ ํ•˜๋Š” ์™€์ค‘์—, ์ง„ํ–‰์ž(announcer) ํ•œ ๋ช…์ด ๋งˆ์ดํฌ ๋ฒ„ํŠผ๋งŒ ํ•œ ๋ฒˆ ๋ˆ„๋ฅด๋ฉด — ๋ด‰ํ™” ์ˆœ์„œ ๊ณต์ง€๋ถ€ํ„ฐ wave 13~17 ํ˜ธ๋ช…, wave 6/12/18 ๋ณด์Šค์ „ ๋ฉ˜ํŠธ๊นŒ์ง€ — **์ „๋ถ€ ์ž๋™์œผ๋กœ ํŒŒํ‹ฐ ์ฑ„ํŒ…์— ๋ฐœ์†ก**๋ฉ๋‹ˆ๋‹ค.

**๋ฒ„์ „**: `SequenceHelper.toc` ์˜ `## Version` ๊ณผ ๋™์ผ (`CHANGELOG.md` ์— ๋งค ๋ณ€๊ฒฝ ๊ธฐ๋ก).
**ํด๋ผ์ด์–ธํŠธ**: WoW Anniversary / Classic ๊ณ„์—ด (Interface `20504` / `20505` ๊ฒ€์ฆ). `## Interface` ๊ฐ€ ๋งž์œผ๋ฉด ๋‹ค๋ฅธ Classic ํŒจ์น˜์—์„œ๋„ ๋™์ž‘.

## ํ•œ๋ˆˆ์— ๋ณด๋Š” ํ•ต์‹ฌ

- **์ž๋™ ๋ด‰ํ™”์ˆœ์„œ ์•ˆ๋‚ด** — ๋งˆ์ดํฌ ๋ฒ„ํŠผ ํ•œ ๋ฒˆ์ด๋ฉด `[๋ด‰ํ™”์ˆœ์„œ] 1. ๋‘๋‹ฅ / 2. ๊ฑฐ๋ฆฌ์ „์‚ฌ / …` ๊ฐ€ ํŒŒํ‹ฐ ์ฑ„ํŒ…์œผ๋กœ ๋ฐœ์†ก.
- **์ฐจ์›๋ฌธ ํ˜ธ๋ช… ์ž๋™ํ™”** — wave 13~17 ์ฐจ์›๋ฌธ์ด ์—ด๋ฆฌ๋ฉด `โ—† [๋‹ค์Œ ์ฐจ์›๋ฌธ 16] ๋‘๋‹ฅ ๋‹˜ - ๋ด‰ํ™” ์‚ฌ์šฉ!` ๋ฉ”์‹œ์ง€ ์ž๋™ ์†ก์ถœ (์•ž์— ์ง„์งœ ๋ณด๋ผ ๋‹ค์ด์•„๋ชฌ๋“œ ๊ณต๊ฒฉ๋Œ€ ํ‘œ์‹œ ์•„์ด์ฝ˜).
- **๋ณด์Šค์ „ ์ž๋™ ๋ฉ˜ํŠธ** — wave 6/12/18 (๋ฐ์ž / ํ…œํผ๋ฃจ์Šค / ์•„์—๋ˆ„์Šค) ์ง„์ž… ์ง์ „ `๐Ÿ’€ [๋ณด์Šค] ์•„์—๋ˆ„์Šค - ์ „ํˆฌ์ค€๋น„!` ์•Œ๋ฆผ ์ž๋™ ์†ก์ถœ (์•ž์— ์ง„์งœ ํฐ ํ•ด๊ณจ ์•„์ด์ฝ˜).
- **์œ ๋‹› ํ”„๋ ˆ์ž„ ๋ฒˆํ˜ธ ๋ฑƒ์ง€** — ๋ณธ์ธ + ํŒŒํ‹ฐ์› 4๋ช…์˜ ๋ด‰ํ™” ๋ฒˆํ˜ธ(1~5) ๊ฐ€ ๊ฐ์ž ํ”„๋ ˆ์ž„ ์œ„์— ํ•ญ์ƒ ํ‘œ์‹œ.
- **์ฐจ์›๋ฌธ ์นด์šดํ„ฐ** — ๋„์šฐ๋ฏธ ์ฐฝ์— `์ฐจ์›๋ฌธ ์—ด๋ฆผ : 12/18` ์‹ค์‹œ๊ฐ„ ํ‘œ์‹œ (3์ค‘ ๊ฐ์ง€: ์ „ํˆฌ๋กœ๊ทธ + UI ์œ„์ ฏ ์ด๋ฒคํŠธ + 1์ดˆ ํด๋Ÿฌ).
- **์ง„ํ–‰์ž ์ถฉ๋Œ ๋ณดํ˜ธ** — ๊ฐ™์€ ํŒŒํ‹ฐ์— ์ง„ํ–‰์ž๊ฐ€ ๋‘˜ ์ด์ƒ์ด๋ฉด ์ฑ„ํŒ… ์ค‘๋ณต ๊ฒฝ๊ณ  1ํšŒ ์ถœ๋ ฅ (๋‹จ, ๊ฐ™์€ SequenceHelper ์‚ฌ์šฉ์ž๋ผ๋ฆฌ๋งŒ ๊ฐ์ง€).
- **์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ชจ๋“œ** — ์ธ๋˜ ๋ฐ–์—์„œ๋„ wave 1→18 ์„ ๊ฐ€์งœ๋กœ ์ง„ํ–‰์‹œ์ผœ ๋ณธ์ธ ์ฑ„ํŒ…์ฐฝ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋กœ ๋™์ž‘ ๊ฒ€์ฆ ๊ฐ€๋Šฅ.
- **์ธํ„ฐํŽ˜์ด์Šค ์˜ต์…˜ ํ†ตํ•ฉ** — ESC → ์ธํ„ฐํŽ˜์ด์Šค → ์• ๋“œ์˜จ → SequenceHelper ์— ์˜ต์…˜ + ์‚ฌ์šฉ์„ค๋ช… ํ•œ ํ™”๋ฉด.

## ์„ค์น˜

1. ์ด ํด๋” (`SequenceHelper`) ๋ฅผ ํ†ต์งธ๋กœ ๋‹ค์Œ ๊ฒฝ๋กœ์— ๋ณต์‚ฌ:
   - WoW Anniversary: `World of Warcraft\_anniversary_\Interface\AddOns\`
   - Classic Era: `World of Warcraft\_classic_era_\Interface\AddOns\`
   - ๊ธฐํƒ€ Classic flavor ๋„ ๋™์ผ (`Interface\AddOns\` ์•„๋ž˜)
2. ๊ฒŒ์ž„ ๋‚ด ์บ๋ฆญํ„ฐ ์„ ํƒ ํ™”๋ฉด์—์„œ **์• ๋“œ์˜จ** → `SequenceHelper` ์ฒดํฌ.
3. ๊ฒŒ์ž„ ์ง„์ž… ํ›„ ๋ฏธ๋‹ˆ๋งต ์˜†์— ๋งˆ์ดํฌ ๋ชจ์–‘ ๋ฒ„ํŠผ์ด ๋œจ๋ฉด ์ •์ƒ ์„ค์น˜.

## ๋น ๋ฅธ ์‚ฌ์šฉ๋ฒ• (3๋‹จ๊ณ„)

1. **5์ธ ํŒŒํ‹ฐ ์™„์„ฑ** → ๋„์šฐ๋ฏธ ์ฐฝ์— ๋ณธ์ธ + ํŒŒํ‹ฐ์› 4๋ช…์ด ๋ด‰ํ™” 1~5๋ฒˆ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ํ‘œ์‹œ๋จ.
2. **๊ฒ€์€ ๋Šช ์ž…์žฅ** → ํ•œ ๋ช…์ด ๋„์šฐ๋ฏธ ์ฐฝ์˜ **๋งˆ์ดํฌ ๋ฒ„ํŠผ ์ขŒํด๋ฆญ** → ๊ทธ ์‚ฌ๋žŒ์ด ์ง„ํ–‰์ž๊ฐ€ ๋จ + ๋ด‰ํ™”์ˆœ์„œ๊ฐ€ ์ฆ‰์‹œ ํŒŒํ‹ฐ ์ฑ„ํŒ…์— ๋ฐœ์†ก.
3. **๊ทธ๋Œ€๋กœ ์ง„ํ–‰** — wave ๋งˆ๋‹ค ์ฐจ์›๋ฌธ์ด ์—ด๋ฆฌ๊ณ  ๋ณด์Šค๊ฐ€ ๋“ฑ์žฅํ•  ๋•Œ๋งˆ๋‹ค ์ž๋™์œผ๋กœ ์•Œ๋ฆผ์ด ํŒŒํ‹ฐ ์ฑ„ํŒ…์— ๋– ์˜ค๋ฆ„. ์ง„ํ–‰์ž๋Š” ๋ด‰ํ™” ์‚ฌ์šฉ์—๋งŒ ์ง‘์ค‘ํ•˜๋ฉด ๋จ.

> โš ๏ธ **์ง„ํ–‰์ž๋Š” ํ•œ ๋ช…๋งŒ**. ๋‘ ๋ช… ์ด์ƒ์ด ๋งˆ์ดํฌ๋ฅผ ๋ˆ„๋ฅด๋ฉด ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ์ค‘๋ณต ์†ก์ถœ๋˜์–ด ์ฑ„ํŒ… ์ŠคํŒธ์ด ๋ฉ๋‹ˆ๋‹ค. ์ธ๋˜ ์ง„์ž… ์‹œ์ ์— **์ž๋™์œผ๋กœ OFF ๋กœ ์ดˆ๊ธฐํ™”**๋˜๋ฏ€๋กœ, ์ž…์žฅ ํ›„ ํ•ฉ์˜๋œ ํ•œ ๋ช…๋งŒ ๋‹ค์‹œ ๋ˆ„๋ฅด์„ธ์š”.

## ๋„์šฐ๋ฏธ ์ฐฝ (๋ฏธ๋‹ˆ๋งต ์šฐํด๋ฆญ)

- **ํƒ€์ดํ‹€**: `๋ด‰ํ™”์ˆœ์„œ ๋„์šฐ๋ฏธ`
- **์ฐจ์›๋ฌธ ์นด์šดํ„ฐ** (๊ฒ€์€ ๋Šช ์•ˆ์—์„œ๋งŒ ํ‘œ์‹œ): `์ฐจ์›๋ฌธ ์—ด๋ฆผ : N/18`
- **๋ด‰ํ™” ์ˆœ์„œ ๋ชฉ๋ก**: `1. ๋‹‰๋„ค์ž„` ~ `5. ๋‹‰๋„ค์ž„` (ํ˜„์žฌ ์ง„ํ–‰์ž ์˜†์—๋Š” ์ดˆ๋ก ํ…Œ๋‘๋ฆฌ)
- **๋งˆ์ดํฌ ๋ฒ„ํŠผ** (๊ฐ€์šด๋ฐ ์•„๋ž˜)
  - **์ขŒํด๋ฆญ** — ์ง„ํ–‰์ž ON + ๋ด‰ํ™”์ˆœ์„œ ์ฆ‰์‹œ ์†ก์ถœ (์ด๋ฏธ ON ์ด๋ฉด ๋ด‰ํ™”์ˆœ์„œ ์žฌ์†ก์ถœ)
  - **์šฐํด๋ฆญ** — ์ง„ํ–‰์ž ์ฆ‰์‹œ OFF
  - ํ™œ์„ฑ ์กฐ๊ฑด: ๊ฒ€์€ ๋Šช ์•ˆ / 5์ธ ํŒŒํ‹ฐ ์™„์„ฑ / ์‹œ๋ฎฌ ๋ชจ๋“œ. ์™ธ์—๋Š” ํšŒ์ƒ‰์œผ๋กœ ๋น„ํ™œ์„ฑ.

## ๋ฏธ๋‹ˆ๋งต ๋ฒ„ํŠผ

| ๋™์ž‘ | ๊ฒฐ๊ณผ |
|---|---|
| **์ขŒํด๋ฆญ** | ์ธํ„ฐํŽ˜์ด์Šค ์˜ต์…˜ → SequenceHelper ํŒจ๋„ ์—ด๊ธฐ/๋‹ซ๊ธฐ |
| **์šฐํด๋ฆญ** | ๋ด‰ํ™”์ˆœ์„œ ๋„์šฐ๋ฏธ ์ฐฝ ์—ด๊ธฐ/๋‹ซ๊ธฐ |
| **Shift + ๋“œ๋ž˜๊ทธ** | ๋ฏธ๋‹ˆ๋งต ์ฃผ๋ณ€ ์œ„์น˜(๊ฐ๋„) ์กฐ์ • |

## ์ธํ„ฐํŽ˜์ด์Šค ์˜ต์…˜ ํŒจ๋„

ESC → ์ธํ„ฐํŽ˜์ด์Šค → ์• ๋“œ์˜จ → SequenceHelper:

- **์˜ต์…˜ ์ฒดํฌ๋ฐ•์Šค 4์ข…**
  - ์• ๋“œ์˜จ ์‚ฌ์šฉํ•จ
  - ์œ ๋‹› ํ”„๋ ˆ์ž„์— ๋ฒˆํ˜ธ ํ‘œ์‹œ
  - ๋„์šฐ๋ฏธ ์ฐฝ ์œ„์น˜ ์ž ๊ธˆ
  - ์ฑ„ํŒ… ์•Œ๋ฆผ์— ์ง์—…์ƒ‰ ์ด๋ฆ„(ํ•˜์ดํผ๋งํฌ) ์‚ฌ์šฉ
- **์‚ฌ์šฉ ์„ค๋ช… ๋ณธ๋ฌธ** (์Šคํฌ๋กค) — ๋ฏธ๋‹ˆ๋งต ๋‹จ์ถ•ํ‚ค, ๋งˆ์ดํฌ ๋ฒ„ํŠผ ์‚ฌ์šฉ๋ฒ•, ์ง„ํ–‰์ž ์ž๋™ OFF ์‹œ์ , ์Šฌ๋ž˜์‹œ ๋ช…๋ น์–ด ์š”์•ฝ

## ์Šฌ๋ž˜์‹œ ๋ช…๋ น์–ด

`/seq` (๋˜๋Š” `/sequencehelper`, `/pse`, `/psequence`) ๋กœ ๋ชจ๋“  ๋ช…๋ น ์‚ฌ์šฉ ๊ฐ€๋Šฅ.

| ๋ช…๋ น | ์„ค๋ช… |
|---|---|
| `/seq` ๋˜๋Š” `/seq help` | ๋ช…๋ น์–ด ๋„์›€๋ง ์ถœ๋ ฅ |
| `/seq settings` (`config`, `options`) | ์ธํ„ฐํŽ˜์ด์Šค ์˜ต์…˜ ํŒจ๋„ ํ† ๊ธ€ |
| `/seq show` / `hide` / `toggle` | ๋„์šฐ๋ฏธ ์ฐฝ ํ‘œ์‹œ/์ˆจ๊น€ |
| `/seq on` / `off` | ์• ๋“œ์˜จ ์‚ฌ์šฉํ•จ/์‚ฌ์šฉ์•ˆํ•จ |
| `/seq announce` | ๋ด‰ํ™” ์ˆœ์„œ๋ฅผ ํŒŒํ‹ฐ ์ฑ„ํŒ…์— ์ฆ‰์‹œ ์†ก์ถœ |
| `/seq leader on` / `off` / `status` | ์ง„ํ–‰์ž ํ† ๊ธ€ (๋งˆ์ดํฌ ๋ฒ„ํŠผ๊ณผ ๋™์ผ) |
| `/seq bm on` / `off` | ๊ฒ€์€ ๋Šช ์ž๋™ ์•ˆ๋‚ด on/off (๊ธฐ๋ณธ on) |
| `/seq links on` / `off` | ์ฑ„ํŒ… ์•Œ๋ฆผ์— ์ง์—…์ƒ‰ ํ•˜์ดํผ๋งํฌ ์‚ฌ์šฉ ํ† ๊ธ€ |
| `/seq peers` | ๊ฐ™์€ ํŒŒํ‹ฐ์˜ SequenceHelper ์‚ฌ์šฉ์ž ๋ณด๊ณ  |
| `/seq sim on` / `off` / `set <N>` / `next` / `run [์ดˆ]` / `stop` / `chat on\|off` | ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ชจ๋“œ |
| `/seq debug on` / `off` | ์†ก์ถœ ๊ฒฝ๋กœ ๋””๋ฒ„๊ทธ ๋กœ๊ทธ |
| `/seq reset` | ๋„์šฐ๋ฏธ ์ฐฝ ์œ„์น˜ ์ดˆ๊ธฐํ™” |
| `/seq probe` | ๊ฒ€์€ ๋Šช ์ง„๋‹จ ์ •๋ณด (ํŠธ๋ฆฌ๊ฑฐ ์นด์šดํ„ฐ, ์œ„์ ฏ ์ƒํƒœ ๋“ฑ) ์ถœ๋ ฅ |

## ๊ฒ€์€ ๋Šช ์ž๋™ ์•ˆ๋‚ด — ์ •ํ™•ํ•œ ๋™์ž‘

| Wave | ํŠธ๋ฆฌ๊ฑฐ | ํŒŒํ‹ฐ ์ฑ„ํŒ…์œผ๋กœ ๋ฐœ์†ก๋˜๋Š” ๋ฉ”์‹œ์ง€ |
|---|---|---|
| 1~5 | (์นจ๋ฌต) | ๋ด‰ํ™” ์‚ฌ์šฉ์ž๋งŒ ํ˜ธ๋ช…ํ•  ํ•„์š”๊ฐ€ ์—†์Œ — ํŒจ๋„์˜ N/18 ์นด์šดํŠธ๋งŒ ๊ฐฑ์‹  |
| **6** | ๋ฐ์ž ๋“ฑ์žฅ | `๐Ÿ’€ [๋ณด์Šค] ๋ฐ์ž - ์ „ํˆฌ์ค€๋น„! ์ถฉ๋ถ„ํžˆ ํƒํ•˜๊ณ  ์ด๋™!` |
| 7~11 | (์นจ๋ฌต) | ์นด์šดํŠธ๋งŒ ๊ฐฑ์‹  |
| **12** | ํ…œํผ๋ฃจ์Šค ๋“ฑ์žฅ | `๐Ÿ’€ [๋ณด์Šค] ํ…œํผ๋ฃจ์Šค - ์ „ํˆฌ์ค€๋น„! ์ถฉ๋ถ„ํžˆ ํƒํ•˜๊ณ  ์ด๋™!` |
| **13~17** | ์ฐจ์›๋ฌธ ์—ด๋ฆผ | `โ—† [๋‹ค์Œ ์ฐจ์›๋ฌธ N] ๋‹‰๋„ค์ž„ ๋‹˜ - ๋ด‰ํ™” ์‚ฌ์šฉ!` |
| **18** | ์•„์—๋ˆ„์Šค ๋“ฑ์žฅ | `๐Ÿ’€ [๋ณด์Šค] ์•„์—๋ˆ„์Šค - ์ „ํˆฌ์ค€๋น„! ์ถฉ๋ถ„ํžˆ ํƒํ•˜๊ณ  ์ด๋™!` |

> `โ—†` `๐Ÿ’€` ๋Š” WoW ๊ณต๊ฒฉ๋Œ€ ํ‘œ์‹œ(raid target marker) ์•„์ด์ฝ˜ — ๋ชจ๋“  ํŒŒํ‹ฐ์›์˜ ํ™”๋ฉด์— ์ง„์งœ ์•„์ด์ฝ˜์œผ๋กœ ๋ Œ๋”๋ง๋˜์–ด ์ผ๋ฐ˜ ์ฑ„ํŒ…๊ณผ ์‹œ๊ฐ์ ์œผ๋กœ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค. ์ƒ‰์ƒ ์ฝ”๋“œ์™€ ์ผ๋ถ€ ํŠน์ˆ˜ ๋ฌธ์ž๊ฐ€ Anniversary ํด๋ผ์˜ `SendChatMessage` ์—์„œ silent-drop ๋˜๋Š” ๋ฌธ์ œ(1.9.2 ~ 1.9.3 ์ฐธ์กฐ)๋ฅผ ์šฐํšŒํ•˜๊ธฐ ์œ„ํ•ด, ์ฑ„ํŒ…์œผ๋กœ ๋‚˜๊ฐ€๋Š” ๋ฉ”์‹œ์ง€๋Š” **ํ‰๋ฌธ + ๊ณต๊ฒฉ๋Œ€ ํ‘œ์‹œ ํ† ํฐ**๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

### 3์ค‘ ๊ฐ์ง€ ์‹œ์Šคํ…œ

์ฐจ์›๋ฌธ ์ง„ํ–‰์ด ์–ด๋–ค ๋‹จ์ผ ์ด๋ฒคํŠธ์— ์˜์กดํ•˜์ง€ ์•Š๋„๋ก **์„ธ ๊ฐ€์ง€ ํŠธ๋ฆฌ๊ฑฐ**๋ฅผ ๋™์‹œ์— ์šด์˜:
1. **Combat Log Event** — ์ฐจ์›๋ฌธ ์ฑ„๋„๋ง spell ID ๋งค์นญ
2. **UI Widget Event** — ๊ฒŒ์ž„ ๋‚ด UI ์˜ 12/18 ์นด์šดํ„ฐ๊ฐ€ ๋ฐ”๋€” ๋•Œ
3. **1์ดˆ Widget Poller** — ์œ„ ๋‘ ์ด๋ฒคํŠธ๊ฐ€ ๋ชจ๋‘ ๋ˆ„๋ฝ๋˜์–ด๋„ 1์ดˆ ์•ˆ์— ์นด์šดํ„ฐ ๋ณ€๊ฒฝ ๊ฐ์ง€

์„ธ ๊ฒฝ๋กœ ์ค‘ ์–ด๋А ํ•˜๋‚˜๋ผ๋„ ์‚ด์•„์žˆ์œผ๋ฉด ํ˜ธ๋ช…/๋ณด์Šค ๋ฉ˜ํŠธ๊ฐ€ ๋น ์ง€์ง€ ์•Š์Œ. `/seq probe` ๋กœ ์–ด๋А ๊ฒฝ๋กœ๊ฐ€ ๋ช‡ ๋ฒˆ ๋ฐœํ™”ํ–ˆ๋Š”์ง€ ํ™•์ธ ๊ฐ€๋Šฅ.

### ์ง„ํ–‰์ž ์ž๋™ OFF ์‹œ์  (์•ˆ์ „ ๊ธฐ๋ณธ๊ฐ’)

๋‹ค์Œ ๋ชจ๋“  ์‹œ์ ์— ์ง„ํ–‰์ž ์ƒํƒœ๊ฐ€ ์ž๋™์œผ๋กœ false ๋กœ ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค — ์ธ๋˜๋งˆ๋‹ค ํ•œ ๋ช…๋งŒ ๋‹ค์‹œ ๋งˆ์ดํฌ๋ฅผ ๋ˆ„๋ฅด๋„๋ก ๊ฐ•์ œํ•ด ์ฑ„ํŒ… ์ค‘๋ณต์„ ๋ฐฉ์ง€:

- ๋กœ๊ทธ์ธ / `/reload`
- ๊ฒ€์€ ๋Šช ์ธ์Šคํ„ด์Šค ์ง„์ž… (๋ฐ– → ์•ˆ)
- ๊ฒ€์€ ๋Šช ์ธ์Šคํ„ด์Šค ํ‡ด์žฅ (์•ˆ → ๋ฐ–)
- ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ข…๋ฃŒ (์ธ๋˜ ๋ฐ–์—์„œ)
- ๋งˆ์ดํฌ ์šฐํด๋ฆญ / `/seq leader off`

## ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ชจ๋“œ

์ธ๋˜ ๋ฐ–์—์„œ ๋™์ž‘์„ ์‹œ์—ฐํ•˜๊ฑฐ๋‚˜ ์˜์ƒ ์บก์ฒ˜ํ•  ๋•Œ ์œ ์šฉ. **๋ณธ์ธ ์ฑ„ํŒ…์ฐฝ์—๋งŒ** `[SIM]` prefix ๋ถ™์€ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋กœ ์ถœ๋ ฅ (ํŒŒํ‹ฐ์—๋Š” ์•ˆ ๋‚˜๊ฐ).

```
/seq sim on             # ์‹œ๋ฎฌ ์‹œ์ž‘ — ๊ฐ€์งœ ํŒŒํ‹ฐ์› 5๋ช… ํ‘œ์‹œ
/seq sim run            # wave 1 → 18 ๊นŒ์ง€ 1์ดˆ ๊ฐ„๊ฒฉ์œผ๋กœ ์ž๋™ ์ง„ํ–‰
/seq sim run 2.5        # 2.5์ดˆ ๊ฐ„๊ฒฉ์œผ๋กœ ์ง„ํ–‰
/seq sim set 13         # ์ฐจ์›๋ฌธ ์นด์šดํŠธ ์ž„์˜๋กœ 13 ์œผ๋กœ ์„ค์ •
/seq sim next           # wave 1 ์ง„ํ–‰
/seq sim stop           # ์ž๋™ ์ง„ํ–‰ ์ค‘๋‹จ
/seq sim chat on        # โš ๏ธ ์‹œ๋ฎฌ ๊ฒฐ๊ณผ๋ฅผ ์ง„์งœ ํŒŒํ‹ฐ ์ฑ„ํŒ…์œผ๋กœ ์†ก์ถœ (์ฃผ์˜!)
/seq sim off            # ์‹œ๋ฎฌ ์ข…๋ฃŒ
```

## ํ˜ธํ™˜์„ฑ / ์•Œ๋ ค์ง„ ์ œ์•ฝ

- **๊ณต๊ฒฉ๋Œ€(Raid) ์ง„์ž… ์‹œ ๋น„ํ™œ์„ฑ** — 5์ธ ํŒŒํ‹ฐ ์ „์šฉ ๋„์šฐ๋ฏธ๋ผ, ๊ณต๋Œ€ ํŽธ์„ฑ ์ค‘์—๋Š” ๋„์šฐ๋ฏธ ์ฐฝ๊ณผ ์ฑ„ํŒ… ์•Œ๋ฆผ์ด ๋™์ž‘ํ•˜์ง€ ์•Š์Œ.
- **WeakAuras ๋“ฑ ๋‹ค๋ฅธ ์ž๋™ ์•ˆ๋‚ด์™€์˜ ์ถฉ๋Œ**: SequenceHelper ๋Š” ๊ฐ™์€ SequenceHelper ์‚ฌ์šฉ์ž๋ผ๋ฆฌ๋งŒ ์ง„ํ–‰์ž ์ถฉ๋Œ์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค. WeakAuras / ํƒ€ ์• ๋“œ์˜จ์ด ๊ฐ™์€ ๋ฉ”์‹œ์ง€๋ฅผ ์†ก์ถœ ์ค‘์ด๋ฉด SequenceHelper ๊ฐ€ ๊ทธ ์‚ฌ์‹ค์„ ์•Œ์ง€ ๋ชปํ•ด ์ฑ„ํŒ…์ด ์ค‘๋ณต๋  ์ˆ˜ ์žˆ์Œ. ํ•œ ํŒŒํ‹ฐ์—์„œ๋Š” **ํ•˜๋‚˜์˜ ์ž๋™ ์•ˆ๋‚ด ๋„๊ตฌ๋งŒ** ์ผœ๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ.
- **Anniversary `SendChatMessage` ์˜ silent-drop**: ์ƒ‰์ƒ ์ฝ”๋“œ(`|cXXXXXXXX|r`) ์™€ ์ผ๋ถ€ BMP-์™ธ๊ณฝ ๊ธ€๋ฆฌํ”„(`โ—ˆ`, `»`, `—`) ๊ฐ€ ๋“ค์–ด๊ฐ„ ๋ฉ”์‹œ์ง€๋Š” OK ๋ฅผ ๋ฐ›๊ณ ๋„ ์„œ๋ฒ„์—์„œ ๋ˆ„๋ฝ๋จ (1.9.2 ์ง„๋‹จ·์šฐํšŒ). ์ฑ„ํŒ…์œผ๋กœ ๋‚˜๊ฐ€๋Š” ๋ชจ๋“  ์ž๋™ ์•ˆ๋‚ด๋Š” ํ‰๋ฌธ + ๊ณต๊ฒฉ๋Œ€ ํ‘œ์‹œ ํ† ํฐ์œผ๋กœ๋งŒ ์†ก์ถœํ•˜๋„๋ก ๊ฐ•์ œ (`scrubChatLineForSend`).
- **`|T...|t` ํ…์Šค์ฒ˜ escape ๊ฑฐ๋ถ€**: ๊ฐ™์€ silent-drop ๊ณ„์—ด๋กœ ํ…์Šค์ฒ˜ ์ธ๋ผ์ธ escape ๋„ ๊ฑฐ๋ถ€๋จ — ๊ทธ๋ž˜์„œ ์•„์ด์ฝ˜ ํ‘œํ˜„์€ `{๋‹ค์ด์•„๋ชฌ๋“œ}` / `{ํ•ด๊ณจ}` ๊ณต๊ฒฉ๋Œ€ ํ‘œ์‹œ ํ† ํฐ์œผ๋กœ ์šฐํšŒ.

## ์•„์ด์ฝ˜ / ์•„ํŠธ์›Œํฌ (CurseForge ๋“ฑ)

- **CurseForge ํ”„๋กœ์ ํŠธ ์•„์ด์ฝ˜**: `Art/SequenceHelper-CurseForge-400.png` — **1:1 ๋น„์œจ, 400 × 400 ํ”ฝ์…€** ํ•„์ˆ˜. ์ €์žฅ์†Œ ํŒŒ์ผ์ด ์ด ๊ทœ๊ฒฉ์œผ๋กœ ์ค€๋น„๋˜์–ด ์žˆ์Œ.
- **๊ฒŒ์ž„ ๋‚ด ๋ฏธ๋‹ˆ๋งต ์•„์ด์ฝ˜**: `Textures/MinimapIcon.png` (`SequenceHelper.toc` ์˜ `## IconTexture` ๊ฐ€ ๊ฐ€๋ฆฌํ‚ด).
- ํด๋ผ์ด์–ธํŠธ๊ฐ€ PNG ๋ฅผ ๊ฑฐ๋ถ€ํ•˜๊ณ  TGA/BLP ๋งŒ ํ—ˆ์šฉํ•˜๋ฉด, ๋™์ผ ์ด๋ฏธ์ง€๋ฅผ ๋ณ€ํ™˜ ํ›„ `Textures/` ์— ๋‘๊ณ  `IconTexture` ๊ฒฝ๋กœ๋งŒ ๋งž์ถ”์„ธ์š”.

## ์ €์žฅ์†Œ (SavedVariables)

`WTF\Account\<๊ณ„์ •>\SavedVariables\SequenceHelper.lua`

- **ํ˜„์žฌ**: `SequenceHelperDB`
- **๊ตฌ๋ฒ„์ „ ํ˜ธํ™˜**: ์ด์ „ `PSequenceHelper` ์‚ฌ์šฉ์ž๋Š” ๊ธฐ์กด `PSequenceHelperDB` ๊ฐ€ ์ž๋™์œผ๋กœ `SequenceHelperDB` ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜๋จ (์ƒˆ SavedVariables ๊ฐ€ ๋น„์–ด์žˆ์„ ๋•Œ 1ํšŒ).

์ €์žฅ ํ•ญ๋ชฉ: `enabled`, `showOverlay`, `showList`, `locked`, `point/x/y` (๋„์šฐ๋ฏธ ์ฐฝ ์œ„์น˜), `minimap.angle/hide`, `announcePlayerLinks`, `autoAnnounceBlackMorass`, `iAmAnnouncer`, `debug`.

## ๋””๋ฒ„๊น… / ๋ฌธ์ œ ์ง„๋‹จ

์ž๋™ ์•ˆ๋‚ด๊ฐ€ ์•ˆ ๋‚˜๊ฐ€๋Š” ๊ฒƒ ๊ฐ™์œผ๋ฉด:

1. `/seq debug on` — ์†ก์ถœ ๊ฒฝ๋กœ ๋””๋ฒ„๊ทธ ๋กœ๊ทธ๋ฅผ ๋ณธ์ธ ์ฑ„ํŒ…์ฐฝ์— ์ถœ๋ ฅ (ํŒŒํ‹ฐ์—๋Š” ์•ˆ ๋‚˜๊ฐ).
2. ์ฐจ์›๋ฌธ์ด ์—ด๋ ค๋„ ๋””๋ฒ„๊ทธ ๋กœ๊ทธ๊ฐ€ ์•ˆ ๋œจ๋ฉด → `/seq probe` ๋กœ ํŠธ๋ฆฌ๊ฑฐ ์นด์šดํ„ฐ ํ™•์ธ.
3. `widgetEvents=0` ์ด๋ฉด UI ์œ„์ ฏ ์ด๋ฒคํŠธ๊ฐ€ ์•ˆ ์˜ด → ํด๋Ÿฌ๊ฐ€ fallback ์œผ๋กœ ๋™์ž‘ ์ค‘์ธ์ง€ ํ™•์ธ.
4. `iAmAnnouncer=false` ๋ฉด ์ง„ํ–‰์ž ํ† ๊ธ€์ด OFF — ๋งˆ์ดํฌ ์ขŒํด๋ฆญ / `/seq leader on`.
5. `SendChatMessage(PARTY) OK` ๊ฐ€ ๋””๋ฒ„๊ทธ์— ์ฐํžˆ๋Š”๋ฐ ๋ณธ์ธ [ํŒŒํ‹ฐ] ์— ์ค„์ด ์•ˆ ๋ณด์ด๋ฉด → ๋ฉ”์‹œ์ง€์— ์ƒˆ silent-drop ๊ธ€๋ฆฌํ”„ ๊ฐ€๋Šฅ์„ฑ (1.9.2 ์ง„๋‹จ ๋ฉ”๋ชจ ์ฐธ์กฐ).

์ž์„ธํ•œ ์ง„๋‹จ ํ๋ฆ„์€ `CHANGELOG.md` ์˜ 1.9.1 / 1.9.2 / 1.9.3 ํ•ญ๋ชฉ ์ฐธ๊ณ .

## ๋ณ€๊ฒฝ ์ด๋ ฅ

`CHANGELOG.md` ์— ๋ชจ๋“  ๋ฒ„์ „์ด ๊ธฐ๋ก๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค (ํ•œ๊ตญ์–ด + English ๋ณ‘๊ธฐ). ์ฃผ์š” ๋งˆ์ผ์Šคํ†ค:

- **1.9.1** — `local DB` ์Šค์ฝ”ํ•‘ ๋ฒ„๊ทธ(featureOn ์˜๊ตฌ false) ์ˆ˜์ •. ์ž๋™ ์†ก์ถœ ๊ฒฝ๋กœ ๋ถ€ํ™œ.
- **1.9.2** — Anniversary `SendChatMessage` ์˜ silent-drop ์ง„๋‹จ·์šฐํšŒ (`scrubChatLineForSend`).
- **1.9.3** — wave ํ˜ธ๋ช…/๋ณด์Šค ์ค„์— ๊ณต๊ฒฉ๋Œ€ ํ‘œ์‹œ ํ† ํฐ(`{๋‹ค์ด์•„๋ชฌ๋“œ}` / `{ํ•ด๊ณจ}`) ์ถ”๊ฐ€ — ํ‰๋ฌธ์ด์ง€๋งŒ ์ง„์งœ ์•„์ด์ฝ˜์œผ๋กœ ๋ Œ๋”.
- **1.9.4** — ๋ณธ์ธ ์ฑ„ํŒ…์ฐฝ ์ค‘๋ณต echo ์ œ๊ฑฐ (debug ๋ชจ๋“œ์—์„œ๋งŒ echo).
- **1.9.5** — ๋ฏธ๋‹ˆ๋งต ๋ฒ„ํŠผ ์ขŒ/์šฐํด๋ฆญ ์žฌ๋ฐฐ์น˜, ์ƒˆ๋กœ๊ณ ์นจ ๋ฒ„ํŠผ ์ œ๊ฑฐ, ์ž์ฒด ์„ค์ • ์ฐฝ ์‹ ์„ค.
- **1.9.6** — ์ž์ฒด ์„ค์ • ์ฐฝ์„ ํ๊ธฐํ•˜๊ณ  ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค ์˜ต์…˜ ํŒจ๋„ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๋“ฑ๋ก.
- **1.10.0** — ๋งˆ์ดํฌ ๋ฒ„ํŠผ ํˆดํŒ ๊ฐ„์†Œํ™”.
- **1.10.1** — ElvUI ํ†ค backdrop, ํ…Œ๋‘๋ฆฌ ์ œ๊ฑฐ.

## License & Credits

- WoW 5์ธ ๋˜์ „ ๊ฒ€์€ ๋Šช ์ง„ํ–‰ ๋„๊ตฌ. ์ž์œ  ์‚ฌ์šฉ/์ˆ˜์ •/๋ฐฐํฌ ํ™˜์˜.
- ํ˜„์žฌ ์ž๋™ ์•ˆ๋‚ด ํ…œํ”Œ๋ฆฟ: ํ•œ๊ตญ์–ด(`koKR`) + ์˜์–ด(`enUS`).
- ์ž‘์„ฑ์ž ๋ฉ”๋ชจ๋Š” `SequenceHelper.lua` ์ƒ๋‹จ ์ฃผ์„์— ์ƒ์„ธํžˆ ๊ธฐ๋ก (ํŠนํžˆ 1.9.1 ์˜ `local DB` ์Šค์ฝ”ํ•‘ ๋ฒ„๊ทธ ํšŒ๊ณ ).