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. Cataclysm Classic is supported in v4.2.x
releases
(the same releases retail use).
Classic Era caveats:
- Aura duration is not available from the API, so PitBull uses LibClassicDurations to show them. The duration can be inaccurate if it's affected by rank or talents.
- Cast info is only available for your spells from the API. PitBull uses LibClassicCasterino to show cast bars for other units, but this can be inaccurate since there is a lot of guess-work involved.
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
I am having a similar issue as others regarding frames not showing up; although my problem seems limited to the Target frame. Sometimes just the text will show up, sometimes everything but the portrait will. Othertimes only the auras show up. Moreover when the target frame does show up my framerate drops about in half.
I've disabled all of my other addons and started a new profile and still the issue persists.
Thanks so much for keeping up with this addon, it's honestly one of the reasons that I still love playing the game.
Sounds like you're getting some sort of error. Can you please turn on the Display Lua Errors option and let me know what errors you're getting. To do this follow these instructions:
Press Escape to get the game menu to come up. Choose Interface. On the Game Tab choose Help. Check the Display Lua Errors box and press the Okay button.
Yeah I didn't even think of that. I get 13 errors in total, but since 11 of them only happen once, I'm including the two which have high counts. This first one happens 107 times upon login. I guess I should also note that I'm using the DogTag texts and not the LUA ones:
Message: Interface\FrameXML\UIPanelTemplates.lua:500: attempt to perform arithmetic on field 'cursorOffset' (a nil value)
Time: 08/29/12 17:00:23
Count: 107
Stack: Interface\FrameXML\UIPanelTemplates.lua:500: in function `ScrollingEdit_OnUpdate'
Interface\FrameXML\UIPanelTemplates.lua:477: in function `ScrollingEdit_OnTextChanged'
...e\AddOns\Blizzard_DebugTools\Blizzard_DebugTools.lua:579: in function `ScriptErrorsFrame_Update'
...e\AddOns\Blizzard_DebugTools\Blizzard_DebugTools.lua:543: in function `ScriptErrorsFrame_OnError'
[string "Interface\FrameXML\BasicControls.xml:<Scrip..."]:18: in function <[string "Interface\FrameXML\BasicControls.xml:<Scrip..."]:4>
[C]: ?
Interface\FrameXML\UIPanelTemplates.lua:500: in function `ScrollingEdit_OnUpdate'
Interface\FrameXML\UIPanelTemplates.lua:477: in function `ScrollingEdit_OnTextChanged'
...e\AddOns\Blizzard_DebugTools\Blizzard_DebugTools.lua:579: in function `ScriptErrorsFrame_Update'
...e\AddOns\Blizzard_DebugTools\Blizzard_DebugTools.lua:543: in function `ScriptErrorsFrame_OnError'
[string "Interface\FrameXML\BasicControls.xml:<Scrip..."]:18: in function <[string "Interface\FrameXML\BasicControls.xml:<Scrip..."]:4>
[C]: ?
...
[string "Interface\FrameXML\BasicControls.xml:<Scrip..."]:18: in function <[string "Interface\FrameXML\BasicControls.xml:<Scrip..."]:4>
[C]: ?
Interface\FrameXML\UIPanelTemplates.lua:500: in function `ScrollingEdit_OnUpdate'
Interface\FrameXML\UIPanelTemplates.lua:477: in function `ScrollingEdit_OnTextChanged'
...e\AddOns\Blizzard_DebugTools\Blizzard_DebugTools.lua:579: in function `ScriptErrorsFrame_Update'
...e\AddOns\Blizzard_DebugTools\Blizzard_DebugTools.lua:543: in function `ScriptErrorsFrame_OnError'
[string "Interface\FrameXML\BasicControls.xml:<Scrip..."]:18: in function <[string "Interface\FrameXML\BasicControls.xml:<Scrip..."]:4>
...\PitBull4_DogTagTexts\libs\LibDogTag-3.0\Helpers.lua:523: in function `tagError'
...ll4_DogTagTexts\libs\LibDogTag-3.0\LibDogTag-3.0.lua:301: in function <...ll4_DogTagTexts\libs\LibDogTag-3.0\LibDogTag-3.0.lua:287>
...s\PitBull4_DogTagTexts\libs\LibDogTag-3.0\Events.lua:605: in function <...s\PitBull4_DogTagTexts\libs\LibDogTag-3.0\Events.lua:504>
Locals: self = ScriptErrorsFrameScrollFrameText {
0 = <userdata>
text = "Message: LibDogTag-3.0.90203: Error with code "[if PercentThreat:Hide(0) then\
PercentThreat:Round(1):Percent:UnitThreatStatusColor\
elseif InGroup then\
(if IsMasterLooter then\
\"\\194\\167 \"\
end) (if IsLeader then\
\"\\194\\163 \"\
end) (if IsMainAssist then\
\"\\194\\164 \"\
end)\
elseif PvP then\
PvPDuration:FormatDuration:Red:Hide(0)\
else\
\"< PVP OFF >\":Yellow\
end]" (Base;Unit). ...gTexts\libs\LibDogTag-Unit-3.0\Categories\Status.lua:785: attempt to call upvalue 'GetNumRaidMembers' (a nil value)
Time: 08/29/12 17:00:22
Count: 1
Stack: ...ll4_DogTagTexts\libs\LibDogTag-3.0\LibDogTag-3.0.lua:301: in function <...ll4_DogTagTexts\libs\LibDogTag-3.0\LibDogTag-3.0.lua:287>
...ll4_DogTagTexts\libs\LibDogTag-3.0\LibDogTag-3.0.lua:436: in function `AddFontString'
...nterface\AddOns\PitBull4_DogTagTexts\DogTagTexts.lua:218: in function `AddFontString'
...ddOns\PitBull handleCursorChange = true
}
elapsed = 0
scrollFrame = ScriptErrorsFrameScrollFrame {
ScrollBar = ScriptErrorsFrameScrollFrameScrollBar {
}
offset = 0
0 = <userdata>
}
height = 194.00001525879
range = 0
scroll = 0
size = 194.00001525879
cursorOffset = nil
(*temporary) = nil
(*temporary) = ScriptErrorsFrameScrollFrame {
ScrollBar = ScriptErrorsFrameScrollFrameScrollBar {
}
offset = 0
0 = <userdata>
}
(*temporary) = 0
(*temporary) = "attempt to perform arithmetic on field 'cursorOffset' (a nil value)"
Here is the second one, which seems to happen about 6 times per second:
Message: LibDogTag-3.0.90203: Error with code "[if PercentThreat:Hide(0) then\
PercentThreat:Round(1):Percent:UnitThreatStatusColor\
elseif InGroup then\
(if IsMasterLooter then\
\"\\194\\167 \"\
end) (if IsLeader then\
\"\\194\\163 \"\
end) (if IsMainAssist then\
\"\\194\\164 \"\
end)\
elseif PvP then\
PvPDuration:FormatDuration:Red:Hide(0)\
else\
\"< PVP OFF >\":Yellow\
end]" (Base;Unit). ...gTexts\libs\LibDogTag-Unit-3.0\Categories\Status.lua:785: attempt to call upvalue 'GetNumRaidMembers' (a nil value)
Time: 08/29/12 17:04:58
Count: 685
Stack: ...ll4_DogTagTexts\libs\LibDogTag-3.0\LibDogTag-3.0.lua:301: in function <...ll4_DogTagTexts\libs\LibDogTag-3.0\LibDogTag-3.0.lua:287>
...s\PitBull4_DogTagTexts\libs\LibDogTag-3.0\Events.lua:605: in function <...s\PitBull4_DogTagTexts\libs\LibDogTag-3.0\Events.lua:504>
Locals: fs = PitBull4_FontString_5 {
0 = <userdata>
Delete = <function> defined @Interface\AddOns\PitBull4\Controls\Controls.lua:107
db = <table> {
}
kind = "FontString"
unit = "player"
}
code = "[if PercentThreat:Hide(0) then
PercentThreat:Round(1):Percent:UnitThreatStatusColor
elseif InGroup then
(if IsMasterLooter then
"\194\167 "
end) (if IsLeader then
"\194\163 "
end) (if IsMainAssist then
"\194\164 "
end)
elseif PvP then
PvPDuration:FormatDuration:Red:Hide(0)
else
"< PVP OFF >":Yellow
end]"
nsList = "Base;Unit"
kwargs = <table> {
unit = "player"
}
kwargTypes = <table> {
unit = "string"
}
func = <function> defined local _G = _G;
local DogTag = _G.LibStub("LibDogTag-3.0");
local colors = DogTag.__colors;
local NIL = DogTag.__NIL;
local mytonumber = DogTag.__mytonumber;
local tag_IsLeader = DogTag.Tags.Unit["IsLeader"].code;
local tag_Color = DogTag.Tags.Base["Color"].code;
local tag_UnitThreatStatusColor = DogTag.Tags.Unit["UnitThreatStatusColor"].code;
local tag_IsIn = DogTag.Tags.Base["IsIn"].code;
local tag_PvP = DogTag.Tags.Unit["PvP"].code;
local tag_PercentThreat = DogTag.Tags.Unit["PercentThreat"].code;
local tag_PvPDuration = DogTag.Tags.Unit["PvPDuration"].code;
local tag_IsMainAssist = DogTag.Tags.Unit["IsMainAssist"].code;
local tag_InGroup = DogTag.Tags.Unit["InGroup"].code;
local tag_FormatDuration = DogTag.Tags.Base["FormatDuration"].code;
local tag_Round = DogTag.Tags.Base["Round"].code;
local tag_Percent = DogTag.Tags.Base["Percent"].code;
local tag_IsMasterLooter = DogTag.Tags.Unit["IsMasterLooter"].code;
return function(kwargs)
local result;
local cache_PercentThreat = NIL;
lsuccess = false
text = "...gTexts\libs\LibDogTag-Unit-3.0\Categories\Status.lua:785: attempt to call upvalue 'GetNumRaidMembers' (a nil value)"
opacity = nil
outline = nil
fsNeedUpdate = <table> {
}
fsNeedQuickUpdate = <table> {
}
fsToCode = <table> {
(null) = "[if (IsMouseOver and not InCombat) then
if IsMaxLevel then
ReputationColor ReputationName ": " Reputation " / " MaxReputation
else
Alpha(PercentXP / 100) "XP: " XP " / " MaxXP " " PercentXP:Percent:Paren " " PercentRestXP:Percent:Bracket
end
elseif InCombat then
HP:Hide(HP < MaxHP):ClassColor
elseif IsEnemy then
PercentHP:Percent:HPColor Outline
end]"
(null) = "[if PercentThreat:Hide(0) then
PercentThreat:Round(1):Percent:UnitThreatStatusColor
elseif InGroup then
(if IsMasterLooter then
"\194\167 "
end) (if IsLeader then
"\194\163 "
end) (if IsMainAssist then
"\194\164 "
end)
elseif PvP then
PvPDuration:FormatDuration:Red:Hide(0)
else
"< PVP OFF >":Yellow
end]"
(null) = "[if (HasMP and not Status) then
(if IsMana then
PercentMP:Hide(100):Color('7f7fff'):Percent
elseif IsEnergy then
MP:Hide(MaxMP):Color('ffff00')
elseif IsFocus then
MP:Hide(MaxMP):Color('ff8040')
elseif IsRage then
MP:Hide(0):Color('ff0000')
elseif IsRunicPower then
MP:Hide(0):Color('00d1ff')
end)
end]"
(null) = "[if (not Status) then
Based on the errors you've posted below looks like a bug in DogTags. Can you reproduce iwth no other addon loaded and possibly try with LuaTexts instead of DogTags? The library for DogTags is not really maintained very much anymore. So there are likely all sorts of issues with it. While we still have the module for DogTags, I consider it depreciated.
I'd be interested in seeing the other errors you got, the cursorOffset error seems to be triggered by other addons. The errors you only got once may have triggered the repetative errors.
It looks like DogTags was the issue. I'm a bit surprised that it was causing problems with bar placement (amongst other errors there were times when my Target's Power Bar was showing up where my Focus Frame should be while the Health Bar was in the correct spot), but I understand how connected some of these can be.
However, now that I'm "stuck" using the LUA text, is there any way to figure out how to convert the older DogTag texts to the LUA texts? One of the reasons that I love PitBull so much is because of the huge amount of information that can be packed into one area via the text controls. One example that I have is displayed in the error outline below, where I have a player's threat shown - or - their group icon shown - or - their PVP status shown. Is there a place to learn how to do this for LUA texts?
LuaTexts is much better isolated from causing problems with the rest of the addons, however, DogTagTexts throwing errors can break the update cycle. Really not much I can do about that it's just the way the library was designed.
As far as converting, it's not easy. There are some forums that have a lot of texts and you might be able to get some help there:
http://forums.wowace.com/showthread.php?t=16955
http://elitistjerks.com/f32/t63351-luatexts_new_dogtags/
can you tell me how to fix that bug? :)
when i target a player is see the whole body of the charakter not the portrait
Please open a bug for this and attach yourSavedVariables file (under your WoW install: WTF/Account/$ACCOUNT/SavedVariables/PitBull4.lua) and provide which profile you're using. May also be useful to provide the resolution that you're running the game under.
You can open the bug here (it's a curse site so the username/password is the same as here):
http://www.wowace.com/addons/pitbull4/create-ticket/
you should make it so that pitbull can be used for enemys such as like the other arena teams or battlegrounds. I love the customizablity of this addon but just wish i could get those to look the same...If this possible or if their is another addon that does that is very similar to pitbull someone plz tell me i would love it.
Since some patches (around WoW patch 4.3.4 I think) I got clipping errors for human females (portraits).
I tried Clique being off but that doesn't help still getting full body image in my portraits.
There's very little I can do about clipping errors and the like. The 3D portrait code is on Blizzard's end.
Just wanted to say if anybody is having a problem with party or raid frames not showing up, they need to disable addons like Clique, which interact with unit frames, until those mods are updated. I had this problem until I narrowed it down to Clique being the culprit, not Pitbull.
Having a problem that is cosmetic in nature but one of the main reasons I use Pitbull. If the 'Portrait' option is enabled, instead of just the bust of the character within the portrait frame, I am seeing the entire character model.
I am getting this error code:
5x libs\LibDogTag-3.0\LibDogTag-3.0-90203.lua:306: PitBull4_FontString_6:SetText(): Font not set
<in C code>
libs\LibDogTag-3.0\LibDogTag-3.0-90203.lua:306: in function <libs\LibDogTag-3.0\LibDogTag-3.0.lua:287>
libs\LibDogTag-3.0\LibDogTag-3.0-90203.lua:436: in function "AddFontString"
PitBull4_DogTagTexts-v4.0.0-beta32\DogTagTexts.lua:218: in function "AddFontString"
PitBull4-v4.0.0-beta32\ModuleHandling\TextProviderModule.lua:118: in function "UpdateFrame"
PitBull4-v4.0.0-beta32\ModuleHandling\Module.lua:319: in function "Update"
PitBull4-v4.0.0-beta32\UnitFrameLayout.lua:1547: in function "UpdateLayout"
PitBull4-v4.0.0-beta32\ModuleHandling\Module.lua:326: in function "Update"
PitBull4_PowerBar-v4.0.0-beta32\PowerBar.lua:54: in function <PitBull4_PowerBar\PowerBar.lua:50>
Locals:
fs = PitBull4_FontString_6 {
0 = <userdata>
Delete = <func> @PitBull4\..\Controls.lua:107
db = <table> {}
kind = "FontString"
unit = "player"
}
code = "[if HasMP then FractionalMP]"
nsList = "Base;Unit"
kwargs = <table> {
unit = "player"
}
kwargTypes = <table> {
unit = "string"
}
func = <func> local _G = _G;
local DogTag = _G.LibStub("LibDogTag-3.0");
local colors = DogTag.__colors;
local NIL = DogTag.__NIL;
local mytonumber = DogTag.__mytonumber;
local tag_MaxMP = DogTag.Tags.Unit["MaxMP"].code;
local tag_Concatenate = DogTag.Tags.Base["Concatenate"].code;
local tag_greater = DogTag.Tags.Base[">"].code;
local tag_Boolean = DogTag.Tags.Base["Boolean"].code;
local tag_MP = DogTag.Tags.Unit["MP"].code;
return function(kwargs)
local result;
local arg1, arg2, arg3, arg4;
local kwargs_unit = kwargs["unit"];
if not DogTag.IsLegitimateUnit[kwargs_unit] then
return ("Bad unit: %q"):format(kwargs_unit or tostring(kwargs_unit)), nil;
end;
if kwargs_unit ~= "player" and not UnitExists(kwargs_unit) then
return nil, nil;
end;
do
do
do
do
if (kwargs_unit) and not DogTag.IsLegitimateUnit[(kwargs_unit)] then
return ("Bad unit: %q"):format(tostring((kwargs_unit)));
end;
if (kwargs_unit) and UnitExists((kwargs_unit)) then
arg2 = tag_MaxMP((kwargs_unit));
end;
end;
if arg2 then
arg1 = tag_gsuccess = true
text = "1200/1200"
opacity = nil
outline = nil
fsNeedUpdate = <table> {}
fsNeedQuickUpdate = <table> {
(null) = true
}
fsToCode = <table> {
(null) = "[Alpha((-CastStopDuration or 0) + 1) CastStopMessage or (CastName ' ' CastTarget:Paren)]"
(null) = "[if HasMP then FractionalMP]"
(null) = "[Status or FractionalHP]"
(null) = "[Status or FractionalHP]"
}
fsToNSList = <table> {
(null) = "Base;Unit"
(null) = "Base;Unit"
(null) = "Base;Unit"
(null) = "Base;Unit"
}
fsToKwargs = <table> {
(null) = <table> {}
(null) = <table> {}
(null) = <table> {}
(null) = <table> {}
}
kwargsToKwargTypesWithTableCache = <table> {
(null) = <table> {}
(null) = <table> {}
}
codeToFunction = <table> {
Base;Unit = <table> {}
}
DogTag = <table> {
unparse = <func> @PitBull4_DogTagTexts\libs\..\Parser.lua:1219
select2 = <func> @PitBull4_DogTagTexts\libs\..\Helpers.lua:155
callbackToFunction = <table> {}
hasEvent = <func> @PitBull4_DogTagTexts\libs\..\Events.lua:159
IterateFactions = <func> @PitBull4_DogTagTexts\libs\LibDogTag-Unit-3.0\Categories\Reputation.lua:47
callbackToExtraArg = <table> {}
__colors = <table> {}
Tags = <table> {}
CleanCode = <func> @PitBull4_DogTagTexts\libs\..\Parser.lua:1581
codeToFunction = <table> {}
newDict = <func> @PitBull4_DogTagTexts\libs\..\Helpers.lua:35
clearCodes = <func> @PitBull4_DogTagTexts\libs\..\Helpers.lua:515
TimerHandlers = <table> {}
ADDON_LOADED = <func> @PitBull4_DogTagTexts\libs\..\LibDogTag-3.0.lua:515
AddCallback = <func> @PitBull4_DogTagTexts\libs\..\Events.lua:193
RemoveCompilationStep = <func> @PitBull4_DogTagTexts\libs\..\Compiler.lua:2259
_clearCodes = <func> @PitBull4_DogTagTexts\libs\..\Helpers.lua:441
deepCompare = <func> @PitBull4_DogTagTexts\libs\..\Helpers.lua:335
RemoveEventHandler = <func> @PitBull4_DogTagTexts\libs\..\Events.lua:653
newSet = <func> @PitBull4_DogTagTexts\libs\..\Helpers.lua:51
__mytonumber = <func> @PitBull4_DogTagTexts\libs\..\Compiler.lua:292
OpenHelp = <func> @PitBull4_DogTagTexts\libs\..\Help.lua:25
EventHandlers = <table> {}
RemoveCallback = <functi
That would be some sort of bug in LibDogTags. You can report the error here:
http://www.wowace.com/addons/libdogtag-3-0/
Looks like the library isn't setting the font for the text string before trying to set text which isn't allowed.
This error is occuring only in conjunction with MikScrollingBattletext.
I used to pull S017036D.TTF from MSBT for use. I tried moving it to both Grizzly Shared Media, and Shared Media. It is still not being recognized in PB.
Really appreciate any help.
This was my setup Pre 5.0
I can't replicate this.
Please open a bug for this and attach yourSavedVariables file (under your WoW install: WTF/Account/$ACCOUNT/SavedVariables/PitBull4.lua) and provide which profile you're using. May also be useful to provide the resolution that you're running the game under.
You can open the bug here (it's a curse site so the username/password is the same as here):
http://www.wowace.com/addons/pitbull4/create-ticket/
Yea MSBT is screwing with other addons with that keep reporting a "font not set" error.
For some reason Pitbull just hates my paladin now. Everything works fine except for holy power. I used to have it go in alternate power bar but now the alternate power bar won't show. I can only get the holy power indicators to work but I don't like them as much as having the old bar that lit up in thirds (now would be fifths) as I gained holy power. I don't have clique nor any other raid frame changing thing except fluid frames.