Skip to content

Add WoW Midnight 12.0.1 support#106

Closed
Timikana wants to merge 1 commit into
Justw8:masterfrom
Timikana:midnight-support
Closed

Add WoW Midnight 12.0.1 support#106
Timikana wants to merge 1 commit into
Justw8:masterfrom
Timikana:midnight-support

Conversation

@Timikana
Copy link
Copy Markdown

@Timikana Timikana commented Apr 18, 2026

Summary

Adds WoW Midnight (12.0.1) compatibility via a new Core.lua file loaded only on retail. Classic/TBC/Wrath/Cata/Mists continue to load the original code unchanged — zero regression on any pre-Midnight client.

Philosophy

On Midnight, CLEU has intermittent taint issues and UNIT_COMBAT doesn't expose sourceGUID — making classic source filtering unreliable. Rather than fight this, Core.lua enhances Blizzard's native Floating Combat Text (which already filters perfectly to show only your damage) by providing font/CVar controls and (alpha) spell icons on nameplates.

Inspired by NiceDamage and MikScrollingBattleText.

Features (stable)

  • Font selector with live preview (built-in + LibSharedMedia)
  • Text scale, gravity, ramp duration, ramp power sliders
  • Animation style dropdown: Scroll Up / Scroll Down / Arc
  • Font Outline (Outline / Thick / Monochrome / None) + shadow
  • Separate UI/SCT font option
  • All FCT display toggles: Dodge/Parry/Miss, Spell Mechanics, Auras, Auto-attacks, Combo Points, Reactives, Damage Reduction, Low Mana/Health, Rep Changes, Honor Gains
  • Standalone draggable options panel via /nsct + entry in WoW's AddOns settings menu
  • French + English localization (auto-detect via GetLocale)
  • /nsctdebug for diagnostics
  • NiceDamage conflict detection (warns if both loaded — they fight over DAMAGE_TEXT_FONT)

⚠️ Alpha (not production-ready)

  • Spell icons on nameplates (via UNIT_COMBAT + spell tracking) — works partially but has known limitations on Midnight. Disabled by default; can be enabled in /nsct > Alpha Function - Spell Icons section. Clearly labeled as alpha in the UI.
  • The rest (fonts, CVars, toggles, panel) is stable and works.

Midnight API workarounds

  • Secret values (spell IDs, GUIDs) — wrapped in pcall, never compared with == 0 directly, never used as table keys (tostring stays secret on Midnight)
  • UNIT_COMBAT only processes nameplateX tokens (avoids party/raid rejections in GetNamePlateForUnit and target/nameplateX duplicates)
  • Settings.RegisterCanvasLayoutCategory wrapped in pcall with standalone frame fallback
  • MinimalSliderTemplate wrapped in pcall with bare slider fallback
  • Font application at file parse, ADDON_LOADED, PLAYER_LOGIN, and PLAYER_ENTERING_WORLD (matching NiceDamage's timing) with path validation and LSM fallback

Files

  • Core.lua (new, ~940 lines) — single-file Midnight code
  • NameplateSCT.toc — loads Core.lua on retail (11.0 / 12.0)
  • CHANGELOG.md (new)
  • README.md — updated documentation

Classic TOC files (_Vanilla, _TBC, _Wrath, _Cata, _Mists), NameplateSCT.lua, Locales/, Libs/, and embeds.xml are not touched.

Test plan

  • Loads on WoW Midnight 12.0.1 without errors
  • /nsct opens options panel (standalone draggable frame)
  • Font, scale, gravity, ramp duration — all working
  • FCT display toggles apply immediately
  • French localization works (fallback to English on other locales)
  • /nsctdebug prints full diagnostic info
  • Classic paths untouched — original TOCs still load original code
  • Spell icons (alpha) — partial, disabled by default

Adds a new Core.lua loaded only on retail/Midnight that enhances
Blizzard's native Floating Combat Text instead of replacing it.
Classic/TBC/Wrath/Cata/Mists continue to load the original code
unchanged (zero regression).

Philosophy: Blizzard's FCT already filters source perfectly (only
your damage shows). Rather than fight CLEU taint on Midnight, we
let Blizzard handle damage numbers and provide font/CVar controls
plus (WIP) spell icons on nameplates.

Features:
- Font selector with live preview (Blizzard + LibSharedMedia)
- Text scale, gravity, ramp duration, ramp power sliders
- Animation style dropdown (Scroll Up / Scroll Down / Arc)
- Font outline (Outline/Thick/Monochrome/None) and shadow
- Separate UI/SCT font option
- All FCT display toggles (Dodge/Parry/Miss, Spell Mechanics,
  Auras, Auto-attacks, Combo Points, Reactives, Damage Reduction,
  Low Mana/Health, Rep Changes, Honor Gains)
- Standalone draggable options panel (/nsct) + WoW Settings menu
- French + English localization (auto-detect via GetLocale)
- /nsctdebug for diagnostics
- NiceDamage conflict detection and warning

ALPHA (not production-ready):
- Spell icons on nameplates (UNIT_COMBAT + spell tracking) —
  works partially but has limitations on Midnight. Disabled by
  default; can be enabled via /nsct > Alpha Function section.

Midnight API workarounds:
- Secret values: spellIDs and GUIDs wrapped in pcall, no == 0
  compares, never used as table keys (tostring stays secret)
- UNIT_COMBAT only processes nameplateX tokens (avoids
  party/raid GetNamePlateForUnit rejections and target
  duplicates)
- Settings.RegisterCanvasLayoutCategory wrapped in pcall with
  standalone frame fallback
- MinimalSliderTemplate wrapped in pcall with basic slider
  fallback
- Font applied at file parse, ADDON_LOADED, PLAYER_LOGIN, and
  PLAYER_ENTERING_WORLD (NiceDamage approach) with path
  validation and LSM fallback

Files:
- Core.lua (new, ~940 lines) — single-file Midnight code
- NameplateSCT.toc — loads Core.lua on retail (11.0/12.0)
- CHANGELOG.md (new)
- README.md — updated documentation
@Justw8
Copy link
Copy Markdown
Owner

Justw8 commented Apr 18, 2026

I have no interest in trying to support this with workarounds.
I'll keep my stance on updating it once Blizzard updates an api to modify combat texts (and not just your personal incoming information).

Feel free to use it for personal use. (leaving it open if others want to try, but it wont be merged.)

@Justw8 Justw8 closed this Apr 18, 2026
@Justw8 Justw8 reopened this Apr 18, 2026
@Timikana Timikana closed this by deleting the head repository May 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants