PitBull Unit Frames 4.0
PitBull Unit Frames 4.0
Woof. Arf. Yip.
Getting Started:
You can help translate PitBull for your language with the localization tool.
Classic
PitBull works with WoW Classic! Classic Era/Vanilla is supported in
v4.3.x-vanilla releases. Other Classic versions are supported in v4.2.x releases
(the same releases retail use).
Download
CurseForge: https://www.curseforge.com/wow/addons/pitbull-unit-frames-4-0
Wago: https://addons.wago.io/addons/pitbull4
WoWInterface: https://www.wowinterface.com/downloads/info20021
-
View User Profile
-
Send Message
Posted Aug 23, 2026@user_bpnjrcjt26u05ksc Please Try Patch 31
-
View User Profile
-
Send Message
Posted Aug 21, 2026I have an issue where my targets wont show properly. is that something you are aware of? Not on all mobs but on many of them. Even when i put party targets. thats not shown there either. Love to have pitbull back and running though. Been missing that addon,
-
View User Profile
-
Send Message
Posted Aug 21, 2026@Buddienorway feel free to test my 12.1 version attached below
-
View User Profile
-
Send Message
Posted Aug 21, 2026@Rumorix That is the one i got. Took a screenshot but not sure how to show that yo you
-
View User Profile
-
Send Message
Posted Aug 23, 2026@Buddienorway i sent you a dm - feel free to check on that and send it there
-
View User Profile
-
Send Message
Posted Aug 11, 2026Cheers all! you can download my first 12.1 version here:
https://1drv.ms/f/c/25688cb7a16be526/IgDvr810POcETbKR5MaoqZTgARoMWi3misaF8nw5m6yD2iU?e=FMBinM
Bare with me - i will test it myself on 12.1 tomorrow
-
View User Profile
-
Send Message
Posted Aug 12, 2026@Rumorix currently fixing some stuff and also adding a kind of "what CD is running" module
-
View User Profile
-
Send Message
Posted Aug 17, 2026@Rumorix Thank you. Is a Korean language patch available as well?
-
View User Profile
-
Send Message
Posted Aug 17, 2026@user_hiyy8eziaii0n331 i can look into that - as far as i know there is currently no other language available besides english
-
View User Profile
-
Send Message
Posted Aug 20, 2026Thank you for your @Rumorix response.
-
View User Profile
-
Send Message
Posted Aug 21, 2026@user_hiyy8eziaii0n331 try the new version 30 please =)
-
View User Profile
-
Send Message
Posted Aug 13, 2026@Rumorix currently testing the "major cooldown module"
-
View User Profile
-
Send Message
Posted Aug 3, 2026Hello all,
After waiting for this to get updated, I got impatient and used an LLM to bugfix the Classic Era version of PB4:
Modules/ReputationBar/ReputationBar.lua
Change:
hooksecurefunc("MainMenuBar_UpdateExperienceBars", Update)
to:
if MainMenuBar_UpdateExperienceBars then
hooksecurefunc("MainMenuBar_UpdateExperienceBars", Update)
end
Modules/HideBlizzard/HideBlizzard.lua
In hook_frames(), wrap the existing frame code in:
if frame then
...
end
This fixes the nil frame error.
Main.lua
Replace old addon API calls with:
GetNumAddOns -> C_AddOns.GetNumAddOns
IsAddOnLoadOnDemand -> C_AddOns.IsAddOnLoadOnDemand
GetAddOnInfo -> C_AddOns.GetAddOnInfo
GetAddOnDependencies -> C_AddOns.GetAddOnDependencies
GetAddOnMetadata -> C_AddOns.GetAddOnMetadata
Options/General.lua
IsAddOnLoaded -> C_AddOns.IsAddOnLoaded
Options/Modules.lua
GetAddOnEnableState -> C_AddOns.GetAddOnEnableState
IsAddOnLoadOnDemand -> C_AddOns.IsAddOnLoadOnDemand
GetAddOnInfo -> C_AddOns.GetAddOnInfo
GetAddOnMetadata -> C_AddOns.GetAddOnMetadata
- Zurk
-
View User Profile
-
Send Message
Posted Aug 3, 2026@desperate_lalande29 Can confirm these fixes work. Gemini also suggested additional changes.
In Modules/HideBlizzard/HideBlizzard.lua, Gemini recommended changing
hooksecurefunc("CompactRaidFrameManager_UpdateShown", function()
if self:IsEnabled() and self.db.profile.global.raid then
hide_raid()
end
end)
to
hooksecurefunc("CompactRaidFrameManager_UpdateShown", function()
if PitBull4_HideBlizzard:IsEnabled() and PitBull4_HideBlizzard.db.profile.global.raid then
hide_raid()
end
end)
and inside hook_frames, change
local hide_frame = PitBull4:OutOfCombatWrapper(function(self) self:Hide() end)
to
local function hide_frame(self)
if not InCombatLockdown() then
self:Hide()
end
end
-
View User Profile
-
Send Message
Posted Aug 3, 2026@Aravarth i have implemented some hints from that comment section here and did some testing with @litenmentuff who is kindly testing it =)
feel free to give it a try - the combined efforts shall give is a good base
https://1drv.ms/f/c/25688cb7a16be526/IgB82OpngZYlTrQLhv98IxBcAVnAOsQ7dmZq8qQUT4wnocg?e=cYbgIy
-
View User Profile
-
Send Message
Posted Jul 31, 2026Hey Rumor and Nebula! Super encouraged by how far the addon has come. I know it has to be an insane amount of work.
I am curious as to the functionality of the 3-d portrait. I know it's resource heavy, but I like to use it. It seems to work sporadically in the open world and not at all in instances. Is this recoverable? Or another casualty of combat addon restrictions. Thanks!
-
View User Profile
-
Send Message
Posted Jul 31, 2026@nottle_ I can't speak for what they'll do with Pitbull but other unit frame addons which have been updated and work in Midnight currently have 3D portraits that don't glitch out. I suspect any glitching on Pitbulls unit frames currently is just because it's not making use of the correct API for them.
-
View User Profile
-
Send Message
Posted Aug 1, 2026@nottle_ noticed it myself: i tried som fixes but im not 100% happy with it - do you use the head models or the full 3d models?
-
View User Profile
-
Send Message
Posted Aug 1, 2026@Rumorix Just the head models. It mostly works in the open world, but when in a dungeon it's like it can't refresh properly to grab the model. Which I suspected might be due to the new restrictions. Sometimes, if all the fighting stops or I die in the dungeon, then it will populate.
-
View User Profile
-
Send Message
Posted Aug 1, 2026@nottle_ Thanks, this is very helpful. I reviewed the current 3D portrait refresh path, and this looks more like a missed model refresh after zoning than a definite hard combat restriction.
The model can initially be created while the unit or model data is not fully ready. Later UNIT_MODEL_CHANGED or UNIT_PORTRAIT_UPDATE events currently update the frame, but they do not always force SetUnit() to run again when GUID data is restricted.
This would explain why the head portrait sometimes appears after combat ends or after the character dies.
I am preparing a targeted fix with forced event-based refreshes and a small number of delayed retries after entering an instance. It will avoid continuous polling because 3D portraits are already relatively resource-heavy.
Could you also let me know which frames are affected — player, target, focus, party members, or all of them?