diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua
index 8abb155c9948ddd9e28270eb00612dd4524cf378..5c2bbe8804340a6a9691096e40e23421ec6180f6 100644
--- a/game/modules/tome/class/Actor.lua
+++ b/game/modules/tome/class/Actor.lua
@@ -77,6 +77,8 @@ function _M:init(t, no_default)
 	self.unused_talents =  self.unused_talents or 0
 	self.unused_talents_types = self.unused_talents_types or 0
 
+	t.lite = t.lite or 0
+
 	t.size_category = t.size_category or 3
 	t.rank = t.rank or 2
 
diff --git a/game/modules/tome/class/NPC.lua b/game/modules/tome/class/NPC.lua
index 71d4c364da0bc7621a57eb8b84bde9d69521680f..6c082baf045ae15438776457abe13ab276c77aeb 100644
--- a/game/modules/tome/class/NPC.lua
+++ b/game/modules/tome/class/NPC.lua
@@ -34,6 +34,10 @@ function _M:act()
 	if not mod.class.Actor.act(self) then return end
 
 	-- Compute FOV, if needed
+--	if self.lite > 0 then
+--	print("lite", self.name, self.lite)
+--		self:computeFOV(self.lite, "block_sight", function(x, y, dx, dy, sqdist) game.level.map:applyLite(x, y) end, true, true)
+--	end
 	self:computeFOV(self.sight or 20)
 
 	-- Let the AI think .... beware of Shub !
diff --git a/game/modules/tome/class/Player.lua b/game/modules/tome/class/Player.lua
index 3f9c8a76b8accce025328e1032eca72c2c5762fe..54353ddd19f5040c7bb7569788dba3eefe8d4476 100644
--- a/game/modules/tome/class/Player.lua
+++ b/game/modules/tome/class/Player.lua
@@ -159,7 +159,7 @@ function _M:playerFOV()
 		self:computeFOV(self.sight or 20, "block_sight", function(x, y, dx, dy, sqdist)
 			game.level.map:apply(x, y, math.max((20 - math.sqrt(sqdist)) / 14, 0.6))
 		end, true, false, true)
-		if self.lite == 0 then game.level.map:applyLite(self.x, self.y)
+		if self.lite <= 0 then game.level.map:applyLite(self.x, self.y)
 		else self:computeFOV(self.lite, "block_sight", function(x, y, dx, dy, sqdist) game.level.map:applyLite(x, y) end, true, true, true) end
 	end
 
@@ -526,6 +526,17 @@ function _M:useOrbPortal(portal)
 	if portal.message then game.logPlayer(self, portal.message) end
 end
 
+--- Tell us when we are targetted
+function _M:on_targeted(act)
+	if self:attr("invisible") or self:attr("stealth") then
+		if self:canSee(act) and game.level.map.seens(act.x, act.y) then
+			game.logPlayer(self, "#LIGHT_RED#%s has seen you!", act.name:capitalize())
+		else
+			game.logPlayer(self, "#LIGHT_RED#Something has seen you!")
+		end
+	end
+end
+
 ------ Quest Events
 function _M:on_quest_grant(quest)
 	game.logPlayer(self, "#LIGHT_GREEN#Accepted quest '%s'! #WHITE#(Press CTRL+Q to see the quest log)", quest.name)
diff --git a/game/modules/tome/data/general/npcs/ant.lua b/game/modules/tome/data/general/npcs/ant.lua
index a6b681dc497334430d2d6fd3c90f7c80de56e354..b576f225892783ad5baa3ff26c63d0c2f8904e3f 100644
--- a/game/modules/tome/data/general/npcs/ant.lua
+++ b/game/modules/tome/data/general/npcs/ant.lua
@@ -32,6 +32,7 @@ newEntity{
 	energy = { mod=1 },
 	combat_armor = 1, combat_def = 1,
 	combat = { dam=5, atk=15, apr=7, dammod={str=0.6} },
+	infravision = 20,
 	max_life = resolvers.rngavg(10,20),
 	rank = 1,
 	size_category = 1,
diff --git a/game/modules/tome/data/general/npcs/aquatic_critter.lua b/game/modules/tome/data/general/npcs/aquatic_critter.lua
index 59935e0e575ac11e2c7e5f1a1bfbb88d885694fb..fd7438ade4395888d6fa173de99fafc3269c4940 100644
--- a/game/modules/tome/data/general/npcs/aquatic_critter.lua
+++ b/game/modules/tome/data/general/npcs/aquatic_critter.lua
@@ -33,6 +33,7 @@ newEntity{
 	combat_armor = 1, combat_def = 1,
 	combat = { dam=5, atk=15, apr=7, dammod={str=0.6} },
 	max_life = resolvers.rngavg(10,20), life_rating = 6,
+	infravision = 20,
 	rank = 1,
 	size_category = 2,
 	can_breath={water=1},
diff --git a/game/modules/tome/data/general/npcs/aquatic_demon.lua b/game/modules/tome/data/general/npcs/aquatic_demon.lua
index 69fc005bc2e6075c07a7db2c0f88773df5eafab3..43f9d9e37ca44a6ea55f5b24e0049c86cde59a57 100644
--- a/game/modules/tome/data/general/npcs/aquatic_demon.lua
+++ b/game/modules/tome/data/general/npcs/aquatic_demon.lua
@@ -33,6 +33,7 @@ newEntity{
 	combat_armor = 1, combat_def = 1,
 	combat = { dam=5, atk=15, apr=7, dammod={str=0.6} },
 	max_life = resolvers.rngavg(100,120),
+	infravision = 20,
 	open_door = true,
 	rank = 2,
 	size_category = 3,
diff --git a/game/modules/tome/data/general/npcs/bear.lua b/game/modules/tome/data/general/npcs/bear.lua
index 1b7db8a2fec8b479deef53eda2af33580962a4c6..89725410df2719dae7d4edca1cff6565abff2c6e 100644
--- a/game/modules/tome/data/general/npcs/bear.lua
+++ b/game/modules/tome/data/general/npcs/bear.lua
@@ -33,6 +33,7 @@ newEntity{
 	ai = "dumb_talented_simple", ai_state = { talent_in=5, },
 	energy = { mod=0.9 },
 	stats = { str=18, dex=13, mag=5, con=15 },
+	infravision = 20,
 	rank = 2,
 	size_category = 4,
 
diff --git a/game/modules/tome/data/general/npcs/canine.lua b/game/modules/tome/data/general/npcs/canine.lua
index fc3aea58f38a2fec65ee2f297544b5cc296cd15d..3705a11f71ae0f17ded224d595a3585a285333a9 100644
--- a/game/modules/tome/data/general/npcs/canine.lua
+++ b/game/modules/tome/data/general/npcs/canine.lua
@@ -30,6 +30,7 @@ newEntity{
 	max_stamina = 150,
 	rank = 1,
 	size_category = 2,
+	infravision = 20,
 
 	autolevel = "warrior",
 	ai = "dumb_talented_simple", ai_state = { talent_in=2, },
diff --git a/game/modules/tome/data/general/npcs/ghoul.lua b/game/modules/tome/data/general/npcs/ghoul.lua
index fd07dba3bdd76953ee8bd60352ff133fd8400888..adad1c530906720a093121f048edff19a0eea0ba 100644
--- a/game/modules/tome/data/general/npcs/ghoul.lua
+++ b/game/modules/tome/data/general/npcs/ghoul.lua
@@ -34,6 +34,7 @@ newEntity{
 	stats = { str=14, dex=12, mag=10, con=12 },
 	rank = 2,
 	size_category = 3,
+	infravision = 20,
 
 	resolvers.tmasteries{ ["technique/other"]=1, },
 
diff --git a/game/modules/tome/data/general/npcs/jelly.lua b/game/modules/tome/data/general/npcs/jelly.lua
index 43fe6efaa6eaff58225d3ba123b8d591554d249b..f1a605e7b1be0fa850a75b6b1c84754c82e7befb 100644
--- a/game/modules/tome/data/general/npcs/jelly.lua
+++ b/game/modules/tome/data/general/npcs/jelly.lua
@@ -35,6 +35,7 @@ newEntity{
 	never_move = 1,
 	rank = 2,
 	size_category = 3,
+	infravision = 20,
 
 	drops = resolvers.drops{chance=60, nb=1, {type="money"} },
 
diff --git a/game/modules/tome/data/general/npcs/minotaur.lua b/game/modules/tome/data/general/npcs/minotaur.lua
index 17ef1ca51d8ea062f4382ae56bbc896286c9075f..329fa575a70e2ccb50d4cf2d9d2d8ec282208b40 100644
--- a/game/modules/tome/data/general/npcs/minotaur.lua
+++ b/game/modules/tome/data/general/npcs/minotaur.lua
@@ -30,6 +30,8 @@ newEntity{
 	resolvers.drops{chance=20, nb=1, {} },
 	resolvers.drops{chance=40, nb=1, {type="money"} },
 
+	infravision = 20,
+	lite = 2,
 	max_stamina = 100,
 	life_rating = 13,
 	max_life = resolvers.rngavg(100,120),
diff --git a/game/modules/tome/data/general/npcs/molds.lua b/game/modules/tome/data/general/npcs/molds.lua
index 5df5934d59103f5c612deb12184ac042e0ff4942..129fb5c46627154283805476c5e873093b95ed22 100644
--- a/game/modules/tome/data/general/npcs/molds.lua
+++ b/game/modules/tome/data/general/npcs/molds.lua
@@ -29,6 +29,7 @@ newEntity{
 	ai = "dumb_talented_simple", ai_state = { talent_in=1, },
 	stats = { str=10, dex=15, mag=3, con=3 },
 	energy = { mod=0.5 },
+	infravision = 20,
 	combat_armor = 1, combat_def = 1,
 	never_move = 1,
 	fear_immune = 1,
diff --git a/game/modules/tome/data/general/npcs/mummy.lua b/game/modules/tome/data/general/npcs/mummy.lua
index 25d44e74ab4bbc69e298ed5125afc05a9f2ebf39..c3b55e931eca36cf81ce9ca03fc9070a5d15deed 100644
--- a/game/modules/tome/data/general/npcs/mummy.lua
+++ b/game/modules/tome/data/general/npcs/mummy.lua
@@ -31,6 +31,7 @@ newEntity{
 	ai = "dumb_talented_simple", ai_state = { talent_in=2, },
 	energy = { mod=0.8 },
 	stats = { str=14, dex=12, mag=10, con=12 },
+	infravision = 20,
 	rank = 2,
 	size_category = 3,
 
diff --git a/game/modules/tome/data/general/npcs/ooze.lua b/game/modules/tome/data/general/npcs/ooze.lua
index 666a75ecbda406a2f2b9f1ff541ddb47d4299890..ab6798b26356059fc6745af97587828beee45fe9 100644
--- a/game/modules/tome/data/general/npcs/ooze.lua
+++ b/game/modules/tome/data/general/npcs/ooze.lua
@@ -34,6 +34,7 @@ newEntity{
 	combat_armor = 1, combat_def = 1,
 	rank = 1,
 	size_category = 3,
+	infravision = 20,
 
 	resolvers.drops{chance=90, nb=1, {} },
 	resolvers.drops{chance=60, nb=1, {type="money"} },
diff --git a/game/modules/tome/data/general/npcs/orc.lua b/game/modules/tome/data/general/npcs/orc.lua
index 311714327cd01c91e67a4ca0b8821d06b7422d9c..5c69118bdc19c0d1d823163516a7094d1a9b56f2 100644
--- a/game/modules/tome/data/general/npcs/orc.lua
+++ b/game/modules/tome/data/general/npcs/orc.lua
@@ -30,6 +30,8 @@ newEntity{
 	body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1, QUIVER=1 },
 	resolvers.drops{chance=20, nb=1, {} },
 	resolvers.drops{chance=10, nb=1, {type="money"} },
+	infravision = 20,
+	lite = 2,
 
 	life_rating = 11,
 	rank = 2,
diff --git a/game/modules/tome/data/general/npcs/plant.lua b/game/modules/tome/data/general/npcs/plant.lua
index ce67cb5b9631645b9bc11939c7d5223a59084093..cab14d82ef8f3118511f2bd8eb3eda0a5ff6a238 100644
--- a/game/modules/tome/data/general/npcs/plant.lua
+++ b/game/modules/tome/data/general/npcs/plant.lua
@@ -31,6 +31,7 @@ newEntity{
 	ai = "dumb_talented_simple", ai_state = { talent_in=3, },
 	stats = { str=10, dex=10, mag=3, con=10 },
 	energy = { mod=1 },
+	infravision = 20,
 	combat_armor = 1, combat_def = 1,
 	rank = 1,
 	size_category = 1,
diff --git a/game/modules/tome/data/general/npcs/rodent.lua b/game/modules/tome/data/general/npcs/rodent.lua
index 2e1be6e551c7f752f1bfb4eb9775ac091dd23cb6..74d99a431bc395a59923d2d6b61212a122ca0270 100644
--- a/game/modules/tome/data/general/npcs/rodent.lua
+++ b/game/modules/tome/data/general/npcs/rodent.lua
@@ -25,6 +25,7 @@ newEntity{ --rodent base
 	display = "r", color=colors.WHITE,
 	can_multiply = 2,
 	body = { INVEN = 10 },
+	infravision = 20,
 
 	autolevel = "warrior",
 	ai = "dumb_talented_simple", ai_state = { talent_in=3, },
diff --git a/game/modules/tome/data/general/npcs/sandworm.lua b/game/modules/tome/data/general/npcs/sandworm.lua
index ef43accc8c6e3d247f17e15581920e556c5788f5..c00c59d5fa7d131f4f5783647d00413d58ab9f56 100644
--- a/game/modules/tome/data/general/npcs/sandworm.lua
+++ b/game/modules/tome/data/general/npcs/sandworm.lua
@@ -26,6 +26,7 @@ newEntity{
 	level_range = {15, 50},
 	body = { INVEN = 10 },
 
+	infravision = 20,
 	max_life = 40, life_rating = 5,
 	max_stamina = 85,
 	max_mana = 85,
diff --git a/game/modules/tome/data/general/npcs/skeleton.lua b/game/modules/tome/data/general/npcs/skeleton.lua
index 58ed27472590ca146151a200ee21f48a257b53a7..40af0815847803c81913f19d64b67dce10c13931 100644
--- a/game/modules/tome/data/general/npcs/skeleton.lua
+++ b/game/modules/tome/data/general/npcs/skeleton.lua
@@ -29,6 +29,7 @@ newEntity{
 	body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1, QUIVER=1 },
 	resolvers.drops{chance=20, nb=1, {} },
 	resolvers.drops{chance=60, nb=1, {type="money"} },
+	infravision = 20,
 	rank = 2,
 	size_category = 3,
 
diff --git a/game/modules/tome/data/general/npcs/snake.lua b/game/modules/tome/data/general/npcs/snake.lua
index fd69b80ffe8d129a59952fcb85d103d1a6b949c1..744fd2d80ebd858b28570b8f52c2e7d8244c1bc7 100644
--- a/game/modules/tome/data/general/npcs/snake.lua
+++ b/game/modules/tome/data/general/npcs/snake.lua
@@ -25,6 +25,7 @@ newEntity{
 	display = "J", color=colors.WHITE,
 	body = { INVEN = 10 },
 
+	infravision = 20,
 	max_stamina = 110,
 	rank = 2,
 	size_category = 2,
diff --git a/game/modules/tome/data/general/npcs/spider.lua b/game/modules/tome/data/general/npcs/spider.lua
index 92288948300e726d50ba70bcc62dc30951e65769..080b421174d4f2e435bb6d5025f33c288f88e28e 100644
--- a/game/modules/tome/data/general/npcs/spider.lua
+++ b/game/modules/tome/data/general/npcs/spider.lua
@@ -29,6 +29,7 @@ newEntity{
 
 	body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 },
 
+	infravision = 20,
 	size_category = 2,
 	rank = 1,
 
diff --git a/game/modules/tome/data/general/npcs/sunwall-town.lua b/game/modules/tome/data/general/npcs/sunwall-town.lua
index 1e57a17ec9bb1b70b70aae476c4abb774d87957e..13d1c1b45244fb1fd08359328124172c311d78a6 100644
--- a/game/modules/tome/data/general/npcs/sunwall-town.lua
+++ b/game/modules/tome/data/general/npcs/sunwall-town.lua
@@ -29,6 +29,7 @@ newEntity{
 
 	body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1, QUIVER=1 },
 	resolvers.drops{chance=20, nb=1, {} },
+	lite = 3,
 
 	life_rating = 10,
 	rank = 2,
diff --git a/game/modules/tome/data/general/npcs/swarm.lua b/game/modules/tome/data/general/npcs/swarm.lua
index 893e6c63720fc2c481d14c46397c9b56a29de6a8..a2fcf64996239dc0768798017c6ae1b85a534fdd 100644
--- a/game/modules/tome/data/general/npcs/swarm.lua
+++ b/game/modules/tome/data/general/npcs/swarm.lua
@@ -32,6 +32,7 @@ newEntity{
 	ai = "dumb_talented_simple", ai_state = { talent_in=1, },
 	stats = { str=1, dex=20, mag=3, con=1 },
 	energy = { mod=2 },
+	infravision = 20,
 	combat_armor = 1, combat_def = 10,
 	rank = 1,
 	size_category = 1,
diff --git a/game/modules/tome/data/general/npcs/thieve.lua b/game/modules/tome/data/general/npcs/thieve.lua
index df524ab95a0a9eff8e17a4467ba2f55e8dea9c90..d5f72d58c4aee4bb01beb6eb3d4705ba9362779e 100644
--- a/game/modules/tome/data/general/npcs/thieve.lua
+++ b/game/modules/tome/data/general/npcs/thieve.lua
@@ -34,6 +34,7 @@ newEntity{
 		{type="armor", subtype="light", autoreq=true}
 	},
 	resolvers.drops{chance=100, nb=2, {type="money"} },
+	infravision = 10,
 
 	max_stamina = 100,
 	rank = 2,
diff --git a/game/modules/tome/data/general/npcs/troll.lua b/game/modules/tome/data/general/npcs/troll.lua
index 4d7180d9336363410e6abe4379dc5f232d5f2029..1e25974f5562f82826f09b4108d7430c2749baae 100644
--- a/game/modules/tome/data/general/npcs/troll.lua
+++ b/game/modules/tome/data/general/npcs/troll.lua
@@ -30,6 +30,7 @@ newEntity{
 	resolvers.drops{chance=20, nb=1, {} },
 	resolvers.drops{chance=60, nb=1, {type="money"} },
 
+	infravision = 20,
 	life_rating = 15,
 	life_regen = 2,
 	max_stamina = 90,
diff --git a/game/modules/tome/data/general/npcs/vampire.lua b/game/modules/tome/data/general/npcs/vampire.lua
index 5731066dbd85b877d64201650c0228d0840dc36c..ac6c642fabc3bd454f18af2215584767192086f8 100644
--- a/game/modules/tome/data/general/npcs/vampire.lua
+++ b/game/modules/tome/data/general/npcs/vampire.lua
@@ -51,6 +51,7 @@ newEntity{
 	ai = "dumb_talented_simple", ai_state = { talent_in=9, },
 	energy = { mod=1 },
 	stats = { str=12, dex=12, mag=12, con=12 },
+	infravision = 20,
 	life_regen = 3,
 	size_category = 3,
 	rank = 2,
diff --git a/game/modules/tome/data/general/npcs/vermin.lua b/game/modules/tome/data/general/npcs/vermin.lua
index 1e752d52573cdebb635673e924a9ae725d9ad95a..462957e35decdb17b0ecac6ad98a0229f1d75ffc 100644
--- a/game/modules/tome/data/general/npcs/vermin.lua
+++ b/game/modules/tome/data/general/npcs/vermin.lua
@@ -31,6 +31,7 @@ newEntity{
 	energy = { mod=0.9 },
 	stats = { str=10, dex=15, mag=3, con=3 },
 	combat_armor = 1, combat_def = 1,
+	infravision = 20,
 	rank = 1,
 	size_category = 1,
 }
diff --git a/game/modules/tome/data/general/npcs/wight.lua b/game/modules/tome/data/general/npcs/wight.lua
index b382a8169c41011bef102b1f0ec732390c37d941..38450aef4d5582ad8348ab6001765bc20e6ec09b 100644
--- a/game/modules/tome/data/general/npcs/wight.lua
+++ b/game/modules/tome/data/general/npcs/wight.lua
@@ -42,6 +42,7 @@ newEntity{
 	ai = "dumb_talented_simple", ai_state = { talent_in=4, },
 	energy = { mod=1 },
 	stats = { str=11, dex=11, mag=15, con=12 },
+	infravision = 20,
 	rank = 2,
 	size_category = 3,
 
diff --git a/game/modules/tome/data/general/objects/egos/rings.lua b/game/modules/tome/data/general/objects/egos/rings.lua
index 4861f64b522ccca5647ce57e68bd0947f6aa51c0..7d24cbe72da57ae2e6f38134433be94780d8e50c 100644
--- a/game/modules/tome/data/general/objects/egos/rings.lua
+++ b/game/modules/tome/data/general/objects/egos/rings.lua
@@ -32,6 +32,8 @@ newEntity{
 
 newEntity{
 	name = " of invisibility",
+	desc = [[Allows the wearer to become invisible to normal sight
+Beware, you should take off your light, otherwise you will still be easily spotted.]],
 	level_range = {30, 40},
 	rarity = 4,
 	cost = 16,
diff --git a/game/modules/tome/data/talents/cunning/stealth.lua b/game/modules/tome/data/talents/cunning/stealth.lua
index f81966b34611a6b1d9b6ba87f5ef398fd8286693..1e915ab8bf7eed5c5f7491f869feb0cf56ed6f4b 100644
--- a/game/modules/tome/data/talents/cunning/stealth.lua
+++ b/game/modules/tome/data/talents/cunning/stealth.lua
@@ -43,14 +43,14 @@ newTalent{
 
 		local res = {
 			stealth = self:addTemporaryValue("stealth", self:getCun(10) * self:getTalentLevel(t)),
---			lite = self:addTemporaryValue("lite", -100),
+			lite = self:addTemporaryValue("lite", -1000),
 		}
 		game.level.map:updateMap(self.x, self.y)
 		return res
 	end,
 	deactivate = function(self, t, p)
 		self:removeTemporaryValue("stealth", p.stealth)
---		self:removeTemporaryValue("lite", p.lite)
+		self:removeTemporaryValue("lite", p.lite)
 		game.level.map:updateMap(self.x, self.y)
 		return true
 	end,
diff --git a/game/modules/tome/data/talents/spells/phantasm.lua b/game/modules/tome/data/talents/spells/phantasm.lua
index 5a6e0dc2e9ee257de61c2d7702094fb47e80508d..7164e6504b76b808bb14a3c65ce48124086e7019 100644
--- a/game/modules/tome/data/talents/spells/phantasm.lua
+++ b/game/modules/tome/data/talents/spells/phantasm.lua
@@ -127,6 +127,7 @@ newTalent{
 	end,
 	info = function(self, t)
 		return ([[The caster fades from sight, granting %d bonus to invisibility.
+		Beware, you should take off your light, otherwise you will still be easily spotted.
 		This powerful spell constantly drains your mana while active.
 		The bonus will increase with the Magic stat]]):format(4 + self:combatSpellpower(0.04) * self:getTalentLevel(t))
 	end,