diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua
index 7f0ff68ae0a44e6f58f1c2ca007a39f239614821..40d881b472f39dd734f30dd3fce777da2a2d771c 100644
--- a/game/modules/tome/class/Game.lua
+++ b/game/modules/tome/class/Game.lua
@@ -2036,6 +2036,7 @@ function _M:setupCommands()
 		end end,
 		[{"_g","ctrl"}] = function() if config.settings.cheat then
 			game.player:takeHit(100, game.player)
+			game.player:useEnergy()
 			-- DamageType:get(DamageType.ACID).projector(game.player, game.player.x, game.player.y, DamageType.ACID, 100)
 do return end
 			game.player:setEffect("EFF_STUNNED", 1, {apply_power=200})
diff --git a/game/modules/tome/data/talents/spells/age-of-dusk.lua b/game/modules/tome/data/talents/spells/age-of-dusk.lua
index e4e0ee128537249f44569a3fd3534030acd990fd..ee31468921b57168a5e6239593f1141a78e38088 100644
--- a/game/modules/tome/data/talents/spells/age-of-dusk.lua
+++ b/game/modules/tome/data/talents/spells/age-of-dusk.lua
@@ -130,7 +130,7 @@ newTalent{
 	tactical = { BUFF = 2 },
 	getImmune = function(self, t) return math.floor(self:combatTalentLimit(t, 100, 20, 50)) end,
 	getSaves = function(self, t) return math.floor(self:combatTalentScale(t, 10, 55)) end,
-	callbackOnActBase = checkLifeThreshold(1, function(self, t)
+	callbackOnAct = checkLifeThreshold(1, function(self, t)
 		if self:getTalentLevel(t) < 5 then return end
 		self:setEffect(self.EFF_GOLDEN_AGE_OF_NECROMANCY, 1, {})
 		return true
diff --git a/game/modules/tome/data/talents/spells/eradication.lua b/game/modules/tome/data/talents/spells/eradication.lua
index 6a2997ab41bfb67a081c25712b2bceeaa1713a7a..1dc98d37db0ea0716d3dd89a95c2673cc3c72198 100644
--- a/game/modules/tome/data/talents/spells/eradication.lua
+++ b/game/modules/tome/data/talents/spells/eradication.lua
@@ -187,6 +187,7 @@ newTalent{
 	getDamageIncrease = function(self, t) return self:combatTalentScale(t, 2.5, 10) end,
 	getResistPenalty = function(self, t) return self:combatTalentLimit(t, 100, 17, 50, true) end,
 	getVampiric = function(self, t) return math.floor(self:combatTalentLimit(t, 60, 3, 8)) end,
+	callbackPriorities={callbackOnActBase = 100}, -- trigger after most others
 	callbackOnActBase = function(self, t)
 		local p = self:isTalentActive(t.id) if not p then return end
 		if p.cur_value > 0 then self:heal(p.cur_value, self) end
diff --git a/game/modules/tome/data/talents/spells/glacial-waste.lua b/game/modules/tome/data/talents/spells/glacial-waste.lua
index d2c1f6a2a2b38e17dbc1283e697bd9f798e08166..32aff638a40d39990f6e253cf786d2bad34200db 100644
--- a/game/modules/tome/data/talents/spells/glacial-waste.lua
+++ b/game/modules/tome/data/talents/spells/glacial-waste.lua
@@ -49,7 +49,7 @@ newTalent{
 			ret.waste_counter = 0
 		end
 	end,
-	callbackOnActBase = checkLifeThreshold(1, function(self, t)
+	callbackOnAct = checkLifeThreshold(1, function(self, t)
 		local p = self:isTalentActive(t.id)
 		if not p then return end
 
@@ -63,7 +63,8 @@ newTalent{
 				p.crit_id = nil
 			end
 		end
-	end, function(self, t)
+	end),
+	callbackOnActBase = function(self, t)
 		local p = self:isTalentActive(t.id)
 		if not p then return end
 
@@ -83,7 +84,7 @@ newTalent{
 				self:incSoul(-soul)
 			end
 		end
-	end),
+	end,
 	callbackOnCombat = function(self, t, state)
 		local p = self:isTalentActive(t.id)
 		if not p then return end
diff --git a/game/modules/tome/data/talents/spells/necrosis.lua b/game/modules/tome/data/talents/spells/necrosis.lua
index 8b1251b2c5f208f6db4c7e802acd274ddaf05f2f..ea914781ac5503a2a042a896074bf39635ff27c5 100644
--- a/game/modules/tome/data/talents/spells/necrosis.lua
+++ b/game/modules/tome/data/talents/spells/necrosis.lua
@@ -35,7 +35,7 @@ newTalent{
 	callbackOnStatChange = function(self, t, stat, v)
 		if stat == self.STAT_CON then self:updateTalentPassives(t) end
 	end,
-	callbackOnActBase = checkLifeThreshold(1, function(self, t)
+	callbackOnAct = checkLifeThreshold(1, function(self, t)
 		self:updateTalentPassives(t)
 	end),
 	passives = function(self, t, p)
@@ -66,7 +66,7 @@ newTalent{
 	radius = function(self, t) return self:combatTalentLimit(t, 10, 2, 6) end,
 	getCD = function(self, t) return math.ceil(self:combatTalentLimit(t, 12, 2, 8)) end,
 	getDamage = function(self, t) return self:combatTalentSpellDamage(t, 30, 260) end,
-	callbackOnActBase = checkLifeThreshold(1, function(self, t)
+	callbackOnAct = checkLifeThreshold(1, function(self, t)
 		local list = {}
 		for tid, c in pairs(self.talents_cd) do
 			local t = self:getTalentFromId(tid)