Twintop's Resource Bar

Multi-class Resource Bar, based on my (Twintop's) previous Shadow Priest Insanity Bar WeakAura set from Legion.

Twintop's Resource Bar

A fully customizable resource bar for every class in World of Warcraft and World of Warcraft: Forever. Track your resources, ability costs, casts, health, and cooldowns in one place, with colors, text, and sounds that react to what is happening in combat.

TRB started life as Twintop's Insanity Bar WeakAura set for Shadow Priests during the Legion expansion.

GitHub release MIT License Issues Issues Issues

ko-fi

Issues by Class

World of Warcraft (Midnight)

Issues Issues Issues Issues Issues Issues Issues Issues Issues Issues Issues Issues Issues Issues

World of Warcraft: Forever

Issues Issues Issues Issues Issues Issues Issues Issues Issues Issues

Supported Game Versions

Game Classes Status
World of Warcraft (Midnight) All 13 classes and 40 specializations Full support
World of Warcraft: Forever All 9 classes Early development

Both versions are built on the same core, so everything under Features is available in each. What differs is listed under Differences Between Versions.

Features

Bars

  • Primary resource: Mana, Rage, Energy, Focus, Runic Power, Fury, Insanity, Astral Power, or Maelstrom, with an optional lower maximum and an overcap warning.
  • Secondary resources: Combo Points, Holy Power, Runes, Soul Shards, Essence, and other node-based resources, with per-node colors and recharge progress.
  • Druid forms: Mana, Rage, Energy, Astral Power, and Combo Points bars follow your shapeshift form.
  • Health: absorb, healing absorb, and incoming heal overlays.
  • Cast bars: player, target, focus, and pet cast bars with channel ticks, empower stages, latency, and an uninterruptible shield. Target and focus cast bars work on enemy casts.
  • Pet bars: your pet's health and resource.
  • Other bars: Global Cooldown, Fatigue, and Breath timers.

Threshold Lines

Mark the cost of your abilities on the resource bar, colored by whether each one is usable, with optional icons and a sound when an ability becomes usable. You can also add your own lines to any bar, at a fixed value or as an offset from the maximum.

Color Indicators

Change a bar's fill, border, background, or end cap color, or add an animated border glow, while a buff, proc, or resource state is active. Indicators follow a priority order you set, and custom indicators can follow any buff, target debuff, trinket buff, or combat potion in your Cooldown Manager layout.

Bar Text

Add as many text entries as you like to any bar, built from live variables ($resource, $haste, $castTimeRemaining, and many more), spell icons, and conditional logic. The editor has a searchable variable browser that inserts at the cursor. See the Bar Text Customization wiki for the full reference.

Audio Cues

Play a sound on procs, cooldowns, usable thresholds, and resource counts, using any LibSharedMedia sound and your choice of output channel.

Visibility

Show or hide each bar by combat, group, instance, mount, target, PvP, and resource or health level. Always-hide rules take priority over everything else, and hidden bars can fade out and keep their space in the layout.

Layout and Appearance

  • Size, fill direction, and growth direction per bar.
  • Anchor bars to each other, the Cooldown Manager, or any named frame, or place them in Edit Mode with separate positions for each layout.
  • LibSharedMedia textures and fonts, gradients, end caps, and border glows.

Profiles and Sharing

  • Per-specialization profiles, grouped into named sets you can use across characters.
  • Global Options apply shared settings to every specialization at once.
  • Export and import single sections or whole specializations, copy settings between specializations, or share through the Wago Companion app.

Cooldown Manager

Some tracking reads from Blizzard's Cooldown Manager. Options and bar text variables that depend on it carry a CDM badge, and need the tracked ability added to one of your Cooldown Manager viewers.

Differences Between Versions

World of Warcraft (Midnight)

Most specializations track their major cooldowns and procs, and many get dedicated bars for their own mechanics, including:

  • Death Knight: Bone Shield and Coagulating Blood (Blood)
  • Demon Hunter: Void Metamorphosis and Collapsing Star (Devourer)
  • Druid: Ironfur (Guardian)
  • Evoker: Dragonrage (Devastation) and Ebon Might (Augmentation)
  • Hunter: Tip of the Spear (Survival) and Feign Death
  • Mage: Arcane Salvo (Arcane), Fire Blast charges (Fire), and Shatter (Frost)
  • Monk: Stagger (Brewmaster)
  • Priest: Power Word: Radiance (Discipline), Holy Words and Lightweaver (Holy), and Angelic Feather
  • Shaman: Elemental Blast buffs (Elemental)
  • Warrior: Whirlwind charges and Enrage (Fury), and Defensives (Protection)

Shadow Priest, Balance Druid, and Elemental Shaman can also show a secondary Mana bar.

World of Warcraft: Forever

Forever support is in early development, and class-specific tracking is still being added. Forever also has a few things of its own:

  • Main hand, off hand, and ranged swing timer bars.
  • Abilities use your highest known spell rank.
  • Bar text stat variables match the Forever character sheet, such as Spirit, spell power, defense, and resistances.

Localization

TRB is being translated into Simplified Chinese (nearly complete), German (partial), and French (started). If you would like to help translate, join the Discord server and let Twintop know.

Support

Report issues on GitHub or join the discussion on Discord.

Development

One Core serves both game versions, and each version (a flavor) brings its own class modules. Mainline's TOC is TwintopInsanityBar.toc at the repository root, so a checkout works in place as a _retail_ install. Forever's TOC is Flavors/Forever/TwintopInsanityBar.toc, and the packaged zip puts it at the addon root.

Core/              Class-agnostic engine. Nothing here may name a class, spec, or class bar (build/lint-core.ps1).
Flavors/<Flavor>/  Manifest.lua (identity and class/spec registry), Migrations.lua, News.lua, load lists,
                   and ClassModules/ (spell sets, bar types, spec descriptors, runtime, and options).
Libs/ Images/ Sounds/ StatusBars/   Shared libraries and media.
build/             Packaging, client linking, lint, and smoke tests.

Shared code learns about a spec only from its spec descriptor (Core/Classes/SpecDescriptor.lua) or the manifest's registry, never from a class id in Core. Client setup, smoke tests, and the release tagging scheme are in build/README.md.

Twintop's Resource Bar Team

profile avatar
Owner
High Crafter tier icon
  • 2
    Followers
  • 2
    Projects
  • 1.2M
    Downloads
Donate

More from Twintop