commit f19d7402810637fc32460864104cb792ac5af863 Author: Brues <5278969+brues-code@users.noreply.github.com> Date: Wed Jul 22 01:05:52 2026 -0500 remove comment commit 60f4968f06d19d42bdc6347f98ff4d5a34785e97 Author: Brues <5278969+brues-code@users.noreply.github.com> Date: Wed Jul 22 01:05:06 2026 -0500 Bump ClassicAPI minimum version to 10705 Update the minimum required ClassicAPI version from 10704 (1.7.4) to 10705 (1.7.5). commit 088dba4c23f4aa7ce98b9ce9d75bc5892cd40520 Author: Brues <5278969+brues-code@users.noreply.github.com> Date: Wed Jul 22 01:04:04 2026 -0500 Add raid-pet frames: an independent, roster-driven pet grid New "raidpet" unitframe type that shows raid members' pets (raidpet1..40) in their own movable block (pfRaidPetCluster), off by default. It's a flat pool of frames laid out by pfUI.uf.raid:LayoutPets straight from the raid roster -- cell N shows raidpet<N> -- so it's fully decoupled from how the raid grid arranges its own slots. Layout is independent of the raid grid: raidpet carries its own width/height plus a Layout section (raidlayout / raidpadding / raidfill), and its own Collapse Empty Slots toggle that packs only the pets that exist into the leading cells. The raid grid gets the same collapse option (sequential slot assignment in AddUnitToGroup instead of by subgroup). Collapsed pets re-pack on roster changes and on UNIT_PET so summons and dismisses track live without polling. Also: - unitframes: a "raidpet" branch in UpdateVisibility (hide when the pet is out of range or its raid<N> owner is gone), and fix cache_raid so the "pfRaid" prefix check doesn't misread pfRaidPet<n> frames (char 7 is non-numeric -> nil compare crash). - New "Owner Name" text option: on any pet frame (raidpet/partypet/pet) it shows the owner's class-colored name so you can tell whose pet it is. - unlock: a pfRaidPet drag cluster, a numeric-suffix guard so pfRaid no longer matches (and crashes on) pet frames, and RaidPet config mappings. - config/gui/translations for all of the above. commit 52f02c8963fe7ec90f36100ebe069c7807529301 Author: Brues <5278969+brues-code@users.noreply.github.com> Date: Mon Jul 20 23:09:06 2026 -0500 Enumerate chat bubbles via ClassicAPI instead of scanning WorldFrame ClassicAPI's C_ChatBubbles.GetAllChatBubbles() walks the engine's own bubble list and returns the exact set of live bubble frames, with real GetRegions(), so the decoration idiom works unchanged. Replace the WorldFrame:GetChildren() sweep and drop the IsBubble heuristic (unnamed frame whose first region is the ChatBubble-Background texture) -- the API only ever hands back bubbles, so that guess is both redundant and more fragile than the engine list. Cheaper too: it iterates only live bubbles rather than every world child on each chat event.
pfUI - ClassicAPI Edition
A pfUI fork specifically optimized for ClassicAPI on Octo WoW which requires Nampower and SuperWoW with optional UnitXP_SP3 DLL integration.
This version includes significant performance improvements and DLL-enhanced features.
Installation
- Download Latest Version
- Unpack the Zip file
- Copy "pfUI" into Wow-Directory\Interface\AddOns
- Restart Wow
Optional DLL Enhancements
Since pfUI 6.0.0 includes integrations with client-side DLLs for enhanced functionality. These DLLs are permitted on Octo WoW:
ClassicAPI
Provides:
- C_NamePlate - Event-driven nameplates (no more per-frame WorldFrame scanning) with real per-plate unit tokens and GUIDs
- C_UnitAuras - Replaces over 3k lines of hand-rolled aura tracking
- C_Spell - Replaces thousands of hardcoded spell names for each locale and powers castbar
- Real cast bars - Actual cast/channel timing, spellID and interrupt state for any unit (C_Spell.UnitCastingInfo)
- Focus - A genuine
focusunit plus/focusand/clearfocus(FocusUnit / ClearFocus) - C_EquipmentSet - Full Equipment Manager with GUID-tracked gear sets (tells apart duplicate/enchanted items)
- Instant Bag Sorting - C_Container.MoveItem / SwapItems instead of cursor pickup/drop
- Sell junk in one call - C_MerchantFrame.GetNumJunkItems / SellAllJunkItems
- Real item data - C_Item counts, quality, sell price and item info by ID
- GUID-based targeting - Nameplates, mouseover and focus resolve by GUID, not by name text
- Faster, safer profile sharing - Engine-side serialize/compress/base64 via C_EncodingUtil
- C_Timer - After / NewTicker replacing hand-rolled OnUpdate throttles
- Feign death, shapeshift and quest-item detection via real API calls
- Plenty other functions
SuperWoW
Provides:
- UnitPosition for distance calculations
- SetMouseoverUnit for improved targeting
Nampower
Provides:
- Spell queue indicator
- GCD indicator
- Reactive spell detection
- Enhanced cast information
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)
Recommended Addons
- pfQuest A simple database and quest helper
- SuperCleveRoidMacros Supports modern macro formats
Plugins
- pfUI-eliteoverlay Add elite dragons to unitframes
- pfUI-fonts Additional fonts for pfUI
- pfUI-CustomMedia Additional textures for pfUI
- pfUI-Gryphons Add back the gryphons to your actionbars
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 buy me a coffee if you'd like
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.
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.