promotional bannermobile promotional banner

FCUI - ForeverClassicUI

Restore the classic Vanilla WoW interface in WoW Forever with modular, toggleable UI elements.
Back to Files

Forever Classic UI v0.1.0 Beta 5

File nameForeverClassicUI-v0.1.0-beta.5.zip
Uploader
tynas_tynas_
Uploaded
Sep 18, 2026
Downloads
585
Size
83.7 KB
Flavors
ClassicForever
File ID
8910737
Type
B
Beta
Supported game versions
  • 1.60.1
  • 1.15.9

What's new

## Forever Classic UI 0.1.0 Beta 5

The last three modules -- Classic Party Frames, a Classic Minimap and Classic
action bar art -- and a fix to how FCUI takes Blizzard's frames out of the
layout, found by reading how another addon that actually runs on Forever
refuses to do what FCUI was doing.

Every module in the plan now exists.

### Fixed

- **FCUI no longer re-parents a frame Edit Mode owns.** This is the important
  one, and it affects the player frame and the target frame that shipped in
  Beta 4 turned on by default. `EditModeSystemMixin:OnSystemLoad` replaces five
  of a frame's own methods -- `SetPoint`, `ClearAllPoints`, `SetScale`,
  `SetShown` and `Hide` -- with Blizzard's. Re-parenting such a frame taints it,
  and Blizzard's own repositioning is then blocked the next time it happens in
  combat. BetterBlizzFrames hit exactly this on `PetFrame` and documents it:
  `ADDON_ACTION_BLOCKED` on `ClearAllPointsBase`. FCUI's restore path was the
  worse half, calling four of those five in a row at the precise moment the
  player was asking for their native UI back.

  Such frames are now neutralised with `SetAlpha(0)` and `EnableMouse(false)`,
  the two useful methods Edit Mode does not replace, and nothing else is
  touched. Nothing is re-parented, re-anchored, re-scaled, hidden or shown.
  Restoring puts back two numbers.

  Whether a frame is Edit Mode's is **probed on the frame**, not guessed from
  the client version, so a client without Edit Mode keeps the behaviour it has
  always had, unchanged. No offline layer could have caught this:
  `ADDON_ACTION_BLOCKED` is not a Lua error, so it fails no `pcall` and no
  syntax check.

- `/fcui probe` now reports, per native frame, which of the three strategies it
  resolved to. A tester reporting `alpha` against `PlayerFrame` on Forever is
  what confirms the fix landed.

### Added

- **Classic Party Frames.** The Vanilla plate, the Vanilla bar geometry, the
  dark backing behind the bar cluster, the party flash when a member is your
  target, and the portrait debuff overlay -- all transcribed from Blizzard's own
  `PartyFrameTemplates.xml`.

  **FCUI restyles Blizzard's party frames rather than replacing them**, which is
  the opposite of what every other unit-frame module here does. A party frame's
  job is to be clicked, and Blizzard's are secure buttons: left click targets,
  right click opens the unit menu, and the secure state driver keeps them
  correct through a roster change mid-combat, which addon code is not allowed to
  do. A replacement that looked right and could not be clicked would be a
  regression dressed as a feature.

  So targeting, menus, roster handling, auras, pets, ready checks and offline
  status all stay Blizzard's and keep working. FCUI supplies the look. The
  module listens to four events instead of the twenty-one a replacement would
  have needed.

  Every write is captured before it happens and reversed when you switch back to
  Forever -- no `/reload`. A region whose original state cannot be read cleanly
  is left alone entirely rather than changed in a way FCUI could not undo.

- **Classic Minimap.** The Vanilla ring around the map, the Vanilla zone-name
  strip, and Vanilla art on the zoom buttons. Both crops are Blizzard's own
  values, read out of Classic Era's `Minimap.xml` rather than measured by eye.

  The catch, and the reason this module re-applies itself: **Forever rewrites
  its minimap skin from a CVar callback.** Its `Camelot/Skin.lua` registers
  against `rotateMinimap` and re-sets the ring's atlas and size whenever you
  toggle map rotation. Anything applied once and left alone would be undone the
  first time a player touched that setting. FCUI re-applies from a post-hook on
  `SetAtlas` and from `CVAR_UPDATE`, each covering the other's gap.

  **Nothing is resized.** Forever's map is sized from atlas data by Blizzard's
  own code, inside a cluster that is both an Edit Mode system and a
  self-resizing layout frame. Making it Vanilla's 140px would mean fighting both
  on every rotation change. The Vanilla art is fitted to Forever's dimensions
  instead, so the ring is very slightly wider than it is tall.

- **Classic action bar art.** The Vanilla dwarf-stone bar under your action
  buttons, the Vanilla gryphons at both ends, Blizzard's retail frame and
  divider strips faded out.

  **Art only, and that is the whole design.** "Classic action bars" sounds like
  it means replacing them. It cannot: action buttons are secure buttons, an
  addon may not move, hide or re-anchor them in combat, and a replacement button
  cannot cast anything without being a secure button itself. What *is* possible
  is that Blizzard's frame art is a handful of ordinary unprotected textures
  sitting on that protected frame, and swapping a texture is not a protected
  action. So every button stays exactly where Blizzard put it and only the
  scenery around them changes.

  The stone follows the bar's width rather than being fixed, so rescaling the
  bar in Edit Mode does not stretch it.

### Notes

**If you are updating from Beta 4, do so.** The Edit Mode fix above affects the
player frame and target frame, which Beta 4 shipped turned on by default.

**All three new modules default to Forever**, so installing this changes nothing
until you opt in, and all three are offered on **Forever and Retail only**.
Classic Era and Mists already draw the Vanilla party frames, minimap border and
bar art themselves, so the Classic button is greyed out there. That is decided
by asking the client what it actually draws, never by checking a version number.

**None of the three moves anything.** They restyle Blizzard's own frames in
place, which is what keeps every clickable thing clickable. Your party frames,
minimap and action bar stay where Edit Mode puts them, at Forever's spacing and
size. "Classic" here means the Vanilla look, not the Vanilla layout.

Switching any of them back to Forever restores Blizzard's art with no `/reload`.
A region whose original state cannot be read cleanly is left alone entirely
rather than changed in a way FCUI could not undo.

Per module:

- **Party frames** -- after a vehicle transition *during combat*, the bars keep
  Blizzard's geometry under the Vanilla plate until combat ends, then correct
  themselves. Moving them mid-combat is refused by the game, and the workaround
  costs more than the defect.
- **Minimap** -- Forever's zoom buttons stay hidden until you hover the map. FCUI
  gives them Vanilla art but does not change when they appear.
- **Action bars** -- only two of Vanilla's four stone strips are used: the two
  that carried the twelve button slots. The other two held the bag slots and the
  micro menu, which on Forever are separate systems living elsewhere.
- **Action bars** -- hiding them disables the twelve buttons' mouse handling as
  well as the bar's. Hiding a frame does *not* disable its children, and an
  invisible bar you can still click by accident is worse than one you can see.

The `bags` setting is removed. Bags were cancelled, not deferred.

### Still unverified

Said plainly, because it has not changed: **none of this has ever run in a real
WoW client.** Every measurement is transcribed from Blizzard's own published UI
source and checked against it automatically, but no offline layer can open the
game. Three things in this release are most likely to be wrong, and all three
are visual:

- Whether the party frames' bar masks really come off. A leftover mask would
  crop the Vanilla bars at both ends.
- Whether the minimap ring looks noticeably oval. It is fitted to Forever's
  frame rather than the map being resized, which costs about 5% of aspect.
- Whether the button slots drawn in the Vanilla stone line up with the real
  action buttons. Vanilla's art was made for Vanilla's button spacing.

Run `/fcui probe`, `/reload`, and send the `lastProbe` block from your WTF
folder. It now reports which strategy FCUI resolved for every Blizzard frame it
touches, which is the one thing that confirms the Edit Mode fix landed.

## Forever Classic UI 0.1.0 Beta 4

Two new Classic panels, and the first round of fixes driven by real in-game
feedback on other Forever addons rather than by offline analysis alone.


### Added

- **`/fcui probe`.** A diagnostic dump written to SavedVariables as well as
  chat. It reports the client build, every capability flag as *detected* rather
  than as assumed, which native frame name FCUI actually resolved for each
  module, each module's mode and supported modes, whether every texture the
  addon draws with exists in this client's data, and a three-deep tree of the
  player frame, target frame and cast bar with texture paths. Run it, `/reload`,
  and send the `lastProbe` block from the WTF folder. This closes the project's
  biggest gap: the offline layers prove FCUI matches Blizzard's published
  source, but none of them can run the real Forever client.

### Fixed

- **The frame art now draws over the bars, as Vanilla does.** The bevel around
  each health and mana bar is part of the plate, and in Vanilla the bar ends run
  underneath it. FCUI drew the bars on top instead, which is the retail look and
  left them sitting flat on the art with their ends showing. The art now lives
  on its own child frame above the bars, with frame levels set explicitly --
  which is Blizzard's own structure, not a workaround: Classic Era's
  `TargetFrame.xml` puts the art on `$parentTextureFrame` and pins the bars down
  with `useParentLevel="true"`. Same fix for the target-of-target plate.
- **The cast bar border no longer sits under the fill.** Blizzard's cast bar
  template *is* the status bar and carries its border, icon and spark as its own
  textures at sublevels above the fill. FCUI hung them off a parent frame, so
  the fill painted over the border's inner bevel.
- **Classic nameplates no longer break Blizzard's nameplates on Forever.**
  FCUI used to set the `nameplateStyle` CVar itself. On a client that guards
  unit health behind secret values, that fires Blizzard's own CVar callback
  from addon code, which taints it — and tainted code may no longer compare
  those secrets, so every nameplate errors half-built. FCUI now asks you to
  type `/console nameplateStyle 6` once instead. Chat commands run untainted
  and the value is saved with your character, so it is a one-time action.
  This was the only FCUI module that would have failed outright on Forever.
- **FCUI no longer writes a field onto Blizzard's frames.** The suppression
  flag used when hiding a child frame lived on Blizzard's frame. The same
  bookkeeping now lives in a table of FCUI's own, which keeps FCUI clear of the
  question entirely on a client where tainting Blizzard's frame code is fatal.
- **Forbidden frames are no longer treated as usable.** A forbidden frame
  answers a name-and-type check perfectly well and then raises a Lua error the
  moment it is used. Every native frame FCUI resolves is now checked with
  `IsForbidden` first.
- **Secret values can no longer poison a restore.** Anchors captured when a
  native frame is parked are read through a guard that drops values the client
  refuses to expose. Previously a secret anchor would have been stored without
  complaint and thrown later, inside the restore path — at the exact moment the
  user was trying to get their native UI back. An anchor that cannot be read
  cleanly is now dropped, and Blizzard's own anchors are left alone instead.
- A native frame that becomes unreachable while parked is reported and released
  rather than retried forever.

### Added — the two Classic panels

Both default to Forever until they have been seen in a real client, so
installing this changes nothing until you opt in.

- **Classic Spellbook.** The Vanilla parchment book, transcribed from Blizzard's
  own `SpellBookFrame.xml`, drawn from live game data: twelve slots a page in
  two columns, skill-line tabs down the right edge, ranks, passives, cooldowns,
  real tooltips, drag to an action bar and click to cast. No spell list ships
  with the addon; everything comes from `C_SpellBook`.
- **Classic Quest Log.** The Vanilla book, list above detail in one window, the
  way Vanilla actually did it. Zone headers collapse and expand, quests carry
  their level and difficulty colour, tracking drives Blizzard's own watch list,
  and Abandon goes through Blizzard's confirmation.
- On Forever the quest counter reads out of **40**, read from
  `C_QuestLog.GetMaxNumQuestsCanAccept()` rather than written into the addon.
  The old 20-quest cap appears nowhere.
- `P` and `L` keep working. In Classic mode they open FCUI's book; in Forever
  mode they run Blizzard's own code untouched.

### Notes

- Both panels are offered on Forever and Retail only. Classic Era and Mists
  lack the API and already ship these exact windows themselves, so FCUI leaves
  them alone there and the Classic button is greyed out.
- Neither panel offers Hidden. A spellbook or quest log you cannot open is not
  a UI preference.
- Existing settings are preserved: the two new entries are simply added to your
  profile as Forever.

## Forever Classic UI 0.1.0 Beta 3

Every module now supports Classic mode.

### Added

- **Classic Target of Target.** The Vanilla plate, transcribed from Blizzard's
  own template. It rides the bottom-right corner of the Classic target frame
  and follows it when you move it. Set the target frame to Forever and the
  plate keeps its own position instead of disappearing, so you can mix the two.
- **Classic Nameplates.** FCUI does not draw nameplates. Every supported client
  already ships a Classic nameplate style of its own, so this mode selects it
  and Forever mode restores whatever you had before, remembered across reloads.

### Note

Turning nameplates back to Forever restores your original style. Disabling the
addon outright does not: a setting outlives the addon that changed it. Switch
the module back first, or change the style in Blizzard's own options.

## Forever Classic UI 0.1.0 Beta 2

Visual fidelity pass. Every measurement in the Classic frames is now
transcribed from Blizzard's own Vanilla UI source instead of estimated.

### Fixed

- The Classic player frame drew no art at all. It referenced a texture that
  does not exist; Vanilla draws both unit frames from the same file and
  mirrors the player.
- The elite / rare dragon painted a second full frame over the target's health
  and mana bars. It now swaps the base texture, as Blizzard does.
- Portrait, health and mana bars, name and level were all a few pixels off on
  both frames, and the two bars had a gap where Vanilla overlaps them.
- The cast bar border sat centred on the fill instead of above it, and the
  spell icon was undersized.

### Added

- Cast bar spark, cast bar shield for non-interruptible casts, and the correct
  artwork for rare-elite and minus (critter) targets.

## Forever Classic UI 0.1.0 Beta

Initial public beta release of **Forever Classic UI**.

### Included

- Modular Classic / Forever / Hidden UI system
- Classic Player Frame
- Classic Target Frame
- Classic Player Cast Bar
- Classic Target Cast Bar
- Configuration panel
- SavedVariables support
- Multi-client compatibility layer

### Experimental

- WoW Forever compatibility
- Classic UI geometry and positioning
- Blizzard frame replacement behavior

### Not yet available in Classic mode

- Target of Target
- Nameplates

These modules currently support **Forever** and **Hidden** modes only.

### Known limitations

- Visual rendering has not yet been validated inside the WoW Forever client.
- Some in-client texture paths still require verification.
- Protected frame / taint behavior requires in-game testing.

Feedback and bug reports are welcome.

This mod has no additional files