Quantcast

5.4.16

Steven Jackson [01-09-15 - 07:19]
5.4.16
Filename
Interface/AddOns/SVUI/SVUI.toc
Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/DEATHKNIGHT-BLOOD.blp
Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/DEATHKNIGHT-FROST.blp
Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/DEATHKNIGHT-UNHOLY.blp
Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-BG-ANIMATION.blp
Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-CHARGE.blp
Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-FG-ANIMATION.blp
Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-ICICLE-1.blp
Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-ICICLE-2.blp
Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-ICICLE-3.blp
Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-ICICLE-4.blp
Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-ICICLE-5.blp
Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/RUNES-BG.blp
Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/RUNES-FG.blp
Interface/AddOns/SVUI/data/defaults.lua
Interface/AddOns/SVUI/framework/api/api.xml
Interface/AddOns/SVUI/framework/widgets/widget_afk.lua
Interface/AddOns/SVUI/libs/LibSuperVillain-1.0/modules/Registry.lua
Interface/AddOns/SVUI/libs/LibSuperVillain-1.0/modules/SpecialFX.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_ActionPanel/oUF_ActionPanel.toc
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Afflicted/oUF_Afflicted.toc
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Conqueror/oUF_Conqueror.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Gladiator/oUF_Gladiator.toc
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_KungFu/oUF_KungFu.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_MageMagic/oUF_MageMagic.lua
Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_MageMagic/oUF_MageMagic.toc
Interface/AddOns/SVUI/packages/bag/SVBag.lua
Interface/AddOns/SVUI/packages/chat/SVChat.lua
Interface/AddOns/SVUI/packages/tip/SVTip.lua
Interface/AddOns/SVUI/packages/unit/elements/castbar.lua
Interface/AddOns/SVUI/packages/unit/elements/essentials.lua
Interface/AddOns/SVUI/packages/unit/elements/misc.lua
Interface/AddOns/SVUI/packages/unit/frames.lua
Interface/AddOns/SVUI/packages/unit/resources/deathknight.lua
Interface/AddOns/SVUI/packages/unit/resources/mage.lua
Interface/AddOns/SVUI/packages/unit/resources/monk.lua
Interface/AddOns/SVUI/packages/unit/resources/warrior.lua
Interface/AddOns/SVUI/setup/presets.lua
Interface/AddOns/SVUI/system/core.lua
Interface/AddOns/SVUI/system/media.lua
Interface/AddOns/SVUI_ChatOMatic/SVUI_ChatOMatic.toc
Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.lua
Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.toc
Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.toc
Interface/AddOns/SVUI_FightOMatic/SVUI_FightOMatic.lua
Interface/AddOns/SVUI_FightOMatic/SVUI_FightOMatic.toc
Interface/AddOns/SVUI_LogOMatic/SVUI_LogOMatic.toc
Interface/AddOns/SVUI_StyleOMatic/SVUI_StyleOMatic.toc
Interface/AddOns/SVUI_StyleOMatic/components/blizzard/auctionhouse.lua
Interface/AddOns/SVUI_StyleOMatic/components/blizzard/character.lua
Interface/AddOns/SVUI_StyleOMatic/components/blizzard/system.lua
Interface/AddOns/SVUI_StyleOMatic/components/blizzard/voidstorage.lua
Interface/AddOns/SVUI_TrackOMatic/SVUI_TrackOMatic.toc
diff --git a/Interface/AddOns/SVUI/SVUI.toc b/Interface/AddOns/SVUI/SVUI.toc
index a84b988..90c381b 100644
--- a/Interface/AddOns/SVUI/SVUI.toc
+++ b/Interface/AddOns/SVUI/SVUI.toc
@@ -1,6 +1,6 @@
 ## Interface: 60000
 ## Author: Munglunch
-## Version: 5.4.15
+## Version: 5.4.16
 ## Title: |cffFF9900SVUI|r
 ## Notes: Supervillain UI [|cff9911FFCore Framework|r].
 ## SavedVariables: SVUI_Global, SVUI_Errors
diff --git a/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/DEATHKNIGHT-BLOOD.blp b/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/DEATHKNIGHT-BLOOD.blp
deleted file mode 100644
index 1965896..0000000
Binary files a/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/DEATHKNIGHT-BLOOD.blp and /dev/null differ
diff --git a/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/DEATHKNIGHT-FROST.blp b/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/DEATHKNIGHT-FROST.blp
deleted file mode 100644
index a37e79e..0000000
Binary files a/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/DEATHKNIGHT-FROST.blp and /dev/null differ
diff --git a/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/DEATHKNIGHT-UNHOLY.blp b/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/DEATHKNIGHT-UNHOLY.blp
deleted file mode 100644
index 4d1c6ea..0000000
Binary files a/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/DEATHKNIGHT-UNHOLY.blp and /dev/null differ
diff --git a/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-BG-ANIMATION.blp b/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-BG-ANIMATION.blp
deleted file mode 100644
index 456c68f..0000000
Binary files a/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-BG-ANIMATION.blp and /dev/null differ
diff --git a/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-CHARGE.blp b/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-CHARGE.blp
new file mode 100644
index 0000000..ed032c4
Binary files /dev/null and b/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-CHARGE.blp differ
diff --git a/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-FG-ANIMATION.blp b/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-FG-ANIMATION.blp
deleted file mode 100644
index 40a1141..0000000
Binary files a/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-FG-ANIMATION.blp and /dev/null differ
diff --git a/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-ICICLE-1.blp b/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-ICICLE-1.blp
new file mode 100644
index 0000000..fc58a3e
Binary files /dev/null and b/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-ICICLE-1.blp differ
diff --git a/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-ICICLE-2.blp b/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-ICICLE-2.blp
new file mode 100644
index 0000000..5457703
Binary files /dev/null and b/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-ICICLE-2.blp differ
diff --git a/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-ICICLE-3.blp b/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-ICICLE-3.blp
new file mode 100644
index 0000000..2d8abdc
Binary files /dev/null and b/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-ICICLE-3.blp differ
diff --git a/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-ICICLE-4.blp b/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-ICICLE-4.blp
new file mode 100644
index 0000000..b07dc24
Binary files /dev/null and b/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-ICICLE-4.blp differ
diff --git a/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-ICICLE-5.blp b/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-ICICLE-5.blp
new file mode 100644
index 0000000..6cfe93c
Binary files /dev/null and b/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/MAGE-ICICLE-5.blp differ
diff --git a/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/RUNES-BG.blp b/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/RUNES-BG.blp
new file mode 100644
index 0000000..b83d793
Binary files /dev/null and b/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/RUNES-BG.blp differ
diff --git a/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/RUNES-FG.blp b/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/RUNES-FG.blp
new file mode 100644
index 0000000..37ebffb
Binary files /dev/null and b/Interface/AddOns/SVUI/assets/artwork/Unitframe/Class/RUNES-FG.blp differ
diff --git a/Interface/AddOns/SVUI/data/defaults.lua b/Interface/AddOns/SVUI/data/defaults.lua
index 1a8b1d5..87ebb97 100644
--- a/Interface/AddOns/SVUI/data/defaults.lua
+++ b/Interface/AddOns/SVUI/data/defaults.lua
@@ -977,16 +977,16 @@ SV.defaults["SVUnit"] = {
 			["combatIcon"] = {
 				["enable"] = true,
 				["size"] = 26,
-				["attachTo"] = "INNERTOPRIGHT",
-				["xOffset"] = 8,
-				["yOffset"] = 8,
+				["attachTo"] = "TOPRIGHT",
+				["xOffset"] = 28,
+				["yOffset"] = 2,
 			},
 			["restIcon"] = {
 				["enable"] = true,
 				["size"] = 22,
-				["attachTo"] = "INNERTOPRIGHT",
-				["xOffset"] = 8,
-				["yOffset"] = 8,
+				["attachTo"] = "INNERBOTTOMRIGHT",
+				["xOffset"] = 0,
+				["yOffset"] = 0,
 			},
 		},
 		["stagger"] =
diff --git a/Interface/AddOns/SVUI/framework/api/api.xml b/Interface/AddOns/SVUI/framework/api/api.xml
index b6babc6..5c0f8e5 100644
--- a/Interface/AddOns/SVUI/framework/api/api.xml
+++ b/Interface/AddOns/SVUI/framework/api/api.xml
@@ -861,22 +861,22 @@
         <Attributes>
             <Attribute name="panelID" type="string" value="container" />
             <Attribute name="panelPadding" type="number" value="2" />
-            <Attribute name="panelColor" type="string" value="special" />
-            <Attribute name="panelGradient" type="string" value="special" />
+            <Attribute name="panelColor" type="string" value="container" />
+            <Attribute name="panelGradient" type="string" value="container" />
             <Attribute name="panelTexUpdate" type="boolean" value="true" />
             <Attribute name="panelSkipUpdate" type="boolean" value="false" />
         </Attributes>
-        <Backdrop bgFile="Interface\AddOns\SVUI\assets\artwork\Template\Background\PATTERN3" edgeFile="Interface\BUTTONS\WHITE8X8" tile="false">
+        <Backdrop bgFile="Interface\AddOns\SVUI\assets\artwork\Template\Background\PAPER" edgeFile="Interface\BUTTONS\WHITE8X8" tile="false">
             <EdgeSize val="1" />
             <TileSize val="0" />
             <BackgroundInsets left="0" right="0" top="0" bottom="0" />
-            <Color r="0.37" g="0.32" b="0.29" a="1" />
+            <Color r="0.22" g="0.21" b="0.2" a="1" />
             <BorderColor r="0" g="0" b="0" a="1" />
         </Backdrop>
         <Layers>
             <Layer level="BACKGROUND" textureSubLevel="1">
-                <Texture parentKey="Skin" nonBlocking="true" file="Interface\AddOns\SVUI\assets\artwork\Template\Background\PATTERN3" setAllPoints="true" />
-                <Color r="0.37" g="0.32" b="0.29" a="1" />
+                <Texture parentKey="Skin" nonBlocking="true" file="Interface\AddOns\SVUI\assets\artwork\Template\Background\PAPER" setAllPoints="true" />
+                <Color r="0.22" g="0.21" b="0.2" a="1" />
             </Layer>
             <Layer level="BORDER">
                 <Texture parentKey="BorderLeft" file="Interface\BUTTONS\WHITE8X8">
diff --git a/Interface/AddOns/SVUI/framework/widgets/widget_afk.lua b/Interface/AddOns/SVUI/framework/widgets/widget_afk.lua
index f26bf5d..96f28e1 100644
--- a/Interface/AddOns/SVUI/framework/widgets/widget_afk.lua
+++ b/Interface/AddOns/SVUI/framework/widgets/widget_afk.lua
@@ -62,15 +62,14 @@ function SV.AFK:Activate(enabled)
 end

 local AFK_OnEvent = function(self, event)
-	if(event == "PLAYER_REGEN_DISABLED") then
-		self:RegisterEvent("PLAYER_REGEN_ENABLED", "OnEvent")
-		self:Activate(false)
-	else
+	if(event == "PLAYER_FLAGS_CHANGED") then
 		if(UnitIsAFK("player")) then
 			self:Activate(true)
 		else
 			self:Activate(false)
 		end
+	else
+		self:Activate(false)
 	end
 end

@@ -106,6 +105,8 @@ function SV.AFK:Initialize()
 	if(SV.db.general.afk) then
 		self:RegisterEvent("PLAYER_FLAGS_CHANGED")
 		self:RegisterEvent("PLAYER_REGEN_DISABLED")
+		self:RegisterEvent("PLAYER_ENTERING_WORLD")
+		self:RegisterEvent("PET_BATTLE_OPENING_START")
 		self:SetScript("OnEvent", AFK_OnEvent)
 	end
 end
@@ -114,10 +115,16 @@ function SV.AFK:Toggle()
 	if(SV.db.general.afk) then
 		self:RegisterEvent("PLAYER_FLAGS_CHANGED")
 		self:RegisterEvent("PLAYER_REGEN_DISABLED")
+		self:RegisterEvent("PLAYER_ENTERING_WORLD")
+		self:RegisterEvent("PET_BATTLE_OPENING_START")
+		self:RegisterEvent("PLAYER_DEAD")
 		self:SetScript("OnEvent", AFK_OnEvent)
 	else
 		self:UnregisterEvent("PLAYER_FLAGS_CHANGED")
 		self:UnregisterEvent("PLAYER_REGEN_DISABLED")
+		self:UnregisterEvent("PLAYER_ENTERING_WORLD")
+		self:UnregisterEvent("PET_BATTLE_OPENING_START")
+		self:UnregisterEvent("PLAYER_DEAD")
 		self:SetScript("OnEvent", nil)
 	end
 end
\ No newline at end of file
diff --git a/Interface/AddOns/SVUI/libs/LibSuperVillain-1.0/modules/Registry.lua b/Interface/AddOns/SVUI/libs/LibSuperVillain-1.0/modules/Registry.lua
index bd7003c..cdf635e 100644
--- a/Interface/AddOns/SVUI/libs/LibSuperVillain-1.0/modules/Registry.lua
+++ b/Interface/AddOns/SVUI/libs/LibSuperVillain-1.0/modules/Registry.lua
@@ -179,29 +179,6 @@ function table.copy(targetTable,deepCopy,mergeTable)
     return replacementTable
 end

-function string.trim(this)
-    return find(this, '^%s*$') and '' or match(this, '^%s*(.*%S)')
-end
-
-function string.color(this, color)
-    return format("|cff%s%s|r", color, this)
-end
-
-function string.link(this, prefix, text, color)
-    text = tostring(text)
-    local colorstring = tostring(this):color(color or "ffffff")
-    return format("|H%s:%s|h%s|h", prefix, text, colorstring)
-end
-
-function string.explode(this, delim)
-    local pattern = format("([^%s]+)", delim)
-    local res = {}
-    for line in this:gmatch(pattern) do
-        tinsert(res, line)
-    end
-    return res
-end
-
 --DATABASE LOCAL HELPERS

 local function copydefaults(d, s)
diff --git a/Interface/AddOns/SVUI/libs/LibSuperVillain-1.0/modules/SpecialFX.lua b/Interface/AddOns/SVUI/libs/LibSuperVillain-1.0/modules/SpecialFX.lua
index f481c2d..aeae438 100644
--- a/Interface/AddOns/SVUI/libs/LibSuperVillain-1.0/modules/SpecialFX.lua
+++ b/Interface/AddOns/SVUI/libs/LibSuperVillain-1.0/modules/SpecialFX.lua
@@ -70,7 +70,7 @@ local EFFECTS_LIST = setmetatable({
     ["arcane"]      = {[[Spells\Cast_arcane_01.m2]], -12, 12, 12, -12, 0.25, 0, 0},
     ["fire"]        = {[[Spells\Bloodlust_state_hand.m2]], -8, 4, 24, -24, 0.23, -0.08, 0.08},
     ["frost"]       = {[[Spells\Ice_cast_low_hand.m2]], -12, 12, 12, -12, 0.25, -0.2, -0.35},
-    ["chi"]         = {[[Spells\Fel_fire_precast_high_hand.m2]], -12, 12, 12, -12, 0.3, 0, 0},
+    ["chi"]         = {[[Spells\Fel_fire_precast_high_hand.m2]], -12, 12, 12, -12, 0.3, -0.04, -0.1},
     ["lightning"]   = {[[Spells\Fill_lightning_cast_01.m2]], -12, 12, 12, -12, 1.25, 0, 0},
     ["water"]       = {[[Spells\Monk_drunkenhaze_impact.m2]], -12, 12, 12, -12, 0.9, 0, 0},
     ["earth"]       = {[[Spells\Sand_precast_hand.m2]], -12, 12, 12, -12, 0.23, 0, 0},
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_ActionPanel/oUF_ActionPanel.toc b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_ActionPanel/oUF_ActionPanel.toc
index 5192212..d8bba41 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_ActionPanel/oUF_ActionPanel.toc
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_ActionPanel/oUF_ActionPanel.toc
@@ -2,7 +2,7 @@
 ## Title: oUF ActionPanel
 ## Notes: Adds a backing to all unit frames that provides many utilities.
 ## Author: Munglunch
-## Version: 5.4.15
+## Version: 5.4.16
 ## X-Category: oUF
 ## Dependencies: oUF

diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Afflicted/oUF_Afflicted.toc b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Afflicted/oUF_Afflicted.toc
index e1856ba..bddcfb3 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Afflicted/oUF_Afflicted.toc
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Afflicted/oUF_Afflicted.toc
@@ -2,7 +2,7 @@
 ## Title: oUF Afflicted
 ## Notes: Adds Custom Debuff Highlighting to oUF.
 ## Author: Munglunch
-## Version: 5.4.15
+## Version: 5.4.16
 ## X-Category: oUF
 ## Dependencies: oUF

diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Conqueror/oUF_Conqueror.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Conqueror/oUF_Conqueror.lua
index c8ad6d0..e1c66fa 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Conqueror/oUF_Conqueror.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Conqueror/oUF_Conqueror.lua
@@ -11,14 +11,14 @@ local UnitDebuff      	= _G.UnitDebuff;
 local parent, ns = ...
 local oUF = ns.oUF

-local ENRAGE_ID = 13046;
+local ENRAGE_ID = 12880;

-local function getRageAmount()
+local function getEnrageAmount()
 	for i = 1, 40 do
-		local name, rank, icon, count, dispelType, duration, expires, _, _, _, spellID, _, _, _, amount =
+		local _, _, _, count, _, duration, expires, _, _, _, spellID =
 			UnitBuff("player", i)
-		if spellID == ENRAGE_ID then
-			return duration, expires
+		if(spellID and spellID == ENRAGE_ID) then
+			return floor(expires), duration
 		end
 	end
 	return 0,0
@@ -41,19 +41,41 @@ local BarOnUpdate = function(self, elapsed)
 	end
 end

+local EnrageOnUpdate = function(self, elapsed)
+	if not self.duration then return end
+	self.elapsed = (self.elapsed or 0) + elapsed
+	if self.elapsed >= 0.5 then
+		local timeLeft = (self.duration - self.elapsed)
+		if timeLeft > 0 then
+			self.bar:SetValue(timeLeft)
+		else
+			self.start = 0;
+			self.duration = 8;
+			self.elapsed = 0;
+			self.bar:SetValue(0);
+			self:SetScript("OnUpdate", nil);
+			self:FadeOut();
+		end
+	end
+end
+
 local Update = function(self, event, unit)
 	local element = self.Conqueror
-	local bar = element.Enrage
+	local enrage = element.Enrage
 	if(element.PreUpdate) then element:PreUpdate(event) end

-	local start, duration = getRageAmount()
-
-	if(duration and start) then
-		bar:SetMinMaxValues(0, start)
-		bar:SetValue(start)
-		bar.start = start
-		bar.duration = duration
-		bar:SetScript('OnUpdate', BarOnUpdate)
+	if(enrage:IsShown()) then
+		local start, duration = getEnrageAmount()
+		if(duration and start and (start ~= enrage.start)) then
+			enrage.bar:SetMinMaxValues(0, duration)
+			enrage.bar:SetValue(duration)
+
+			enrage.elapsed = 0;
+			enrage.start = start
+			enrage.duration = duration
+			enrage:SetScript('OnUpdate', EnrageOnUpdate)
+			enrage:FadeIn();
+		end
 	end

 	if(element.PostUpdate) then
@@ -78,11 +100,13 @@ local Enable = function(self)

 		self:RegisterEvent('UNIT_AURA', Path, true)

-		if(bar.Enrage:IsObjectType'Texture' and not bar.Enrage:GetTexture()) then
-			bar.Enrage:SetTexture[[Interface\TargetingFrame\UI-StatusBar]]
+		local enrage = bar.Enrage;
+		if(enrage.bar:IsObjectType'Texture' and not enrage.bar:GetTexture()) then
+			enrage.bar:SetTexture[[Interface\TargetingFrame\UI-StatusBar]]
 		end
-		bar.Enrage:SetMinMaxValues(0, 100)
-		bar.Enrage:SetValue(0)
+		enrage.bar:SetMinMaxValues(0, 100)
+		enrage.bar:SetValue(0)
+		enrage:FadeOut()

 		return true
 	end
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Gladiator/oUF_Gladiator.toc b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Gladiator/oUF_Gladiator.toc
index 3679662..0a2f7de 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Gladiator/oUF_Gladiator.toc
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_Gladiator/oUF_Gladiator.toc
@@ -2,7 +2,7 @@
 ## Title: oUF Gladiator
 ## Notes: Adds PvP trinket status and spec icons to oUF frames.
 ## Author: Munglunch
-## Version: 5.4.15
+## Version: 5.4.16
 ## X-Category: oUF
 ## Dependencies: oUF

diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_KungFu/oUF_KungFu.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_KungFu/oUF_KungFu.lua
index b9872e7..b6fb2b9 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_KungFu/oUF_KungFu.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_KungFu/oUF_KungFu.lua
@@ -168,7 +168,9 @@ local Update = function(self, event, unit)
 		local staggering = getStaggerAmount()
 		if staggering == 0 then
 			stagger:SetValue(0)
+			stagger:FadeOut()
 		else
+			stagger:FadeIn()
 			local health = UnitHealth("player")
 			local maxHealth = UnitHealthMax("player")
 			local staggerTotal = UnitStagger("player")
@@ -244,7 +246,7 @@ local function Enable(self, unit)
 				bar[i]:SetStatusBarTexture([=[Interface\TargetingFrame\UI-StatusBar]=])
 			end

-			bar[i]:SetStatusBarColor(unpack(oUF.colors.KungFu[i]))
+			bar[i]:SetStatusBarColor(unpack(CHI_COLORS[i]))
 			bar[i]:SetFrameLevel(bar:GetFrameLevel() + 1)
 			bar[i]:GetStatusBarTexture():SetHorizTile(false)
 		end
@@ -253,7 +255,7 @@ local function Enable(self, unit)
 		if(stagger:IsObjectType'StatusBar' and not stagger:GetStatusBarTexture()) then
 			stagger:SetStatusBarTexture(0.91, 0.75, 0.25)
 		end
-		stagger:SetStatusBarColor(unpack(brewColor))
+		stagger:SetStatusBarColor(unpack(DEFAULT_BREW_COLOR))
 		stagger:SetMinMaxValues(0, 100)
 		stagger:SetValue(0)

diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_MageMagic/oUF_MageMagic.lua b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_MageMagic/oUF_MageMagic.lua
index 2653700..c1d7286 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_MageMagic/oUF_MageMagic.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_MageMagic/oUF_MageMagic.lua
@@ -19,7 +19,7 @@ if not oUF then return end
 local playerGUID;

 local ARCANE_CHARGE_ID = 36032;
-
+local ARCANE_BARRAGE_ID = 44425;
 local IGNITE_ID = 12654;
 local COMBUSTION_ID = 83853;
 local PYROBLAST_ID = 11366;
@@ -72,14 +72,24 @@ end

 local GetResources = {
 	[1] = function(self, event, ...)
-		if(event == 'UNIT_AURA') then
+		if(event == 'COMBAT_LOG_EVENT_UNFILTERED') then
+			local _, eventType, _, srcGUID, _, _, _, destGUID, _, _, _, spellID, _, _, amount = ...
+			if(srcGUID == playerGUID) then
+				if(eventType:find("_DAMAGE")) then
+					if(spellID == ARCANE_BARRAGE_ID) then
+						SPELLCOUNT = 0
+						return
+					end
+				end
+			end
+		elseif(event == 'UNIT_AURA') then
 			local unit = ...;
 			for index = 1, 30 do
-				local _, _, _, count, _, start, duration, _, _, _, spellID = UnitDebuff(unit, index)
+				local name, _, _, count, _, start, duration, _, _, _, spellID = UnitDebuff(unit, index)
 				if(spellID == ARCANE_CHARGE_ID) then
-					SPELLCOUNT = count
+					SPELLCOUNT = count or 0
 					return start, duration
-				end
+				end
 			end
 		end
 		return 0,0,true
@@ -155,8 +165,12 @@ local BarOnUpdate = function(self, elapsed)
 		if timeLeft > 0 then
 			self:SetValue(timeLeft)
 		else
-			self.start = nil
-			self.duration = nil
+			if(SPELLCOUNT > 0) then
+				SPELLCOUNT = SPELLCOUNT - 1
+			end
+			self.start = 0;
+			self.duration = 0;
+			self.elapsed = 0;
 			self:SetValue(0)
 			self:Hide()
 			self:SetScript("OnUpdate", nil)
@@ -195,7 +209,7 @@ local IcicleOnUpdate = function(self, elapsed)
 			if(SPELLCOUNT > 0) then
 				SPELLCOUNT = SPELLCOUNT - 1
 			end
-			self.elapsed = nil;
+			self.elapsed = 0;
 			self:SetValue(0);
 			self:Hide();
 			self:SetScript("OnUpdate", nil);
@@ -241,6 +255,7 @@ local Update = function(self, event, ...)
 								bar[i]:SetValue(start)
 								bar[i]:SetScript('OnUpdate', BarOnUpdate)
 							else
+								bar[i].elapsed = 0;
 								bar[i]:SetValue(0)
 								bar[i]:SetScript('OnUpdate', nil)
 								bar[i]:Hide()
@@ -256,6 +271,7 @@ local Update = function(self, event, ...)
 							bar[i]:SetValue(31)
 							bar[i]:SetScript('OnUpdate', IcicleOnUpdate)
 						else
+							bar[i].elapsed = 0;
 							bar[i]:SetValue(0)
 							bar[i]:SetScript('OnUpdate', nil)
 							bar[i]:FadeOut()
@@ -281,21 +297,23 @@ local Proxy = function(self, ...)
 	if((not bar.CurrentSpec) or (bar.CurrentSpec ~= spec)) then
 		ResetMagic(self);
 		if(spec) then
-			bar.CurrentSpec = spec;
-			if(bar.CurrentSpec == 3) then
+			if(spec == 3) then
 				self:UnregisterEvent('UNIT_AURA', Update)
 				self:RegisterEvent('COMBAT_LOG_EVENT_UNFILTERED', Update, true)
 				--print("Switch To Frost")
-			elseif(bar.CurrentSpec == 2) then
+				bar.CurrentSpec = spec;
+			elseif(spec == 2) then
 				self:RegisterEvent('UNIT_AURA', Update)
 				self:RegisterEvent('COMBAT_LOG_EVENT_UNFILTERED', Update, true)
 				if(not bar.Ignite:IsShown()) then bar.Ignite:Show() end
 				bar.Ignite.Bar:SetValue(0)
 				--print("Switch To Fire")
-			elseif(bar.CurrentSpec == 1) then
+				bar.CurrentSpec = spec;
+			elseif(spec == 1) then
 				self:RegisterEvent('UNIT_AURA', Update)
-				self:UnregisterEvent('COMBAT_LOG_EVENT_UNFILTERED', Update)
+				self:RegisterEvent('COMBAT_LOG_EVENT_UNFILTERED', Update, true)
 				--print("Switch To Arcane")
+				bar.CurrentSpec = spec;
 			end
 			if(bar.PostTalentUpdate) then bar:PostTalentUpdate(spec) end
 		else
@@ -319,6 +337,7 @@ local Enable = function(self, unit)

 	if(bar) then
 		self:RegisterEvent("PLAYER_TALENT_UPDATE", Path)
+		self:RegisterEvent("ACTIVE_TALENT_GROUP_CHANGED", Path)
 		self:RegisterEvent("PLAYER_ENTERING_WORLD", Path)
 		bar.__owner = self
 		bar.ForceUpdate = ForceUpdate
@@ -354,6 +373,7 @@ local Disable = function(self, unit)
 		self:UnregisterEvent("UNIT_AURA", Update)
 		self:UnregisterEvent("COMBAT_LOG_EVENT_UNFILTERED", Update)
 		self:UnregisterEvent("PLAYER_TALENT_UPDATE", Path)
+		self:UnregisterEvent("ACTIVE_TALENT_GROUP_CHANGED", Path)
 		self:UnregisterEvent("PLAYER_ENTERING_WORLD", Path)
 		bar:Hide()
 	end
diff --git a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_MageMagic/oUF_MageMagic.toc b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_MageMagic/oUF_MageMagic.toc
index cccf22e..2ffd799 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_MageMagic/oUF_MageMagic.toc
+++ b/Interface/AddOns/SVUI/libs/oUF_Villain/Plugins/oUF_MageMagic/oUF_MageMagic.toc
@@ -2,7 +2,7 @@
 ## Title: oUF Mage Magic
 ## Notes: Adds support for mage spell indicators to oUF.
 ## Author: Munglunch
-## Version: 5.4.15
+## Version: 5.4.16
 ## Dependencies: oUF

 oUF_MageMagic.lua
\ No newline at end of file
diff --git a/Interface/AddOns/SVUI/packages/bag/SVBag.lua b/Interface/AddOns/SVUI/packages/bag/SVBag.lua
index 147ffc7..39cc496 100644
--- a/Interface/AddOns/SVUI/packages/bag/SVBag.lua
+++ b/Interface/AddOns/SVUI/packages/bag/SVBag.lua
@@ -54,6 +54,7 @@ local hooksecurefunc = _G.hooksecurefunc;
 local BLANK_TEXTURE = [[Interface\BUTTONS\WHITE8X8]];
 local BASIC_TEXTURE = [[Interface\AddOns\SVUI\assets\artwork\Bars\DEFAULT]];
 local BORDER_TEXTURE = [[Interface\Addons\SVUI\assets\artwork\Template\ROUND]];
+local BORDER_BG = [[Interface\AddOns\SVUI\assets\artwork\Unitframe\Class\ORB-BG]];
 local ICON_BAGS = [[Interface\AddOns\SVUI\assets\artwork\Icons\BAGS-BAGS]];
 local ICON_SORT = [[Interface\AddOns\SVUI\assets\artwork\Icons\BAGS-SORT]];
 local ICON_STACK = [[Interface\AddOns\SVUI\assets\artwork\Icons\BAGS-STACK]];
@@ -96,30 +97,35 @@ local function FormatCurrency(amount)
 end

 local function StyleBagToolButton(button, iconTex)
-	if button.styled then return end
+	if button.styled then return end
+
+	local bg = button:CreateTexture(nil, "BACKGROUND")
+	bg:SetAllPointsOut(button, 4, 4)
+	bg:SetTexture(BORDER_BG)
+	bg:SetVertexColor(unpack(SV.Media.color.default))

 	local outer = button:CreateTexture(nil, "OVERLAY")
-	outer:SetAllPointsOut(button, 6, 6)
+	outer:SetAllPointsOut(button, 5, 5)
 	outer:SetTexture(BORDER_TEXTURE)
-	outer:SetGradient("VERTICAL", 0.4, 0.47, 0.5, 0.3, 0.33, 0.35)
+	outer:SetGradient(unpack(SV.Media.gradient.container))

 	button:SetNormalTexture(iconTex)
 	iconTex = button:GetNormalTexture()
-	iconTex:SetGradient("VERTICAL", 0.5, 0.53, 0.55, 0.8, 0.8, 1)
+	iconTex:SetGradient(unpack(SV.Media.gradient.medium))

 	local icon = button:CreateTexture(nil, "OVERLAY")
-	icon:SetAllPointsOut(button, 6, 6)
+	icon:SetAllPointsOut(button, 5, 5)
 	SetPortraitToTexture(icon, iconTex)
 	hooksecurefunc(icon, "SetTexture", SetPortraitToTexture)

 	local hover = button:CreateTexture(nil, "HIGHLIGHT")
-	hover:SetAllPointsOut(button, 6, 6)
+	hover:SetAllPointsOut(button, 5, 5)
 	hover:SetTexture(BORDER_TEXTURE)
 	hover:SetGradient(unpack(SV.Media.gradient.yellow))

 	if button.SetPushedTexture then
 		local pushed = button:CreateTexture(nil, "BORDER")
-		pushed:SetAllPointsOut(button, 6, 6)
+		pushed:SetAllPointsOut(button, 5, 5)
 		pushed:SetTexture(BORDER_TEXTURE)
 		pushed:SetGradient(unpack(SV.Media.gradient.highlight))
 		button:SetPushedTexture(pushed)
@@ -127,7 +133,7 @@ local function StyleBagToolButton(button, iconTex)

 	if button.SetCheckedTexture then
 		local checked = button:CreateTexture(nil, "BORDER")
-		checked:SetAllPointsOut(button, 6, 6)
+		checked:SetAllPointsOut(button, 5, 5)
 		checked:SetTexture(BORDER_TEXTURE)
 		checked:SetGradient(unpack(SV.Media.gradient.green))
 		button:SetCheckedTexture(checked)
@@ -135,7 +141,7 @@ local function StyleBagToolButton(button, iconTex)

 	if button.SetDisabledTexture then
 		local disabled = button:CreateTexture(nil, "BORDER")
-		disabled:SetAllPointsOut(button, 6, 6)
+		disabled:SetAllPointsOut(button, 5, 5)
 		disabled:SetTexture(BORDER_TEXTURE)
 		disabled:SetGradient(unpack(SV.Media.gradient.default))
 		button:SetDisabledTexture(disabled)
@@ -621,9 +627,8 @@ local ContainerFrame_UpdateLayout = function(self)
 					slot = CreateFrame("CheckButton", slotName, bag, template);
 					slot:SetNormalTexture("");
 					slot:SetCheckedTexture("");
-					slot:RemoveTextures()
-					slot:SetStylePanel("Slot", true, 2, 0, 0, 0.45);
-					slot.Panel.Shadow:SetAttribute("shadowAlpha", 0.9)
+					slot:RemoveTextures();
+					slot:SetStylePanel("Slot", true, 1, 0, 0);

 					if(not slot.NewItemTexture) then
 						slot.NewItemTexture = slot:CreateTexture(nil, "OVERLAY", 1);
@@ -642,8 +647,8 @@ local ContainerFrame_UpdateLayout = function(self)
 					if(not slot.icon) then
 						slot.icon = slot:CreateTexture(nil, "BORDER");
 					end
-					slot.icon:SetAllPointsIn(slot);
 					slot.icon:SetTexCoord(0.1, 0.9, 0.1, 0.9);
+					slot.icon:SetAllPointsIn(slot);

 					slot.questIcon = _G[questIcon] or slot:CreateTexture(nil, "OVERLAY")
 					slot.questIcon:SetTexture(TEXTURE_ITEM_QUEST_BANG);
@@ -766,7 +771,7 @@ local ReagentFrame_UpdateLayout = function(self)
 			slot:SetNormalTexture(nil);
 			slot:SetCheckedTexture(nil);
 			slot:RemoveTextures()
-			slot:SetStylePanel("Slot", true, 2, 0, 0, 0.5);
+			slot:SetStylePanel("Slot", true, 2, 0, 0);

 			slot.NewItemTexture = slot:CreateTexture(nil, "OVERLAY", 1);
 			slot.NewItemTexture:SetAllPointsIn(slot);
@@ -1221,7 +1226,7 @@ do
 	end

 	local Tooltip_Hide = function(self)
-		self:GetNormalTexture():SetGradient("VERTICAL", 0.5, 0.53, 0.55, 0.8, 0.8, 1)
+		self:GetNormalTexture():SetGradient(unpack(SV.Media.gradient.medium))
 		GameTooltip:Hide()
 	end

@@ -1435,7 +1440,7 @@ do
 		local bagsCount = #self.BagFrames + 1;

 		local frame = CreateFrame("Button", bagName, isReagent and self.BankFrame or SV.Screen)
-		frame:SetStylePanel("Default", isReagent and "Action" or "Container")
+		frame:SetStylePanel("Default", "Container")
 		frame:SetFrameStrata("HIGH")
 		frame:SetFrameLevel(SVUI_ContainerFrame:GetFrameLevel() + 99)

diff --git a/Interface/AddOns/SVUI/packages/chat/SVChat.lua b/Interface/AddOns/SVUI/packages/chat/SVChat.lua
index 9421d81..0d219ac 100644
--- a/Interface/AddOns/SVUI/packages/chat/SVChat.lua
+++ b/Interface/AddOns/SVUI/packages/chat/SVChat.lua
@@ -274,10 +274,16 @@ do
 		return msg
 	end

+	local function _getlink(this, prefix, text, color)
+	    text = tostring(text)
+	    local colorstring = ("|cff%s%s|r"):format(color or "ffffff", tostring(this))
+	    return format("|H%s:%s|h%s|h", prefix, text, colorstring)
+	end
+
 	local function _parse(arg1, arg2, arg3)
 		internalTest = true;
 		local prefix = (" [%s]"):format(arg2)
-		local slink = prefix:link("url", arg2, "0099FF")
+		local slink = _getlink(prefix, "url", arg2, "0099FF")
 		return ("%s "):format(slink)
 	end

diff --git a/Interface/AddOns/SVUI/packages/tip/SVTip.lua b/Interface/AddOns/SVUI/packages/tip/SVTip.lua
index 8791eb9..4ff7879 100644
--- a/Interface/AddOns/SVUI/packages/tip/SVTip.lua
+++ b/Interface/AddOns/SVUI/packages/tip/SVTip.lua
@@ -291,7 +291,7 @@ local function tipcleaner(this)
 	for i=3, this:NumLines() do
 		local tip = _G["GameTooltipTextLeft"..i]
 		local tipText = tip:GetText()
-		if tipText:find(PVP) or tipText:find(FACTION_ALLIANCE) or tipText:find(FACTION_HORDE) then
+		if(tipText and (tipText:find(PVP) or tipText:find(FACTION_ALLIANCE) or tipText:find(FACTION_HORDE))) then
 			tip:SetText(nil)
 			tip:Hide()
 		end
diff --git a/Interface/AddOns/SVUI/packages/unit/elements/castbar.lua b/Interface/AddOns/SVUI/packages/unit/elements/castbar.lua
index 1adbdab..ad6b2c1 100644
--- a/Interface/AddOns/SVUI/packages/unit/elements/castbar.lua
+++ b/Interface/AddOns/SVUI/packages/unit/elements/castbar.lua
@@ -548,12 +548,10 @@ function MOD:CreateCastbar(frame, reversed, moverName, ryu, useFader, isBoss, ha
 	local hadouken = CreateFrame("Frame", nil, castbar)

 	if ryu then
-		castbar.Time:SetFont(SV.Media.font.numbers, 12, "OUTLINE")
-		castbar.Time:SetShadowOffset(1, -1)
+		castbar.Time:FontManager("aura")
 		castbar.Time:SetTextColor(1, 1, 1)
-		castbar.Text:SetFont(SV.Media.font.alert, 12, "OUTLINE")
-		castbar.Text:SetShadowOffset(0, 0)
-		castbar.Text:SetTextColor(1, 1, 1)
+		castbar.Text:FontManager("caps")
+		castbar.Text:SetTextColor(1, 1, 1, 0.75)

 		castbar:SetStatusBarTexture(SV.Media.bar.lazer)

@@ -606,7 +604,6 @@ function MOD:CreateCastbar(frame, reversed, moverName, ryu, useFader, isBoss, ha
 			organizer:SetPointToScale("LEFT", castbar, "RIGHT", 4, 0)

 			castbar.Time:SetPointToScale("RIGHT", castbar, "LEFT", -4, 0)
-			castbar.Time:SetJustifyH("CENTER")
 		else
 			hadouken[1] = hadouken:CreateTexture(nil, "ARTWORK")
 			hadouken[1]:SetAllPoints(hadouken)
@@ -642,26 +639,20 @@ function MOD:CreateCastbar(frame, reversed, moverName, ryu, useFader, isBoss, ha
 			organizer:SetPointToScale("RIGHT", castbar, "LEFT", -4, 0)

 			castbar.Time:SetPointToScale("LEFT", castbar, "RIGHT", 4, 0)
-			castbar.Time:SetJustifyH("CENTER")
 		end

 		-- castbar.Time:SetPointToScale("CENTER", organizer, "CENTER", 0, 0)
 		-- castbar.Time:SetJustifyH("CENTER")

 		castbar.Text:SetAllPoints(castbar)
-		castbar.Text:SetJustifyH("CENTER")
 	else
-		castbar.Time:SetFont(SV.Media.font.default, 11)
-		castbar.Time:SetShadowOffset(1, -1)
+		castbar.Time:FontManager("aura", "RIGHT")
 		castbar.Time:SetTextColor(1, 1, 1, 0.9)
 		castbar.Time:SetPoint("RIGHT", castbar, "LEFT", -1, 0)
-		castbar.Time:SetJustifyH("RIGHT")

-		castbar.Text:SetFont(SV.Media.font.default, 11)
-		castbar.Text:SetShadowOffset(1, -1)
+		castbar.Text:FontManager("caps")
 		castbar.Text:SetTextColor(1, 1, 1, 0.9)
 		castbar.Text:SetAllPoints(castbar)
-		castbar.Text:SetJustifyH("CENTER")

 		castbar.pewpew = false

diff --git a/Interface/AddOns/SVUI/packages/unit/elements/essentials.lua b/Interface/AddOns/SVUI/packages/unit/elements/essentials.lua
index 1e4b817..42a11a7 100644
--- a/Interface/AddOns/SVUI/packages/unit/elements/essentials.lua
+++ b/Interface/AddOns/SVUI/packages/unit/elements/essentials.lua
@@ -263,7 +263,7 @@ local function CreateThreat(frame, unit)
 		aggro:SetFrameStrata("HIGH")
 		aggro:SetFrameLevel(30)
 		aggro:SetSize(40,40)
-		aggro:SetPoint("CENTER", frame, "TOPRIGHT", -6, -6)
+		aggro:SetPoint("BOTTOMLEFT", frame, "TOPRIGHT", -6, -6)
 		aggro.texture = aggro:CreateTexture(nil, "OVERLAY")
 		aggro.texture:SetAllPoints(aggro)
 		aggro.texture:SetTexture(AGGRO_TEXTURE)
@@ -386,16 +386,17 @@ end
 function MOD:SetActionPanel(frame, unit, noHealthText, noPowerText, noMiscText)
 	if(unit and (unit == "target" or unit == "player")) then
 		frame.ActionPanel = CreateActionPanel(frame, 3)
-
+		local baseSize = SV.db.font.unitprimary.size / 0.55;
 		local info = CreateFrame("Frame", nil, frame)
 		info:SetFrameStrata("BACKGROUND")
 		info:SetFrameLevel(0)
-		info:SetPointToScale("TOPLEFT", frame.ActionPanel, "BOTTOMLEFT", -1, 1)
-		info:SetPointToScale("TOPRIGHT", frame.ActionPanel, "BOTTOMRIGHT", 1, 1)
-		info:SetHeight(30)
+		info:SetPointToScale("TOPLEFT", frame.ActionPanel, "BOTTOMLEFT", 0, 1)
+		info:SetPointToScale("TOPRIGHT", frame.ActionPanel, "BOTTOMRIGHT", 0, 1)
+		info:SetHeight(baseSize)

 		local bg = info:CreateTexture(nil, "BACKGROUND")
-		bg:SetAllPointsIn(info)
+		bg:SetPointToScale("TOPLEFT", frame.ActionPanel, "BOTTOMLEFT", 0, 1)
+		bg:SetPointToScale("BOTTOMRIGHT", info, "BOTTOMRIGHT", 0, 0)
 		bg:SetTexture(1, 1, 1, 1)
 		bg:SetGradientAlpha("VERTICAL", 0, 0, 0, 0, 0, 0, 0, 0.7)

@@ -477,6 +478,8 @@ function MOD:SetActionPanel(frame, unit, noHealthText, noPowerText, noMiscText)
 			border4:SetPoint("BOTTOMLEFT")
 			border4:SetWidth(2)
 		else
+			frame.InfoPanel = info;
+
 			frame.LossOfControl = CreateFrame("Frame", nil, frame.TextGrip)
 			frame.LossOfControl:SetAllPoints(frame)
 			frame.LossOfControl:SetFrameStrata("DIALOG")
diff --git a/Interface/AddOns/SVUI/packages/unit/elements/misc.lua b/Interface/AddOns/SVUI/packages/unit/elements/misc.lua
index 0451860..df5bb18 100644
--- a/Interface/AddOns/SVUI/packages/unit/elements/misc.lua
+++ b/Interface/AddOns/SVUI/packages/unit/elements/misc.lua
@@ -302,37 +302,45 @@ end
 PLAYER ONLY COMPONENTS
 ##########################################################
 ]]--
-function MOD:CreateRestingIndicator(frame)
+function MOD:CreatePlayerIndicators(frame)
 	local resting = CreateFrame("Frame",nil,frame)
 	resting:SetFrameStrata("MEDIUM")
 	resting:SetFrameLevel(20)
 	resting:SetSizeToScale(26,26)
-	resting:SetPointToScale("TOPRIGHT",frame,3,3)
+	resting:SetPointToScale("BOTTOMRIGHT", frame.Health, "BOTTOMRIGHT", 0, 0)
 	resting.bg = resting:CreateTexture(nil,"OVERLAY",nil,1)
 	resting.bg:SetAllPoints(resting)
 	resting.bg:SetTexture(STATE_ICON_FILE)
 	resting.bg:SetTexCoord(0.5,1,0,0.5)
-	return resting
-end
-
-function MOD:CreateCombatIndicator(frame)
+
 	local combat = CreateFrame("Frame",nil,frame)
 	combat:SetFrameStrata("MEDIUM")
 	combat:SetFrameLevel(30)
 	combat:SetSizeToScale(26,26)
-	combat:SetPointToScale("TOPRIGHT",frame,3,3)
+	combat:SetPointToScale("BOTTOMLEFT", frame , "TOPRIGHT", 3, 3)
 	combat.bg = combat:CreateTexture(nil,"OVERLAY",nil,5)
 	combat.bg:SetAllPoints(combat)
 	combat.bg:SetTexture(STATE_ICON_FILE)
 	combat.bg:SetTexCoord(0,0.5,0,0.5)
+	combat.linked = resting
 	SV.Animate:Pulse(combat)
+	--IsResting()
 	combat:SetScript("OnShow", function(this)
-		if not this.anim:IsPlaying() then this.anim:Play() end
+		if not this.anim:IsPlaying() then this.anim:Play() end
+		if(resting:IsShown()) then
+			resting:SetAlpha(0)
+		end
 	end)
-
 	combat:Hide()
-	return combat
-end
+	combat:SetScript("OnHide", function(this)
+		if(IsResting()) then
+			resting:SetAlpha(1)
+		end
+	end)
+
+	frame.Resting = resting
+	frame.Combat = combat
+end

 local ExRep_OnEnter = function(self)if self:IsShown() then UIFrameFadeIn(self,.1,0,1) end end
 local ExRep_OnLeave = function(self)if self:IsShown() then UIFrameFadeOut(self,.2,1,0) end end
@@ -581,7 +589,7 @@ end
 RESOLVE
 ##########################################################
 ]]--
-local resolve
+local cached_resolve;
 local resolveId = GetSpellInfo(158300)

 local function Short(value)
@@ -634,49 +642,56 @@ end
 local ResolveBar_OnEvent = function(self, event, unit)
 	if(event == 'UNIT_AURA') then
 		local _, _, _, _, _, _, _, _, _, _, _, _, _, _, value, amount = UnitBuff(unit, resolveId)
-		if resolve ~= amount then
-			resolve = amount
-			self:SetValue(value)
-			self.text:SetText(Short(amount))
+		if(value and amount and (cached_resolve ~= amount)) then
+			cached_resolve = amount
+			self.bar:SetValue(value)
+			self.bar.text:SetText(Short(amount))
+			self:FadeIn()
 		end
 	else
 		if IsTank() then
-			if(not self:IsShown()) then
+			if(not self.bar:IsShown()) then
 				self:RegisterUnitEvent("UNIT_AURA", "player")
-				self:Show()
+				self.bar:Show()
 			end
 		else
-			if(self:IsShown()) then
+			if(self.bar:IsShown()) then
 				self:UnregisterEvent("UNIT_AURA")
-				self:Hide()
+				self.bar:Hide()
 			end
 		end
 	end
+	if(self.bar:IsShown()) then
+		if(self.bar.text:GetText() == "0") then
+			self.bar.text:SetText("")
+			self:FadeOut()
+		end
+	end
 end

 function MOD:CreateResolveBar(frame)
-	local health = frame.Health;
-
-	local resolve = CreateFrame('StatusBar', nil, health)
-	resolve:SetPoint("BOTTOMLEFT", health, "BOTTOMLEFT", -1, -1)
-	resolve:SetPoint("BOTTOMRIGHT", health, "BOTTOMRIGHT", 1, -1)
-	resolve:SetHeight(5)
-	resolve:SetFrameStrata("LOW")
-	resolve:SetFrameLevel(11)
-	resolve:SetStylePanel("Default", "Bar")
-	resolve:SetStatusBarTexture([[Interface\BUTTONS\WHITE8X8]])
-	resolve:SetStatusBarColor(0.15, 0.7, 0.05, 0.9)
-	resolve:SetMinMaxValues(0, 100)
-
-	resolve.text = resolve:CreateFontString(nil, "OVERLAY")
-	resolve.text:SetPoint("RIGHT")
-	resolve.text:FontManager("pixel", "RIGHT")
-
-	resolve:Hide()
+	local resolve = CreateFrame("Frame", nil, frame)
+	resolve:SetPointToScale("TOPLEFT", frame.Health, "TOPLEFT", 0, 0)
+	resolve:SetPointToScale("TOPRIGHT", frame.Health, "TOPRIGHT", 0, 0)
+	resolve:SetHeight(8)
+
+	local bar = CreateFrame('StatusBar', nil, resolve)
+	bar:SetAllPointsIn(resolve)
+	bar:SetStylePanel("Default", "Bar")
+	bar:SetStatusBarTexture([[Interface\BUTTONS\WHITE8X8]])
+	bar:SetStatusBarColor(0.15, 0.7, 0.05, 0.9)
+	bar:SetMinMaxValues(0, 100)
+	bar.text = bar:CreateFontString(nil, "OVERLAY")
+	bar.text:SetPoint("LEFT")
+	bar.text:FontManager("pixel", "LEFT")
+	bar.text:SetTextColor(0.8, 0.42, 0.09)
+	bar:Hide()
+	resolve.bar = bar;

 	resolve:RegisterEvent("PLAYER_TALENT_UPDATE")
 	resolve:RegisterEvent("PLAYER_ENTERING_WORLD")
 	resolve:SetScript('OnEvent', ResolveBar_OnEvent)
-
+
+	ResolveBar_OnEvent(resolve)
 	return resolve
 end
\ No newline at end of file
diff --git a/Interface/AddOns/SVUI/packages/unit/frames.lua b/Interface/AddOns/SVUI/packages/unit/frames.lua
index 69ed2ad..b01a147 100644
--- a/Interface/AddOns/SVUI/packages/unit/frames.lua
+++ b/Interface/AddOns/SVUI/packages/unit/frames.lua
@@ -203,41 +203,7 @@ local UpdatePlayerFrame = function(self)
         pvp:SetPointToScale(db.pvp.position, MASTER_GRIP, db.pvp.position)
         self:Tag(pvp, db.pvp.tags)
     end
-    do
-        if SV.class == "DRUID" and self.DruidMana then
-            if db.power.druidMana then
-                self:EnableElement("DruidMana")
-            else
-                self:DisableElement("DruidMana")
-                self.DruidMana:Hide()
-            end
-        end
-        if SV.class == "MONK" then
-            local stagger = self.DrunkenMaster;
-            if db.stagger.enable then
-                if not self:IsElementEnabled("DrunkenMaster")then
-                    self:EnableElement("DrunkenMaster")
-                end
-            else
-                if self:IsElementEnabled("DrunkenMaster")then
-                    self:DisableElement("DrunkenMaster")
-                end
-            end
-        end
-    end
     do
-        if(self.DrunkenMaster) then
-            if db.stagger.enable then
-                if not self:IsElementEnabled("DrunkenMaster")then
-                    self:EnableElement("DrunkenMaster")
-                end
-            else
-                if self:IsElementEnabled("DrunkenMaster")then
-                    self:DisableElement("DrunkenMaster")
-                end
-            end
-        end
-
         if(self.ClassBar) then
             if USE_CLASSBAR and self.ClassBarRefresh then
                 self.ClassBarRefresh(self)
@@ -291,8 +257,7 @@ CONSTRUCTORS["player"] = function(self, unit)
     MOD:CreateExperienceRepBar(self)
     self.ClassBar = MOD:CreateClassBar(self)
     self.RaidIcon = MOD:CreateRaidIcon(self)
-    self.Resting = MOD:CreateRestingIndicator(self)
-    self.Combat = MOD:CreateCombatIndicator(self)
+    MOD:CreatePlayerIndicators(self)
     self.PvPText = self.TextGrip:CreateFontString(nil,'OVERLAY')
     self.PvPText:FontManager("dialog")
     self.Afflicted = MOD:CreateAfflicted(self)
diff --git a/Interface/AddOns/SVUI/packages/unit/resources/deathknight.lua b/Interface/AddOns/SVUI/packages/unit/resources/deathknight.lua
index 27562a2..ffe5de5 100644
--- a/Interface/AddOns/SVUI/packages/unit/resources/deathknight.lua
+++ b/Interface/AddOns/SVUI/packages/unit/resources/deathknight.lua
@@ -53,7 +53,7 @@ LOCALS
 SV.SpecialFX:Register("rune_blood", [[Spells\Monk_drunkenhaze_impact.m2]], 0, 0, 0, 0, 0.00001, 0, 0.3)
 SV.SpecialFX:Register("rune_frost", [[Spells\Ice_cast_low_hand.m2]], 0, 0, 0, 0, 0.00001, -0.2, 0.4)
 SV.SpecialFX:Register("rune_unholy", [[Spells\Poison_impactdot_med_chest.m2]], 0, 0, 0, 0, 0.13, -0.3, -0.2)
-SV.SpecialFX:Register("rune_death", [[Spells\Shadow_strikes_state_hand.m2]], 0, 0, 0, 0, 0.001, 0, -0.35)
+SV.SpecialFX:Register("rune_death", [[Spells\Shadow_strikes_state_hand.m2]], 0, 0, 0, 0, 0.001, 0, -0.25)
 local specEffects = {
 	[1] = "rune_blood",
 	[2] = "rune_blood",
@@ -67,7 +67,9 @@ local colors = {
 	{0.1, 0.75, 0},  -- unholy
 	{0, 0.5, 0.75},   -- frost
 	{0.5, 0, 1}, -- death
-}
+};
+local RUNE_FG = [[Interface\AddOns\SVUI\assets\artwork\Unitframe\Class\RUNES-FG]];
+local RUNE_BG = [[Interface\AddOns\SVUI\assets\artwork\Unitframe\Class\RUNES-BG]];
 --[[
 ##########################################################
 POSITIONING
@@ -78,6 +80,7 @@ local Reposition = function(self)
 	local bar = self.Necromancy;
 	local max = self.MaxClassPower;
 	local size = db.classbar.height
+	local inset = size * 0.1
 	local width = size * max;

 	bar.Holder:SetSizeToScale(width, size)
@@ -93,14 +96,16 @@ local Reposition = function(self)
     bar:SetAllPoints(bar.Holder)
 	for i = 1, max do
 		bar[i]:ClearAllPoints()
-		bar[i]:SetHeight(size+4)
+		bar[i]:SetHeight(size + 4)
 		bar[i]:SetWidth(size)
 		bar[i].bar:GetStatusBarTexture():SetHorizTile(false)
 		if i==1 then
 			bar[i]:SetPoint("TOPLEFT", bar, "TOPLEFT", 0, 1)
 		else
-			bar[i]:SetPointToScale("LEFT", bar[i - 1], "RIGHT", -3, 0)
+			bar[i]:SetPointToScale("LEFT", bar[i - 1], "RIGHT", -6, 0)
 		end
+		bar[i].bar:ClearAllPoints()
+		bar[i].bar:SetAllPointsIn(bgFrame,inset,inset)
 	end

 	if bar.UpdateAllRuneTypes then
@@ -135,39 +140,23 @@ function MOD:CreateClassBar(playerFrame)

 		local bgTexture = bgFrame:CreateTexture(nil, "BORDER")
 		bgTexture:SetAllPoints(bgFrame)
-		bgTexture:SetTexture([[Interface\AddOns\SVUI\assets\artwork\Bars\DEFAULT]])
+		bgTexture:SetTexture(RUNE_BG)
 		bgTexture:SetGradientAlpha("VERTICAL",colors[1],colors[2],colors[3],0.75,0,0,0,0.25)

-		local borderB = bgFrame:CreateTexture(nil,"OVERLAY")
-	    borderB:SetTexture(0,0,0)
-	    borderB:SetPoint("BOTTOMLEFT")
-	    borderB:SetPoint("BOTTOMRIGHT")
-	    borderB:SetHeight(2)
-
-	    local borderT = bgFrame:CreateTexture(nil,"OVERLAY")
-	    borderT:SetTexture(0,0,0)
-	    borderT:SetPoint("TOPLEFT")
-	    borderT:SetPoint("TOPRIGHT")
-	    borderT:SetHeight(2)
-
-	    local borderL = bgFrame:CreateTexture(nil,"OVERLAY")
-	    borderL:SetTexture(0,0,0)
-	    borderL:SetPoint("TOPLEFT")
-	    borderL:SetPoint("BOTTOMLEFT")
-	    borderL:SetWidth(2)
-
-	    local borderR = bgFrame:CreateTexture(nil,"OVERLAY")
-	    borderR:SetTexture(0,0,0)
-	    borderR:SetPoint("TOPRIGHT")
-	    borderR:SetPoint("BOTTOMRIGHT")
-	    borderR:SetWidth(2)
-
 	    rune.bar = CreateFrame("StatusBar", nil, bgFrame)
 		rune.bar.noupdate = true;
-		rune.bar:SetAllPointsIn(bgFrame)
+		rune.bar:SetAllPointsIn(bgFrame,4,4)
 		rune.bar:SetOrientation("HORIZONTAL")
 		rune.bar:SetStatusBarTexture([[Interface\AddOns\SVUI\assets\artwork\Bars\DEFAULT]])

+		local fgFrame = CreateFrame("Frame", nil, rune.bar)
+		fgFrame:SetAllPoints(bgFrame)
+
+		local fgTexture = fgFrame:CreateTexture(nil, "OVERLAY")
+		fgTexture:SetAllPoints(fgFrame)
+		fgTexture:SetTexture(RUNE_FG)
+		fgTexture:SetVertexColor(0.25,0.25,0.25)
+
 		local effectName = specEffects[i]
 		SV.SpecialFX:SetFXFrame(rune.bar, effectName)

diff --git a/Interface/AddOns/SVUI/packages/unit/resources/mage.lua b/Interface/AddOns/SVUI/packages/unit/resources/mage.lua
index 4e1c59d..7f9310d 100644
--- a/Interface/AddOns/SVUI/packages/unit/resources/mage.lua
+++ b/Interface/AddOns/SVUI/packages/unit/resources/mage.lua
@@ -48,9 +48,16 @@ if(not MOD) then return end

 local ORB_ICON = [[Interface\AddOns\SVUI\assets\artwork\Unitframe\Class\ORB]];
 local ORB_BG = [[Interface\AddOns\SVUI\assets\artwork\Unitframe\Class\ORB-BG]];
-local MAGE_ANIMATION = [[Interface\AddOns\SVUI\assets\artwork\Unitframe\Class\MAGE-BG-ANIMATION]];
+local CHARGE_ICON = [[Interface\AddOns\SVUI\assets\artwork\Unitframe\Class\MAGE-CHARGE]];
+local ICICLE_ICON = [[Interface\AddOns\SVUI\assets\artwork\Unitframe\Class\MAGE-ICICLE]];
+local NO_ART = [[Interface\AddOns\SVUI\assets\artwork\Template\EMPTY]];
 SV.SpecialFX:Register("mage_fire", [[Spells\Fill_fire_cast_01.m2]], 2, -2, -2, 2, 0.5, -0.45, 1)
 local specEffects = { [1] = "arcane", [2] = "mage_fire", [3] = "frost" };
+local specColors = {
+	[1] = {0.8, 1, 1, 1},
+	[2] = {1, 0.2, 0, 0.75},
+	[3] = {0.95, 1, 1, 0.75}
+};
 --[[
 ##########################################################
 POSITIONING
@@ -77,11 +84,10 @@ local Reposition = function(self)
 		bar[i]:ClearAllPoints()
 		bar[i]:SetHeight(size)
 		bar[i]:SetWidth(size)
-		bar[i]:SetStatusBarColor(0.15, 0.65, 0.85)
 		if i==1 then
 			bar[i]:SetPoint("TOPLEFT", bar, "TOPLEFT", 0, 0)
 		else
-			bar[i]:SetPointToScale("LEFT", bar[i - 1], "RIGHT", -1, 0)
+			bar[i]:SetPointToScale("LEFT", bar[i - 1], "RIGHT", -3, 0)
 		end
 	end
 end
@@ -94,8 +100,19 @@ local PostTalentUpdate = function(self, spec)
 	if(not self:IsShown()) then
 		self:Show()
 	end
-	if(spec == 1 or spec == 3) then
+	local color = specColors[spec]
+	if(spec == 1) then
 		for i = 1, 5 do
+			self[i]:SetStatusBarTexture(CHARGE_ICON)
+			self[i].bg:SetTexture(ORB_BG)
+			self[i]:SetStatusBarColor(unpack(color))
+			self[i].FX:SetEffect(specEffects[spec])
+		end
+	elseif(spec == 3) then
+		for i = 1, 5 do
+			self[i]:SetStatusBarTexture(ICICLE_ICON.."-"..i)
+			self[i].bg:SetTexture(ICICLE_ICON.."-"..i)
+			self[i]:SetStatusBarColor(unpack(color))
 			self[i].FX:SetEffect(specEffects[spec])
 		end
 	else
@@ -106,29 +123,27 @@ end
 function MOD:CreateClassBar(playerFrame)
 	local max = 5
 	local spec = GetSpecialization()
+	local color = specColors[spec]
 	local effectName = specEffects[spec]
 	local bar = CreateFrame("Frame",nil,playerFrame)
 	bar:SetFrameLevel(playerFrame.TextGrip:GetFrameLevel() + 30)

 	for i = 1, max do
 		bar[i] = CreateFrame("StatusBar", nil, bar)
-		bar[i]:SetStatusBarTexture(ORB_ICON)
+		bar[i]:SetStatusBarTexture(CHARGE_ICON)
 		bar[i]:GetStatusBarTexture():SetHorizTile(false)
 		bar[i]:SetOrientation("VERTICAL")
+		bar[i]:SetStatusBarColor(unpack(color))
 		bar[i].noupdate = true;

 		bar[i].bg = bar[i]:CreateTexture(nil, "BACKGROUND")
 		bar[i].bg:SetAllPoints(bar[i])
 		bar[i].bg:SetTexture(ORB_BG);
-
-		bar[i].fg = bar[i]:CreateTexture(nil, "OVERLAY")
-		bar[i].fg:SetAllPoints(bar[i])
-		bar[i].fg:SetTexture(MAGE_ANIMATION)
-		bar[i].fg:SetBlendMode("ADD")
-		bar[i].fg:SetVertexColor(0.5,0.6,0.6)
-		bar[i].fg:SetTexCoord(0,0.25,0,1)
+		bar[i].bg:SetVertexColor(0.25,0.5,0.5)

 		SV.SpecialFX:SetFXFrame(bar[i], effectName)
+		--bar[i].FX:SetFrameLevel(0)
+		bar[i].FX:SetAlpha(0.5)
 	end

 	local bgFrame = CreateFrame("Frame", nil, bar)
diff --git a/Interface/AddOns/SVUI/packages/unit/resources/monk.lua b/Interface/AddOns/SVUI/packages/unit/resources/monk.lua
index e172bd7..f3aa043 100644
--- a/Interface/AddOns/SVUI/packages/unit/resources/monk.lua
+++ b/Interface/AddOns/SVUI/packages/unit/resources/monk.lua
@@ -109,7 +109,7 @@ MONK HARMONY
 ]]--
 function MOD:CreateClassBar(playerFrame)
 	local max = 6
-	local bar = CreateFrame("Frame",nil,playerFrame)
+	local bar = CreateFrame("Frame", nil, playerFrame)
 	bar:SetFrameLevel(playerFrame.TextGrip:GetFrameLevel() + 30)
 	for i=1, max do
 		local coords = CHI_COORDS[i]
@@ -127,7 +127,7 @@ function MOD:CreateClassBar(playerFrame)
 		bar[i].glow:SetTexture(CHI_FILE)
 		bar[i].glow:SetTexCoord(coords[1],coords[2],coords[3],coords[4])

-		bar[i].overlay = bar[i]:CreateTexture(nil, "OVERLAY", nil, 1)
+		bar[i].overlay = bar[i]:CreateTexture(nil, "OVERLAY", nil, 7)
 		bar[i].overlay:SetAllPoints(bar[i])
 		bar[i].overlay:SetTexture(CHI_FILE)
 		bar[i].overlay:SetTexCoord(coords[1],coords[2],coords[3],coords[4])
@@ -137,30 +137,31 @@ function MOD:CreateClassBar(playerFrame)
 		bar[i]:SetScript("OnHide", StopFlash)

 		SV.SpecialFX:SetFXFrame(bar[i], "chi")
+		bar[i].FX:SetFrameLevel(bar[i]:GetFrameLevel())
 	end

 	local stagger = CreateFrame("Statusbar",nil,playerFrame)
-	stagger:SetSize(45,90)
-	stagger:SetPointToScale('BOTTOMLEFT', playerFrame, 'BOTTOMRIGHT', 6, 0)
+	stagger:SetPointToScale('TOPLEFT', playerFrame, 'TOPRIGHT', 3, 0)
+	stagger:SetPointToScale('BOTTOMLEFT', playerFrame, 'BOTTOMRIGHT', 3, 0)
+	stagger:SetWidth(10)
+	stagger:SetStylePanel("Default", "Bar")
 	stagger:SetOrientation("VERTICAL")
-	stagger:SetStatusBarTexture(STAGGER_BAR)
-	stagger:GetStatusBarTexture():SetHorizTile(false)
+	stagger:SetStatusBarTexture([[Interface\AddOns\SVUI\assets\artwork\Bars\DEFAULT]])
+	--stagger:GetStatusBarTexture():SetHorizTile(false)

 	stagger.bg = stagger:CreateTexture(nil,'BORDER',nil,1)
 	stagger.bg:SetAllPoints(stagger)
-	stagger.bg:SetTexture(STAGGER_BG)
-	stagger.bg:SetVertexColor(1,1,1,0.6)
+	stagger.bg:SetTexture([[Interface\AddOns\SVUI\assets\artwork\Bars\DEFAULT]])
+	stagger.bg:SetVertexColor(0,0,0,0.33)

-	stagger.overlay = stagger:CreateTexture(nil,'OVERLAY')
-	stagger.overlay:SetAllPoints(stagger)
-	stagger.overlay:SetTexture(STAGGER_FG)
-	stagger.overlay:SetVertexColor(1,1,1)
+	-- stagger.overlay = stagger:CreateTexture(nil,'OVERLAY')
+	-- stagger.overlay:SetAllPoints(stagger)
+	-- stagger.overlay:SetTexture(STAGGER_FG)
+	-- stagger.overlay:SetVertexColor(1,1,1)

-	stagger.icon = stagger:CreateTexture(nil,'OVERLAY')
-	stagger.icon:SetAllPoints(stagger)
-	stagger.icon:SetTexture(STAGGER_ICON)
-
-	stagger:Hide()
+	-- stagger.icon = stagger:CreateTexture(nil,'OVERLAY')
+	-- stagger.icon:SetAllPoints(stagger)
+	-- stagger.icon:SetTexture(STAGGER_ICON)

 	bar.DrunkenMaster = stagger

diff --git a/Interface/AddOns/SVUI/packages/unit/resources/warrior.lua b/Interface/AddOns/SVUI/packages/unit/resources/warrior.lua
index 194d588..19a6da2 100644
--- a/Interface/AddOns/SVUI/packages/unit/resources/warrior.lua
+++ b/Interface/AddOns/SVUI/packages/unit/resources/warrior.lua
@@ -50,17 +50,18 @@ local Reposition = function(self)
 	local max = self.MaxClassPower;
 	local size = db.classbar.height
 	local width = size * max;
+
 	bar.Holder:SetSizeToScale(width, size)
-    if(not db.classbar.detachFromFrame) then
-    	SV.Mentalo:Reset(L["Classbar"])
-    end
-    local holderUpdate = bar.Holder:GetScript('OnSizeChanged')
-    if holderUpdate then
-        holderUpdate(bar.Holder)
-    end
-
-    bar:ClearAllPoints()
-    bar:SetAllPoints(bar.Holder)
+  if(not db.classbar.detachFromFrame) then
+  	SV.Mentalo:Reset(L["Classbar"])
+  end
+  local holderUpdate = bar.Holder:GetScript('OnSizeChanged')
+  if holderUpdate then
+      holderUpdate(bar.Holder)
+  end
+
+  bar:ClearAllPoints()
+  bar:SetAllPoints(bar.Holder)
 end

 local EffectModel_OnShow = function(self)
@@ -68,72 +69,70 @@ local EffectModel_OnShow = function(self)
 end

 function MOD:CreateClassBar(playerFrame)
-    return
-end
--- function MOD:CreateClassBar(playerFrame)
--- 	local max = 6
--- 	local bar = CreateFrame("Frame",nil,playerFrame)
-
--- 	bar:SetFrameLevel(playerFrame.TextGrip:GetFrameLevel() + 30)
--- 	--SV.SpecialFX:SetFXFrame(bar, "conqueror")
--- 	--bar.FX:SetFrameStrata("BACKGROUND")
--- 	--bar.FX:SetFrameLevel(playerFrame.TextGrip:GetFrameLevel() + 1)
-
--- 	local bgFrame = CreateFrame("Frame", nil, bar)
--- 	bgFrame:SetAllPointsIn(bar, 1, 4)
--- 	SV.SpecialFX:SetFXFrame(bgFrame, "conqueror")
-
--- 	local bgTexture = bgFrame:CreateTexture(nil, "BACKGROUND")
--- 	bgTexture:SetAllPoints(bgFrame)
--- 	bgTexture:SetTexture(0.2,0,0,0.5)
-
--- 	local borderB = bgFrame:CreateTexture(nil,"OVERLAY")
---     borderB:SetTexture(0,0,0)
---     borderB:SetPoint("BOTTOMLEFT")
---     borderB:SetPoint("BOTTOMRIGHT")
---     borderB:SetHeight(2)
-
---     local borderT = bgFrame:CreateTexture(nil,"OVERLAY")
---     borderT:SetTexture(0,0,0)
---     borderT:SetPoint("TOPLEFT")
---     borderT:SetPoint("TOPRIGHT")
---     borderT:SetHeight(2)
-
---     local borderL = bgFrame:CreateTexture(nil,"OVERLAY")
---     borderL:SetTexture(0,0,0)
---     borderL:SetPoint("TOPLEFT")
---     borderL:SetPoint("BOTTOMLEFT")
---     borderL:SetWidth(2)
-
---     local borderR = bgFrame:CreateTexture(nil,"OVERLAY")
---     borderR:SetTexture(0,0,0)
---     borderR:SetPoint("TOPRIGHT")
---     borderR:SetPoint("BOTTOMRIGHT")
---     borderR:SetWidth(2)
-
---     bar.bg = bgTexture;
-
--- 	local enrage = CreateFrame("StatusBar", nil, bgFrame)
--- 	enrage.noupdate = true;
--- 	enrage:SetAllPointsIn(bgFrame)
--- 	enrage:SetOrientation("HORIZONTAL")
--- 	enrage:SetStatusBarTexture(SV.Media.bar.glow)
---     enrage:SetStatusBarColor(1, 0.2, 0, 0.75)
-
---     --SV.SpecialFX:SetFXFrame(enrage, "conqueror", true)
--- 	--enrage.FX:SetScript("OnShow", EffectModel_OnShow)
--- 	bar.Enrage = enrage;
-
-
--- 	local classBarHolder = CreateFrame("Frame", "Player_ClassBar", bar)
--- 	classBarHolder:SetPointToScale("TOPLEFT", playerFrame, "BOTTOMLEFT", 0, -2)
--- 	bar:SetPoint("TOPLEFT", classBarHolder, "TOPLEFT", 0, 0)
--- 	bar.Holder = classBarHolder
--- 	SV.Mentalo:Add(bar.Holder, L["Classbar"])
-
--- 	playerFrame.MaxClassPower = max
--- 	playerFrame.ClassBarRefresh = Reposition
-
--- 	playerFrame.Conqueror = bar
--- 	return 'Conqueror'
--- end
\ No newline at end of file
+	local max = 6
+	local bar = CreateFrame("Frame",nil,playerFrame)
+
+	bar:SetFrameLevel(playerFrame.TextGrip:GetFrameLevel() + 30)
+	--SV.SpecialFX:SetFXFrame(bar, "conqueror")
+	--bar.FX:SetFrameStrata("BACKGROUND")
+	--bar.FX:SetFrameLevel(playerFrame.TextGrip:GetFrameLevel() + 1)
+
+	local bgFrame = CreateFrame("Frame", nil, bar)
+	bgFrame:SetAllPointsIn(bar, 1, 4)
+	SV.SpecialFX:SetFXFrame(bgFrame, "conqueror")
+
+	local bgTexture = bgFrame:CreateTexture(nil, "BACKGROUND")
+	bgTexture:SetAllPoints(bgFrame)
+	bgTexture:SetTexture(0.2,0,0,0.5)
+
+	local borderB = bgFrame:CreateTexture(nil,"OVERLAY")
+  borderB:SetTexture(0,0,0)
+  borderB:SetPoint("BOTTOMLEFT")
+  borderB:SetPoint("BOTTOMRIGHT")
+  borderB:SetHeight(2)
+
+  local borderT = bgFrame:CreateTexture(nil,"OVERLAY")
+  borderT:SetTexture(0,0,0)
+  borderT:SetPoint("TOPLEFT")
+  borderT:SetPoint("TOPRIGHT")
+  borderT:SetHeight(2)
+
+  local borderL = bgFrame:CreateTexture(nil,"OVERLAY")
+  borderL:SetTexture(0,0,0)
+  borderL:SetPoint("TOPLEFT")
+  borderL:SetPoint("BOTTOMLEFT")
+  borderL:SetWidth(2)
+
+  local borderR = bgFrame:CreateTexture(nil,"OVERLAY")
+  borderR:SetTexture(0,0,0)
+  borderR:SetPoint("TOPRIGHT")
+  borderR:SetPoint("BOTTOMRIGHT")
+  borderR:SetWidth(2)
+
+  bar.bg = bgTexture;
+
+	local enrage = CreateFrame("StatusBar", nil, bgFrame)
+	enrage.noupdate = true;
+	enrage:SetAllPointsIn(bgFrame)
+	enrage:SetOrientation("HORIZONTAL")
+	enrage:SetStatusBarTexture(SV.Media.bar.glow)
+  enrage:SetStatusBarColor(1, 0, 0, 0.75)
+
+  bgFrame.bar = enrage;
+  --SV.SpecialFX:SetFXFrame(enrage, "conqueror", true)
+	--enrage.FX:SetScript("OnShow", EffectModel_OnShow)
+	bar.Enrage = bgFrame;
+
+
+	local classBarHolder = CreateFrame("Frame", "Player_ClassBar", bar)
+	classBarHolder:SetPointToScale("TOPLEFT", playerFrame, "BOTTOMLEFT", 0, -2)
+	bar:SetPoint("TOPLEFT", classBarHolder, "TOPLEFT", 0, 0)
+	bar.Holder = classBarHolder
+	SV.Mentalo:Add(bar.Holder, L["Classbar"])
+
+	playerFrame.MaxClassPower = max
+	playerFrame.ClassBarRefresh = Reposition
+
+	playerFrame.Conqueror = bar
+	return 'Conqueror'
+end
\ No newline at end of file
diff --git a/Interface/AddOns/SVUI/setup/presets.lua b/Interface/AddOns/SVUI/setup/presets.lua
index 81c10dd..15be2ac 100644
--- a/Interface/AddOns/SVUI/setup/presets.lua
+++ b/Interface/AddOns/SVUI/setup/presets.lua
@@ -98,8 +98,8 @@ local function LoadPresetData()
 				["unitframes"] = {
 					["buff_bars"] = {.91, .91, .31, 1},
 					["health"] = {.1, .6, .02, 1},
-					["casting"] = {.91, .91, .31, 1},
-					["spark"] = {1, .72, 0, 1},
+					["casting"] = {0, 0.92, 1, 1},
+					["spark"] = {0, 0.42, 1, 1},
 				},
 			},
 			["kaboom"] = {
@@ -116,8 +116,8 @@ local function LoadPresetData()
 				["unitframes"] = {
 					["buff_bars"] = {.51, .79, 0, 1},
 					["health"] = {.16, .86, .22, 1},
-					["casting"] = {.91, .91, 0, 1},
-					["spark"] = {1, .72, 0, 1},
+					["casting"] = {0, 0.92, 1, 1},
+					["spark"] = {0, 0.42, 1, 1},
 				},
 			},
 			["classy"] = {
@@ -134,8 +134,8 @@ local function LoadPresetData()
 				["unitframes"] = {
 					["buff_bars"] = {scc.r, scc.g, scc.b, 1},
 					["health"] = {.16, .86, .22, 1},
-					["casting"] = {.91, .91, 0, 1},
-					["spark"] = {1, .72, 0, 1},
+					["casting"] = {0, 0.92, 1, 1},
+					["spark"] = {0, 0.42, 1, 1},
 				},
 			},
 			["dark"] = {
@@ -152,8 +152,8 @@ local function LoadPresetData()
 				["unitframes"] = {
 					["buff_bars"] = {.45, .55, .15, 1},
 					["health"] = {.06, .06, .06, 1},
-					["casting"] = {.8, .8, 0, 1},
-					["spark"] = {1, .72, 0, 1},
+					["casting"] = {0, 0.92, 1, 1},
+					["spark"] = {0, 0.42, 1, 1},
 				},
 			},
 		},
diff --git a/Interface/AddOns/SVUI/system/core.lua b/Interface/AddOns/SVUI/system/core.lua
index 56bccc1..5680946 100644
--- a/Interface/AddOns/SVUI/system/core.lua
+++ b/Interface/AddOns/SVUI/system/core.lua
@@ -125,12 +125,26 @@ local function _sendmessage(msg, prefix)
     end
 end

+local function _explode(this, delim)
+    local pattern = string.format("([^%s]+)", delim)
+    local res = {}
+    for line in string.gmatch(this, pattern) do
+        tinsert(res, line)
+    end
+    return res
+end

 local function _needsupdate(value, lowest)
     local minimumVersion = 5;
     --print(table.dump(self.safedata))
     local version = value or '0.0';
-    local vt = version:explode(".")
+    if(version and type(version) ~= string) then
+        version = tostring(version)
+    end
+    if(not version) then
+        return true
+    end
+    local vt = _explode(version, ".")
     local MAJOR,MINOR,PATCH = unpack(vt)
     if(MAJOR) then
         if(type(MAJOR) == "string") then
diff --git a/Interface/AddOns/SVUI/system/media.lua b/Interface/AddOns/SVUI/system/media.lua
index f253a3e..3e254c4 100644
--- a/Interface/AddOns/SVUI/system/media.lua
+++ b/Interface/AddOns/SVUI/system/media.lua
@@ -174,9 +174,11 @@ do
     ["default"]     = {0.2, 0.2, 0.2, 1},
     ["special"]     = {.37, .32, .29, 1},
     ["specialdark"] = {.23, .22, .21, 1},
-    ["unique"]      = {0.32, 0.258, 0.21, 1},
+    ["unique"]      = {0.32, 0.258, 0.21, 1},
+    ["container"]   = {.28, .27, .26, 1},
     ["class"]       = {r1, g1, b1, 1},
     ["bizzaro"]     = {ir1, ig1, ib1, 1},
+    ["medium"]      = {0.47, 0.47, 0.47},
     ["dark"]        = {0, 0, 0, 1},
     ["darkest"]     = {0, 0, 0, 1},
     ["light"]       = {0.95, 0.95, 0.95, 1},
@@ -190,10 +192,32 @@ do
     ["gold"]        = {1, 0.68, 0.1, 1},
     ["transparent"] = {0, 0, 0, 0.5},
     ["hinted"]      = {0, 0, 0, 0.35},
-    ["invisible"]      = {0, 0, 0, 0},
+    ["invisible"]   = {0, 0, 0, 0},
     ["white"]       = {1, 1, 1, 1},
   }

+  SV.Media["gradient"]  = {
+    ["default"]   = {"VERTICAL", 0.08, 0.08, 0.08, 0.22, 0.22, 0.22},
+    ["special"]   = {"VERTICAL", 0.33, 0.25, 0.13, 0.47, 0.39, 0.27},
+    ["specialdark"] = {"VERTICAL", 0.23, 0.15, 0.03, 0.33, 0.25, 0.13},
+    ["container"] = {"VERTICAL", 0.12, 0.11, 0.1, 0.22, 0.21, 0.2},
+    ["class"]     = {"VERTICAL", r2, g2, b2, r1, g1, b1},
+    ["bizzaro"]   = {"VERTICAL", ir2, ig2, ib2, ir1, ig1, ib1},
+    ["medium"]    = {"VERTICAL", 0.22, 0.22, 0.22, 0.47, 0.47, 0.47},
+    ["dark"]      = {"VERTICAL", 0.02, 0.02, 0.02, 0.22, 0.22, 0.22},
+    ["darkest"]   = {"VERTICAL", 0.15, 0.15, 0.15, 0, 0, 0},
+    ["darkest2"]  = {"VERTICAL", 0, 0, 0, 0.12, 0.12, 0.12},
+    ["light"]     = {"VERTICAL", 0.65, 0.65, 0.65, 0.95, 0.95, 0.95},
+    ["highlight"] = {"VERTICAL", 0.3, 0.8, 1, 0.1, 0.9, 1},
+    ["green"]     = {"VERTICAL", 0.08, 0.9, 0.25, 0.25, 0.9, 0.08},
+    ["red"]       = {"VERTICAL", 0.5, 0, 0, 0.9, 0.08, 0.08},
+    ["yellow"]    = {"VERTICAL", 1, 0.3, 0, 1, 1, 0},
+    ["tan"]       = {"VERTICAL", 0.15, 0.08, 0, 0.37, 0.22, 0.1},
+    ["inverse"]   = {"VERTICAL", 0.25, 0.25, 0.25, 0.12, 0.12, 0.12},
+    ["icon"]      = {"VERTICAL", 0.5, 0.53, 0.55, 0.8, 0.8, 1},
+    ["white"]     = {"VERTICAL", 0.75, 0.75, 0.75, 1, 1, 1},
+  }
+
   SV.Media["font"] = {
     ["default"]   = Shared:Fetch("font", "SVUI Default Font"),
     ["combat"]    = Shared:Fetch("font", "SVUI Combat Font"),
@@ -224,25 +248,6 @@ do
     ["unitlarge"]   = Shared:Fetch("background", "SVUI Unit BG 3"),
     ["unitsmall"]   = Shared:Fetch("background", "SVUI Small BG 3")
   }
-
-  SV.Media["gradient"]  = {
-    ["default"]   = {"VERTICAL", 0.08, 0.08, 0.08, 0.22, 0.22, 0.22},
-    ["special"]   = {"VERTICAL", 0.33, 0.25, 0.13, 0.47, 0.39, 0.27},
-    ["class"]     = {"VERTICAL", r2, g2, b2, r1, g1, b1},
-    ["bizzaro"]   = {"VERTICAL", ir2, ig2, ib2, ir1, ig1, ib1},
-    ["dark"]      = {"VERTICAL", 0.02, 0.02, 0.02, 0.22, 0.22, 0.22},
-    ["darkest"]   = {"VERTICAL", 0.15, 0.15, 0.15, 0, 0, 0},
-    ["darkest2"]  = {"VERTICAL", 0, 0, 0, 0.12, 0.12, 0.12},
-    ["light"]     = {"VERTICAL", 0.65, 0.65, 0.65, 0.95, 0.95, 0.95},
-    ["highlight"] = {"VERTICAL", 0.3, 0.8, 1, 0.1, 0.9, 1},
-    ["green"]     = {"VERTICAL", 0.08, 0.9, 0.25, 0.25, 0.9, 0.08},
-    ["red"]       = {"VERTICAL", 0.5, 0, 0, 0.9, 0.08, 0.08},
-    ["yellow"]    = {"VERTICAL", 1, 0.3, 0, 1, 1, 0},
-    ["tan"]       = {"VERTICAL", 0.15, 0.08, 0, 0.37, 0.22, 0.1},
-    ["inverse"]   = {"VERTICAL", 0.25, 0.25, 0.25, 0.12, 0.12, 0.12},
-    ["icon"]      = {"VERTICAL", 0.5, 0.53, 0.55, 0.8, 0.8, 1},
-    ["white"]     = {"VERTICAL", 0.75, 0.75, 0.75, 1, 1, 1},
-  }
 end
 --[[
 ##########################################################
diff --git a/Interface/AddOns/SVUI_ChatOMatic/SVUI_ChatOMatic.toc b/Interface/AddOns/SVUI_ChatOMatic/SVUI_ChatOMatic.toc
index 77bd7a0..3989d2c 100644
--- a/Interface/AddOns/SVUI_ChatOMatic/SVUI_ChatOMatic.toc
+++ b/Interface/AddOns/SVUI_ChatOMatic/SVUI_ChatOMatic.toc
@@ -1,6 +1,6 @@
 ## Interface: 60000
 ## Author: Munglunch
-## Version: 5.4.15
+## Version: 5.4.16
 ## Title: |cffFF9900SVUI |r|cffFFEF00Chat-O-Matic|r
 ## Notes: Supervillain UI [|cff9911FFVarious Chat Gadgets|r]
 ## SavedVariables: ChatOMatic_Data
diff --git a/Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.lua b/Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.lua
index ee718e8..d1ebd5e 100644
--- a/Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.lua
+++ b/Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.lua
@@ -183,17 +183,24 @@ SV.Options.args.common = {
 								LoginMessage = {
 									order = 4,
 									type = 'toggle',
-									name = L['Login Message'],
+									name = L['Login Messages'],
 									get = function(j)return SV.db.general.loginmessage end,
 									set = function(j,value)SV.db.general.loginmessage = value end
 								},
-								scaleAdjust = {
+								questTracker = {
 									order = 5,
+									type = 'toggle',
+									name = L['Custom Quest Tracker'],
+									get = function(j) return SV.db.SVQuest.enable end,
+									set = function(j,value) SV.db.SVQuest.enable = value end
+								},
+								scaleAdjust = {
+									order = 6,
 									name = L["Base Scale"],
 									desc = L["You can use this to adjust the base value applied to auto-scaling."],
 									type = "range",
 									width = "full",
-									min = 0.64,
+									min = 0.5,
 									max = 1,
 									step = 0.01,
 									get = function(j)return SV.db.general.scaleAdjust end,
diff --git a/Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.toc b/Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.toc
index 24d8ae4..2df861f 100644
--- a/Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.toc
+++ b/Interface/AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.toc
@@ -1,6 +1,6 @@
 ## Interface: 60000
 ## Author: Munglunch
-## Version: 5.4.15
+## Version: 5.4.16
 ## Title: |cffFF9900SVUI |r|cffFFEF00Config-O-Matic|r
 ## Notes: Supervillain UI [|cff9911FFConfig Options|r]
 ## RequiredDeps: SVUI
diff --git a/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.toc b/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.toc
index 795ce94..91e0c0c 100644
--- a/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.toc
+++ b/Interface/AddOns/SVUI_CraftOMatic/SVUI_CraftOMatic.toc
@@ -1,6 +1,6 @@
 ## Interface: 60000
 ## Author: Munglunch
-## Version: 5.4.15
+## Version: 5.4.16
 ## Title: |cffFF9900SVUI |r|cffFFEF00Craft-O-Matic|r
 ## Notes: Supervillain UI [|cff9911FFProfession Tools|r].
 ## SavedVariablesPerCharacter: CraftOMatic_Profile, CraftOMatic_Cache
diff --git a/Interface/AddOns/SVUI_FightOMatic/SVUI_FightOMatic.lua b/Interface/AddOns/SVUI_FightOMatic/SVUI_FightOMatic.lua
index cb4b49f..62d6960 100644
--- a/Interface/AddOns/SVUI_FightOMatic/SVUI_FightOMatic.lua
+++ b/Interface/AddOns/SVUI_FightOMatic/SVUI_FightOMatic.lua
@@ -695,6 +695,15 @@ local onMouseWheel = function(self, delta)
 	end
 end

+local function _explode(this, delim)
+    local pattern = ("([^%s]+)"):format(delim)
+    local res = {}
+    for line in this:gmatch(pattern) do
+        tinsert(res, line)
+    end
+    return res
+end
+
 local function MakeLogWindow()
 	local frame = CreateFrame("Frame", nil, UIParent)

@@ -720,7 +729,7 @@ local function MakeLogWindow()
 	output:SetInsertMode('TOP')

 	output:SetScript("OnHyperlinkEnter", function(self, linkData, link, button)
-		local t = link:explode(":")
+		local t = _explode(link, ":")
 		local name = t[2] or ""
 	    SVUI_TargetScanButton:SetAttribute("macrotext", ("/tar %s"):format(name))
 	    SVUI_TargetScanButton:EnableMouse(true)
diff --git a/Interface/AddOns/SVUI_FightOMatic/SVUI_FightOMatic.toc b/Interface/AddOns/SVUI_FightOMatic/SVUI_FightOMatic.toc
index 16bc0cc..7c5a172 100644
--- a/Interface/AddOns/SVUI_FightOMatic/SVUI_FightOMatic.toc
+++ b/Interface/AddOns/SVUI_FightOMatic/SVUI_FightOMatic.toc
@@ -1,6 +1,6 @@
 ## Interface: 60000
 ## Author: Munglunch
-## Version: 5.4.15
+## Version: 5.4.16
 ## Title: |cffFF9900SVUI |r|cffFFEF00Fight-O-Matic|r
 ## Notes: Supervillain UI [|cff9911FFPvP Tools|r].
 ## SavedVariablesPerCharacter: FightOMatic_Profile, FightOMatic_Cache
diff --git a/Interface/AddOns/SVUI_LogOMatic/SVUI_LogOMatic.toc b/Interface/AddOns/SVUI_LogOMatic/SVUI_LogOMatic.toc
index 004f01b..4d8b641 100644
--- a/Interface/AddOns/SVUI_LogOMatic/SVUI_LogOMatic.toc
+++ b/Interface/AddOns/SVUI_LogOMatic/SVUI_LogOMatic.toc
@@ -1,6 +1,6 @@
 ## Interface: 60000
 ## Author: Munglunch
-## Version: 5.4.15
+## Version: 5.4.16
 ## Title: |cffFF9900SVUI |r|cffFFEF00Log-O-Matic|r
 ## Notes: Supervillain UI [|cff9911FFData Logging|r].
 ## SavedVariables: LogOMatic_Data
diff --git a/Interface/AddOns/SVUI_StyleOMatic/SVUI_StyleOMatic.toc b/Interface/AddOns/SVUI_StyleOMatic/SVUI_StyleOMatic.toc
index ecaf9f3..26778e0 100644
--- a/Interface/AddOns/SVUI_StyleOMatic/SVUI_StyleOMatic.toc
+++ b/Interface/AddOns/SVUI_StyleOMatic/SVUI_StyleOMatic.toc
@@ -1,6 +1,6 @@
 ## Interface: 60000
 ## Author: Munglunch, Azilroka, Sortokk
-## Version: 5.4.15
+## Version: 5.4.16
 ## Title: |cffFF9900SVUI |r|cffFFEF00Style-O-Matic|r
 ## Notes: Supervillain UI [|cff9911FFAddon Skins|r].
 ## SavedVariables: StyleOMatic_Global
diff --git a/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/auctionhouse.lua b/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/auctionhouse.lua
index a56be8e..271893a 100644
--- a/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/auctionhouse.lua
+++ b/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/auctionhouse.lua
@@ -108,18 +108,7 @@ local function AuctionStyle()
 	ShowOnPlayerCheckButton:SetStylePanel("Checkbox", true)

 	--ExactMatchCheckButton:SetStylePanel("Checkbox", true)
-
-	SideDressUpFrame:RemoveTextures(true)
-	SideDressUpFrame:ClearAllPoints()
-	SideDressUpFrame:SetSizeToScale(300, 400)
-	SideDressUpFrame:SetPoint("LEFT", AuctionFrame, "RIGHT", 16, 0)
-	SideDressUpFrame.SetPoint = SV.fubar
-	SideDressUpModel:RemoveTextures(true)
-	SideDressUpModel:SetAllPoints(SideDressUpFrame)
-	SideDressUpModel:SetStylePanel("Fixed", "ModelBorder")
-	SideDressUpModelResetButton:SetStylePanel("Button")
-	SideDressUpModelResetButton:SetPoint("BOTTOM", SideDressUpModel, "BOTTOM", 0, 20)
-	PLUGIN:ApplyCloseButtonStyle(SideDressUpModelCloseButton)
+	--SideDressUpFrame:SetPoint("LEFT", AuctionFrame, "RIGHT", 16, 0)

 	AuctionProgressFrame:RemoveTextures()
 	AuctionProgressFrame:SetStylePanel("Fixed", "Transparent", true)
diff --git a/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/character.lua b/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/character.lua
index 904f081..5eb2164 100644
--- a/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/character.lua
+++ b/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/character.lua
@@ -106,13 +106,13 @@ local function StyleCharacterSlots()
 			if(not charSlot.Panel) then
 				charSlot:RemoveTextures()
 				charSlot.ignoreTexture:SetTexture([[Interface\PaperDollInfoFrame\UI-GearManager-LeaveItem-Transparent]])
-				charSlot:SetStylePanel("Slot", true, 2, 0, 0)
+				charSlot:SetStylePanel("Slot", true, 1, 0, 0)

 				local iconTex = _G[globalName.."IconTexture"]
 				if(iconTex) then
 					iconTex:SetTexCoord(0.1, 0.9, 0.1, 0.9)
+					iconTex:SetAllPointsIn(charSlot)
 					iconTex:SetParent(charSlot.Panel)
-					iconTex:SetAllPointsIn(charSlot.Panel, 2, 2)
 				end
 			end

diff --git a/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/system.lua b/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/system.lua
index b9510ab..54c0ea8 100644
--- a/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/system.lua
+++ b/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/system.lua
@@ -719,9 +719,18 @@ local function SystemPanelQue()
 	ReportPlayerNameDialogCommentFrameEditBox:SetStylePanel("Editbox")
 	ReportPlayerNameDialog:SetStylePanel("Fixed", "Transparent", true)
 	ReportPlayerNameDialogReportButton:SetStylePanel("Button")
-	ReportPlayerNameDialogCancelButton:SetStylePanel("Button")
-	PLUGIN:ApplyCloseButtonStyle(SideDressUpModelCloseButton)
+	ReportPlayerNameDialogCancelButton:SetStylePanel("Button")
+
+
+	SideDressUpFrame:RemoveTextures(true)
+	SideDressUpFrame:SetSizeToScale(300, 400)
+	SideDressUpModel:RemoveTextures(true)
+	SideDressUpModel:SetAllPoints(SideDressUpFrame)
+	SideDressUpModel:SetStylePanel("Fixed", "ModelBorder")
 	SideDressUpModelResetButton:SetStylePanel("Button")
+	SideDressUpModelResetButton:SetPoint("BOTTOM", SideDressUpModel, "BOTTOM", 0, 20)
+	PLUGIN:ApplyCloseButtonStyle(SideDressUpModelCloseButton)
+	PLUGIN:ApplyCloseButtonStyle(SideDressUpModelCloseButton)
 end
 --[[
 ##########################################################
diff --git a/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/voidstorage.lua b/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/voidstorage.lua
index f592e92..329f532 100644
--- a/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/voidstorage.lua
+++ b/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/voidstorage.lua
@@ -30,6 +30,8 @@ local Schema = PLUGIN.Schema;
 HELPERS
 ##########################################################
 ]]--
+local NO_TEXTURE = [[Interface\AddOns\SVUI\assets\artwork\Template\EMPTY]];
+
 local VoidStorageList = {
   "VoidStorageBorderFrame",
   "VoidStorageDepositFrame",
@@ -89,17 +91,36 @@ local function ChangeTabHelper(this)
   this:SetPointToScale(a,b,c,1,e)
 end

+local SlotBorderColor_Hook = function(self, ...)
+  local parent = self:GetParent()
+  if(parent) then
+    parent:SetBackdropBorderColor(...)
+  end
+end
+local SlotBorder_OnHide = function(self, ...)
+  local parent = self:GetParent()
+  if(parent) then
+    parent:SetBackdropBorderColor(0,0,0,0.5)
+  end
+end
+
 local function VoidSlotStyler(name, index)
   local gName = ("%sButton%d"):format(name, index)
   local button = _G[gName]
   local icon = _G[gName .. "IconTexture"]
   local bg = _G[gName .. "Bg"]
   if(button) then
+    local border = button.IconBorder
     if(bg) then bg:Hide() end
     button:SetStylePanel("Slot", true, 2, 0, 0)
     if(icon) then
       icon:SetTexCoord(0.1, 0.9, 0.1, 0.9)
-      icon:SetAllPointsIn()
+      icon:SetAllPointsIn(button)
+    end
+    if(border) then
+      border:SetTexture(NO_TEXTURE)
+      hooksecurefunc(border, "Hide", SlotBorder_OnHide)
+      hooksecurefunc(border, "SetVertexColor", SlotBorderColor_Hook)
     end
   end
 end
@@ -140,7 +161,7 @@ local function VoidStorageStyle()
   VoidItemSearchBox.Panel:SetPointToScale("TOPLEFT", 10, -1)
   VoidItemSearchBox.Panel:SetPointToScale("BOTTOMRIGHT", 4, 1)

-  for i=1, 9 do
+  for i = 1, 9 do
     VoidSlotStyler("VoidStorageDeposit", i)
     VoidSlotStyler("VoidStorageWithdraw", i)
   end
diff --git a/Interface/AddOns/SVUI_TrackOMatic/SVUI_TrackOMatic.toc b/Interface/AddOns/SVUI_TrackOMatic/SVUI_TrackOMatic.toc
index a234f2b..ae18787 100644
--- a/Interface/AddOns/SVUI_TrackOMatic/SVUI_TrackOMatic.toc
+++ b/Interface/AddOns/SVUI_TrackOMatic/SVUI_TrackOMatic.toc
@@ -1,6 +1,6 @@
 ## Interface: 60000
 ## Author: Munglunch
-## Version: 5.4.15
+## Version: 5.4.16
 ## Title: |cffFF9900SVUI |r|cffFFEF00Track-O-Matic|r
 ## Notes: Supervillain UI [|cff9911FFRaid & Party Member Tracking|r].
 ## SavedVariables: TrackOMatic_Global