promotional bannermobile promotional banner

Parrot 3

Fork of Parrot 2 - Floating Combat Text of awesomeness.
Back to Files

Parrot 3 - v3.0.0

File nameParrot 3 - v3.0.0.zip
Uploader
NeRggYNeRggY
Uploaded
Sep 14, 2026
Downloads
19
Size
644.6 KB
Flavors
MoP ClassicRetailClassic TBCClassic
File ID
8878544
Type
R
Release
Supported game versions
  • 12.1.5
  • 12.1.0
  • 5.5.4
  • 2.5.6
  • 1.15.9

What's new

v3.0.0 (2026-09-14)

The first Parrot 3 release. Parrot 3 is a maintained fork of Parrot 2 by Neb, itself based on the original Parrot by ckknight. Fork maintainer: NeRgY. Licensed under the GNU LGPL v2.1, the same as upstream.

1. One addon, four game versions

Parrot 2 shipped as two disconnected builds. Parrot 3 merges them into one addon with a dedicated TOC and a fully separate code tree per version:

  • Mainline — Retail 12.1.0 / 12.1.5 (Interface 120100, 120105)
  • Vanilla — Classic Era 1.15.9 (11509)
  • TBC — TBC Classic 2.5.6 (20506)
  • Mists — MoP Classic 5.5.4 (50504)

Libs, Locales and locales.xml are shared. All internal names stay "Parrot", so your ParrotDB settings and profiles carry over unchanged. Mists also takes the Retail trigger system (spec-based default triggers, focus unit, spell overlay) with a C_Spell fallback for MoP's older spell API. Removed the leftover Classic/ and Retail/ source folders.

2. Licensing

LICENSE.txt (LGPL v2.1) and X-License kept. Credits kept: ckknight, profalbert, nebularg; Author / X-Fork-Maintainer set to NeRgY. Upstream Curse / WoWI IDs removed. Every changed file carries an LGPL v2.1 change notice.

3. Bug fixes and optimisations

  • Retail: screen flash restored — the flash frame lost its BackdropTemplate in Neb's retail build, which errored on 9.0+. Backdrop alpha 255 → 1 everywhere.
  • Item name / icon fall back to the link text when the client hasn't cached the item yet (Loot, Cooldowns, Point gains) instead of erroring or showing blank.
  • Combat-log handler: reject untracked events and irrelevant units before the flag math, and only build the info table once a check passes.
  • TriggerCombatEvent: the 5 runtime guards debug() + return instead of error(), so a bad call can't break event dispatch.
  • Display_Update only allocates the overlap list for overlapping styles.
  • Parrot:MigrateDB() — a versioned top-level database migration scaffold.
  • Parrot:Print() defined (AceConsole isn't embedded; Triggers.lua called it).

4. Client abstraction + error isolation

  • Parrot.API (Code/API.lua, one per client) — modules call Parrot.API.* for spell / item lookups instead of C_Spell / GetSpellInfo directly, so all the client differences live in one file. Also folds in the retail deprecation guards (IsUsableSpell, GetItemIcon, GetComboPoints) and the old MoP shim.
  • Parrot:SafeCall wraps the module lifecycle loops in pcall — one broken module can no longer break profile switching or the config window. /parrot errors shows what was caught.

5. Embedded libraries

  • Ace3 refreshed to current upstream (AceGUI r41, AceConfigDialog r93, AceDB r35, ...). Fixes the "bad argument #5 to SetText" error on the Anniversary clients.
  • LibDBIcon-1.0 r56 added for the minimap button.

6. AddOn-list metadata

All four TOCs: IconTexture, Group, localised Category, and AddonCompartmentFunc (retail minimap addon menu — left-click config, right-click toggle).

7. Minimap button

Parrot 2 registered a LibDataBroker launcher but bundled nothing to show it. Added LibDBIcon-1.0. Left-click config, right-click toggle. Show / hide under Settings → Minimap icon.

8. Slash sub-commands

/parrot or /parrot config — options. /parrot test — sample messages. /parrot toggle — enable / disable.

9. Settings tab and interface language

New Settings group (after General). The minimap toggle moved here. New Language selector — Automatic (client language) by default, or any of the 11 shipped languages; changing it prompts for a reload. PreLocale.lua / PostLocale.lua set GAME_LOCALE around locales.xml so AceLocale loads the chosen language.

10. Modern options skin

A cosmetic skin for the AceGUI widgets — AceConfigDialog still builds and drives everything, so the "+" side tabs, dynamic option lists and live preview all keep working. Flat dark surfaces, a parrot-green accent, hairline borders, custom fonts, slim scrollbars. Custom filled checkboxes, a custom "+"/"-" expand toggle, a custom dropdown chevron (grey when disabled), an accent underline on the active tab, an accent bar on the selected side-tab, highlighted text fields with an accent focus state, green headings and control labels, and the empty bottom status strip removed. Each skinner runs in pcall.

11. Changelog / About panel

The two buttons at the bottom-left of the options window, and these two popups.

12. Tooling

.gitattributes (LF, vendored libs) and .luacheckrc.

Full technical changelog: CHANGELOG.md in the addon folder.

This mod has no additional files