promotional bannermobile promotional banner
premium banner
The last castbar addon you will need in World of Warcraft.

Description

PayPal Ko--fi Patreon

CurseForge Wago Github

Changelog Discord

Ultimate Castbars

Ultimate Castbar aims to be the last castbar World of Warcraft addon you’ll ever need. It is a highly configurabl castbar addon for World of Warcraft (Retail), focused on deep layout control, rich text/tagging, and advanced interruptibility/kick-aware visuals.

drawing

AllCastbarExample1

Sources of inspiration and credits

Thanks to Xepheris for DisintegrateTicks on which was based dynamic disintegrate ticks, donate here if you liked that feature.

Thanks to obk_wow for Universal Frame Anchor on which was based the frame picker, send some love his way if you liked that feature.


Features

Highlights

  • Per-unit castbars for player, target, and focus with independent enable/disable and full settings trees.
  • Supports normal casts, channels, and empowered casts.
  • Powerful multi-tag text system with custom formula parsing and performance-aware updates.
  • Extensive style controls (textures, borders, gradients, class/ombre/custom color modes).
  • Advanced uninterruptible + kick-aware visuals (overlays, “until kick” fills, tick markers, dynamic alpha).
  • Class-specific channel tick tooling + player spell blacklist/whitelist.
  • Deep Evoker support: empower stage visuals + dynamic Disintegrate tick logic (Devastation).
  • Robust preview simulator that reuses the real cast pipeline.
  • Safe-ish Blizzard castbar coexistence (hide/show, size/position/scale, restore baseline).
  • AceDB profiles with import/export, schema filtering/normalization, and copy-between-units tools.

Installation

Automatic install

  1. Use either Curse or Wago and their corresponding OS apps

    • Search for “Ultimate Castbars” and click “Install” (Curse) or “Add to collection” (Wago).
    • Follow the prompts to select your WoW installation and desired options.
    • The app will handle downloading, installing, and updating the addon for you with only a few clicks.

Manual install

  1. Download the repository as a ZIP (or a release archive if you publish releases).

  2. Extract the UltimateCastbars sub-folder into your WoW AddOns folder (the sub-folder should have a file called UltimateCastbars.toc inside it):

    • Windows: World of Warcraft\_retail_\Interface\AddOns\
    • macOS: World of Warcraft/_retail_/Interface/AddOns/
  3. Launch the game and enable the addon in the character select “AddOns” menu.


Quick Start

  1. Log in and open options with: /ucb
  2. Enable the bar(s) you want (Player/Target/Focus).
  3. Use the Preview buttons to spawn test casts (normal/channel/empowered).
  4. Adjust anchoring and offsets until the bar sits where you want it.
  5. Customize text tags, textures, borders, and interruptibility visuals.

Configuration Overview

Per-Unit Bars

Each tracked unit (player, target, focus) has its own settings tree:

  • Enable/disable per unit
  • Preview controls per unit
  • Copy settings from another unit bar
  • Tabs for general layout, text, style, uninterruptible/kick visuals, visibility, class settings, and Blizzard default castbar handling

Layout, Anchoring, and Size Sync

The General tab provides deep positioning controls:

  • Anchor to any frame by name (default UIParent or custom frame)
  • Separate anchorFrom / anchorTo point pairing
  • X/Y offsets
  • Frame picker helper (hover-to-identify frames)
  • Late-loading frame resolution (retry + delay/interval settings)
  • Optional size sync to another frame:
    • Sync width and/or height, with offsets
    • Min width/height
    • Options to include border thickness in effective sizing

General1

Icon layout:

  • Show/hide icon
  • Anchor icon around the bar (sides/corners/top/bottom)
  • Offsets
  • Sync icon size to bar height or set explicit width/height

General3


Text Tags and Tokens

Ultimate Castbars includes a custom text engine:

  • Multiple text entries per bar (textList)
  • Per-tag enable/disable + display name
  • Per-tag type: Cast, Interrupted, Cancelled
  • Per-tag show rules:
    • By cast type (normal/channel/empowered)
    • By effect state (show on interrupted/cancelled)
  • Per-tag font/size/outline/shadow/color, with optional shared overrides
  • Performance model:
    • Static (no updates after setup)
    • Semi-Dynamic (updates on cast/state change)
    • Dynamic (updates every frame, e.g., timers)

Text2

Supported token list

Tokens may support an optional :X suffix for limits (where applicable).

Token Meaning
[sName] / [sName:X] Spell name
[kName] / [kName:X] Interrupting unit name (interrupted text)
[dTime] / [dTime:X] Total duration
[dPerTime] Total duration percent (100)
[rTime] / [rTime:X] Remaining time
[rPerTime] / [rPerTime:X] Remaining percent
[rTimeInv] / [rTimeInv:X] Elapsed time
[rPerTimeInv] / [rPerTimeInv:X] Elapsed percent
[nIntr] / [nIntr:X] Uninterruptible-only text (also controls visibility)
[nIntrInv] / [nIntrInv:X] Interruptible-only text (also controls visibility)

Text3


Style and Visuals

  • Castbar texture, background texture
  • Border textures for bar + icon
  • Color modes:
    • Class Colour
    • Ombre (Rainbow) progression
    • Custom Colour (optional gradient start/end)
    • Target/Focus can use separate enemy NPC colors (where applicable)
  • Background toggles + alpha
  • Custom rectangular borders with:
    • thickness
    • per-side offsets
    • synced/independent icon border options

CastbarExample1

Style1


Interruptibility and Kick Awareness

A major focus area:

Uninterruptible casts (notInterruptible):

  • Hide main bar, or alter transparency
  • Optional icon inclusion in transparency change
  • Custom overlay fill/texture + background styling
  • Separate border styling for uninterruptible states (bar + icon)

Kick / interrupt availability awareness:

  • Hide bar until your interrupt becomes available
  • Change transparency when interrupt is on cooldown/unavailable
  • Optional dynamic alpha updates during the cast as cooldown changes
  • Tick marker for “kick timing”
  • “Until kick” fill region with optional overlay/background

Uninterruptible


Other Features

  • Spell Queue Window (player)
    • Read/write SpellQueueWindow CVAR
    • Optional custom ms duration
    • Visual overlay on castbar (per cast type)

CastbarExample1

  • Channel tick markers
    • Global tick visuals (color/width, optional texture)

CastbarExample1Channel

  • Invert / mirror behavior
    • Per cast type: invert fill direction, mirror rendering using clipped frames
  • Interrupted / cancelled overlays
    • Per effect type + cast type
    • Custom textures/colors + display duration

AllCastbarExampleCancelled1

OtherFeatures1

OtherFeatures2


Class Settings (Ticks + Filters)

  • Class navigation UI for all classes (with class-colored labels)
  • Player channel spell tick table (per spell, per spec aware UI)
  • Observed units (target/focus) have class defaults and spec placeholders for channel ticks
  • Player spell filter:
    • Blacklist or whitelist mode
    • Add by spell picker or spell ID
    • Applied to player castbar display logic

ClassChannelingOptions

ClassBlackListWhitelist


Evoker Empower + Disintegrate Support

  • Dynamic Disintegrate tick logic (Devastation):
    • Tick timing adapts to haste/talents/channel updates
    • Fallback to static tick settings if disabled

Evoker1

  • Empower visuals:
    • Stage tick marks and segment backgrounds (dynamic)
    • Manual tick placement (percent-based) with reset
    • Per-stage tick and color control
    • Optional textures

Evoker2


Preview Tools

Per unit:

  • Preview normal cast, channel, and empowered casts
  • Looping previews (auto restart)
  • Choose preview spells from detected spellbook lists
  • Configure duration, empower stage count, “not interruptible”
  • Drag preview bar to reposition and write offsets back to settings

CopyPreview


Blizzard Castbar Integration

  • Show/hide default Blizzard castbars while using custom bars
  • Optionally show a static bar when enabling for comparison/testing
  • Control default bar size/position/scale (or leave Blizzard-managed)
  • Captures and restores Blizzard baseline positions with “late restore” to reduce drift
  • Re-applies hide/show if Blizzard attempts to show frames again

DefaultCastbar


Slash Commands

  • /ucb, /ultimatecastbars, /uc — Open main UI
  • /pcb — Player castbar settings
  • /tcb — Target castbar settings
  • /fcb — Focus castbar settings
  • /ucbprof — Profiles tab
  • /ucbdebug — Start debug mode
  • /ucbdebugstop — Stop debug mode
  • /rl — Reload UI

Profiles, Import/Export, and Copy Tools

  • AceDB profile management (choose/copy/reset/delete)
  • Optional LibDualSpec integration (if present)
  • Import/Export:
    • Export selected/current profile as a string
    • Import into current or existing profile
    • Import as a new profile
    • Uses AceSerializer + optional LibDeflate for compression/printable encoding

Import

Export

  • Copy settings between units:
    • Copy selected categories (general/text/style/visibility/uninterruptible/other/class)
    • Replaces array-like settings cleanly (e.g., text lists)

CopyPreview2

Debug Mode

Debug mode is intended for addon conflict isolation:

  • Captures currently enabled addons (excluding Ultimate Castbars)
  • Disables them for the current character and reloads UI
  • Stores the list and can restore/reload later

Use carefully—this is disruptive by design.


Dependencies

This addon uses (directly or via embedded libs):

  • Ace3
  • AceGUI-3.0-SharedMediaWidgets
  • CallbackHandler-1.0
  • LibDataBroker-1.1
  • LibDualSpec-1.0
  • LibSharedMedia-3.0
  • LibDeflate

Support


Contributing

PRs welcome.

Suggested workflow:

  1. Fork the repo
  2. Create a feature branch
  3. Keep changes focused and documented
  4. Submit a PR with a clear summary and testing notes (client version, class/spec, steps)