diff --git a/game/engine/utils.lua b/game/engine/utils.lua
index 02c02303361cfea6422b21eb8aa57795f56495c8..36829bb3fc352553253df323b5a2ecca3de33609 100644
--- a/game/engine/utils.lua
+++ b/game/engine/utils.lua
@@ -189,8 +189,9 @@ function string.parseHex(str)
 	if hexcache[str] then return hexcache[str] end
 	local res = 0
 	local power = 1
+	str = str:lower()
 	for i = 1, #str do
-		res = res + power * (hex_to_dec[str:sub(#str-i+1,#str-i+1):lower()] or 0)
+		res = res + power * (hex_to_dec[str:sub(#str-i+1,#str-i+1)] or 0)
 		power = power * 16
 	end
 	hexcache[str] = res
@@ -200,16 +201,15 @@ end
 local tmps = core.display.newSurface(1, 1)
 getmetatable(tmps).__index.drawColorString = function(s, font, str, x, y, r, g, b)
 	local Pcolorname = (lpeg.R"AZ" + "_")^3
-	local Pcode = (lpeg.R"az" + lpeg.R"09" + lpeg.R"AZ")
+	local Pcode = (lpeg.R"af" + lpeg.R"09" + lpeg.R"AF")
 	local Pcolorcode = Pcode * Pcode
 
-	local list = str:split("#" * (Pcolorname + (Pcolorcode * Pcolorcode * Pcolorcode)) * "#", true)
+	local list = str:split("#" * ((Pcolorcode * Pcolorcode * Pcolorcode) + Pcolorname) * "#", true)
 	r = r or 255
 	g = g or 255
 	b = b or 255
 	local oldr, oldg, oldb = r, g, b
 	for i, v in ipairs(list) do
---		print("LSIT", i, v)
 		local nr, ng, nb = lpeg.match("#" * lpeg.C(Pcolorcode) * lpeg.C(Pcolorcode) * lpeg.C(Pcolorcode) * "#", v)
 		local col = lpeg.match("#" * lpeg.C(Pcolorname) * "#", v)
 		if nr and ng and nb then
@@ -224,7 +224,6 @@ getmetatable(tmps).__index.drawColorString = function(s, font, str, x, y, r, g,
 			end
 		else
 			local w, h = font:size(v)
---		print("DRAW", v,r,g,b)
 			s:drawString(font, v, x, y, r, g, b)
 			x = x + w
 		end
diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua
index fc94f50498abe3da41691ff7e0cec8df5f1f57c6..4a368963924c02c7d2e075f906e796840213e92e 100644
--- a/game/modules/tome/class/Actor.lua
+++ b/game/modules/tome/class/Actor.lua
@@ -76,6 +76,9 @@ 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.size_category = t.size_category or 3
+	t.rank = t.rank or 2
+
 	t.life_rating = t.life_rating or 10
 	t.mana_rating = t.mana_rating or 10
 	t.stamina_rating = t.stamina_rating or 4
@@ -246,14 +249,40 @@ function _M:magicMap(radius, x, y)
 	end end
 end
 
+function _M:TextRank()
+	local rank, color = "normal", "#ANTIQUE_WHITE#"
+	if self.rank == 1 then rank, color = "critter", "#A09090#"
+	elseif self.rank == 2 then rank, color = "normal", "#ANTIQUE_WHITE#"
+	elseif self.rank == 3 then rank, color = "elite", "#YELLOW#"
+	elseif self.rank == 4 then rank, color = "boss", "#ORANGE#"
+	elseif self.rank >= 5 then rank, color = "elite boss", "#GOLD#"
+	end
+	return rank, color
+end
+
+function _M:TextSizeCategory()
+	local sizecat = "medium"
+	if self.size_category <= 1 then sizecat = "tiny"
+	elseif self.size_category == 2 then sizecat = "small"
+	elseif self.size_category == 3 then sizecat = "medium"
+	elseif self.size_category == 4 then sizecat = "big"
+	elseif self.size_category >= 5 then sizecat = "huge"
+	end
+	return sizecat
+end
+
 function _M:tooltip()
-	return ([[%s
+	local rank, rank_color = self:TextRank()
+	return ([[%s%s
+Rank: %s%s
 #00ffff#Level: %d
 Exp: %d/%d
 #ff0000#HP: %d (%d%%)
 Stats: %d /  %d / %d / %d / %d / %d
+Size: #ANTIQUE_WHITE#%s
 %s]]):format(
-	self.name,
+	rank_color, self.name,
+	rank_color, rank,
 	self.level,
 	self.exp,
 	self:getExpChart(self.level+1) or "---",
@@ -264,6 +293,7 @@ Stats: %d /  %d / %d / %d / %d / %d
 	self:getWil(),
 	self:getCun(),
 	self:getCon(),
+	self:TextSizeCategory(),
 	self.desc or ""
 	)
 end
@@ -734,6 +764,8 @@ end
 -- This does not check LOS or such, only the actual ability to see it.<br/>
 -- Check for telepathy, invisibility, stealth, ...
 function _M:canSee(actor, def, def_pct)
+	if not actor then return false, 0 end
+
 	-- ESP, see all, or only types/subtypes
 	if self:attr("esp") then
 		local esp = self:attr("esp")
diff --git a/game/modules/tome/class/Object.lua b/game/modules/tome/class/Object.lua
index ea39957718ee3e4d9f25edb93407a3d540ca1a12..a6021fe2b6dce1e2984562757df2b1ebea5c3241 100644
--- a/game/modules/tome/class/Object.lua
+++ b/game/modules/tome/class/Object.lua
@@ -105,7 +105,7 @@ end
 function _M:getDisplayColor()
 	if not self:isIdentified() then return {180, 180, 180}, "#B4B4B4#" end
 	if self.egoed then return {0, 255, 128}, "#00FF80#"
-	elseif self.unique then return {255, 255, 0}, "#1FFF00#"
+	elseif self.unique then return {255, 255, 0}, "#FFFF00#"
 	else return {255, 255, 255}, "#FFFFFF#"
 	end
 end
diff --git a/game/modules/tome/class/Player.lua b/game/modules/tome/class/Player.lua
index 3823f5eec10d55eed9a7e6ee5173357b7c19cc2c..659d6b69fee53834402ab9206901b6d0a1580010 100644
--- a/game/modules/tome/class/Player.lua
+++ b/game/modules/tome/class/Player.lua
@@ -73,6 +73,8 @@ function _M:init(t, no_default)
 
 	t.lite = t.lite or 0
 
+	t.rank = t.rank or 3
+
 	mod.class.Actor.init(self, t, no_default)
 	engine.interface.PlayerHotkeys.init(self, t)
 
@@ -364,7 +366,7 @@ end
 function _M:playerUseItem(object, item, inven)
 	if game.zone.short_name == "wilderness" then game.logPlayer(self, "You can not use items on the world map.") return end
 
-	local use_fct = function(o, item, inven)
+	local use_fct = function(o, inven, item)
 		self.changed = true
 		local ret, no_id = o:use(self)
 		if not no_id then
@@ -384,7 +386,7 @@ function _M:playerUseItem(object, item, inven)
 		self.changed = true
 	end
 
-	if object and item then return use_fct(object, item, inven) end
+	if object and item then return use_fct(object, inven, item) end
 
 	local titleupdator = self:getEncumberTitleUpdator("Use object")
 	self:showEquipInven(titleupdator(),
diff --git a/game/modules/tome/data/general/npcs/ant.lua b/game/modules/tome/data/general/npcs/ant.lua
index 6b2c1f9ac598075189558216b2967b3449a0341b..80493270088b1354d437e9a5c6b67f2245fd055f 100644
--- a/game/modules/tome/data/general/npcs/ant.lua
+++ b/game/modules/tome/data/general/npcs/ant.lua
@@ -33,6 +33,7 @@ newEntity{
 	combat_armor = 1, combat_def = 1,
 	combat = { dam=5, atk=15, apr=7 },
 	max_life = resolvers.rngavg(10,20),
+	rank = 1,
 	size_category = 1,
 }
 
diff --git a/game/modules/tome/data/general/npcs/bear.lua b/game/modules/tome/data/general/npcs/bear.lua
index 39b3bb1e4999b9a35e5661f096271f9eff5c361c..2835d167fb1e028258f196d008074c4399fad983 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 },
+	rank = 2,
 	size_category = 4,
 
 	combat_armor = 1, combat_def = 1,
diff --git a/game/modules/tome/data/general/npcs/canine.lua b/game/modules/tome/data/general/npcs/canine.lua
index d7675d5bf78769046f52da6f3971eb1af36979e0..a38d577fdc551768b9cfce30f9214b4790d3a0b8 100644
--- a/game/modules/tome/data/general/npcs/canine.lua
+++ b/game/modules/tome/data/general/npcs/canine.lua
@@ -28,6 +28,7 @@ newEntity{
 	body = { INVEN = 10 },
 
 	max_stamina = 150,
+	rank = 1,
 	size_category = 2,
 
 	autolevel = "warrior",
diff --git a/game/modules/tome/data/general/npcs/ghoul.lua b/game/modules/tome/data/general/npcs/ghoul.lua
index 38ab016a51db916aacad28366d575cb91f8363ce..4f80d4ce9443274bc73c232f195f2d9824ebea58 100644
--- a/game/modules/tome/data/general/npcs/ghoul.lua
+++ b/game/modules/tome/data/general/npcs/ghoul.lua
@@ -32,6 +32,7 @@ newEntity{
 	ai = "dumb_talented_simple", ai_state = { talent_in=2, ai_move="move_ghoul", },
 	energy = { mod=1 },
 	stats = { str=14, dex=12, mag=10, con=12 },
+	rank = 2,
 	size_category = 3,
 
 	resolvers.tmasteries{ ["technique/other"]=1, },
@@ -78,6 +79,8 @@ newEntity{ base = "BASE_NPC_GHOUL",
 	combat_armor = 3, combat_def = 10,
 	ai_state = { talent_in=2, ai_pause=20 },
 
+	rank = 3,
+
 	combat = { dam=10, atk=8, apr=4, dammod={str=0.6} },
 
 	summon = {
diff --git a/game/modules/tome/data/general/npcs/jelly.lua b/game/modules/tome/data/general/npcs/jelly.lua
index 02b927d4ce35556cb8d7df52779cef66d05f3dc0..43fe6efaa6eaff58225d3ba123b8d591554d249b 100644
--- a/game/modules/tome/data/general/npcs/jelly.lua
+++ b/game/modules/tome/data/general/npcs/jelly.lua
@@ -33,6 +33,7 @@ newEntity{
 	energy = { mod=1 },
 	combat_armor = 1, combat_def = 1,
 	never_move = 1,
+	rank = 2,
 	size_category = 3,
 
 	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 764d8f983524106234bccae85009cc2c0e283bb1..de2e7417a4bbf420138adb3b27ce9b580ab0cada 100644
--- a/game/modules/tome/data/general/npcs/minotaur.lua
+++ b/game/modules/tome/data/general/npcs/minotaur.lua
@@ -33,6 +33,7 @@ newEntity{
 	max_stamina = 100,
 	life_rating = 13,
 	max_life = resolvers.rngavg(100,120),
+	rank = 2,
 	size_category = 4,
 
 	autolevel = "warrior",
diff --git a/game/modules/tome/data/general/npcs/molds.lua b/game/modules/tome/data/general/npcs/molds.lua
index eb3ae652e1c2116f0f6d3f3df8276fc31a933929..efe8838debd99942aacb5a0892350187e2ab5b97 100644
--- a/game/modules/tome/data/general/npcs/molds.lua
+++ b/game/modules/tome/data/general/npcs/molds.lua
@@ -32,6 +32,7 @@ newEntity{
 	combat_armor = 1, combat_def = 1,
 	never_move = 1,
 	fear_immune = 1,
+	rank = 1,
 	size_category = 1,
 }
 
diff --git a/game/modules/tome/data/general/npcs/ooze.lua b/game/modules/tome/data/general/npcs/ooze.lua
index 3249b9c2ae9c4e58eb8294df9b9862b34704a937..b7964231a2d19cabb284f4a48e81276157c7db2d 100644
--- a/game/modules/tome/data/general/npcs/ooze.lua
+++ b/game/modules/tome/data/general/npcs/ooze.lua
@@ -32,6 +32,7 @@ newEntity{
 	stats = { str=10, dex=15, mag=3, con=10 },
 	energy = { mod=0.7 },
 	combat_armor = 1, combat_def = 1,
+	rank = 1,
 	size_category = 3,
 
 	resolvers.drops{chance=90, nb=1, {} },
diff --git a/game/modules/tome/data/general/npcs/orc.lua b/game/modules/tome/data/general/npcs/orc.lua
index 8dab6d59e21110808586520342d12aa83dd96fa1..db04f267b51c5cb77fd1812948171a5e1be2422a 100644
--- a/game/modules/tome/data/general/npcs/orc.lua
+++ b/game/modules/tome/data/general/npcs/orc.lua
@@ -31,6 +31,7 @@ newEntity{
 	resolvers.drops{chance=20, nb=1, {type="money"} },
 
 	life_rating = 11,
+	rank = 2,
 	size_category = 3,
 
 	autolevel = "warrior",
diff --git a/game/modules/tome/data/general/npcs/plant.lua b/game/modules/tome/data/general/npcs/plant.lua
index f648861d8c665352ede7a9c9b4c5a397b1b90322..85153fab2d34d4317ea0da640877d827e11e262b 100644
--- a/game/modules/tome/data/general/npcs/plant.lua
+++ b/game/modules/tome/data/general/npcs/plant.lua
@@ -32,6 +32,7 @@ newEntity{
 	stats = { str=10, dex=10, mag=3, con=10 },
 	energy = { mod=1 },
 	combat_armor = 1, combat_def = 1,
+	rank = 1,
 	size_category = 1,
 	never_move = 1,
 	fear_immune = 1,
@@ -55,6 +56,7 @@ newEntity{ base = "BASE_NPC_PLANT",
 	life_rating = 15,
 	combat = { dam=resolvers.rngavg(8,13), atk=15, apr=5 },
 	never_move = 0,
+	rank = 2,
 	size_category = 5,
 }
 
@@ -78,6 +80,7 @@ newEntity{ base = "BASE_NPC_PLANT",
 	max_life = resolvers.rngavg(100,130),
 	life_rating = 15,
 	combat = false,
+	rank = 2,
 	size_category = 5,
 
 	summon = {
diff --git a/game/modules/tome/data/general/npcs/rodent.lua b/game/modules/tome/data/general/npcs/rodent.lua
index e0c481b4deb531b7f2d8d796747261ee71622af8..e890bb8fdd6a5dda82192fd77ad36c3b0f946bd4 100644
--- a/game/modules/tome/data/general/npcs/rodent.lua
+++ b/game/modules/tome/data/general/npcs/rodent.lua
@@ -31,6 +31,7 @@ newEntity{ --rodent base
 	energy = { mod=1 },
 	stats = { str=8, dex=15, mag=3, con=5 },
 	combat_armor = 1, combat_def = 1,
+	rank = 1,
 	size_category = 1,
 }
 
diff --git a/game/modules/tome/data/general/npcs/sandworm.lua b/game/modules/tome/data/general/npcs/sandworm.lua
index effc265b968f6a1091d843a8416f8f276f17adff..ac743de39b1403726a0f5f6b43b2d939da8c759a 100644
--- a/game/modules/tome/data/general/npcs/sandworm.lua
+++ b/game/modules/tome/data/general/npcs/sandworm.lua
@@ -30,6 +30,7 @@ newEntity{
 	max_stamina = 85,
 	max_mana = 85,
 	resists = { [DamageType.FIRE] = 30, [DamageType.COLD] = -30 },
+	rank = 2,
 	size_category = 2,
 
 	drops = resolvers.drops{chance=20, nb=1, {type="potion"}, {type="scroll"} },
@@ -64,6 +65,7 @@ newEntity{ base = "BASE_NPC_SANDWORM",
 	color={r=204,g=255,b=95},
 	desc = [[This unholy creature looks like a wingless dragon in shape but ressembles a sandworm in color.]],
 	rarity = 8,
+	rank = 3,
 	size_category = 5,
 
 	resolvers.talents{
diff --git a/game/modules/tome/data/general/npcs/skeleton.lua b/game/modules/tome/data/general/npcs/skeleton.lua
index b1a6130146b9e5c014ad99a6d33c4ee77f720ae6..ee58a7133d3e02926e2d9ec635c2fb12bde1d706 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"} },
+	rank = 2,
 	size_category = 3,
 
 	autolevel = "warrior",
@@ -112,6 +113,7 @@ newEntity{ base = "BASE_NPC_SKELETON",
 	rarity = 8,
 	max_life = resolvers.rngavg(90,100),
 	combat_armor = 5, combat_def = 1,
+	rank = 3,
 	resolvers.talents{
 		[Talents.T_HEAVY_ARMOUR_TRAINING]=1,
 		[Talents.T_SHIELD_PUMMEL]=1,
diff --git a/game/modules/tome/data/general/npcs/snake.lua b/game/modules/tome/data/general/npcs/snake.lua
index f79b179a0a8a16a87824b3d65d478de884c6c84c..192735464d15452c660dece01fd1a09bb636ec34 100644
--- a/game/modules/tome/data/general/npcs/snake.lua
+++ b/game/modules/tome/data/general/npcs/snake.lua
@@ -26,6 +26,7 @@ newEntity{
 	body = { INVEN = 10 },
 
 	max_stamina = 110,
+	rank = 2,
 	size_category = 2,
 
 	autolevel = "warrior",
@@ -108,6 +109,7 @@ newEntity{ base = "BASE_NPC_SNAKE",
 	desc = [[You recoil in fear as you notice this huge, 10 meter long snake.  It seeks to crush the life out of you.]],
 	level_range = {10, 50}, exp_worth = 1,
 	rarity = 11,
+	rank = 3,
 	max_life = resolvers.rngavg(100,120),
 	combat_armor = 14, combat_def = 5,
 	combat = { dam=12, atk=10, apr=10 },
diff --git a/game/modules/tome/data/general/npcs/swarm.lua b/game/modules/tome/data/general/npcs/swarm.lua
index 01f5e6b1fd4b818f43abbdcb29de76e18cbae33e..b639e35a2b450b492b428b1c5d06c88053abc3fa 100644
--- a/game/modules/tome/data/general/npcs/swarm.lua
+++ b/game/modules/tome/data/general/npcs/swarm.lua
@@ -33,6 +33,7 @@ newEntity{
 	stats = { str=1, dex=20, mag=3, con=1 },
 	energy = { mod=2 },
 	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 e98065a46a90e49a945b17945d1739b300308ceb..a1fd9828d39cb7e3f8009edb4fa059787e36901a 100644
--- a/game/modules/tome/data/general/npcs/thieve.lua
+++ b/game/modules/tome/data/general/npcs/thieve.lua
@@ -32,6 +32,7 @@ newEntity{
 	resolvers.drops{chance=100, nb=2, {type="money"} },
 
 	max_stamina = 100,
+	rank = 2,
 	size_category = 3,
 
 	autolevel = "rogue",
diff --git a/game/modules/tome/data/general/npcs/troll.lua b/game/modules/tome/data/general/npcs/troll.lua
index 48e82df596333e3e86b5033392f6fe5f62cacb99..c6c94649c6ebbf31f6f2414fb7f7ba40d46c71a4 100644
--- a/game/modules/tome/data/general/npcs/troll.lua
+++ b/game/modules/tome/data/general/npcs/troll.lua
@@ -33,6 +33,7 @@ newEntity{
 	life_rating = 15,
 	life_regen = 2,
 	max_stamina = 90,
+	rank = 2,
 	size_category = 4,
 
 	autolevel = "warrior",
diff --git a/game/modules/tome/data/general/npcs/vermin.lua b/game/modules/tome/data/general/npcs/vermin.lua
index 83fd8201856dd26080d1b399ddd1e9774aa6c931..1e752d52573cdebb635673e924a9ae725d9ad95a 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,
+	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 746d6bb42f05ff389158a8360a29569dc707dcfe..7c8c1dfe070c5f2b46ab9e60b31db16c5c219c82 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 },
+	rank = 2,
 	size_category = 3,
 
 	resolvers.tmasteries{ ["technique/other"]=0.3, ["spell/air"]=0.3, ["spell/fire"]=0.3 },
@@ -100,6 +101,7 @@ newEntity{ base = "BASE_NPC_WIGHT",
 	desc=[[Your life force is torn from your body as this powerful unearthly being approaches.]],
 	level_range = {30, 50}, exp_worth = 1,
 	rarity = 9,
+	rank = 3,
 	max_life = resolvers.rngavg(100,150),
 	combat_armor = 12, combat_def = 10,
 	resolvers.talents{ [Talents.T_MANA_POOL]=3, [Talents.T_FLAMESHOCK]=3, [Talents.T_LIGHTNING]=4, [Talents.T_CORROSIVE_VAPOUR]=3, [Talents.T_THUNDERSTORM]=2,
diff --git a/game/modules/tome/data/zones/illusory-castle/npcs.lua b/game/modules/tome/data/zones/illusory-castle/npcs.lua
index 3af6d063f9ecbb1e3e2e796e1f35adc18053aed3..9723354be479f313896437cefb98f0bd0e8677fd 100644
--- a/game/modules/tome/data/zones/illusory-castle/npcs.lua
+++ b/game/modules/tome/data/zones/illusory-castle/npcs.lua
@@ -37,6 +37,7 @@ newEntity{ define_as = "SHADE_OF_ANGMAR",
 	max_mana = 85,
 	max_stamina = 85,
 	stats = { str=16, dex=12, cun=14, mag=25, con=16 },
+	rank = 4,
 	size_category = 3,
 
 	body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 },
diff --git a/game/modules/tome/data/zones/maze/npcs.lua b/game/modules/tome/data/zones/maze/npcs.lua
index e3344f11fa9fd894e8471c74dc97ebd833034e36..4c6e01a666cc658dd3f6bfe958d46e9a2e326d43 100644
--- a/game/modules/tome/data/zones/maze/npcs.lua
+++ b/game/modules/tome/data/zones/maze/npcs.lua
@@ -39,6 +39,7 @@ newEntity{ define_as = "MINOTAUR_MAZE",
 	max_life = 250, life_rating = 17, fixed_rating = true,
 	max_stamina = 200,
 	stats = { str=25, dex=10, cun=8, mag=20, wil=20, con=20 },
+	rank = 4,
 	size_category = 4,
 
 	body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1, HEAD=1, },
diff --git a/game/modules/tome/data/zones/old-forest/npcs.lua b/game/modules/tome/data/zones/old-forest/npcs.lua
index e811c670c5cc8bc15ad92e58809c8701f5f9ec3e..b42bb442a88cc47e60c9f7947c1c705399dfaa67 100644
--- a/game/modules/tome/data/zones/old-forest/npcs.lua
+++ b/game/modules/tome/data/zones/old-forest/npcs.lua
@@ -42,6 +42,7 @@ newEntity{ define_as = "OLD_MAN_WILLOW",
 	max_stamina = 85,
 	max_mana = 200,
 	stats = { str=25, dex=10, cun=8, mag=20, wil=20, con=20 },
+	rank = 4,
 	size_category = 5,
 
 	resists = { [DamageType.FIRE] = -50 },
diff --git a/game/modules/tome/data/zones/sandworm-lair/npcs.lua b/game/modules/tome/data/zones/sandworm-lair/npcs.lua
index 43f4222896fdc7da7614ef4e876ef82c1f3f64fc..27445ff3907bbb0775cd16c710bb3f275a28ae04 100644
--- a/game/modules/tome/data/zones/sandworm-lair/npcs.lua
+++ b/game/modules/tome/data/zones/sandworm-lair/npcs.lua
@@ -59,6 +59,7 @@ newEntity{ define_as = "SANDWORM_QUEEN",
 
 	stun_immune = 1,
 	no_breath = 1,
+	rank = 4,
 	size_category = 5,
 
 	resists = { [DamageType.FIRE] = 30, [DamageType.COLD] = -30 },
diff --git a/game/modules/tome/data/zones/tol-falas-ambush/npcs.lua b/game/modules/tome/data/zones/tol-falas-ambush/npcs.lua
index e9c1506416205787c266b3f4fa65c5eef1fe1157..b866f3040bd634064532eed887896836b5166237 100644
--- a/game/modules/tome/data/zones/tol-falas-ambush/npcs.lua
+++ b/game/modules/tome/data/zones/tol-falas-ambush/npcs.lua
@@ -28,6 +28,7 @@ newEntity{ base="BASE_NPC_ORC", define_as = "UKRUK",
 	desc = [[This ugly orc looks really nasty and vicious. He is obviously looking for something and bears an unkown symbol on his shield.]],
 	level_range = {50, 50}, exp_worth = 2,
 	max_life = 15000, life_rating = 15, fixed_rating = true,
+	rank = 4,
 	size_category = 3,
 
 	resolvers.equip{
diff --git a/game/modules/tome/data/zones/tol-falas/npcs.lua b/game/modules/tome/data/zones/tol-falas/npcs.lua
index 2a875f8b7fcd00ec83a042bbd03bff5fb0636a12..8c82f55fa29b7577487d17370ca4de3f323270f1 100644
--- a/game/modules/tome/data/zones/tol-falas/npcs.lua
+++ b/game/modules/tome/data/zones/tol-falas/npcs.lua
@@ -33,6 +33,7 @@ newEntity{ define_as = "THE_MASTER",
 	max_life = 350, life_rating = 19, fixed_rating = true,
 	max_mana = 145,
 	max_stamina = 145,
+	rank = 5,
 	size_category = 3,
 	stats = { str=19, dex=19, cun=34, mag=25, con=16 },
 
diff --git a/game/modules/tome/data/zones/tower-amon-sul/npcs.lua b/game/modules/tome/data/zones/tower-amon-sul/npcs.lua
index cc68f45bea32596466c1a7d30d46de08df635819..fc606c7e0eab95acbf48932ba0b3687b167440c4 100644
--- a/game/modules/tome/data/zones/tower-amon-sul/npcs.lua
+++ b/game/modules/tome/data/zones/tower-amon-sul/npcs.lua
@@ -35,6 +35,7 @@ newEntity{ define_as = "SHADE_OF_ANGMAR",
 	max_life = 150, life_rating = 15, fixed_rating = true,
 	max_mana = 85,
 	max_stamina = 85,
+	rank = 4,
 	size_category = 3,
 	stats = { str=16, dex=12, cun=14, mag=25, con=16 },
 
diff --git a/game/modules/tome/data/zones/trollshaws/npcs.lua b/game/modules/tome/data/zones/trollshaws/npcs.lua
index 2f1de65fdf29b64dd9a648b885552d286cec3b77..48e26f2d87acc7e9a240e6a4f664410c94c0d2b5 100644
--- a/game/modules/tome/data/zones/trollshaws/npcs.lua
+++ b/game/modules/tome/data/zones/trollshaws/npcs.lua
@@ -40,6 +40,7 @@ newEntity{ define_as = "TROLL_BILL",
 	max_life = 250, life_rating = 17, fixed_rating = true,
 	max_stamina = 85,
 	stats = { str=25, dex=10, cun=8, mag=10, con=20 },
+	rank = 4,
 	size_category = 4,
 
 	body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 },