promotional bannermobile promotional banner

ClassicFCT | Floating Combat Text

This is updated ClassicFCT aka Classic Floating Combat Text. This now allows you to adjust the amount of numbers on the screen at one time.
Back to Files

ClassicFCT M0.89

File nameClassicFCT.zip
Uploader
AcidBombAcidBomb
Uploaded
Oct 23, 2026
Downloads
7
Size
151.6 KB
Flavors
Classic TBCClassicTitan Reforged Classic
File ID
9303326
Type
R
Release
Supported game versions
  • 3.80.2
  • 2.5.6
  • 1.15.9

What's new

M0.89 Oct 20, 2026

Combat text
- Fixed merged events mislabelling a hit as a miss. A merged group is now shown as a miss only
  when every event in it is a miss, so a real hit is never relabelled or dropped by the
  merge, and the result no longer depends on which event arrived last.
- Fixed damage, heals and misses of different kinds being merged into one number: the merge
  bucket now separates them by event type and by miss flag.
- Event handling is now contained. A failure in one event no longer aborts the rest of the
  frame, and the frame release step always runs, so a single error can no longer leave
  numbers frozen on screen and grow without bound.
- Fixed the rolling average dropping one entry per cleanup pass and never ageing out old
  entries outside combat, which made the "Hide Below Average Threshold" filter drift.
- Fixed the "Hide Below Blizzard Combat Text" option doing nothing on every client: the
  option used CVar names that do not exist, and the guard around them turned the failure
  into silence. The names are now resolved at runtime and the option works.
- The combat log is now read through the current API where the client provides it, with a
  fallback to the older one, so the addon keeps working as those older APIs are retired.
  A missing combat log is now reported once instead of failing silently.
- Fixed a spell event with no name being shown as an auto-attack.
- Fixed the crit flag being read as "true" for a hit that was not a crit when the client
  delivers it as a number. Every hit would then be styled as a crit and the small-crit
  demotion would apply to all of them. The flag is now read as a boolean, so a client
  that delivers 0/1 and one that delivers true/false both behave correctly.
- Fixed "Max Simultaneous Numbers" leaving more numbers on screen than the limit allows
  when the limit was lowered while numbers were already showing.
- Fixed the preview numbers polluting the damage average while the options panel was open.
- Fixed the "Hide Blizzard Combat Text" state not re-syncing while no numbers were on screen.
- Numbers now use the client's own text scaling and measurement helpers instead of relying on
  a handful of client globals being present.

Options and presets
- Fixed the preset Save, Delete and Rename buttons keeping a stale state after a different
  preset was picked from the open dropdown. Deleting or renaming a built-in preset now says
  so instead of changing it behind your back.
- Fixed the built-in preset badge and the confirm dialog buttons showing in English on
  non-English clients.
- Fixed the options panel writing an empty value where a preset value should have been kept.
- Fixed the log dump helper returning the wrong slice of the log.
- The options panel no longer writes a global named "n", which could collide with another
  addon's.

Layout and performance
- The overlap resolver now skips frames where no text size changed, which removes the bulk of
  its cost when many numbers are on screen at once.

Options panel
- Fixed the off-target sliders being drawn on top of the text-position sliders, which made
  those settings unreadable and impossible to check. The "Dim Off-Target Text" checkbox
  stays where it was; the two sliders that control how much the off-target text is dimmed
  are now in their own section at the bottom of the panel.
- The options panel now sizes itself to its content, so the bottom of the panel is
  reachable instead of being clipped off.
- "Max Simultaneous Numbers" now defaults to 20 instead of unlimited. An unlimited number
  of numbers filled the screen and made the options panel unreadable. The slider still
  goes from 0 (unlimited) to 200, and a limit you set yourself is never changed.

Compatibility
- The four classic-family .toc files now declare their client's game type, so an
  unsupported classic client can no longer pick up the wrong one. The retail .toc is
  deliberately left unmarked so it keeps loading everywhere it does today.
- The restricted-combat check now reads the client version as well as the project id, so the
  options panel and the combat text agree on every client.

Options and presets
- The "text strata" setting now actually applies: it is set on the addon's own frame instead
  of being silently ignored, because the frame it was written for could never support it.
- Spells that a client reports with an id of 0 are now identified by name on TBC Anniversary
  and WotLK Titanforge as well as Classic Era, so they can be disabled by spell and given
  their own merge interval on every supported client.

Localization
- Every locale now carries the full set of strings. The animation name and the initial
  animation-status label, which previously fell back to English on every non-English client,
  are now translated.

Documentation and packaging
- Added the GPL v3 license, the LGPL v2.1 text for the bundled LibSharedMedia library, and
  third-party notices. The license of the bundled CallbackHandler library is not confirmed
  and is flagged as an open item in those notices.
- Added a packaging script that builds the release archive from an explicit file list, so
  no workspace file can end up in a published package, and verified the result is
  reproducible.
- The release check now covers the locale tables, the version metadata, the client flavor
  matrix and the packaging references, and derives the expected locale key count and the
  expected version from the files themselves instead of hard-coding them.
- Added a behavioural test suite that drives the addon against a stub client: the combat
  text pipeline, the secret-value guard, the merge rules, the number limit and the saved
  configuration are now covered on all five supported clients, where before they had no
  automated coverage at all.
- Added a mutation check that breaks one protected behaviour at a time and asserts the test
  suite catches each one, so a passing test run cannot be mistaken for a working addon.

This mod has no related projects