Meow 77147242f4 v6.2.0 - HoT Timer System Overhaul & Nameplate Fixes
HoT Timer fixes (Regrowth duration, Instant-HoT detection, SuperWoW UNIT_CASTEVENT support, HealComm compatibility), Nameplate zoom/flicker fixes, Druid Rip/Rake combo point tracking, Ferocious Bite refresh fix, energytick talent filter.

See README.md for full changelog.
2026-01-10 03:42:42 +01:00
2026-01-09 13:31:17 +01:00
2025-08-28 12:06:49 +02:00
2021-01-01 14:36:27 +01:00

pfUI - Turtle WoW Edition

Version Turtle WoW SuperWoW Nampower UnitXP

A pfUI fork specifically optimized for Turtle WoW with full SuperWoW, Nampower, and UnitXP_SP3 DLL integration.

This version includes significant performance improvements, DLL-enhanced features, and TBC spell indicators that work with Turtle WoW's expanded spell library.

Looking for TBC support? Visit the original pfUI by Shagu: https://github.com/shagu/pfUI


What's New in Version 6.2.0 (January 10, 2026)

🔮 HoT Timer System (libpredict.lua)

  • Regrowth Duration Fix - Corrected duration from 21 to 20 seconds (matching actual Turtle WoW spell duration)
  • GetTime() Synchronization - All timing calls now use pfUI.uf.now or GetTime() for consistent timing across all UI elements
  • Instant-HoT Detection Fix - Fixed Rejuvenation/Renew not being detected when cast quickly after Regrowth
    • Problem: spell_queue was overwritten before processing
    • Solution: Instant HoTs now processed immediately at cast hooks with current_cast tracking
  • SuperWoW UNIT_CASTEVENT Support - Precise Instant-HoT detection using UNIT_CASTEVENT
    • Only fires on successful casts (not attempts), eliminating false triggers from GCD/range failures
    • Graceful fallback to hook-based detection for players without SuperWoW
  • HealComm Compatibility - Full compatibility with standalone HealComm addon users
    • 0.3s delay compensation for Regrowth messages
    • Duplicate detection (0.5s window) prevents double timers
  • PARTY Channel Support - HoT messages now sent to PARTY channel for 5-man dungeons

🎯 Nameplate Improvements (nameplates.lua)

  • Target Castbar Zoom Fix - Fixed current target castbar not showing when zoom factor is enabled
    • Multi-method target detection: alpha check, istarget flag, and zoomed state
    • Proper GUID lookup for target castbar info (was incorrectly using string "target")
  • Flicker/Vibration Fix - Eliminated nameplate flicker near zoom boundaries
    • Alpha check changed from == 1 to >= 0.99 (floating-point fix)
    • Zoom tolerance changed from >= w to > w + 0.5 (prevents oscillation)
  • libdebuff Nil-Checks - Added safety checks to prevent errors when libdebuff data is unavailable

Spell Queue (nampower.lua)

  • Error Handling - Added pcall wrapper for GetSpellNameAndRankForId to prevent error spam when spell ID not found

🐱 Druid Improvements

  • Rip Duration (libdebuff.lua) - Now dynamically calculated based on combo points (10/12/14/16/18 seconds for 1-5 CP)
  • Ferocious Bite Refresh (turtle-wow.lua) - Now refreshes both Rip AND Rake (previously only Rip), preserving existing duration

Energy Tick (energytick.lua)

  • Talent/Buff Energy Filter - Ignores energy gains from talents/buffs (e.g., Ancient Brutality and Tiger's Fury) to prevent tick timer reset from non-natural energy gains

What's New in Version 6.1.1 (January 8, 2026)

🐛 Bugfixes

  • Chat Level Display Fix - Fixed targeting high-level players overwriting known level with -1. Now shows "??" for unknown levels instead of -1
  • Nameplate Level Fix - Nameplates now use stored level from database after reload instead of showing "??"
  • Nameplate Level Color - Level color now correctly uses difficulty color when loaded from database

⚙️ Config Changes

  • Chat Player Levels - Now disabled by default (was enabled)

What's New in Version 6.1.0 (January 8, 2026)

🐛 Bugfixes

  • 40-Yard Range Check Fix - Fixed range check not working for raid/party frames due to throttle variable conflict (this.tick vs this.throttleTick)
  • Aggro Indicator Fix - Fixed aggro indicator not displaying properly on raid/party frames (same throttle issue)
  • Aggro Detection Cache - Improved aggro cache to only cache positive results, allowing instant detection when aggro changes while maintaining performance
  • Raid Frames with Group Display - Fixed HP/Mana not updating when "Use Raid Frames to display group members" was enabled without being in a raid
  • SuperWoW nil-check - Added nil-check for SpellInfo in superwow.lua to prevent errors when SuperWoW is not installed
  • Missing Event Registration - Added missing events for raid/party frames: PARTY_MEMBER_ENABLE, PARTY_MEMBER_DISABLE, PLAYER_UPDATE_RESTING

🎨 UI Improvements

  • Share Button Warning - Shows message when Share module is disabled instead of doing nothing
  • Hoverbind Button Warning - Shows message when Hoverbind module is disabled instead of doing nothing

What's New in Version 6.0.0 (January 5, 2026)

🚀 Major Performance Improvements

  • Central Raid/Party Event Handler - Replaced per-frame event registration with a centralized system using O(1) unitmap lookups instead of O(n) iteration. Reduces event processing from ~5,760 calls/sec to ~400 calls/sec in 40-man raids (97.5% improvement)
  • Raid HP/Mana Update Fix - Fixed race condition where unitmap wasn't rebuilt after frame IDs were reassigned, causing HP/Mana bars to not update when players swap positions
  • OnUpdate Throttling - Added configurable throttles to reduce CPU usage:
    • Nameplates: 0.1s throttle (target updates remain instant)
    • Tooltip cursor following: 0.1s throttle
    • Chat tab mouseover: 0.1s throttle
    • Panel alignment: 0.2s throttle
    • Autohide hover check: 0.05s throttle
    • Libpredict cleanup: 0.1s throttle

🔧 Castbar & Pushback System

  • Pushback Fix - Fixed spell pushback calculation: now correctly adds delay to casttime instead of start time, matching actual WoW behavior
  • Player GUID Caching - Caches player GUID on PLAYER_ENTERING_WORLD for efficient self-cast detection
  • Hybrid Detection System - Uses libcast.db for player casts (handles SPELLCAST_DELAYED events) and SuperWoW's UNIT_CASTEVENT for NPC/other player casts
  • 2-Decimal Precision - Castbar timer now displays with 2 decimal places (e.g., "1.45 / 2.50") for more precise timing

🐱 Druid Stealth Detection

  • Event-Based Detection - Replaced polling-based stealth detection with event-driven system using UNIT_CASTEVENT and PLAYER_AURAS_CHANGED
  • Instant Cat Form Detection - Detects Cat Form via UNIT_CASTEVENT (spell ID 768) for immediate actionbar page switch
  • Smart Buff Scanning - Only scans buffs when actually needed (entering Cat Form), eliminates 31-buff scan every frame
  • Cached Variables - Caches stealth state to prevent redundant checks

🎯 Nameplate Improvements

  • Friendly Player Classification - Fixed friendly players being classified as FRIENDLY_NPC, now correctly uses FRIENDLY_PLAYER for proper nameplate coloring and behavior
  • Performance Throttle - 0.1s update throttle for non-target nameplates while keeping target nameplate updates instant

🆕 New Modules

Modules by jrc13245

  • nampower.lua - Nampower DLL integration module:

    • Spell Queue Indicator (shows queued spell icon near castbar)
    • GCD Indicator
    • Reactive Spell Indicator
    • Enhanced buff tracking
    • Requires Nampower DLL
  • unitxp.lua - UnitXP_SP3 DLL integration module:

    • Line of Sight Indicator on target frame
    • Behind Indicator on target frame
    • OS Notifications for combat events
    • Distance-based features
    • Requires UnitXP_SP3 DLL
  • bgscore.lua - Battleground Score frame positioning:

    • Movable BG score frame
    • Position saving across sessions

🛠️ DLL Detection & API Helpers

  • HasSuperWoW() - Detects SuperWoW DLL presence
  • HasUnitXP() - Detects UnitXP_SP3 DLL presence
  • HasNampower() - Detects Nampower DLL presence
  • GetUnitDistance(unit1, unit2) - Returns distance using best available method (UnitXP or SuperWoW)
  • UnitInLineOfSight(unit1, unit2) - Line of sight check via UnitXP
  • UnitIsBehind(unit1, unit2) - Behind check via UnitXP

📝 New Slash Commands

  • /pfdll - Shows DLL status for SuperWoW, Nampower, and UnitXP with detailed diagnostics
  • /pfbehind - Test command for Behind/LOS detection on current target

🎮 SuperWoW API Wrappers

  • TrackUnit API - Track group members on minimap (configurable)
  • Raid Marker Targeting - Target units by raid marker ("mark1" to "mark8")
  • GetUnitOwner - Get owner of pets/totems using "owner" suffix
  • Enhanced SpellInfo - Wrapper returning structured spell data
  • Clickthrough API - Toggle clicking through corpses
  • Autoloot API - Control autoloot setting
  • GetPlayerBuffSpellId - Get spell ID from buff index
  • LogToCombatLog - Add custom entries to combat log
  • SetLocalRaidTarget - Set raid markers only visible to self
  • GetItemCharges - Get item charges (SuperWoW returns as negative)
  • GetUnitWeaponEnchants - Get weapon enchant info on any unit

💬 Chat Enhancements

  • Player Level Display - Shows player level next to names in chat (color-coded by difficulty)
  • Tab Mouseover Throttle - 0.1s throttle for chat tab hover effects

⚙️ New Configuration Options

All new features are configurable via /pfui:

Unit Frames → SuperWoW Settings:

  • Track Group on Minimap

Unit Frames → Nampower Settings:

  • Show Spell Queue Indicator
  • Spell Queue Icon Size
  • Show Reactive Spell Indicator
  • Reactive Indicator Size
  • Enhanced Buff Tracking

Unit Frames → UnitXP Settings:

  • Show Line of Sight Indicator
  • Show Behind Indicator
  • Enable OS Notifications

Chat → Text:

  • Enable Player Levels

🐛 Bugfixes

  • superwow_active Variable - Fixed inconsistent SuperWoW detection across modules (nameplates, castbar, librange, unitframes)
  • Unitmap Race Condition - Fixed HP/Mana not updating when raid members swap positions
  • Friendly Nameplate Color - Fixed friendly players using NPC color instead of player color

🐢 Turtle WoW TBC Spell Indicators

Turtle WoW includes TBC spells in the Vanilla client. This version includes all TBC buff indicators:

  • Commanding Shout indicator
  • Misdirection indicator
  • Earth Shield indicator
  • Prayer of Mending indicator

Version: 6.2.0
Release Date: January 10, 2026
Compatibility: Turtle WoW 1.18.0
Optional DLLs: SuperWoW, Nampower, UnitXP_SP3 (enhanced features when available)


Installation

  1. Download Latest Version
  2. Unpack the Zip file
  3. Rename the folder "pfUI-master" to "pfUI"
  4. Copy "pfUI" into Wow-Directory\Interface\AddOns
  5. Restart Wow

Optional DLL Enhancements

pfUI 6.0.0 includes optional integrations with client-side DLLs for enhanced functionality. These DLLs are fully supported on Turtle WoW:

SuperWoW

Repository: https://github.com/balakethelock/SuperWoW

Provides:

  • Enhanced castbar detection via UNIT_CASTEVENT
  • UnitPosition for distance calculations
  • SetMouseoverUnit for improved targeting
  • SpellInfo for spell data queries

Nampower

Repository: https://gitea.com/avitasia/nampower

Provides:

  • Spell queue indicator
  • GCD indicator
  • Reactive spell detection
  • Enhanced cast information

UnitXP_SP3

Repository: https://codeberg.org/konaka/UnitXP_SP3

Provides:

  • Line of Sight detection
  • Behind detection
  • Accurate distance calculations
  • OS notifications

Use /pfdll in-game to check which DLLs are detected.

Commands

/pfui         Open the configuration GUI
/pfdll        Show DLL detection status (SuperWoW, Nampower, UnitXP)
/pfbehind     Test Behind/LOS detection on current target
/clickthrough Toggle clickthrough mode (or /ct)
/share        Open the configuration import/export dialog
/gm           Open the ticket Dialog
/rl           Reload the whole UI
/farm         Toggles the Farm-Mode
/pfcast       Same as /cast but for mouseover units
/focus        Creates a Focus-Frame for the current target
/castfocus    Same as /cast but for focus frame
/clearfocus   Clears the Focus-Frame
/swapfocus    Toggle Focus and Target-Frame
/pftest       Toggle pfUI Unitframe Test Mode
/abp          Addon Button Panel

Languages

pfUI supports and contains language specific code for the following gameclients.

  • English (enUS)
  • Korean (koKR)
  • French (frFR)
  • German (deDE)
  • Chinese (zhCN)
  • Spanish (esES)
  • Russian (ruRU)

Plugins

FAQ

What does "pfUI" stand for?
The term "pfui!" is german and simply stands for "pooh!", because I'm not a big fan of creating configuration UI's, especially not via the Wow-API (you might have noticed that in ShaguUI).

How can I donate?
You can donate via GitHub or Ko-fi

How do I report a Bug?
Please provide as much information as possible in the Bugtracker. If there is an error message, provide the full content of it. Just telling that "there is an error" won't help any of us. Please consider adding additional information such as: since when did you got the error, does it still happen using a clean configuration, what other addons are loaded and which version you're running. When playing with a non-english client, the language might be relevant too. If possible, explain how people can reproduce the issue.

How can I contribute? Report errors and issues in the Bugtracker. Please make sure to have the latest version installed and check for conflicting addons beforehand.

I have bad performance, what can I do?
Version 6.0.0 includes significant performance optimizations. If you still experience issues:

  1. Disable "Frame Shadows" in Settings → Appearance → Enable Frame Shadows
  2. Check /pfdll to see which DLLs are active (some features require DLLs)
  3. Disable all AddOns but pfUI and enable one-by-one to identify conflicts
  4. Report issues via the Bugtracker

Where is the happiness indicator for pets?
The pet happiness is shown as the color of your pet's frame. Depending on your skin, this can either be the text or the background color of your pet's healthbar:

  • Green = Happy
  • Yellow = Content
  • Red = Unhappy

Since version 4.0.7 there is also an additional icon that can be enabled from the pet unit frame options.

Can I use Clique with pfUI?
This addon already includes support for clickcasting. If you still want to make use of clique, all pfUI's unitframes are already compatible to Clique-TBC. For Vanilla, a pfUI compatible version can be found Here. If you want to keep your current version of Clique, you'll have to apply this Patch.

Where is the Experience Bar?
The experience bar shows up on mouseover and whenever you gain experience, next to left chatframe by default. There's also an option to make it stay visible all the time.

How do I show the Damage- and Threatmeter Dock?
If you enabled the "dock"-feature for your external (third-party) meters such as DPSMate or KTM, then you'll be able to toggle between them and the Right Chat by clicking on the ">" symbol on the bottom-right panel.

Why is my chat always resetting to only 3 lines of text?
This happens if "Simple Chat" is enabled in blizzards interface settings (Advanced Options). Paste the following command into your chat to disable that option: /run SIMPLE_CHAT="0"; pfUI.chat.SetupPositions(); ReloadUI()

How can I enable mouseover cast?
On Vanilla, create a macro with "/pfcast SPELLNAME". If you also want to see the cooldown, You might want to add "/run if nil then CastSpellByName("SPELLNAME") end" on top of the macro.

Everything from scratch?! Are you insane?
Most probably, yes.


🤝 Credits & Acknowledgments

  • Shagu - Original pfUI creator (https://github.com/shagu/pfUI)
  • me0wg4ming - pfUI fork maintainer and Turtle WoW enhancements
  • jrc13245 - Nampower, UnitXP, and BGScore module integration (https://github.com/jrc13245/)
  • SuperWoW Team - SuperWoW framework development
  • avitasia - Nampower DLL development
  • konaka - UnitXP_SP3 DLL development
  • Turtle WoW Team - For the amazing Vanilla+ experience
  • Community - Bug reports, feature suggestions, and testing

📄 License

Same as original pfUI - free to use and modify.


Version: 6.2.0
Release Date: January 10, 2026
Compatibility: Turtle WoW 1.18.0
Status: Stable

S
Description
Requires ClassicAPI
Readme MIT 17 MiB
Languages
Lua 100%