Quantcast

New textures, fixed tracking arrow for quests, fixed chat fonts in pet battles, new auto loot roll options, added styles to shaman and druid class bars....etc

Steven Jackson [04-17-15 - 01:09]
New textures, fixed tracking arrow for quests, fixed chat fonts in pet battles, new auto loot roll options, added styles to shaman and druid class bars....etc
Filename
SVUI_!Core/SVUI_!Core.toc
SVUI_!Core/assets/backgrounds/unit/UNIT-BG1.blp
SVUI_!Core/assets/backgrounds/unit/UNIT-BG10.blp
SVUI_!Core/assets/backgrounds/unit/UNIT-BG11.blp
SVUI_!Core/assets/backgrounds/unit/UNIT-BG12.blp
SVUI_!Core/assets/backgrounds/unit/UNIT-BG13.blp
SVUI_!Core/assets/backgrounds/unit/UNIT-BG3.blp
SVUI_!Core/assets/backgrounds/unit/UNIT-BG5.blp
SVUI_!Core/assets/backgrounds/unit/UNIT-BG6.blp
SVUI_!Core/assets/backgrounds/unit/UNIT-BG7.blp
SVUI_!Core/assets/backgrounds/unit/UNIT-BG8.blp
SVUI_!Core/assets/backgrounds/unit/UNIT-BG9.blp
SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG1.blp
SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG10.blp
SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG11.blp
SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG12.blp
SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG13.blp
SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG3.blp
SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG4.blp
SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG5.blp
SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG6.blp
SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG7.blp
SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG8.blp
SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG9.blp
SVUI_!Core/setup/installer.lua
SVUI_!Core/setup/presets.lua
SVUI_!Core/system/core.lua
SVUI_!Core/system/henchmen.lua
SVUI_!Core/system/media.lua
SVUI_!Core/system/overrides.lua
SVUI_!Options/SVUI_!Options.lua
SVUI_!Options/SVUI_!Options.toc
SVUI_ActionBars/SVUI_ActionBars.toc
SVUI_Auras/SVUI_Auras.toc
SVUI_Chat/SVUI_Chat.lua
SVUI_Chat/SVUI_Chat.toc
SVUI_Inventory/SVUI_Inventory.lua
SVUI_Inventory/SVUI_Inventory.toc
SVUI_Inventory/components/sorting.lua
SVUI_Maps/SVUI_Maps.toc
SVUI_NamePlates/SVUI_NamePlates.toc
SVUI_QuestTracker/SVUI_QuestTracker.toc
SVUI_QuestTracker/components/active.lua
SVUI_Skins/SVUI_Skins.toc
SVUI_Tooltip/SVUI_Tooltip.toc
SVUI_TrackOMatic/SVUI_TrackOMatic.lua
SVUI_TrackOMatic/components/triangulate.lua
SVUI_UnitFrames/SVUI_UnitFrames.toc
SVUI_UnitFrames/assets/Class/VORTEX.blp
SVUI_UnitFrames/class_resources/druid.lua
SVUI_UnitFrames/class_resources/shaman.lua
diff --git a/SVUI_!Core/SVUI_!Core.toc b/SVUI_!Core/SVUI_!Core.toc
index 2cf2f2a..7c5022c 100644
--- a/SVUI_!Core/SVUI_!Core.toc
+++ b/SVUI_!Core/SVUI_!Core.toc
@@ -1,6 +1,6 @@
 ## Interface: 60100
 ## Author: Munglunch
-## Version: 1.1.8
+## Version: 1.1.9
 ## Title: |cffFF9900SuperVillain UI: |r|cff00FF00!Core|r
 ## Notes: SVUI [|cff9911FFCore Framework|r].
 ## SavedVariables: SVUI_Global, SVUI_Errors, SVUI_Filters, SVUI_Media
diff --git a/SVUI_!Core/assets/backgrounds/unit/UNIT-BG1.blp b/SVUI_!Core/assets/backgrounds/unit/UNIT-BG1.blp
index e359aac..6a546e3 100644
Binary files a/SVUI_!Core/assets/backgrounds/unit/UNIT-BG1.blp and b/SVUI_!Core/assets/backgrounds/unit/UNIT-BG1.blp differ
diff --git a/SVUI_!Core/assets/backgrounds/unit/UNIT-BG10.blp b/SVUI_!Core/assets/backgrounds/unit/UNIT-BG10.blp
new file mode 100644
index 0000000..fe88cce
Binary files /dev/null and b/SVUI_!Core/assets/backgrounds/unit/UNIT-BG10.blp differ
diff --git a/SVUI_!Core/assets/backgrounds/unit/UNIT-BG11.blp b/SVUI_!Core/assets/backgrounds/unit/UNIT-BG11.blp
new file mode 100644
index 0000000..fdd2e81
Binary files /dev/null and b/SVUI_!Core/assets/backgrounds/unit/UNIT-BG11.blp differ
diff --git a/SVUI_!Core/assets/backgrounds/unit/UNIT-BG12.blp b/SVUI_!Core/assets/backgrounds/unit/UNIT-BG12.blp
new file mode 100644
index 0000000..369aba6
Binary files /dev/null and b/SVUI_!Core/assets/backgrounds/unit/UNIT-BG12.blp differ
diff --git a/SVUI_!Core/assets/backgrounds/unit/UNIT-BG13.blp b/SVUI_!Core/assets/backgrounds/unit/UNIT-BG13.blp
new file mode 100644
index 0000000..c23041a
Binary files /dev/null and b/SVUI_!Core/assets/backgrounds/unit/UNIT-BG13.blp differ
diff --git a/SVUI_!Core/assets/backgrounds/unit/UNIT-BG3.blp b/SVUI_!Core/assets/backgrounds/unit/UNIT-BG3.blp
index b6ac788..4279ace 100644
Binary files a/SVUI_!Core/assets/backgrounds/unit/UNIT-BG3.blp and b/SVUI_!Core/assets/backgrounds/unit/UNIT-BG3.blp differ
diff --git a/SVUI_!Core/assets/backgrounds/unit/UNIT-BG5.blp b/SVUI_!Core/assets/backgrounds/unit/UNIT-BG5.blp
new file mode 100644
index 0000000..47ace70
Binary files /dev/null and b/SVUI_!Core/assets/backgrounds/unit/UNIT-BG5.blp differ
diff --git a/SVUI_!Core/assets/backgrounds/unit/UNIT-BG6.blp b/SVUI_!Core/assets/backgrounds/unit/UNIT-BG6.blp
new file mode 100644
index 0000000..6120a5d
Binary files /dev/null and b/SVUI_!Core/assets/backgrounds/unit/UNIT-BG6.blp differ
diff --git a/SVUI_!Core/assets/backgrounds/unit/UNIT-BG7.blp b/SVUI_!Core/assets/backgrounds/unit/UNIT-BG7.blp
new file mode 100644
index 0000000..ab43ff2
Binary files /dev/null and b/SVUI_!Core/assets/backgrounds/unit/UNIT-BG7.blp differ
diff --git a/SVUI_!Core/assets/backgrounds/unit/UNIT-BG8.blp b/SVUI_!Core/assets/backgrounds/unit/UNIT-BG8.blp
new file mode 100644
index 0000000..c9d98b4
Binary files /dev/null and b/SVUI_!Core/assets/backgrounds/unit/UNIT-BG8.blp differ
diff --git a/SVUI_!Core/assets/backgrounds/unit/UNIT-BG9.blp b/SVUI_!Core/assets/backgrounds/unit/UNIT-BG9.blp
new file mode 100644
index 0000000..5289c03
Binary files /dev/null and b/SVUI_!Core/assets/backgrounds/unit/UNIT-BG9.blp differ
diff --git a/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG1.blp b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG1.blp
index 8721c03..434b72a 100644
Binary files a/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG1.blp and b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG1.blp differ
diff --git a/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG10.blp b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG10.blp
new file mode 100644
index 0000000..da8369c
Binary files /dev/null and b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG10.blp differ
diff --git a/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG11.blp b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG11.blp
new file mode 100644
index 0000000..573d0a1
Binary files /dev/null and b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG11.blp differ
diff --git a/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG12.blp b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG12.blp
new file mode 100644
index 0000000..021606f
Binary files /dev/null and b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG12.blp differ
diff --git a/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG13.blp b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG13.blp
new file mode 100644
index 0000000..28dd443
Binary files /dev/null and b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG13.blp differ
diff --git a/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG3.blp b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG3.blp
index 9e7a730..6ed3593 100644
Binary files a/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG3.blp and b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG3.blp differ
diff --git a/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG4.blp b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG4.blp
index 44f3ce7..cbee162 100644
Binary files a/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG4.blp and b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG4.blp differ
diff --git a/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG5.blp b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG5.blp
new file mode 100644
index 0000000..40fd794
Binary files /dev/null and b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG5.blp differ
diff --git a/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG6.blp b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG6.blp
new file mode 100644
index 0000000..e2cb0ff
Binary files /dev/null and b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG6.blp differ
diff --git a/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG7.blp b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG7.blp
new file mode 100644
index 0000000..53eb349
Binary files /dev/null and b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG7.blp differ
diff --git a/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG8.blp b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG8.blp
new file mode 100644
index 0000000..3ae7d87
Binary files /dev/null and b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG8.blp differ
diff --git a/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG9.blp b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG9.blp
new file mode 100644
index 0000000..191bc5c
Binary files /dev/null and b/SVUI_!Core/assets/backgrounds/unit/UNIT-SMALL-BG9.blp differ
diff --git a/SVUI_!Core/setup/installer.lua b/SVUI_!Core/setup/installer.lua
index 254bedb..02aae62 100644
--- a/SVUI_!Core/setup/installer.lua
+++ b/SVUI_!Core/setup/installer.lua
@@ -407,6 +407,12 @@ function SV.Setup:ChatConfigs(mungs)
 	end
 end

+function SV.Setup:RandomBackdrops()
+	self:GenerateBackdrops()
+	SV:UpdateSharedMedia()
+	if(SV.UnitFrames) then SVUILib:RefreshModule('UnitFrames') end
+end
+
 function SV.Setup:ColorTheme(style, preserve)
 	preset_mediastyle = style or "default";

@@ -454,7 +460,7 @@ function SV.Setup:UnitframeLayout(style, preserve)
 	if(preset_mediastyle == "default") then
 		SV.db.UnitFrames.healthclass = true;
 	end
-
+
 	if(not mungs) then
 		if(not preserve) then
 			if preset_barstyle and (preset_barstyle == "twosmall" or preset_barstyle == "twobig") then
diff --git a/SVUI_!Core/setup/presets.lua b/SVUI_!Core/setup/presets.lua
index 4307bc0..33c2d5c 100644
--- a/SVUI_!Core/setup/presets.lua
+++ b/SVUI_!Core/setup/presets.lua
@@ -1,7 +1,7 @@
 --[[
 ##########################################################
 S V U I   By: Munglunch
-##########################################################
+##########################################################
 LOCALIZED LUA FUNCTIONS
 ##########################################################
 ]]--
@@ -25,16 +25,16 @@ local string 	= _G.string;
 local table     = _G.table;
 local format = string.format;
 local tcopy = table.copy;
---[[
-##########################################################
+--[[
+##########################################################
 GET ADDON DATA
 ##########################################################
 ]]--
 local SV = select(2, ...)
 local SVUILib = Librarian("Registry")
 local L = SV.L;
---[[
-##########################################################
+--[[
+##########################################################
 LOCAL VARS
 ##########################################################
 ]]--
@@ -50,8 +50,8 @@ local rcc = RAID_CLASS_COLORS[SV.class];
 local r2 = .1 + (rcc.r * .1)
 local g2 = .1 + (rcc.g * .1)
 local b2 = .1 + (rcc.b * .1)
---[[
-##########################################################
+--[[
+##########################################################
 LAYOUT PRESETS
 ##########################################################
 ]]--
@@ -60,16 +60,16 @@ local hasOldConfigs = function()
 end

 local isLowRez = function()
-	if SV.LowRez then
+	if SV.LowRez then
 		return L["This resolution requires that you change some settings to get everything to fit on your screen."].." "..L["Click the button below to resize your chat frames, unitframes, and reposition your actionbars."].." "..L["You may need to further alter these settings depending how low your resolution is."]
-	else
+	else
 		return L["This resolution doesn't require that you change settings for the UI to fit on your screen."].." "..L["Click the button below to resize your chat frames, unitframes, and reposition your actionbars."].." "..L["This is completely optional."]
 	end
 end

 local PRESET_DATA, CLICK_DIALOG, PAGE_DIALOG;

-SV.Setup.ColorThemes = {
+local ColorThemes = {
 	["data"] = {
 		["link"] = "media",
 		["default"] = {
@@ -79,10 +79,10 @@ SV.Setup.ColorThemes = {
 			},
 			["shared"] = {
 				["background"] = {
-					["pattern"] 	= {file = "SVUI Backdrop 1", 	size = 0, tiled = false},
-					["premium"] 	= {file = "SVUI Artwork 1", 	size = 0, tiled = false},
-					["unitlarge"] 	= {file = "SVUI UnitBG 1", 		size = 0, tiled = false},
-					["unitsmall"] 	= {file = "SVUI SmallUnitBG 1", size = 0, tiled = false},
+					["pattern"] 	= {file = "SVUI Backdrop 2", 	size = 0, tiled = false},
+					["premium"] 	= {file = "SVUI Artwork 2", 	size = 0, tiled = false},
+					["unitlarge"] 	= {file = "SVUI UnitBG 2", 		size = 0, tiled = false},
+					["unitsmall"] 	= {file = "SVUI SmallUnitBG 2", size = 0, tiled = false},
 				}
 			},
 			["unitframes"] = {
@@ -99,10 +99,10 @@ SV.Setup.ColorThemes = {
 			},
 			["shared"] = {
 				["background"] = {
-					["pattern"] 	= {file = "SVUI Backdrop 2", 	size = 0, tiled = false},
-					["premium"] 	= {file = "SVUI Artwork 2", 	size = 0, tiled = false},
-					["unitlarge"] 	= {file = "SVUI UnitBG 2", 		size = 0, tiled = false},
-					["unitsmall"] 	= {file = "SVUI SmallUnitBG 2", size = 0, tiled = false},
+					["pattern"] 	= {file = "SVUI Backdrop 13", 	size = 0, tiled = false},
+					["premium"] 	= {file = "SVUI Artwork 13", 	size = 0, tiled = false},
+					["unitlarge"] 	= {file = "SVUI UnitBG 13", 		size = 0, tiled = false},
+					["unitsmall"] 	= {file = "SVUI SmallUnitBG 13", size = 0, tiled = false},
 				}
 			},
 			["unitframes"] = {
@@ -119,10 +119,10 @@ SV.Setup.ColorThemes = {
 			},
 			["shared"] = {
 				["background"] = {
-					["pattern"] 	= {file = "SVUI Backdrop 3", 	size = 0, tiled = false},
-					["premium"] 	= {file = "SVUI Artwork 3", 	size = 0, tiled = false},
-					["unitlarge"] 	= {file = "SVUI UnitBG 3", 		size = 0, tiled = false},
-					["unitsmall"] 	= {file = "SVUI SmallUnitBG 3", size = 0, tiled = false},
+					["pattern"] 	= {file = "SVUI Backdrop 9", 	size = 0, tiled = false},
+					["premium"] 	= {file = "SVUI Artwork 9", 	size = 0, tiled = false},
+					["unitlarge"] 	= {file = "SVUI UnitBG 9", 		size = 0, tiled = false},
+					["unitsmall"] 	= {file = "SVUI SmallUnitBG 9", size = 0, tiled = false},
 				}
 			},
 			["unitframes"] = {
@@ -139,10 +139,10 @@ SV.Setup.ColorThemes = {
 			},
 			["shared"] = {
 				["background"] = {
-					["pattern"] 	= {file = "SVUI Backdrop 4", 	size = 0, tiled = false},
-					["premium"] 	= {file = "SVUI Artwork 4", 	size = 0, tiled = false},
-					["unitlarge"] 	= {file = "SVUI UnitBG 4", 		size = 0, tiled = false},
-					["unitsmall"] 	= {file = "SVUI SmallUnitBG 4", size = 0, tiled = false},
+					["pattern"] 	= {file = "SVUI Backdrop 3", 	size = 0, tiled = false},
+					["premium"] 	= {file = "SVUI Artwork 3", 	size = 0, tiled = false},
+					["unitlarge"] 	= {file = "SVUI UnitBG 3", 		size = 0, tiled = false},
+					["unitsmall"] 	= {file = "SVUI SmallUnitBG 3", size = 0, tiled = false},
 				}
 			},
 			["unitframes"] = {
@@ -185,11 +185,11 @@ SV.Setup.ColorThemes = {
 			["Desc3"] = CONTINUED..L["you don't need fancyness to kick some ass!"],
 		},
 	}
-}
+};

 local function LoadPresetData()
 	PRESET_DATA = {
-		["media"] = SV.Setup.ColorThemes.data,
+		["media"] = ColorThemes.data,
 		["auras"] = {
 			["link"] = "UnitFrames",
 			["default"] = {
@@ -664,9 +664,9 @@ local function LoadPresetData()
 					},
 					["icons"] = {
 						["roleIcon"] = {
-							["attachTo"] = "INNERBOTTOMLEFT",
-							["xOffset"] = 8,
-							["yOffset"] = 1,
+							["attachTo"] = "INNERBOTTOMLEFT",
+							["xOffset"] = 8,
+							["yOffset"] = 1,
 						},
 					},
 					["name"] = {
@@ -724,9 +724,9 @@ local function LoadPresetData()
 					},
 					["icons"] = {
 						["roleIcon"] = {
-							["attachTo"] = "INNERBOTTOMLEFT",
-							["xOffset"] = 8,
-							["yOffset"] = 0,
+							["attachTo"] = "INNERBOTTOMLEFT",
+							["xOffset"] = 8,
+							["yOffset"] = 0,
 						},
 					},
 					["name"] = {
@@ -891,7 +891,7 @@ local function LoadPageData()
 		},
 		--PAGE 4
 		{
-
+
 		},
 		--PAGE 5
 		{
@@ -957,7 +957,7 @@ local function LoadPageData()
 		},
 	};

-	PAGE_DIALOG[4] = SV.Setup.ColorThemes.dialog;
+	PAGE_DIALOG[4] = ColorThemes.dialog;
 end

 local function LoadOnClickData()
@@ -1029,13 +1029,13 @@ local function LoadOnClickData()
 		},
 	};

-	for key, data in pairs(SV.Setup.ColorThemes.clicktext) do
+	for key, data in pairs(ColorThemes.clicktext) do
 		local optionKey = "Page4_" .. key;
 		CLICK_DIALOG[optionKey] = data;
 	end
 end
---[[
-##########################################################
+--[[
+##########################################################
 LOCAL FUNCTIONS
 ##########################################################
 ]]--
@@ -1059,6 +1059,16 @@ function SV.Setup:SetAllDefaults()
 	_copyPresets(SV.db, SV.defaults)
 end

+function SV.Setup:GenerateBackdrops()
+	local IMAGE_INDEX = math.random(1, (SV.MaxUnitBackdrops - 3));
+	local STYLE1, STYLE2 = "SVUI UnitBG "..IMAGE_INDEX, "SVUI SmallUnitBG "..IMAGE_INDEX;
+	local preset = {
+		["unitlarge"] = {file = STYLE1, size = 0, tiled = false},
+		["unitsmall"] = {file = STYLE2, size = 0, tiled = false}
+	}
+	_copyPresets(SV.media.shared.background, preset)
+end
+
 function SV.Setup:CopyPreset(category, theme)
 	if(not PRESET_DATA) then LoadPresetData() end
 	if(PRESET_DATA and PRESET_DATA[category] and PRESET_DATA[category]["link"]) then
@@ -1071,10 +1081,10 @@ function SV.Setup:CopyPreset(category, theme)
 		else
 			data = SV.db[saved]
 		end
-
+
 		if(data) then
-	    	_copyPresets(data, preset)
-	    end
+    	_copyPresets(data, preset)
+    end
 	end
 end

@@ -1095,4 +1105,4 @@ function SV.Setup:CopyOnClick(index)
 	if(CLICK_DIALOG and CLICK_DIALOG[index]) then
 		return CLICK_DIALOG[index]
 	end
-end
\ No newline at end of file
+end
diff --git a/SVUI_!Core/system/core.lua b/SVUI_!Core/system/core.lua
index 64817c6..7998de5 100644
--- a/SVUI_!Core/system/core.lua
+++ b/SVUI_!Core/system/core.lua
@@ -310,6 +310,10 @@ SV.defaults           = {
     },
     ["Extras"] = {
         ["autoRoll"] = false,
+        ["autoRollDisenchant"] = false,
+        ["autoRollMaxLevel"] = false,
+        ["autoRollSoulbound"] = true,
+        ["autoRollQuality"] = '2',
         ["vendorGrays"] = true,
         ["autoAcceptInvite"] = false,
         ["autorepchange"] = false,
@@ -776,11 +780,12 @@ end
 function SV:PET_BATTLE_CLOSE()
     self:AuditVisibility()
     SVUILib:LiveUpdate()
+    -- self.Events:Trigger("FONT_GROUP_UPDATED", "chatdialog", "chattab");
 end

 function SV:PET_BATTLE_OPENING_START()
     self:AuditVisibility(true);
-    self.Events:Trigger("ALL_FONTS_UPDATED");
+    -- self.Events:Trigger("FONT_GROUP_UPDATED", "chatdialog", "chattab");
 end

 function SV:PLAYER_REGEN_DISABLED()
diff --git a/SVUI_!Core/system/henchmen.lua b/SVUI_!Core/system/henchmen.lua
index ea16f84..aefd7a6 100644
--- a/SVUI_!Core/system/henchmen.lua
+++ b/SVUI_!Core/system/henchmen.lua
@@ -47,8 +47,8 @@ local GameTooltip           = _G.GameTooltip;

 local SV = select(2, ...)
 local L = SV.L
---[[
-##########################################################
+--[[
+##########################################################
 LOCAL VARS
 ##########################################################
 ]]--
@@ -62,11 +62,11 @@ local BUBBLE = [[Interface\Addons\SVUI_!Core\assets\textures\Doodads\HENCHMEN-SP
 local SUBOPTIONS = {};
 local HENCHMEN_DATA = {
 	{
-		{0,"Adjust My Colors!","Color Themes","Click here to change your current color theme to one of the default sets."},
-		{20,"Adjust My Frames!","Frame Styles","Click here to change your current frame styles to one of the default sets."},
-		{40,"Adjust My Bars!","Bar Layouts","Click here to change your current actionbar layout to one of the default sets."},
+		{40,"Adjust My Colors!","Color Themes","Click here to change your current color theme to one of the default sets."},
+		{40,"Adjust My Frames!","Frame Styles","Click here to change your current frame styles to one of the default sets."},
+		{0,"Adjust My Bars!","Bar Layouts","Click here to change your current actionbar layout to one of the default sets."},
 		{-40,"Adjust My Auras!","Aura Layouts","Click here to change your buff/debuff layout to one of the default sets."},
-		{-20,"Show Me All Options!","Config Screen","Click here to access the entire SVUI configuration."}
+		{-40,"Show Me All Options!","Config Screen","Click here to access the entire SVUI configuration."}
 	},
 	{
 		{0,"Accept Quests","Your minions will automatically accept quests for you", "autoquestaccept"},
@@ -95,16 +95,16 @@ SV.YOUR_HENCHMEN = {
 	{37339,60,60,60,60,60,60}, 	--Augh
 	{2323,67,113,69,70,73,75}, 	--Defias Henchman
 }
---[[
-##########################################################
+--[[
+##########################################################
 SCRIPT HANDLERS
 ##########################################################
 ]]--
-local ColorFunc = function(self) SV.Setup:ColorTheme(self.value, true); SV:ToggleHenchman() end
-local UnitFunc = function(self) SV.Setup:UnitframeLayout(self.value, true); SV:ToggleHenchman() end
-local BarFunc = function(self) SV.Setup:BarLayout(self.value, true); SV:ToggleHenchman() end
-local AuraFunc = function(self) SV.Setup:Auralayout(self.value, true); SV:ToggleHenchman() end
-local ConfigFunc = function() SV:ToggleConfig(); SV:ToggleHenchman() end
+local ColorFunc = function(self) SV.Setup:ColorTheme(self.value, true); SV:ToggleHenchman() end
+local UnitFunc = function(self) SV.Setup:UnitframeLayout(self.value, true); SV:ToggleHenchman() end
+local BarFunc = function(self) SV.Setup:BarLayout(self.value, true); SV:ToggleHenchman() end
+local AuraFunc = function(self) SV.Setup:Auralayout(self.value, true); SV:ToggleHenchman() end
+local ConfigFunc = function() SV:ToggleConfig(); SV:ToggleHenchman() end
 local speechTimer;

 local Tooltip_Show = function(self)
@@ -112,13 +112,13 @@ local Tooltip_Show = function(self)
 	GameTooltip:ClearLines()
 	GameTooltip:AddLine(self.ttText)
 	GameTooltip:Show()
-end
+end

 local Tooltip_Hide = function(self)
 	GameTooltip:Hide()
-end
+end

-local Minion_OnMouseUp = function(self)
+local Minion_OnMouseUp = function(self)
 	if(not self.setting()) then
 		self.indicator:SetTexCoord(0,1,0.5,1)
 		self.setting(true)
@@ -126,7 +126,7 @@ local Minion_OnMouseUp = function(self)
 		self.indicator:SetTexCoord(0,1,0,0.5)
 		self.setting(false)
 	end
-end
+end

 local Option_OnMouseUp = function(self)
 	--print('Option_OnMouseUp Fired')
@@ -135,26 +135,26 @@ local Option_OnMouseUp = function(self)
 	--else
 		--print('Option_OnMouseUp No Callbacks')
 	end
-end
+end

 local SubOption_OnMouseUp = function(self)
-	if not InCombatLockdown()then
+	if not InCombatLockdown()then
 		local name=self:GetName()
-		for _,frame in pairs(SUBOPTIONS) do
+		for _,frame in pairs(SUBOPTIONS) do
 			frame.anim:Finish()
 			frame:Hide()
-		end
-		if not self.isopen then
-			for i=1, self.suboptions do
+		end
+		if not self.isopen then
+			for i=1, self.suboptions do
 				_G[name.."Sub"..i]:Show()
 				_G[name.."Sub"..i].anim:Play()
 				_G[name.."Sub"..i].anim:Finish()
-			end
-			self.isopen=true
+			end
+			self.isopen=true
 		else
-			self.isopen=false
-		end
-	end
+			self.isopen=false
+		end
+	end
 end

 local function UpdateHenchmanModel(hide)
@@ -171,10 +171,10 @@ local function UpdateHenchmanModel(hide)
 		HenchmenFrameModel:Show()
 	else
 		HenchmenFrameModel:Hide()
-	end
+	end
 end
---[[
-##########################################################
+--[[
+##########################################################
 CORE FUNCTIONS
 ##########################################################
 ]]--
@@ -185,11 +185,11 @@ local function CreateMinionOptions(i)
 	local option = CreateFrame("Frame", "MinionOptionButton"..i, HenchmenFrame)
 	option:SetSize(148,50)

-	if i==1 then
+	if i==1 then
 		option:SetPoint("TOPRIGHT",HenchmenFrame,"TOPLEFT",-32,-32)
-	else
+	else
 		option:SetPoint("TOP",_G["MinionOptionButton"..lastIndex],"BOTTOM",offsetX,-32)
-	end
+	end

 	local setting = options[4];
 	local dbSet = SV.db.Extras[setting];
@@ -233,11 +233,11 @@ local function CreateMinionOptions(i)
 	else
 		option.indicator:SetTexCoord(0,1,0.5,1)
 	end
-
+
 	option:SetScript("OnEnter", Tooltip_Show)
 	option:SetScript("OnLeave", Tooltip_Hide)
 	option:SetScript("OnMouseUp", Minion_OnMouseUp)
-end
+end

 local function CreateHenchmenOptions(i)
 	local lastIndex = i - 1;
@@ -245,11 +245,11 @@ local function CreateHenchmenOptions(i)
 	local offsetX = options[1]
 	local option = CreateFrame("Frame", "HenchmenOptionButton"..i, HenchmenFrame)
 	option:SetSize(148,50)
-	if i==1 then
-		option:SetPoint("TOPLEFT",HenchmenFrame,"TOPRIGHT",32,-32)
-	else
+	if i==1 then
+		option:SetPoint("TOP",_G["HenchmenOptionButton0"],"BOTTOM",offsetX,-32)
+	else
 		option:SetPoint("TOP",_G["HenchmenOptionButton"..lastIndex],"BOTTOM",offsetX,-32)
-	end
+	end
 	SV.Animate:Slide(option,500,-500)
 	option:SetFrameStrata("DIALOG")
 	option:SetFrameLevel(24)
@@ -276,7 +276,7 @@ local function CreateHenchmenOptions(i)
 	option.ttText = options[3]
 	option:SetScript("OnEnter", Tooltip_Show)
 	option:SetScript("OnLeave", Tooltip_Hide)
-end
+end

 local function CreateHenchmenSubOptions(buttonIndex,optionIndex)
 	local parent = _G["HenchmenOptionButton"..buttonIndex]
@@ -305,7 +305,7 @@ local function CreateHenchmenSubOptions(buttonIndex,optionIndex)
 	SV.Animate:Slide(frame,500,0)

 	tinsert(SUBOPTIONS,frame)
-end
+end

 local function CreateHenchmenFrame()
 	HenchmenFrame:SetParent(UIParent)
@@ -346,7 +346,38 @@ local function CreateHenchmenFrame()
 	HenchmenFrameBG:Hide()
 	HenchmenFrameBG:SetScript("OnMouseUp", SV.ToggleHenchman)

-	for i=1, 5 do
+	local option = CreateFrame("Frame", "HenchmenOptionButton0", HenchmenFrame)
+	option:SetSize(148,50)
+	option:SetPoint("TOPLEFT",HenchmenFrame,"TOPRIGHT",32,0)
+	SV.Animate:Slide(option,500,-500)
+	option:SetFrameStrata("DIALOG")
+	option:SetFrameLevel(24)
+	option:EnableMouse(true)
+	option.bg = option:CreateTexture(nil,"BORDER")
+	option.bg:SetPoint("TOPLEFT",option,"TOPLEFT",-4,4)
+	option.bg:SetPoint("BOTTOMRIGHT",option,"BOTTOMRIGHT",4,-24)
+	option.bg:SetTexture(OPTION_RIGHT)
+	option.bg:SetVertexColor(1,1,1,0.6)
+	option.txt = option:CreateFontString(nil,"DIALOG")
+	option.txt:InsetPoints(option)
+	option.txt:SetFont(SV.media.font.narrator,12,"NONE")
+	option.txt:SetJustifyH("CENTER")
+	option.txt:SetJustifyV("MIDDLE")
+	option.txt:SetText("Random Backdrops!")
+	option.txt:SetTextColor(0,0,0)
+	option.txthigh = option:CreateFontString(nil,"HIGHLIGHT")
+	option.txthigh:InsetPoints(option)
+	option.txthigh:SetFont(SV.media.font.narrator,12,"OUTLINE")
+	option.txthigh:SetJustifyH("CENTER")
+	option.txthigh:SetJustifyV("MIDDLE")
+	option.txthigh:SetText("Random Backdrops!")
+	option.txthigh:SetTextColor(0,1,1)
+	option.ttText = "Set a random texture for all unit frame backdrops!"
+	option:SetScript("OnEnter", Tooltip_Show)
+	option:SetScript("OnLeave", Tooltip_Hide)
+	option:SetScript("OnMouseUp", function() SV.Setup:RandomBackdrops() end)
+
+	for i=1, 5 do
 		CreateHenchmenOptions(i)
 		CreateMinionOptions(i)
 	end
@@ -460,7 +491,7 @@ local function CreateHenchmenFrame()
 	------------------------------------------------------------------------
 	HenchmenOptionButton5:SetScript("OnMouseUp", ConfigFunc)
 	------------------------------------------------------------------------
-	for _,frame in pairs(SUBOPTIONS) do
+	for _,frame in pairs(SUBOPTIONS) do
 		frame.anim:Finish()
 		frame:Hide()
 	end
@@ -470,11 +501,11 @@ end


 function SV:ToggleHenchman()
-	if(InCombatLockdown() or (not SV.HenchmenButton)) then return end
+	if(InCombatLockdown() or (not SV.HenchmenButton)) then return end
 	if(not SV.PostLoaded) then
 		CreateHenchmenFrame()
 	end
-	if not HenchmenFrame:IsShown()then
+	if not HenchmenFrame:IsShown()then
 		HenchmenFrameBG:Show()

 		UpdateHenchmanModel()
@@ -487,7 +518,7 @@ function SV:ToggleHenchman()
 		HenchmenCalloutFrame:SetAlpha(1)
 		HenchmenCalloutFrame.anim:Play()
 		UIFrameFadeOut(HenchmenCalloutFrame,5)
-		for i=1,5 do
+		for i=1,5 do
 			local option=_G["HenchmenOptionButton"..i]
 			option.anim:Finish()
 			option:Show()
@@ -497,14 +528,14 @@ function SV:ToggleHenchman()
 			minion.anim:Finish()
 			minion:Show()
 			minion.anim:Play()
-		end
+		end
 		SV.HenchmenButton.Icon:SetGradient(unpack(SV.media.gradient.green))
-	else
+	else
 		UpdateHenchmanModel(true)
 		for _,frame in pairs(SUBOPTIONS)do
 			frame.anim:Finish()
 			frame:Hide()
-		end
+		end
 		HenchmenOptionButton1.isopen=false;
 		HenchmenOptionButton2.isopen=false;
 		HenchmenOptionButton3.isopen=false;
@@ -513,7 +544,7 @@ function SV:ToggleHenchman()
 		HenchmenFrame.anim:Finish()
 		HenchmenFrame:Hide()
 		HenchmenFrameBG:Hide()
-		for i=1,5 do
+		for i=1,5 do
 			local option=_G["HenchmenOptionButton"..i]
 			option.anim:Finish()
 			option:Hide()
@@ -521,17 +552,17 @@ function SV:ToggleHenchman()
 			local minion=_G["MinionOptionButton"..i]
 			minion.anim:Finish()
 			minion:Hide()
-		end
+		end
 		SV.HenchmenButton.Icon:SetGradient("VERTICAL", 0.5, 0.53, 0.55, 0.8, 0.8, 1)
-	end
+	end
 end
---[[
-##########################################################
+--[[
+##########################################################
 BUILD FUNCTION / UPDATE
 ##########################################################
 ]]--
 local function LockdownCallback()
-	if(HenchmenFrameModel and HenchmenFrame and HenchmenFrame:IsShown()) then
+	if(HenchmenFrameModel and HenchmenFrame and HenchmenFrame:IsShown()) then
         HenchmenFrame:Hide()
         HenchmenFrameBG:Hide()
     end
@@ -542,4 +573,4 @@ local function InitializeHenchmen()
 	SV.Events:OnLock(LockdownCallback);
 end

-SV:NewScript(InitializeHenchmen)
\ No newline at end of file
+SV:NewScript(InitializeHenchmen)
diff --git a/SVUI_!Core/system/media.lua b/SVUI_!Core/system/media.lua
index 4bd9347..ee7ecc2 100644
--- a/SVUI_!Core/system/media.lua
+++ b/SVUI_!Core/system/media.lua
@@ -44,6 +44,7 @@ local SV = select(2, ...)
 local SVUILib = Librarian("Registry")
 local L = SV.L
 local classToken = select(2,UnitClass("player"))
+SV.MaxUnitBackdrops = 13;
 --[[
 ##########################################################
 DEFINE SOUND EFFECTS
@@ -98,14 +99,11 @@ LSM:Register("background", "SVUI Artwork 2", [[Interface\AddOns\SVUI_!Core\asset
 LSM:Register("background", "SVUI Artwork 3", [[Interface\AddOns\SVUI_!Core\assets\backgrounds\art\ART3]])
 LSM:Register("background", "SVUI Artwork 4", [[Interface\AddOns\SVUI_!Core\assets\backgrounds\art\ART4]])
 LSM:Register("background", "SVUI Artwork 5", [[Interface\AddOns\SVUI_!Core\assets\backgrounds\art\ART5]])
-LSM:Register("background", "SVUI UnitBG 1", [[Interface\AddOns\SVUI_!Core\assets\backgrounds\unit\UNIT-BG1]])
-LSM:Register("background", "SVUI UnitBG 2", [[Interface\AddOns\SVUI_!Core\assets\backgrounds\unit\UNIT-BG2]])
-LSM:Register("background", "SVUI UnitBG 3", [[Interface\AddOns\SVUI_!Core\assets\backgrounds\unit\UNIT-BG3]])
-LSM:Register("background", "SVUI UnitBG 4", [[Interface\AddOns\SVUI_!Core\assets\backgrounds\unit\UNIT-BG4]])
-LSM:Register("background", "SVUI SmallUnitBG 1", [[Interface\AddOns\SVUI_!Core\assets\backgrounds\unit\UNIT-SMALL-BG1]])
-LSM:Register("background", "SVUI SmallUnitBG 2", [[Interface\AddOns\SVUI_!Core\assets\backgrounds\unit\UNIT-SMALL-BG2]])
-LSM:Register("background", "SVUI SmallUnitBG 3", [[Interface\AddOns\SVUI_!Core\assets\backgrounds\unit\UNIT-SMALL-BG3]])
-LSM:Register("background", "SVUI SmallUnitBG 4", [[Interface\AddOns\SVUI_!Core\assets\backgrounds\unit\UNIT-SMALL-BG4]])
+
+for i = 1, SV.MaxUnitBackdrops do
+	LSM:Register("background", "SVUI UnitBG "..i, [[Interface\AddOns\SVUI_!Core\assets\backgrounds\unit\UNIT-BG]]..i)
+	LSM:Register("background", "SVUI SmallUnitBG "..i, [[Interface\AddOns\SVUI_!Core\assets\backgrounds\unit\UNIT-SMALL-BG]]..i)
+end

 LSM:Register("border", "SVUI Border", [[Interface\AddOns\SVUI_!Core\assets\borders\DEFAULT]])
 LSM:Register("border", "SVUI Border 2", [[Interface\BUTTONS\WHITE8X8]])
@@ -796,6 +794,7 @@ end
 local function UpdateFontTemplate(template)
 	template = template or "default";
 	local info = SV.media.shared.font[template];
+	if(not info) then return end
 	local file = LSM:Fetch("font", info.file);
 	local size = info.size;
 	local line = info.outline;
diff --git a/SVUI_!Core/system/overrides.lua b/SVUI_!Core/system/overrides.lua
index 17c32ca..eee8bbc 100644
--- a/SVUI_!Core/system/overrides.lua
+++ b/SVUI_!Core/system/overrides.lua
@@ -961,7 +961,8 @@ local function UpdateLootingUpvalues()
 	AUTOROLL_ENABLED = SV.db.Extras.autoRoll;
 	AUTOROLL_SOULBOUND = SV.db.Extras.autoRollSoulbound;
 	AUTOROLL_LEVEL = SV.db.Extras.autoRollMaxLevel;
-	AUTOROLL_QUALITY = SV.db.Extras.autoRollQuality;
+	local dbQuality = SV.db.Extras.autoRollQuality;
+	AUTOROLL_QUALITY = tonumber(dbQuality);
 	AUTOROLL_DE = SV.db.Extras.autoRollDisenchant;
 end

diff --git a/SVUI_!Options/SVUI_!Options.lua b/SVUI_!Options/SVUI_!Options.lua
index 37dbc8e..b4916a7 100644
--- a/SVUI_!Options/SVUI_!Options.lua
+++ b/SVUI_!Options/SVUI_!Options.lua
@@ -451,16 +451,24 @@ SV.Options.args.primary = {
 					desc = L["Select an available theme."],
 					func = function() SV.Setup:SelectTheme() SV:ToggleConfig() end
 				},
-				ToggleAnchors = {
+				Backdrops = {
 					order = 3,
 					width = "full",
 					type = "execute",
+					name = L["Backdrops"],
+					desc = L["Change unit backdrops to a random texture."],
+					func = function() SV.Setup:RandomBackdrops() end
+				},
+				ToggleAnchors = {
+					order = 4,
+					width = "full",
+					type = "execute",
 					name = L["Move Frames"],
 					desc = L["Unlock various elements of the UI to be repositioned."],
 					func = function() SV:MoveAnchors() end
 				},
 				ResetMoveables = {
-					order = 4,
+					order = 5,
 					width = "full",
 					type = "execute",
 					name = L["Reset SVUI Anchors"],
@@ -468,7 +476,7 @@ SV.Options.args.primary = {
 					func = function() SV:StaticPopup_Show("RESETLAYOUT_CHECK") end
 				},
 				ResetDraggables = {
-					order = 5,
+					order = 6,
 					width = "full",
 					type = "execute",
 					name = L["Reset Blizzard Anchors"],
@@ -807,8 +815,8 @@ SV.Options.args.Core = {
 							guiInline = true,
 							name = L["Looting Minions"],
 							desc = L['Minions that can make looting easier by rolling automatically.'],
-							get = function(j) return SV.db.Extras[key[#key]] end,
-							set = function(j,value) SV.db.Extras[key[#key]] = value; SV.Events:Trigger("LOOTING_UPVALUES_UPDATED"); end,
+							get = function(key) return SV.db.Extras[key[#key]] end,
+							set = function(key,value) SV.db.Extras[key[#key]] = value; SV.Events:Trigger("LOOTING_UPVALUES_UPDATED"); end,
 							disabled = function() return not SV.db.general.lootRoll end,
 							args = {
 								autoRoll = {
diff --git a/SVUI_!Options/SVUI_!Options.toc b/SVUI_!Options/SVUI_!Options.toc
index d2d109c..7b72f36 100644
--- a/SVUI_!Options/SVUI_!Options.toc
+++ b/SVUI_!Options/SVUI_!Options.toc
@@ -1,6 +1,6 @@
 ## Interface: 60100
 ## Author: Munglunch
-## Version: 1.1.8
+## Version: 1.1.9
 ## Title: |cffFF9900SuperVillain UI: |r|cff00FF00!Options|r
 ## Notes: SVUI [|cff9911FFConfig Options|r]
 ## RequiredDeps: SVUI_!Core
diff --git a/SVUI_ActionBars/SVUI_ActionBars.toc b/SVUI_ActionBars/SVUI_ActionBars.toc
index c7af107..5931b8c 100644
--- a/SVUI_ActionBars/SVUI_ActionBars.toc
+++ b/SVUI_ActionBars/SVUI_ActionBars.toc
@@ -1,6 +1,6 @@
 ## Interface: 60100
 ## Author: Munglunch
-## Version: 1.1.8
+## Version: 1.1.9
 ## Title: |cffFF9900SuperVillain UI: |r|cffFFEF00Action Bars|r
 ## Notes: Action Bar Plugin for [|cff9911FFSVUI|r].
 ## OptionalDeps: LibSharedMedia-3.0, LibActionButton-1.0
diff --git a/SVUI_Auras/SVUI_Auras.toc b/SVUI_Auras/SVUI_Auras.toc
index e2e1343..322e7cb 100644
--- a/SVUI_Auras/SVUI_Auras.toc
+++ b/SVUI_Auras/SVUI_Auras.toc
@@ -1,6 +1,6 @@
 ## Interface: 60100
 ## Author: Munglunch
-## Version: 1.1.8
+## Version: 1.1.9
 ## Title: |cffFF9900SuperVillain UI: |r|cffFFEF00Auras|r
 ## Notes: Aura Plugin for [|cff9911FFSVUI|r].
 ## OptionalDeps: LibSharedMedia-3.0
diff --git a/SVUI_Chat/SVUI_Chat.lua b/SVUI_Chat/SVUI_Chat.lua
index aed1ede..a048c62 100644
--- a/SVUI_Chat/SVUI_Chat.lua
+++ b/SVUI_Chat/SVUI_Chat.lua
@@ -740,8 +740,10 @@ do
 		if(not chat.Panel) then
 			chat:SetStyle("Frame", "Transparent", true, 1, 3, 6)
 			chat.Panel:Hide()
+			SV:FontManager(chat, "chatdialog", "LEFT")
+			SV:FontManager(tabText, "chattab")
 		end
-		if(SV.media.shared.font.chatdialog.outline ~= 'NONE' )then
+		if(SV.media.shared.font.chatdialog.outline ~= 'NONE' ) then
 			chat:SetShadowColor(0, 0, 0, 0)
 			chat:SetShadowOffset(0, 0)
 		else
@@ -753,9 +755,6 @@ do
 			local editBoxName = chatName.."EditBox";
 			local editBox = _G[editBoxName]
 			-------------------------------------------
-			SV:FontManager(chat, "chatdialog", "LEFT")
-			SV:FontManager(tabText, "chattab")
-			-------------------------------------------
 			chat:SetFrameLevel(4)
 			chat:SetClampRectInsets(0, 0, 0, 0)
 			chat:SetClampedToScreen(false)
@@ -1138,6 +1137,7 @@ do
 	end

 	local _hook_ChatFontUpdate = function(self, chat, size)
+		if(C_PetBattles.IsInBattle()) then return end
 		if ( not chat ) then
 			chat = FCF_GetCurrentChatFrame();
 		end
diff --git a/SVUI_Chat/SVUI_Chat.toc b/SVUI_Chat/SVUI_Chat.toc
index e5f2b4a..22f89d6 100644
--- a/SVUI_Chat/SVUI_Chat.toc
+++ b/SVUI_Chat/SVUI_Chat.toc
@@ -1,6 +1,6 @@
 ## Interface: 60100
 ## Author: Munglunch
-## Version: 1.1.8
+## Version: 1.1.9
 ## Title: |cffFF9900SuperVillain UI: |r|cffFFEF00Chat|r
 ## Notes: Chat Plugin for [|cff9911FFSVUI|r].
 ## SavedVariablesPerCharacter: SVUI_Private_ChatCache
diff --git a/SVUI_Inventory/SVUI_Inventory.lua b/SVUI_Inventory/SVUI_Inventory.lua
index 17b46db..b55a187 100644
--- a/SVUI_Inventory/SVUI_Inventory.lua
+++ b/SVUI_Inventory/SVUI_Inventory.lua
@@ -1116,12 +1116,7 @@ do
 	local Tooltip_Show = function(self)
 		GameTooltip:SetOwner(self:GetParent(),"ANCHOR_TOP",0,4)
 		GameTooltip:ClearLines()
-
-		if(self.altText and IsShiftKeyDown()) then
-			GameTooltip:AddLine(self.altText)
-		else
-			GameTooltip:AddLine(self.ttText)
-		end
+		GameTooltip:AddLine(self.ttText)

 		if self.ttText2 then
 			GameTooltip:AddLine(' ')
@@ -1270,9 +1265,8 @@ do
 		frame.sortButton:SetSize(25, 25)
 		StyleBagToolButton(frame.sortButton, MOD.media.cleanupIcon)
 		frame.sortButton.ttText = L["Sort Bags"]
-		frame.sortButton.altText = L["Filtered Cleanup (Default Sorting)"]
-		frame.sortButton.ttText2 = L["Hold Alt:"]
-		frame.sortButton.ttText2desc = L["Default Sorting"]
+		frame.sortButton.ttText2 = L["[SHIFT + CLICK]"]
+		frame.sortButton.ttText2desc = L["Filtered Cleanup (Default Sorting)"]
 		frame.sortButton:SetScript("OnEnter", Tooltip_Show)
 		frame.sortButton:SetScript("OnLeave", Tooltip_Hide)
 		local Sort_OnClick = MOD:RunSortingProcess(MOD.Sort, "bags", SortBags)
@@ -1420,9 +1414,8 @@ do
 		frame.sortButton:SetSize(25, 25)
 		StyleBagToolButton(frame.sortButton, MOD.media.cleanupIcon)
 		frame.sortButton.ttText = L["Sort Bank"]
-		frame.sortButton.altText = L["Filtered Cleanup (Default Sorting)"]
-		frame.sortButton.ttText2 = L["Hold Alt:"]
-		frame.sortButton.ttText2desc = L["Default Sorting"]
+		frame.sortButton.ttText2 = L["[SHIFT + CLICK]"]
+		frame.sortButton.ttText2desc = L["Filtered Cleanup (Default Sorting)"]
 		frame.sortButton:SetScript("OnEnter", Tooltip_Show)
 		frame.sortButton:SetScript("OnLeave", Tooltip_Hide)

diff --git a/SVUI_Inventory/SVUI_Inventory.toc b/SVUI_Inventory/SVUI_Inventory.toc
index c680413..4f55640 100644
--- a/SVUI_Inventory/SVUI_Inventory.toc
+++ b/SVUI_Inventory/SVUI_Inventory.toc
@@ -1,6 +1,6 @@
 ## Interface: 60100
 ## Author: Munglunch
-## Version: 1.1.8
+## Version: 1.1.9
 ## Title: |cffFF9900SuperVillain UI: |r|cffFFEF00Inventory|r
 ## Notes: Inventory Plugin for [|cff9911FFSVUI|r].
 ## SavedVariables: SVUI_LootCache
diff --git a/SVUI_Inventory/components/sorting.lua b/SVUI_Inventory/components/sorting.lua
index f40c1fd..760a735 100644
--- a/SVUI_Inventory/components/sorting.lua
+++ b/SVUI_Inventory/components/sorting.lua
@@ -868,6 +868,7 @@ function MOD:RunSortingProcess(func, groupsDefaults, altFunc)
 	local bagGroups = {}
 	return function(groups)
 		if(altFunc and IsShiftKeyDown()) then
+			PlaySound("UI_BagSorting_01");
 			altFunc()
 		else
 			if SortUpdateTimer:IsShown() then
diff --git a/SVUI_Maps/SVUI_Maps.toc b/SVUI_Maps/SVUI_Maps.toc
index 8c56832..121caf2 100644
--- a/SVUI_Maps/SVUI_Maps.toc
+++ b/SVUI_Maps/SVUI_Maps.toc
@@ -1,6 +1,6 @@
 ## Interface: 60100
 ## Author: Munglunch
-## Version: 1.1.8
+## Version: 1.1.9
 ## Title: |cffFF9900SuperVillain UI: |r|cffFFEF00Maps|r
 ## Notes: Maps Plugin for [|cff9911FFSVUI|r].
 ## OptionalDeps: LibSharedMedia-3.0
diff --git a/SVUI_NamePlates/SVUI_NamePlates.toc b/SVUI_NamePlates/SVUI_NamePlates.toc
index 79bee12..c7509ab 100644
--- a/SVUI_NamePlates/SVUI_NamePlates.toc
+++ b/SVUI_NamePlates/SVUI_NamePlates.toc
@@ -1,6 +1,6 @@
 ## Interface: 60100
 ## Author: Munglunch
-## Version: 1.1.8
+## Version: 1.1.9
 ## Title: |cffFF9900SuperVillain UI: |r|cffFFEF00NamePlates|r
 ## Notes: NamePlates Plugin for [|cff9911FFSVUI|r].
 ## OptionalDeps: LibSharedMedia-3.0
diff --git a/SVUI_QuestTracker/SVUI_QuestTracker.toc b/SVUI_QuestTracker/SVUI_QuestTracker.toc
index e4bdfa1..38817e7 100644
--- a/SVUI_QuestTracker/SVUI_QuestTracker.toc
+++ b/SVUI_QuestTracker/SVUI_QuestTracker.toc
@@ -1,6 +1,6 @@
 ## Interface: 60100
 ## Author: Munglunch
-## Version: 1.1.8
+## Version: 1.1.9
 ## Title: |cffFF9900SuperVillain UI: |r|cffFFEF00QuestTracker|r
 ## Notes: QuestTracker Plugin for [|cff9911FFSVUI|r].
 ## OptionalDeps: LibSharedMedia-3.0
diff --git a/SVUI_QuestTracker/components/active.lua b/SVUI_QuestTracker/components/active.lua
index 921273f..22bbd42 100644
--- a/SVUI_QuestTracker/components/active.lua
+++ b/SVUI_QuestTracker/components/active.lua
@@ -1,7 +1,7 @@
 --[[
 ##########################################################
 S V U I   By: Munglunch
-##########################################################
+##########################################################
 LOCALIZED LUA FUNCTIONS
 ##########################################################
 ]]--
@@ -65,8 +65,8 @@ local GetQuestLogSpecialItemInfo 	= _G.GetQuestLogSpecialItemInfo;
 local GetQuestWorldMapAreaID  		= _G.GetQuestWorldMapAreaID;
 local GetTimeStringFromSeconds 		= _G.GetTimeStringFromSeconds;
 local GetQuestProgressBarPercent 	= _G.GetQuestProgressBarPercent;
---[[
-##########################################################
+--[[
+##########################################################
 GET ADDON DATA
 ##########################################################
 ]]--
@@ -74,8 +74,8 @@ local SV = _G['SVUI']
 local L = SV.L
 local LSM = _G.LibStub("LibSharedMedia-3.0")
 local MOD = SV.QuestTracker;
---[[
-##########################################################
+--[[
+##########################################################
 LOCALS
 ##########################################################
 ]]--
@@ -88,8 +88,8 @@ local OBJ_ICON_ACTIVE = [[Interface\COMMON\Indicator-Yellow]];
 local OBJ_ICON_COMPLETE = [[Interface\COMMON\Indicator-Green]];
 local OBJ_ICON_INCOMPLETE = [[Interface\COMMON\Indicator-Gray]];
 local DEFAULT_COLOR = {r = 1, g = 0.68, b = 0.1}
---[[
-##########################################################
+--[[
+##########################################################
 SCRIPT HANDLERS
 ##########################################################
 ]]--
@@ -176,8 +176,8 @@ end
 local CloseButton_OnLeave = function(self)
     self:SetBackdropBorderColor(0,0,0,1)
 end
---[[
-##########################################################
+--[[
+##########################################################
 TRACKER FUNCTIONS
 ##########################################################
 ]]--
@@ -200,6 +200,9 @@ local UnsetActiveData = function(self, bypass)
 	-- 	MOD.QuestItem.Artwork:SetTexture("");
 	-- 	MOD.QuestItem:ClearUsage();
 	-- end
+	if(block.Badge.StopTracking) then
+		block.Badge:StopTracking()
+	end
 	if(not bypass and MOD.Headers["Quests"]) then
 		MOD:UpdateObjectives('FORCED_UPDATE')
 	end
@@ -256,8 +259,8 @@ local SetActiveData = function(self, title, level, icon, questID, questLogIndex,
 	end
 	block.Badge.Icon:SetTexture(icon);

-	if(block.Badge.PostUpdate) then
-		block.Badge:PostUpdate(questID)
+	if(block.Badge.StartTracking) then
+		block.Badge:StartTracking(questID)
 	end

 	self:RefreshHeight()
@@ -277,7 +280,7 @@ local RefreshActiveObjective = function(self, event, ...)
 	-- print('<-----ACTIVE')
 	-- print(event)
 	-- print(...)
-	if(event) then
+	if(event) then
 		if(event == 'ACTIVE_QUEST_LOADED') then
 			self.ActiveQuestID = 0;
 			self:Set(...)
@@ -310,8 +313,8 @@ local RefreshActiveObjective = function(self, event, ...)
 		end
 	end
 end
---[[
-##########################################################
+--[[
+##########################################################
 CORE FUNCTIONS
 ##########################################################
 ]]--
@@ -444,4 +447,4 @@ function MOD:InitializeActive()
 	self:RegisterEvent("SUPER_TRACKED_QUEST_CHANGED", self.UpdateActiveObjective);

 	SV.Events:On("QUEST_UPVALUES_UPDATED", UpdateActiveLocals, true);
-end
\ No newline at end of file
+end
diff --git a/SVUI_Skins/SVUI_Skins.toc b/SVUI_Skins/SVUI_Skins.toc
index 4713673..6e2d701 100644
--- a/SVUI_Skins/SVUI_Skins.toc
+++ b/SVUI_Skins/SVUI_Skins.toc
@@ -1,6 +1,6 @@
 ## Interface: 60100
 ## Author: Munglunch, Azilroka, Sortokk
-## Version: 1.1.8
+## Version: 1.1.9
 ## Title: |cffFF9900SuperVillain UI: |r|cffFFEF00Skins|r
 ## Notes: SVUI [|cff9911FFSkins System and AddOn Frames|r].
 ## SavedVariables: SVUIUI_STYLE_GLOBAL
diff --git a/SVUI_Tooltip/SVUI_Tooltip.toc b/SVUI_Tooltip/SVUI_Tooltip.toc
index 42c93c4..60b3847 100644
--- a/SVUI_Tooltip/SVUI_Tooltip.toc
+++ b/SVUI_Tooltip/SVUI_Tooltip.toc
@@ -1,6 +1,6 @@
 ## Interface: 60100
 ## Author: Munglunch
-## Version: 1.1.8
+## Version: 1.1.9
 ## Title: |cffFF9900SuperVillain UI: |r|cffFFEF00Tooltip|r
 ## Notes: Tooltip Plugin for [|cff9911FFSVUI|r].
 ## OptionalDeps: LibSharedMedia-3.0
diff --git a/SVUI_TrackOMatic/SVUI_TrackOMatic.lua b/SVUI_TrackOMatic/SVUI_TrackOMatic.lua
index 4536381..69e96ff 100644
--- a/SVUI_TrackOMatic/SVUI_TrackOMatic.lua
+++ b/SVUI_TrackOMatic/SVUI_TrackOMatic.lua
@@ -1,7 +1,7 @@
 --[[
 ##########################################################
 S V U I   By: S.Jackson
-##########################################################
+##########################################################
 LOCALIZED LUA FUNCTIONS
 ##########################################################
 ]]--
@@ -61,8 +61,8 @@ local CUSTOM_CLASS_COLORS   = _G.CUSTOM_CLASS_COLORS;

 _G.BINDING_HEADER_SVUITRACK = "Supervillain UI: Track-O-Matic";
 _G.BINDING_NAME_SVUITRACK_DOODAD = "Toggle Tracking Device";
---[[
-##########################################################
+--[[
+##########################################################
 GET ADDON DATA
 ##########################################################
 ]]--
@@ -70,16 +70,16 @@ local SV = _G["SVUI"];
 local L = SV.L;
 local PLUGIN = select(2, ...)
 local CONFIGS = SV.defaults[PLUGIN.Schema];
---[[
-##########################################################
+--[[
+##########################################################
 LOCALS
 ##########################################################
 ]]--
 local NewHook = hooksecurefunc;
 local playerGUID = UnitGUID('player')
 local classColor = RAID_CLASS_COLORS
---[[
-##########################################################
+--[[
+##########################################################
 BUILD
 ##########################################################
 ]]--
@@ -95,9 +95,9 @@ function SVUIToggleTrackingDoodad()
         SVUI_UnitTrackingCompass:Hide()
         SV:AddonMessage("Tracking Device |cffFF0000Disabled|r")
     end
-end
---[[
-##########################################################
+end
+--[[
+##########################################################
 MAIN MOVABLE TRACKER
 ##########################################################
 ]]--
@@ -131,12 +131,12 @@ local Rotate_Arrow = function(self, angle)
     ULx = 0.5 + cos(radius) / sqrt2
     ULy =  0.5 + sin(radius) / sqrt2
     -- 5
-
+
     self.Arrow:SetTexCoord(ULx, ULy, LLx, LLy, URx, URy, LRx, LRy);
 end

 local UnitTracker_OnUpdate = function(self, elapsed)
-    if self.elapsed and self.elapsed > (self.throttle or 0.02) then
+    if self.elapsed and self.elapsed > (self.throttle or 0.08) then
         if(self.Trackable) then
             local distance, angle = TriangulateUnit("target", true)
             if not angle then
@@ -146,7 +146,7 @@ local UnitTracker_OnUpdate = function(self, elapsed)
                 -- self.Border:SetVertexColor(1,0,0,0.15)
                 self.BG:SetVertexColor(1,0,0,0.15)
             else
-                self.throttle = 0.02
+                self.throttle = 0.08
                 local range = floor(distance)
                 self:Spin(angle)
                 if(range > 0) then
@@ -182,7 +182,7 @@ local UnitTracker_OnUpdate = function(self, elapsed)
                     self.BG:SetAlpha(0)
                     self.Range:SetText("")
                 end
-            end
+            end
         else
             self:Hide()
         end
@@ -193,9 +193,10 @@ local UnitTracker_OnUpdate = function(self, elapsed)
 end

 local QuestTracker_OnUpdate = function(self, elapsed)
-    if self.elapsed and self.elapsed > (self.throttle or 0.02) then
+    if self.elapsed and self.elapsed > (self.throttle or 0.08) then
         if(self.questID) then
             local distance, angle = TriangulateQuest(self.questID)
+            --print(angle)
             if not angle then
                 self.questID = nil
                 self.throttle = 4
@@ -203,7 +204,7 @@ local QuestTracker_OnUpdate = function(self, elapsed)
                 self.BG:SetVertexColor(0.1,0.1,0.1,0)
                 self.Range:SetTextColor(1,1,1,1)
             else
-                self.throttle = 0.02
+                self.throttle = 0.08
                 local range = floor(distance)
                 self:Spin(angle)
                 if(range > 25) then
@@ -227,9 +228,10 @@ local QuestTracker_OnUpdate = function(self, elapsed)
                     self.BG:SetAlpha(0)
                     self.Range:SetText("")
                 end
-            end
+            end
         else
             self:Hide()
+            self:SetScript("OnUpdate", nil)
         end
         self.elapsed = 0
     else
@@ -244,9 +246,11 @@ local StartTrackingQuest = function(self, questID)
         end
         self.Compass.questID = questID
         self.Compass:Show()
+        self.Compass:SetScript("OnUpdate", QuestTracker_OnUpdate)
     else
         self.Compass.questID = nil
         self.Compass:Hide()
+        self.Compass:SetScript("OnUpdate", nil)
     end
 end

@@ -267,15 +271,14 @@ function SV:AddQuestCompass(parent, anchor)
     compass.Range:SetFontObject(SVUI_Font_Tracking);
     compass.Range:SetTextColor(1, 1, 1, 0.75)
     compass.Spin = Rotate_Arrow
-
-    compass:SetScript("OnUpdate", QuestTracker_OnUpdate)
     compass:Hide()

     anchor.Compass = compass
-    anchor.PostUpdate = StartTrackingQuest
+    anchor.StartTracking = StartTrackingQuest
+    anchor.StopTracking = function(self) self.Compass:SetScript("OnUpdate", nil) end
 end
---[[
-##########################################################
+--[[
+##########################################################
 CORE
 ##########################################################
 ]]--
@@ -315,4 +318,4 @@ function PLUGIN:Load()
     end

     self:EnableGPS()
-end
\ No newline at end of file
+end
diff --git a/SVUI_TrackOMatic/components/triangulate.lua b/SVUI_TrackOMatic/components/triangulate.lua
index a6d14a8..87d8c0e 100644
--- a/SVUI_TrackOMatic/components/triangulate.lua
+++ b/SVUI_TrackOMatic/components/triangulate.lua
@@ -360,7 +360,7 @@ local function GetDistance(map1, floor1, x1, y1, map2, floor2, x2, y2)
     else
         local mapX = GEOGRAPHICAL_DATA[map1];
         local mapY = GEOGRAPHICAL_DATA[map2];
-
+
         if(mapX.system == mapY.system) then
             x1, y1 = GetCoordinates(mapX, floor1, x1, y1);
             x2, y2 = GetCoordinates(mapY, floor2, x2, y2);
@@ -459,9 +459,10 @@ end
 --QuestPOIGetIconInfo(questID)

 _G.TriangulateQuest = function(questID)
+    --print(questID)
     if(WorldMapFrame and WorldMapFrame:IsShown()) then return end

-    local _, plot1, plot2, plot3, plot4, plot5, plot6, plot7, plot8;
+    local _, debug, plot1, plot2, plot3, plot4, plot5, plot6, plot7, plot8;

     plot3, plot4 = GetPlayerMapPosition("player");

@@ -485,6 +486,11 @@ _G.TriangulateQuest = function(questID)
     plot1 = GetCurrentMapAreaID()
     plot2 = GetCurrentMapDungeonLevel()
     _, plot7, plot8, _ = QuestPOIGetIconInfo(questID);
-    if((not plot7) or (not plot8)) then return 0,0 end
+    if((not plot7) or (not plot8)) then
+        local mapID, floorNumber = GetQuestWorldMapAreaID(questID)
+        SetMapByID(mapID)
+        _, plot7, plot8, _ = QuestPOIGetIconInfo(questID);
+        if((not plot7) or (not plot8)) then return end
+    end
     return GetDistance(plot1, plot2, plot3, plot4, plot1, plot2, plot7, plot8)
 end
diff --git a/SVUI_UnitFrames/SVUI_UnitFrames.toc b/SVUI_UnitFrames/SVUI_UnitFrames.toc
index 162f822..7060895 100644
--- a/SVUI_UnitFrames/SVUI_UnitFrames.toc
+++ b/SVUI_UnitFrames/SVUI_UnitFrames.toc
@@ -1,6 +1,6 @@
 ## Interface: 60100
 ## Author: Munglunch
-## Version: 1.1.8
+## Version: 1.1.9
 ## Title: |cffFF9900SuperVillain UI: |r|cffFFEF00UnitFrames|r
 ## Notes: UnitFrames Plugin for [|cff9911FFSVUI|r].
 ## OptionalDeps: LibSharedMedia-3.0
diff --git a/SVUI_UnitFrames/assets/Class/VORTEX.blp b/SVUI_UnitFrames/assets/Class/VORTEX.blp
index 88e582e..8c3b469 100644
Binary files a/SVUI_UnitFrames/assets/Class/VORTEX.blp and b/SVUI_UnitFrames/assets/Class/VORTEX.blp differ
diff --git a/SVUI_UnitFrames/class_resources/druid.lua b/SVUI_UnitFrames/class_resources/druid.lua
index 2877ddc..18553aa 100644
--- a/SVUI_UnitFrames/class_resources/druid.lua
+++ b/SVUI_UnitFrames/class_resources/druid.lua
@@ -159,25 +159,6 @@ end
 DRUID ECLIPSE BAR
 ##########################################################
 ]]--
-local SFXUpdate = function(sfx)
-	if (value and value == 1) then
-		if(self.overlay) then
-			self.overlay:Show()
-			SV.Animate:Flash(self.overlay,1,true)
-		end
-		if(not self.FX:IsShown()) then
-			self.FX:Show()
-		end
-		self.FX:UpdateEffect()
-	else
-		if(self.overlay) then
-			SV.Animate:StopFlash(self.overlay)
-			self.overlay:Hide()
-		end
-		self.FX:Hide()
-	end
-end
-
 local EclipseDirection = function(self)
 	local status = GetEclipseDirection()

diff --git a/SVUI_UnitFrames/class_resources/shaman.lua b/SVUI_UnitFrames/class_resources/shaman.lua
index 6a7a17c..1808b6d 100644
--- a/SVUI_UnitFrames/class_resources/shaman.lua
+++ b/SVUI_UnitFrames/class_resources/shaman.lua
@@ -49,10 +49,16 @@ local totemTextures = {
 	[AIR_TOTEM_SLOT] 		= [[Interface\Addons\SVUI_UnitFrames\assets\Class\SHAMAN-AIR]],
 };

-SV.SpecialFX:Register("shaman_fire", [[Spells\Bloodlust_state_hand.m2]], -8, 8, 8, -8, 0.23, 0.05, -0.1)
-SV.SpecialFX:Register("shaman_earth", [[Spells\Sand_precast_hand.m2]], -8, 8, 8, -8, 0.23, 0, -0.12)
-SV.SpecialFX:Register("shaman_air", [[Spells\Holylight_impact_head.m2]], -8, 8, 8, -8, 0.8, 0, -0.4)
-SV.SpecialFX:Register("shaman_water", [[Spells\Monk_drunkenhaze_impact.m2]], 0, 0, 0, 0, 0.00001, 0.02, 0)
+-- [[Spells\Flowingwater_high.m2]]
+-- [[Spells\Cyclonewater_state.m2]]
+-- [[Spells\Shaman_water_precast.m2]]
+-- [[Spells\Monk_rushingjadewind_grey.m2]]
+-- [[Spells\Missile_bomb.m2]]
+
+SV.SpecialFX:Register("shaman_fire", [[Spells\Bloodlust_state_hand.m2]], -8, 16, 8, -16, 0.23, 0.05, -0.1)
+SV.SpecialFX:Register("shaman_earth", [[Spells\Sand_precast_hand.m2]], -8, 16, 8, -16, 0.20, -0.04, -0.08)
+SV.SpecialFX:Register("shaman_air", [[Spells\Monk_rushingjadewind_grey.m2]], -8, 16, 8, -16, 1.8, 0, 2)
+SV.SpecialFX:Register("shaman_water", [[Spells\Flowingwater_high.m2]], -8, 16, 8, -16, 0.008, -0.02, -0.22)
 local specEffects = {
 	[EARTH_TOTEM_SLOT] 	= "shaman_earth",
 	[FIRE_TOTEM_SLOT] 	= "shaman_fire",
@@ -85,14 +91,14 @@ local Reposition = function(self)
     bar:ClearAllPoints()
     bar:SetAllPoints(bar.Holder)
 	for i = 1, totemMax do
-		bar[i]:ClearAllPoints()
-		bar[i]:SetHeight(size)
-		bar[i]:SetWidth(size)
+		bar[i].holder:ClearAllPoints()
+		bar[i].holder:SetHeight(size)
+		bar[i].holder:SetWidth(size)
 		bar[i]:GetStatusBarTexture():SetHorizTile(false)
 		if i==1 then
-			bar[i]:SetPoint("TOPLEFT", bar, "TOPLEFT", 0, 0)
+			bar[i].holder:SetPoint("TOPLEFT", bar, "TOPLEFT", 0, 0)
 		else
-			bar[i]:SetPoint("LEFT", bar[i - 1], "RIGHT", -1, 0)
+			bar[i].holder:SetPoint("LEFT", bar[i - 1].holder, "RIGHT", -1, 0)
 		end
 	end
 end
@@ -101,25 +107,47 @@ end
 SHAMAN
 ##########################################################
 ]]--
+local SFXUpdate = function(self, value)
+	if(not value) then return end
+	if(not self.FX:IsShown()) then
+		if(value > 0.02) then
+			self.FX:Show()
+			self.FX:UpdateEffect()
+		end
+	elseif(value <= 0.02) then
+		self.FX:Hide()
+	end
+end
+
 function MOD:CreateClassBar(playerFrame)
 	local bar = CreateFrame("Frame",nil,playerFrame)
 	bar:SetFrameLevel(playerFrame.TextGrip:GetFrameLevel() + 30)
 	for i=1, totemMax do
 		local iconfile = totemTextures[totemPriorities[i]]
-		bar[i] = CreateFrame("StatusBar",nil,bar)
+		local holder = CreateFrame("Frame", nil, bar)
+		holder:SetFrameLevel(bar:GetFrameLevel() - 1)
+
+		bar[i] = CreateFrame("StatusBar",nil,holder)
+		bar[i]:SetAllPoints(holder)
 		bar[i]:SetStatusBarTexture(iconfile)
 		bar[i]:GetStatusBarTexture():SetHorizTile(false)
 		bar[i]:SetOrientation("VERTICAL")
+		bar[i]:SetFrameLevel(bar:GetFrameLevel() + 1)
+		hooksecurefunc(bar[i], "SetValue", SFXUpdate)
 		bar[i].noupdate=true;
-		bar[i].backdrop = bar[i]:CreateTexture(nil,"BACKGROUND")
-		bar[i].backdrop:SetAllPoints(bar[i])
+
+		bar[i].backdrop = holder:CreateTexture(nil,"BACKGROUND")
+		bar[i].backdrop:SetAllPoints(holder)
 		bar[i].backdrop:SetTexture(iconfile)
 		bar[i].backdrop:SetDesaturated(true)
 		bar[i].backdrop:SetVertexColor(0.2,0.2,0.2,0.7)
+
 		bar[i]:EnableMouse(true)

-		--SV.SpecialFX:SetFXFrame(bar[i], specEffects[totemPriorities[i]], true)
-		--bar[i].FX:SetFrameLevel(bar:GetFrameLevel() - 2)
+		bar[i].holder = holder
+
+		SV.SpecialFX:SetFXFrame(bar[i], specEffects[totemPriorities[i]], true)
+		bar[i].FX:SetFrameLevel(bar:GetFrameLevel())
 	end

 	local classBarHolder = CreateFrame("Frame", "Player_ClassBar", bar)