feat(forever): threat % text on nameplates and target/focus frames - #2263
Merged
EllesmereGaming merged 3 commits intoSep 27, 2026
Merged
EllesmereGaming merged 3 commits into
EllesmereGaming merged 3 commits into
Conversation
Shows your own threat percentage on enemy nameplates and on the target and focus unit frames, set from the Forever Essentials Threat page (the nameplate row is also on the Enemy Nameplates page). Off by default, Forever only. Forever returns the percent and status secret for nameplate units, so the percent goes straight to SetFormattedText and the color comes from the isTanking flag through the curve boolean fold. Target and focus values are readable and use all four threat status colors.
dfrisone
added a commit
to dfrisone/EllesmereUI
that referenced
this pull request
Sep 27, 2026
…e the unit frame watcher only on Forever
Contributor
Author
|
Both addressed in e405d85:
Also merged upstream/main to keep the locale keys current. Retested on Forever. |
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Adds an optional threat percentage readout for WoW Forever, requested by Gingi, with the unit frame part added at Ellesmere's request:
Both are set from a new THREAT % TEXT section on the Forever Essentials > Threat page. Each has an on/off toggle, a Position dropdown (Inside Right / Left / Center), and a cog with Color by Threat, Size and X/Y offsets. The nameplate toggle is also available at the bottom of Enemy Nameplates > Threat Colors, since both write the same profile keys.
The number is the scaled threat percent, the same value the Threat Meter shows as Pull % (100% takes aggro).
Notes for review:
EllesmereUI.IS_FOREVER). The options rows are hidden on retail, and the runtime never shows the text there, even from a profile shared by a Forever character.UnitDetailedThreatSituationreturns the percent and the status as secret values fornameplateNtokens, whiletargetandfocuscome back readable. The percent is therefore never read or compared in Lua; it goes straight toFontString:SetFormattedText.isTankingflag throughC_CurveUtil.EvaluateColorValueFromBoolean(the same approach as the existing off-tank color), so nameplates show the has-aggro color or the low-threat color. Target and focus use all fourGetThreatStatusColorcolors. With Color by Threat off, the text is white.Implementation:
UpdateHealthColor, which the existing per-plateUNIT_THREAT_LIST_UPDATEalready drives, so no new events. The FontString is created the first time a plate shows threat %, the same way as the focus letter (ns.EnsureThreatPctText), andClearUnitonly hides it on recycle if it was shown.UNIT_THREAT_LIST_UPDATEfor target/focus,PLAYER_TARGET_CHANGED,PLAYER_FOCUS_CHANGEDandPLAYER_REGEN_ENABLED. It is registered only while the option is on, and restored at login only on Forever.How was it tested?
WoW Forever client, open world, solo, tanking mobs:
issecretvalue: status and percent are secret on nameplate units, and readable on target.Not yet tested:
Screenshots
WoW Forever, open world, solo tanking, both readouts at Inside Right. The nameplate shows
100%under the health %, and the target frame shows100%beside it, both in the has-aggro color.There is no before image, since this adds a new element.
Checklist
UpdateHealthColor, and no FontString exists until a plate first shows threat %. Unit frames build and register nothing until enabled.HookScript/hooksecurefunconly, neverSetScripton Blizzard frames. All state lives on EUI's own plate and unit frames.