diff --git a/game/modules/tome/data/general/npcs/horror.lua b/game/modules/tome/data/general/npcs/horror.lua
index 9167897ebfd48d7c24fbe1dd37cb42604123660f..21535d1e4fd6e9d82f3879d9f830ca1058dcde27 100644
--- a/game/modules/tome/data/general/npcs/horror.lua
+++ b/game/modules/tome/data/general/npcs/horror.lua
@@ -73,9 +73,9 @@ newEntity{ base = "BASE_NPC_HORROR",
 	},
 
 	talent_cd_reduction = {[Talents.T_BLINDSIDE]=4},
-	
+
 	resolvers.inscriptions(1, {"regeneration infusion"}),
-	
+
 	resolvers.talents{
 		--[Talents.T_BONE_GRAB]={base=4, every=10},
 		[Talents.T_BLINDSIDE]={base=5, every=12},
@@ -90,18 +90,18 @@ newEntity{ base = "BASE_NPC_HORROR",
 		[Talents.T_WEAPON_COMBAT]={base=5, every=10, max=10},
 		[Talents.T_WEAPONS_MASTERY]={base=3, every=10, max=10},
 	},
-	
+
 	resolvers.sustains_at_birth(),
 
-	on_takehit = function(self, value, src) 
+	on_takehit = function(self, value, src)
 		if value >= (self.max_life * 0.1) then
 			self:forceUseTalent(self.T_SUMMON, {ignore_energy=true, ignore_cd=true})
 		end
 		return value
 	end,
-	
+
 	summon = {
-		{type="vermin", subtype="worms", name="carrion worm mass", number=2, hasxp=false},
+		{type="vermin", subtype="worms", name="carrion worm mass", number=1, hasxp=false},
 	},
 }
 
@@ -127,7 +127,7 @@ newEntity{ base = "BASE_NPC_HORROR",
 		[Talents.T_MIND_SEAR]={base=4, every=14, max=7},
 		[Talents.T_TELEKINETIC_BLAST]={base=4, every=14, max=7},
 	},
-	
+
 	resolvers.inscriptions(1, {"shielding rune"}),
 
 	resolvers.sustains_at_birth(),
@@ -173,9 +173,9 @@ newEntity{ base = "BASE_NPC_HORROR",
 		[Talents.T_SHADOW_BLAST]={base=4, every=8, max=8},
 		[Talents.T_HYMN_OF_SHADOWS]={base=3, every=9, max=8},
 	},
-	
+
 	resolvers.inscriptions(1, {"shielding rune"}),
-	
+
 	resolvers.sustains_at_birth(),
 }
 
@@ -209,10 +209,10 @@ newEntity{ base = "BASE_NPC_HORROR",
 		[Talents.T_TAKE_DOWN]={base=4, every=5, max=8},
 		[Talents.T_CRUSHING_HOLD]={base=4, every=5, max=8},
 	},
-	
+
 	resolvers.inscriptions(1, {"healing infusion"}),
 	--resolvers.inscriptions(2, "rune"),
-	
+
 	-- Add eyes
 	on_added_to_level = function(self)
 		local eyes = {}
@@ -484,7 +484,7 @@ newEntity{ base = "BASE_NPC_HORROR",
 	combat = { dam=resolvers.levelup(resolvers.rngavg(20,30), 1, 1.2), atk=resolvers.rngavg(10,20), apr=5, dammod={str=1} },
 
 	resists = { [DamageType.TEMPORAL] = 5},
-	
+
 	make_escort = {
 		{type="horror", subtype="temporal", name="temporal devourer", number=2, no_subescort=true},
 	},
@@ -560,7 +560,7 @@ newEntity{ base = "BASE_NPC_HORROR",
 	make_escort = {
 		{type="horror", subtype="temporal", name="temporal dredge", number=3, no_subescort=true},
 	},
-	
+
 	resolvers.inscriptions(1, {"shielding rune"}),
 	resolvers.inscriptions(1, "infusion"),
 
@@ -600,7 +600,7 @@ newEntity{ base = "BASE_NPC_HORROR",
 
 	resolvers.inscriptions(1, "rune"),
 	resolvers.inscriptions(1, "infusion"),
-	
+
 	resolvers.sustains_at_birth(),
 }
 
diff --git a/game/modules/tome/data/quests/paradoxology.lua b/game/modules/tome/data/quests/paradoxology.lua
index d3eb25f1fd9f15200de4bd2a11a669485978b6be..f307bed45943fd7a1df2504cd8923365ac354001 100644
--- a/game/modules/tome/data/quests/paradoxology.lua
+++ b/game/modules/tome/data/quests/paradoxology.lua
@@ -74,12 +74,16 @@ generate = function(self, player, x, y)
 	a:learnTalent(a.T_DAMAGE_SHUNT, true, 3)
 	a:learnTalent(a.T_FLAWED_DESIGN, true, 4)
 	a:learnTalent(a.T_QUANTUM_SPIKE, true, 3)
+	a:learnTalent(a.T_SEVER_LIFELINE, true, 5)
 
 	a.talent_cd_reduction = a.talent_cd_reduction or {}
 	a.talent_cd_reduction[a.T_STATIC_HISTORY] = 15
+	a.talents_cd[a.T_SEVER_LIFELINE] = 20
 
 	a:forceLevelup(a.level + 7)
 
+	a:incIncStat("wil", 200)
+
 	a.on_die = function(self)
 		local o = game.zone:makeEntityByName(game.level, "object", "RUNE_RIFT")
 		o:identify(true)
@@ -116,6 +120,8 @@ generate = function(self, player, x, y)
 
 			self.on_die = nil
 			self:die()
+			who.changed = true
+			who.life = math.max(who.life, who.max_life * 0.3)
 			return true
 		end
 	end
diff --git a/game/modules/tome/data/talents/misc/npcs.lua b/game/modules/tome/data/talents/misc/npcs.lua
index 2f2bb734c46b394d9b0a9fe23f98df8242ef7dbc..286cb3a6ba6b79ba98755733ee3bcb9a589b583f 100644
--- a/game/modules/tome/data/talents/misc/npcs.lua
+++ b/game/modules/tome/data/talents/misc/npcs.lua
@@ -1332,6 +1332,37 @@ newTalent{
 	end,
 }
 
+newTalent{
+	name = "Sever Lifeline",
+	type = {"chronomancy/other", 1},
+	points = 5,
+	paradox = 1,
+	cooldown = 20,
+	tactical = {
+		ATTACK = 1000,
+	},
+	range = 10,
+	direct_hit = true,
+	requires_target = true,
+	getDamage = function(self, t) return self:combatTalentSpellDamage(t, 20, 220) * 10000 *getParadoxModifier(self, pm) end,
+	action = function(self, t)
+		local tg = {type="hit", range=self:getTalentRange(t), talent=t}
+		local x, y = self:getTarget(tg)
+		if not x or not y then return nil end
+		local _ _, x, y = self:canProject(tg, x, y)
+		if not x or not y then return nil end
+		local target = game.level.map(x, y, Map.ACTOR)
+		if not target then return nil end
+
+		target:setEffect(target.EFF_SEVER_LIFELINE, 4, {src=self, power=t.getDamage(self, t)})
+		game:playSoundNear(self, "talents/arcane")
+		return true
+	end,
+	info = function(self, t)
+		return ([[Start to sever the lifeline of the target. If after 4 turns the target is still in line of sight, it will die.]])
+	end,
+}
+
 newTalent{
 	name = "Call of Amakthel",
 	type = {"technique/other", 1},
diff --git a/game/modules/tome/data/timed_effects.lua b/game/modules/tome/data/timed_effects.lua
index 4b89270a2d4c4b09f9f165437127e0d0e1abbe0d..4630f97b91dd1442e8071bb7719545cc947c7d62 100644
--- a/game/modules/tome/data/timed_effects.lua
+++ b/game/modules/tome/data/timed_effects.lua
@@ -4080,3 +4080,19 @@ newEffect{
 		DamageType:get(DamageType.ARCANE).projector(eff.src, self.x, self.y, DamageType.ARCANE, dam)
 	end,
 }
+
+newEffect{
+	name = "SEVER_LIFELINE",
+	desc = "Sever Lifeline",
+	long_desc = function(self, eff) return ("The target lifeline is being cut. When the effect ends %0.2f temporal damage will hit the target."):format(eff.power) end,
+	type = "time",
+	status = "detrimental",
+	parameters = {power=10000},
+	on_gain = function(self, err) return "#Target# lifeline is being severed!", "+Sever Lifeline" end,
+	deactivate = function(self, eff)
+		if not eff.src or eff.src.dead then return end
+		if not eff.src:hasLOS(self.x, self.y) then return end
+		if eff.dur >= 1 then return end
+		DamageType:get(DamageType.TEMPORAL).projector(eff.src, self.x, self.y, DamageType.TEMPORAL, eff.power)
+	end,
+}