diff --git a/game/modules/tome/data/general/objects/egos/amulets.lua b/game/modules/tome/data/general/objects/egos/amulets.lua
index 9081c62a8b58e228ac4f5195758a02a61fd5151f..0380a809f4bc8e78fa449865b725b02aee7be58d 100644
--- a/game/modules/tome/data/general/objects/egos/amulets.lua
+++ b/game/modules/tome/data/general/objects/egos/amulets.lua
@@ -449,24 +449,6 @@ newEntity{
 	},
 }
 
-newEntity{
-	power_source = {nature=true},
-	name = " of lifeblood", suffix=true, instant_resolve=true,
-	keywords = {lifeblood=true},
-	level_range = {40, 50},
-	greater_ego = 1,
-	rarity = 30,
-	cost = 100,
-	wielder = {
-		resists={
-			[DamageType.LIGHT] = resolvers.mbonus_material(10, 5, function(e, v) return 0, -v end),
-			[DamageType.DARKNESS] = resolvers.mbonus_material(10, 5),
-		},
-		resource_leech_chance = resolvers.mbonus_material(10, 5),
-		resource_leech_value = resolvers.mbonus_material(3, 1),
-	},
-}
-
 newEntity{
 	power_source = {technique=true},
 	name = " of seduction", suffix=true, instant_resolve=true,
diff --git a/game/modules/tome/data/general/objects/egos/belt.lua b/game/modules/tome/data/general/objects/egos/belt.lua
index f7ee07913d34005caadd001f7c8452020a44918f..cf60d94297addc007f87c84df8455046b57705c8 100644
--- a/game/modules/tome/data/general/objects/egos/belt.lua
+++ b/game/modules/tome/data/general/objects/egos/belt.lua
@@ -342,24 +342,6 @@ newEntity{
 	},
 }
 
-newEntity{
-	power_source = {nature=true},
-	name = "draining ", prefix=true, instant_resolve=true,
-	keywords = {draining=true},
-	level_range = {45, 50},
-	greater_ego = 1,
-	rarity = 40,
-	cost = 100,
-	wielder = {
-		resource_leech_chance = resolvers.mbonus_material(10, 5),
-		resource_leech_value = resolvers.mbonus_material(1, 1),
-
-		on_melee_hit = {
-			[DamageType.BLIGHT] = resolvers.mbonus_material(10, 5),
-		},
-	},
-}
-
 newEntity{
 	power_source = {arcane=true},
 	name = "nightruned ", prefix=true, instant_resolve=true,
diff --git a/game/modules/tome/data/general/objects/egos/boots.lua b/game/modules/tome/data/general/objects/egos/boots.lua
index 4829f7158120cd691bcd92244a8d7382e3bbc277..b7b9cfb775bb2977b2f418dd8bdf6b7592b61763 100644
--- a/game/modules/tome/data/general/objects/egos/boots.lua
+++ b/game/modules/tome/data/general/objects/egos/boots.lua
@@ -340,21 +340,6 @@ newEntity{
 	},
 }
 
-newEntity{
-	power_source = {nature=true},
-	name = " of voracity", suffix=true, instant_resolve=true,
-	keywords = {voracity=true},
-	level_range = {20, 50},
-	greater_ego = 1,
-	rarity = 20,
-	cost = 40,
-	wielder = {
-		resource_leech_chance = resolvers.mbonus_material(10, 5),
-		resource_leech_value = resolvers.mbonus_material(1, 1),
-		max_life = resolvers.mbonus_material(70, 40, function(e, v) return 0, -v end),
-	},
-}
-
 newEntity{
 	power_source = {technique=true},
 	name = " of invasion", suffix=true, instant_resolve=true,
diff --git a/game/modules/tome/data/general/objects/egos/cloak.lua b/game/modules/tome/data/general/objects/egos/cloak.lua
index 48202c5567f7193c996ea187470133576afb1c4b..7319200a4c361c9f7dda96fb7feea0a68083f336 100644
--- a/game/modules/tome/data/general/objects/egos/cloak.lua
+++ b/game/modules/tome/data/general/objects/egos/cloak.lua
@@ -349,24 +349,6 @@ newEntity{
 	},
 }
 
-newEntity{
-	power_source = {nature=true},
-	name = "parasitic ", prefix=true, instant_resolve=true,
-	keywords = {parasitic=true},
-	level_range = {30, 50},
-	greater_ego = 1,
-	rarity = 30,
-	cost = 60,
-	wielder = {
-		inc_stats = {
-			[Stats.STAT_CON] = resolvers.mbonus_material(6, 4, function(e, v) return 0, -v end),
-		},
-		poison_immune = resolvers.mbonus_material(15, 10, function(e, v) v=v/100 return 0, v end),
-		resource_leech_chance = resolvers.mbonus_material(10, 5),
-		resource_leech_value = resolvers.mbonus_material(1, 1),
-	},
-}
-
 newEntity{
 	power_source = {technique=true},
 	name = " of the guardian", suffix=true, instant_resolve=true,
diff --git a/game/modules/tome/data/general/objects/egos/digger.lua b/game/modules/tome/data/general/objects/egos/digger.lua
index 6a7e8951a2cd958385703bd040785f3d6e4539bc..1c41b21e1db177184baf4fde3bc7729b58713d94 100644
--- a/game/modules/tome/data/general/objects/egos/digger.lua
+++ b/game/modules/tome/data/general/objects/egos/digger.lua
@@ -261,23 +261,6 @@ newEntity{
 	},
 }
 
-newEntity{
-	power_source = {technique=true},
-	name = " of avarice", suffix=true, instant_resolve=true,
-	keywords = {avarice=true},
-	level_range = {40, 50},
-	greater_ego = 1,
-	rarity = 45,
-	cost = 60,
-	resolvers.generic(function(e) e.digspeed = math.ceil(e.digspeed / 2) end),
-	wielder = {
-		blind_immune = resolvers.mbonus_material(15, 10, function(e, v) v=v/100 return 0, -v end),
-		combat_mentalresist = resolvers.mbonus_material(10, 5, function(e, v) return 0, -v end),
-		resource_leech_chance = resolvers.mbonus_material(10, 5),
-		resource_leech_value = resolvers.mbonus_material(1, 1),
-	},
-}
-
 newEntity{
 	power_source = {arcane=true},
 	name = " of quickening", suffix=true, instant_resolve=true,
diff --git a/game/modules/tome/data/general/objects/egos/gloves.lua b/game/modules/tome/data/general/objects/egos/gloves.lua
index d62fcb4cc5f3b6e355f5f7e986b18cd30fc56800..b0f5000ae924eb2073f42f2931c239c8cc758d3b 100644
--- a/game/modules/tome/data/general/objects/egos/gloves.lua
+++ b/game/modules/tome/data/general/objects/egos/gloves.lua
@@ -23,6 +23,7 @@ local Talents = require("engine.interface.ActorTalents")
 newEntity{
 	power_source = {technique=true},
 	name = " of disarming", suffix=true, instant_resolve=true,
+	keywords = {disarm=true},
 	level_range = {10, 50},
 	rarity = 5,
 	cost = 6,
@@ -37,6 +38,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of criticals", suffix=true, instant_resolve=true,
+	keywords = {crits=true},
 	level_range = {20, 50},
 	rarity = 9,
 	cost = 15,
@@ -52,6 +54,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of mighty criticals", suffix=true, instant_resolve=true,
+	keywords = {critical=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 12,
@@ -69,6 +72,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of attack", suffix=true, instant_resolve=true,
+	keywords = {attack=true},
 	level_range = {1, 50},
 	rarity = 5,
 	cost = 5,
@@ -83,6 +87,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of damage", suffix=true, instant_resolve=true,
+	keywords = {damage=true},
 	level_range = {10, 50},
 	rarity = 7,
 	cost = 10,
@@ -97,6 +102,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "cinder ", prefix=true, instant_resolve=true,
+	keywords = {cinder=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 5,
@@ -112,6 +118,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "polar ", prefix=true, instant_resolve=true,
+	keywords = {polar=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 5,
@@ -127,6 +134,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "corrosive ", prefix=true, instant_resolve=true,
+	keywords = {corrosive=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 5,
@@ -142,6 +150,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "charged ", prefix=true, instant_resolve=true,
+	keywords = {charged=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 5,
@@ -157,6 +166,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "temporal ", prefix=true, instant_resolve=true,
+	keywords = {temporal=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 5,
@@ -171,7 +181,8 @@ newEntity{
 
 newEntity{
 	power_source = {nature=true},
-	name = "naturalist ", prefix=true, instant_resolve=true,
+	name = "naturalist's ", prefix=true, instant_resolve=true,
+	keywords = {naturalist=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 5,
@@ -187,6 +198,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "blighted ", prefix=true, instant_resolve=true,
+	keywords = {blighted=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 5,
@@ -202,6 +214,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "powerful ", prefix=true, instant_resolve=true,
+	keywords = {powerful=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 5,
@@ -216,6 +229,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of strength (#STATBONUS#)", suffix=true, instant_resolve=true,
+	keywords = {strength=true},
 	level_range = {1, 50},
 	rarity = 6,
 	cost = 4,
@@ -231,6 +245,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of dexterity (#STATBONUS#)", suffix=true, instant_resolve=true,
+	keywords = {dex=true},
 	level_range = {1, 50},
 	rarity = 6,
 	cost = 4,
@@ -246,6 +261,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of magic (#STATBONUS#)", suffix=true, instant_resolve=true,
+	keywords = {magic=true},
 	level_range = {1, 50},
 	rarity = 6,
 	cost = 4,
@@ -260,6 +276,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of iron grip", suffix=true, instant_resolve=true,
+	keywords = {grip=true},
 	level_range = {20, 50},
 	rarity = 9,
 	cost = 15,
@@ -276,6 +293,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of protection", suffix=true, instant_resolve=true,
+	keywords = {protection=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 15,
@@ -296,6 +314,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of warmaking", suffix=true, instant_resolve=true,
+	keywords = {warmaking=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 17,
@@ -318,6 +337,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of regeneration", suffix=true, instant_resolve=true,
+	keywords = {regen=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 18,
@@ -335,6 +355,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "heroic ", prefix=true, instant_resolve=true,
+	keywords = {heroic=true},
 	level_range = {40, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -357,6 +378,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "alchemist's ", prefix=true, instant_resolve=true,
+	keywords = {alchemist=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 17,
@@ -384,6 +406,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "archer's ", prefix=true, instant_resolve=true,
+	keywords = {archer=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 17,
@@ -404,6 +427,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "brawler's ", prefix=true, instant_resolve=true,
+	keywords = {brawler=true},
 	level_range = {40, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -426,6 +450,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of imperviousness", suffix=true, instant_resolve=true,
+	keywords = {impervious=true},
 	level_range = {40, 50},
 	greater_ego = 1,
 	rarity = 40,
@@ -449,6 +474,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of dispersion", suffix=true, instant_resolve=true,
+	keywords = {dispersion=true},
 	level_range = {40, 50},
 	greater_ego = 1,
 	rarity = 35,
@@ -472,6 +498,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of butchering", suffix=true, instant_resolve=true,
+	keywords = {butchering=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 30,
@@ -496,6 +523,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of the juggernaut", suffix=true, instant_resolve=true,
+	keywords = {juggernaut=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -519,6 +547,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of the beastfinder", suffix=true, instant_resolve=true,
+	keywords = {beastfinder=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 40,
@@ -541,6 +570,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "nightfighting ", prefix=true, instant_resolve=true,
+	keywords = {nightfight=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -564,6 +594,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "spellstreaming ", prefix=true, instant_resolve=true,
+	keywords = {spellstream=true},
 	level_range = {10, 50},
 	greater_ego = 1,
 	rarity = 15,
@@ -584,6 +615,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "elemental ", prefix=true, instant_resolve=true,
+	keywords = {elemental=true},
 	level_range = {45, 50},
 	greater_ego = 1,
 	rarity = 50,
@@ -609,6 +641,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "contortionist's ", prefix=true, instant_resolve=true,
+	keywords = {contortion=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 30,
diff --git a/game/modules/tome/data/general/objects/egos/heavy-armor.lua b/game/modules/tome/data/general/objects/egos/heavy-armor.lua
index 04da7bac71f11bcc2dad75ffc8bfef04556de1f8..610797ba9decfbe7dd1c03247cea3009ef3ade7d 100644
--- a/game/modules/tome/data/general/objects/egos/heavy-armor.lua
+++ b/game/modules/tome/data/general/objects/egos/heavy-armor.lua
@@ -25,6 +25,7 @@ load("/data/general/objects/egos/armor.lua")
 newEntity{
 	power_source = {technique=true},
 	name = "impenetrable ", prefix=true, instant_resolve=true,
+	keywords = {impenetrable=true},
 	level_range = {10, 50},
 	rarity = 8,
 	cost = 7,
@@ -36,6 +37,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "fearforged ", prefix=true, instant_resolve=true,
+	keywords = {fearforged=true},
 	level_range = {40, 50},
 	greater_ego = 1,
 	rarity = 30,
diff --git a/game/modules/tome/data/general/objects/egos/helm.lua b/game/modules/tome/data/general/objects/egos/helm.lua
index 80203db538578ede23f9720105a9004e50ce1cfb..20bec90f7912c728975a6d19a04e78fb42ca7839 100644
--- a/game/modules/tome/data/general/objects/egos/helm.lua
+++ b/game/modules/tome/data/general/objects/egos/helm.lua
@@ -28,6 +28,7 @@ local DamageType = require "engine.DamageType"
 newEntity{
 	power_source = {technique=true},
 	name = " of strength (#STATBONUS#)", suffix=true, instant_resolve=true,
+	keywords = {strength=true},
 	level_range = {1, 50},
 	rarity = 6,
 	cost = 4,
@@ -38,6 +39,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of constitution (#STATBONUS#)", suffix=true, instant_resolve=true,
+	keywords = {con=true},
 	level_range = {1, 50},
 	rarity = 6,
 	cost = 4,
@@ -48,6 +50,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of dexterity (#STATBONUS#)", suffix=true, instant_resolve=true,
+	keywords = {dex=true},
 	level_range = {1, 50},
 	rarity = 6,
 	cost = 4,
@@ -58,6 +61,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of telepathic range", suffix=true,
+	keywords = {range=true},
 	level_range = {40, 50},
 	rarity = 15,
 	cost = 15,
@@ -68,6 +72,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "shaloran ", prefix=true, instant_resolve=true,
+	keywords = {shaloran=true},
 	level_range = {25, 50},
 	greater_ego = 1,
 	rarity = 10,
@@ -81,6 +86,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "prismatic ", prefix=true, instant_resolve=true,
+	keywords = {prismatic=true},
 	level_range = {10, 50},
 	rarity = 10,
 	cost = 7,
@@ -95,6 +101,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of precognition", suffix=true, instant_resolve=true,
+	keywords = {precog=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 18,
@@ -109,6 +116,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of the depths", suffix=true,
+	keywords = {depths=true},
 	level_range = {15, 50},
 	rarity = 10,
 	cost = 10,
@@ -120,6 +128,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of absorption", suffix=true, instant_resolve=true,
+	keywords = {absorb=true},
 	level_range = {20, 50},
 	rarity = 10,
 	cost = 20,
@@ -133,6 +142,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "miner's ", prefix=true, instant_resolve=true,
+	keywords = {miner=true},
 	level_range = {1, 50},
 	rarity = 6,
 	cost = 5,
@@ -145,6 +155,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "insulating ", prefix=true, instant_resolve=true,
+	keywords = {insulate=true},
 	level_range = {1, 50},
 	rarity = 6,
 	cost = 5,
@@ -159,6 +170,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "grounding ", prefix=true, instant_resolve=true,
+	keywords = {ground=true},
 	level_range = {1, 50},
 	rarity = 6,
 	cost = 5,
@@ -173,6 +185,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "anchoring ", prefix=true, instant_resolve=true,
+	keywords = {anchor=true},
 	level_range = {1, 50},
 	rarity = 6,
 	cost = 5,
@@ -187,6 +200,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "stabilizing ", prefix=true, instant_resolve=true,
+	keywords = {stabilize=true},
 	level_range = {1, 50},
 	rarity = 6,
 	cost = 5,
@@ -199,6 +213,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "cleansing ", prefix=true, instant_resolve=true,
+	keywords = {cleanse=true},
 	level_range = {1, 50},
 	rarity = 9,
 	cost = 9,
@@ -215,6 +230,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of knowledge", suffix=true, instant_resolve=true,
+	keywords = {knowledge=true},
 	level_range = {15, 50},
 	greater_ego = 1,
 	rarity = 15,
@@ -232,6 +248,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of might", suffix=true, instant_resolve=true,
+	keywords = {might=true},
 	level_range = {15, 50},
 	greater_ego = 1,
 	rarity = 15,
@@ -248,6 +265,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of trickery", suffix=true, instant_resolve=true,
+	keywords = {trickery=true},
 	level_range = {15, 50},
 	greater_ego = 1,
 	rarity = 13,
@@ -264,6 +282,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "warlord's ", prefix=true, instant_resolve=true,
+	keywords = {warlord=true},
 	level_range = {40, 50},
 	greater_ego = 1,
 	rarity = 17,
@@ -280,6 +299,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "defender's ", prefix=true, instant_resolve=true,
+	keywords = {defender=true},
 	level_range = {40, 50},
 	greater_ego = 1,
 	rarity = 17,
@@ -294,6 +314,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "dragonslayer's ", prefix=true, instant_resolve=true,
+	keywords = {dragonslayer=true},
 	level_range = {40, 50},
 	greater_ego = 1,
 	rarity = 17,
@@ -311,6 +332,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "werebeast's ", prefix=true, instant_resolve=true,
+	keywords = {werebeast=true},
 	level_range = {40, 50},
 	greater_ego = 1,
 	rarity = 30,
@@ -332,6 +354,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "mindcaging ", prefix=true, instant_resolve=true,
+	keywords = {mindcage=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -349,6 +372,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "champion's ", prefix=true, instant_resolve=true,
+	keywords = {champion=true},
 	level_range = {10, 50},
 	greater_ego = 1,
 	rarity = 15,
@@ -366,6 +390,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "leafwalker's ", prefix=true, instant_resolve=true,
+	keywords = {learwalker=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 30,
@@ -384,6 +409,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "catburglar's ", prefix=true, instant_resolve=true,
+	keywords = {catburglar=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -402,6 +428,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of blood magic", suffix=true, instant_resolve=true,
+	keywords = {blood=true},
 	level_range = {40, 50},
 	greater_ego = 1,
 	rarity = 40,
@@ -424,6 +451,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of fortune", suffix=true, instant_resolve=true,
+	keywords = {fortune=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -440,6 +468,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of sanctity", suffix=true, instant_resolve=true,
+	keywords = {sanctity=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 30,
@@ -458,6 +487,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of ire", suffix=true, instant_resolve=true,
+	keywords = {ire=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -472,19 +502,3 @@ newEntity{
 		combat_physresist = resolvers.mbonus_material(7, 3),
 	},
 }
-
-newEntity{
-	power_source = {technique=true},
-	name = " of hoarding", suffix=true, instant_resolve=true,
-	level_range = {40, 50},
-	greater_ego = 1,
-	rarity = 40,
-	cost = 40,
-	wielder = {
-		inc_stats = {
-			[Stats.STAT_CUN] = resolvers.mbonus_material(9, 1),
-		},
-		resource_leech_chance = resolvers.mbonus_material(10, 5),
-		resource_leech_value = resolvers.mbonus_material(1, 1),
-	},
-}
\ No newline at end of file
diff --git a/game/modules/tome/data/general/objects/egos/light-armor.lua b/game/modules/tome/data/general/objects/egos/light-armor.lua
index 2365789b55acd4b891afb9d5e97656ae2f513a5e..085bded9bc896364e808852295d40a09cbe45b3f 100644
--- a/game/modules/tome/data/general/objects/egos/light-armor.lua
+++ b/game/modules/tome/data/general/objects/egos/light-armor.lua
@@ -25,6 +25,7 @@ load("/data/general/objects/egos/armor.lua")
 newEntity{
 	power_source = {technique=true},
 	name = "troll-hide ", prefix=true, instant_resolve=true,
+	keywords = {troll=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 12,
@@ -37,6 +38,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "nimble ", prefix=true, instant_resolve=true,
+	keywords = {nimble=true},
 	level_range = {25, 50},
 	greater_ego = 1,
 	rarity = 22,
diff --git a/game/modules/tome/data/general/objects/egos/light-boots.lua b/game/modules/tome/data/general/objects/egos/light-boots.lua
index 9cec5b533f299bf1c4c00125f3caf2e934f717b4..caa2757e281a8656900d3e86582e5f5dcd6cd00b 100644
--- a/game/modules/tome/data/general/objects/egos/light-boots.lua
+++ b/game/modules/tome/data/general/objects/egos/light-boots.lua
@@ -26,6 +26,7 @@ local Talents = require "engine.interface.ActorTalents"
 newEntity{
 	power_source = {technique=true},
 	name = "stealthy ", prefix=true, instant_resolve=true,
+	keywords = {stealth=true},
 	level_range = {20, 50},
 	rarity = 5,
 	cost = 6,
diff --git a/game/modules/tome/data/general/objects/egos/lite.lua b/game/modules/tome/data/general/objects/egos/lite.lua
index 44efada53d0cb0f7d22087a038d1b47eac4f3526..a8063f571c950c8e9cef040f8acbde3ce8ec4abc 100644
--- a/game/modules/tome/data/general/objects/egos/lite.lua
+++ b/game/modules/tome/data/general/objects/egos/lite.lua
@@ -25,6 +25,7 @@ local Talents = require "engine.interface.ActorTalents"
 newEntity{
 	power_source = {technique=true},
 	name = "bright ", prefix=true, instant_resolve=true,
+	keywords = {bright=true},
 	level_range = {1, 50},
 	rarity = 5,
 	cost = 1,
@@ -36,6 +37,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of clear sight", suffix=true, instant_resolve=true,
+	keywords = {sight=true},
 	level_range = {10, 50},
 	rarity = 5,
 	cost = 1,
@@ -47,6 +49,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of the sun", suffix=true, instant_resolve=true,
+	keywords = {sun=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 9,
@@ -61,6 +64,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "scorching ", prefix=true, instant_resolve=true,
+	keywords = {scorching=true},
 	level_range = {10, 50},
 	rarity = 5,
 	cost = 4,
@@ -72,6 +76,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of revealing", suffix=true, instant_resolve=true,
+	keywords = {revealing=true},
 	level_range = {1, 50},
 	rarity = 7,
 	cost = 10,
@@ -85,6 +90,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of clarity", suffix=true, instant_resolve=true,
+	keywords = {clarity=true},
 	level_range = {1, 50},
 	rarity = 7,
 	cost = 10,
@@ -96,6 +102,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of health", suffix=true, instant_resolve=true,
+	keywords = {health=true},
 	level_range = {1, 50},
 	rarity = 7,
 	cost = 10,
@@ -107,6 +114,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of guile", suffix=true, instant_resolve=true,
+	keywords = {guile=true},
 	level_range = {1, 50},
 	rarity = 7,
 	cost = 10,
@@ -120,6 +128,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "burglar's ", prefix=true, instant_resolve=true,
+	keywords = {burglar=true},
 	level_range = {15, 50},
 	rarity = 9,
 	cost = 12,
@@ -132,6 +141,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "guard's ", prefix=true, instant_resolve=true,
+	keywords = {guard=true},
 	level_range = {15, 50},
 	rarity = 9,
 	cost = 12,
@@ -143,6 +153,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "healer's ", prefix=true, instant_resolve=true,
+	keywords = {heakler=true},
 	level_range = {15, 50},
 	rarity = 9,
 	cost = 12,
@@ -154,6 +165,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "guide's ", prefix=true, instant_resolve=true,
+	keywords = {guide=true},
 	level_range = {15, 50},
 	rarity = 9,
 	cost = 12,
@@ -165,6 +177,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "reflective ", prefix=true, instant_resolve=true,
+	keywords = {reflect=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 10,
@@ -181,6 +194,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "nightwalker's ", prefix=true, instant_resolve=true,
+	keywords = {nightwalker=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 10,
@@ -197,6 +211,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "ethereal ", prefix=true, instant_resolve=true,
+	keywords = {ethereal=true},
 	level_range = {10, 50},
 	greater_ego = 1,
 	rarity = 10,
@@ -213,6 +228,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of illusion", suffix=true, instant_resolve=true,
+	keywords = {illusion=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 10,
@@ -228,6 +244,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of corpselight", suffix=true, instant_resolve=true,
+	keywords = {corpselight=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 10,
@@ -242,6 +259,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "traitor's ", prefix=true, instant_resolve=true,
+	keywords = {traitor=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 30,
@@ -260,6 +278,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "watchleader's ", prefix=true, instant_resolve=true,
+	keywords = {watchleader=true},
 	level_range = {10, 50},
 	greater_ego = 1,
 	rarity = 30,
@@ -275,6 +294,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "faithful ", prefix=true, instant_resolve=true,
+	keywords = {faithful=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -291,6 +311,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "piercing ", prefix=true, instant_resolve=true,
+	keywords = {piercing=true},
 	level_range = {40, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -307,6 +328,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "preserving ", prefix=true, instant_resolve=true,
+	keywords = {preserve=true},
 	level_range = {1, 50},
 	greater_ego = 1,
 	rarity = 10,
@@ -324,6 +346,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of the zealot", suffix=true, instant_resolve=true,
+	keywords = {zealot=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -343,6 +366,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of blinding", suffix=true, instant_resolve=true,
+	keywords = {blinding=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -354,6 +378,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of refraction", suffix=true, instant_resolve=true,
+	keywords = {refract=true},
 	level_range = {10, 50},
 	greater_ego = 1,
 	rarity = 10,
@@ -374,6 +399,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of moonlight", suffix=true, instant_resolve=true,
+	keywords = {moonlight=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -388,6 +414,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of repulsion", suffix=true, instant_resolve=true,
+	keywords = {repulsion=true},
 	level_range = {1, 50},
 	greater_ego = 1,
 	rarity = 15,
diff --git a/game/modules/tome/data/general/objects/egos/massive-armor.lua b/game/modules/tome/data/general/objects/egos/massive-armor.lua
index 9db81559b01184992d6b470c6131998079c400ef..3e132f18a0efb6d13e991c76ee062dce6c7d5b64 100644
--- a/game/modules/tome/data/general/objects/egos/massive-armor.lua
+++ b/game/modules/tome/data/general/objects/egos/massive-armor.lua
@@ -26,6 +26,7 @@ newEntity{
 	power_source = {nature=true},
 	name = " of the dragon", suffix=true, instant_resolve=true,
 	keywords = {dragon=true},
+	keywords = {dragon=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -52,6 +53,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "impenetrable ", prefix=true, instant_resolve=true,
+	keywords = {impenetrable=true},
 	keywords = {['impen.']=true},
 	level_range = {10, 50},
 	rarity = 8,
diff --git a/game/modules/tome/data/general/objects/egos/rings.lua b/game/modules/tome/data/general/objects/egos/rings.lua
index 3ef8c184d1459f0347ba21d3a1f5ef9c032025f9..5da83654c7bda0b59f66c577b990d0e22d0f68ff 100644
--- a/game/modules/tome/data/general/objects/egos/rings.lua
+++ b/game/modules/tome/data/general/objects/egos/rings.lua
@@ -28,6 +28,7 @@ local DamageType = require "engine.DamageType"
 newEntity{
 	power_source = {arcane=true},
 	name = " of see invisible", suffix=true, instant_resolve=true,
+	keywords = {seeInvis=true},
 	level_range = {1, 20},
 	rarity = 4,
 	cost = 2,
@@ -39,6 +40,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of regeneration (#REGEN#)", suffix=true,
+	keywords = {regen=true},
 	level_range = {10, 20},
 	rarity = 10,
 	cost = 8,
@@ -50,6 +52,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of mana (#REGEN#)", suffix=true, instant_resolve=true,
+	keywords = {mana=true},
 	level_range = {10, 20},
 	rarity = 8,
 	cost = 3,
@@ -61,6 +64,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of fire (#RESIST#)", suffix=true, instant_resolve=true,
+	keywords = {fire=true},
 	level_range = {10, 40},
 	rarity = 6,
 	cost = 2,
@@ -74,6 +78,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of time (#RESIST#)", suffix=true, instant_resolve=true,
+	keywords = {time=true},
 	level_range = {10, 40},
 	rarity = 6,
 	cost = 2,
@@ -87,6 +92,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of frost (#RESIST#)", suffix=true, instant_resolve=true,
+	keywords = {frost=true},
 	level_range = {10, 40},
 	rarity = 6,
 	cost = 2,
@@ -100,6 +106,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of nature (#RESIST#)", suffix=true, instant_resolve=true,
+	keywords = {nature=true},
 	level_range = {10, 40},
 	rarity = 6,
 	cost = 2,
@@ -113,6 +120,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of lightning (#RESIST#)", suffix=true, instant_resolve=true,
+	keywords = {lightning=true},
 	level_range = {10, 40},
 	rarity = 6,
 	cost = 2,
@@ -126,6 +134,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of corrosion (#RESIST#)", suffix=true, instant_resolve=true,
+	keywords = {corrosion=true},
 	level_range = {10, 40},
 	rarity = 6,
 	cost = 2,
@@ -139,6 +148,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of blight (#RESIST#)", suffix=true, instant_resolve=true,
+	keywords = {blight=true},
 	level_range = {10, 40},
 	rarity = 6,
 	cost = 2,
@@ -152,6 +162,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of massacre (#DAMBONUS#)", suffix=true, instant_resolve=true,
+	keywords = {massacre=true},
 	level_range = {6, 50},
 	rarity = 4,
 	cost = 4,
@@ -163,6 +174,7 @@ newEntity{
 newEntity{ define_as = "RING_ARCANE_POWER",
 	power_source = {arcane=true},
 	name = " of arcane power (#DAMBONUS#)", suffix=true, instant_resolve=true,
+	keywords = {arcane=true},
 	level_range = {6, 50},
 	rarity = 4,
 	cost = 4,
@@ -174,6 +186,7 @@ newEntity{ define_as = "RING_ARCANE_POWER",
 newEntity{
 	power_source = {technique=true},
 	name = "savior's ", prefix=true, instant_resolve=true,
+	keywords = {savior=true},
 	level_range = {1, 50},
 	rarity = 10,
 	cost = 10,
@@ -187,6 +200,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "brawler's ", prefix=true, instant_resolve=true,
+	keywords = {brawler=true},
 	level_range = {1, 50},
 	rarity = 7,
 	cost = 6,
@@ -199,6 +213,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "titan's ", prefix=true, instant_resolve=true,
+	keywords = {titan=true},
 	level_range = {1, 50},
 	rarity = 7,
 	cost = 6,
@@ -211,6 +226,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "duelist's ", prefix=true, instant_resolve=true,
+	keywords = {duelist=true},
 	level_range = {1, 50},
 	rarity = 7,
 	cost = 6,
@@ -223,6 +239,7 @@ newEntity{
 newEntity{ define_as = "RING_MAGIC",
 	power_source = {arcane=true},
 	name = "wizard's ", prefix=true, instant_resolve=true,
+	keywords = {wizard=true},
 	level_range = {1, 50},
 	rarity = 7,
 	cost = 6,
@@ -235,6 +252,7 @@ newEntity{ define_as = "RING_MAGIC",
 newEntity{
 	power_source = {arcane=true},
 	name = "mule's ", prefix=true, instant_resolve=true,
+	keywords = {mule=true},
 	level_range = {1, 50},
 	rarity = 7,
 	cost = 6,
@@ -247,6 +265,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "sneakthief's ", prefix=true, instant_resolve=true,
+	keywords = {sneakthief=true},
 	level_range = {15, 50},
 	greater_ego = 1,
 	rarity = 12,
@@ -263,6 +282,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "gladiator's ", prefix=true, instant_resolve=true,
+	keywords = {gladiator=true},
 	level_range = {15, 50},
 	greater_ego = 1,
 	rarity = 12,
@@ -279,6 +299,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "conjurer's ", prefix=true, instant_resolve=true,
+	keywords = {conjurer=true},
 	level_range = {15, 50},
 	greater_ego = 1,
 	rarity = 12,
@@ -295,6 +316,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of tenacity", suffix=true, instant_resolve=true,
+	keywords = {tenacity=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 12,
@@ -310,6 +332,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of evocation", suffix=true, instant_resolve=true,
+	keywords = {evocation=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 12,
@@ -324,6 +347,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of life", suffix=true, instant_resolve=true,
+	keywords = {life=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 12,
@@ -338,6 +362,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "painweaver's ", prefix=true, instant_resolve=true,
+	keywords = {painweaver=true},
 	level_range = {5, 35},
 	rarity = 20,
 	cost = 60,
@@ -351,6 +376,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "firelord's ", prefix=true, instant_resolve=true,
+	keywords = {firelord=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 30,
@@ -371,6 +397,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "otherworldly ", prefix=true, instant_resolve=true,
+	keywords = {otherworldly=true},
 	level_range = {40, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -389,6 +416,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "savage's ", prefix=true, instant_resolve=true,
+	keywords = {savage=true},
 	level_range = {10, 50},
 	greater_ego = 1,
 	rarity = 15,
@@ -405,6 +433,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "treant's ", prefix=true, instant_resolve=true,
+	keywords = {treant=true},
 	level_range = {10, 50},
 	greater_ego = 1,
 	rarity = 15,
@@ -422,6 +451,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "shivering ", prefix=true, instant_resolve=true,
+	keywords = {shivering=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 30,
@@ -442,6 +472,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of misery", suffix=true, instant_resolve=true,
+	keywords = {misery=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -461,6 +492,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of warding", suffix=true, instant_resolve=true,
+	keywords = {warding=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 30,
@@ -478,6 +510,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of focus", suffix=true, instant_resolve=true,
+	keywords = {focus=true},
 	level_range = {40, 50},
 	greater_ego = 1,
 	rarity = 40,
@@ -494,6 +527,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of pilfering", suffix=true, instant_resolve=true,
+	keywords = {pilfering=true},
 	level_range = {10, 50},
 	greater_ego = 1,
 	rarity = 15,
@@ -509,6 +543,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of speed", suffix=true, instant_resolve=true,
+	keywords = {speed=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 40,
@@ -523,6 +558,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of blasting", suffix=true, instant_resolve=true,
+	keywords = {blasting=true},
 	level_range = {10, 50},
 	greater_ego = 1,
 	rarity = 30,
diff --git a/game/modules/tome/data/general/objects/egos/robe.lua b/game/modules/tome/data/general/objects/egos/robe.lua
index b628deaf1bd053ed590545ebc7e609b1903f69f6..d56fb14041ecd799abd91f81cfed485086ecd42b 100644
--- a/game/modules/tome/data/general/objects/egos/robe.lua
+++ b/game/modules/tome/data/general/objects/egos/robe.lua
@@ -26,6 +26,7 @@ local Talents = require "engine.interface.ActorTalents"
 newEntity{
 	power_source = {arcane=true},
 	name = " of fire resistance", suffix=true, instant_resolve=true,
+	keywords = {fire=true},
 	level_range = {1, 50},
 	rarity = 5,
 	cost = 6,
@@ -36,6 +37,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of cold resistance", suffix=true, instant_resolve=true,
+	keywords = {cold=true},
 	level_range = {1, 50},
 	rarity = 5,
 	cost = 6,
@@ -46,6 +48,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of acid resistance", suffix=true, instant_resolve=true,
+	keywords = {acid=true},
 	level_range = {1, 50},
 	rarity = 5,
 	cost = 6,
@@ -56,6 +59,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of lightning resistance", suffix=true, instant_resolve=true,
+	keywords = {lightning=true},
 	level_range = {1, 50},
 	rarity = 5,
 	cost = 6,
@@ -66,6 +70,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of nature resistance", suffix=true, instant_resolve=true,
+	keywords = {nature=true},
 	level_range = {1, 50},
 	rarity = 5,
 	cost = 6,
@@ -77,6 +82,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "shimmering ", prefix=true, instant_resolve=true,
+	keywords = {shimmering=true},
 	level_range = {10, 50},
 	rarity = 7,
 	cost = 6,
@@ -88,6 +94,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "slimy ", prefix=true, instant_resolve=true,
+	keywords = {slimy=true},
 	level_range = {10, 50},
 	rarity = 7,
 	cost = 6,
@@ -99,6 +106,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of power", suffix=true, instant_resolve=true,
+	keywords = {power=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 18,
@@ -121,6 +129,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "enchanted ", prefix=true, instant_resolve=true,
+	keywords = {enchanted=true},
 	level_range = {1, 50},
 	rarity = 7,
 	cost = 6,
@@ -132,6 +141,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "shielded ", prefix=true, instant_resolve=true,
+	keywords = {shielded=true},
 	level_range = {1, 50},
 	rarity = 7,
 	cost = 6,
@@ -143,6 +153,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "spellwoven ", prefix=true, instant_resolve=true,
+	keywords = {spellwoven=true},
 	level_range = {1, 50},
 	rarity = 7,
 	cost = 6,
@@ -154,6 +165,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "runed ", prefix=true, instant_resolve=true,
+	keywords = {runed=true},
 	level_range = {15, 50},
 	rarity = 10,
 	cost = 10,
@@ -165,6 +177,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "bilefire ", prefix=true, instant_resolve=true,
+	keywords = {bilefire=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 16,
@@ -187,6 +200,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "timelord's ", prefix=true, instant_resolve=true,
+	keywords = {timelord=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 16,
@@ -209,6 +223,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "stormlord's ", prefix=true, instant_resolve=true,
+	keywords = {stormlord=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 16,
@@ -231,6 +246,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "radiant ", prefix=true, instant_resolve=true,
+	keywords = {radiant=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 16,
@@ -251,6 +267,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of Angolwen", suffix=true, instant_resolve=true,
+	keywords = {Angolwen=true},
 	level_range = {35, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -270,6 +287,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of Linaniil", suffix=true, instant_resolve=true,
+	keywords = {Linaniil=true},
 	level_range = {35, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -286,6 +304,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of life", suffix=true, instant_resolve=true,
+	keywords = {life=true},
 	level_range = {35, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -304,6 +323,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of chaos", suffix=true, instant_resolve=true,
+	keywords = {chaos=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -325,25 +345,10 @@ newEntity{
 	},	
 }
 
-newEntity{
-	power_source = {nature=true},
-	name = " of gathering", suffix=true, instant_resolve=true,
-	level_range = {20, 50},
-	greater_ego = 1,
-	rarity = 40,
-	cost = 80,
-	wielder = {
-		resists={
-			[DamageType.NATURE] = resolvers.mbonus_material(10, 5),
-		},
-		resource_leech_chance = resolvers.mbonus_material(10, 5),
-		resource_leech_value = resolvers.mbonus_material(1, 1),
-	},	
-}
-
 newEntity{
 	power_source = {arcane=true},
 	name = " of explosions", suffix=true, instant_resolve=true,
+	keywords = {explosions=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -361,6 +366,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of retribution", suffix=true, instant_resolve=true,
+	keywords = {retribution=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -378,6 +384,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of novas", suffix=true, instant_resolve=true,
+	keywords = {novas=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 30,
@@ -394,6 +401,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "outcast's ", prefix=true, instant_resolve=true,
+	keywords = {outcast=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 30,
@@ -415,6 +423,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "stargazer's ", prefix=true, instant_resolve=true,
+	keywords = {stargazer=true},
 	level_range = {10, 50},
 	greater_ego = 1,
 	rarity = 15,
@@ -431,6 +440,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "ancient ", prefix=true, instant_resolve=true,
+	keywords = {ancient=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -449,6 +459,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "fearwoven ", prefix=true, instant_resolve=true,
+	keywords = {fearwoven=true},
 	level_range = {40, 50},
 	greater_ego = 1,
 	rarity = 40,
@@ -466,6 +477,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "tormentor's ", prefix=true, instant_resolve=true,
+	keywords = {tormentor=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 30,
diff --git a/game/modules/tome/data/general/objects/egos/shield.lua b/game/modules/tome/data/general/objects/egos/shield.lua
index e2433d447c211273012150c8ef37d17f9861038a..cd021b50195cbd0a5dba02e47aa1e8b0649b7e14 100644
--- a/game/modules/tome/data/general/objects/egos/shield.lua
+++ b/game/modules/tome/data/general/objects/egos/shield.lua
@@ -27,6 +27,7 @@ local Talents = require "engine.interface.ActorTalents"
 newEntity{
 	power_source = {technique=true},
 	name = " of fire resistance", suffix=true, instant_resolve=true,
+	keywords = {fire=true},
 	level_range = {1, 50},
 	rarity = 5,
 	cost = 4,
@@ -37,6 +38,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of cold resistance", suffix=true, instant_resolve=true,
+	keywords = {cold=true},
 	level_range = {1, 50},
 	rarity = 5,
 	cost = 4,
@@ -47,6 +49,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of acid resistance", suffix=true, instant_resolve=true,
+	keywords = {acid=true},
 	level_range = {1, 50},
 	rarity = 5,
 	cost = 4,
@@ -57,6 +60,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of lightning resistance", suffix=true, instant_resolve=true,
+	keywords = {lightning=true},
 	level_range = {1, 50},
 	rarity = 5,
 	cost = 4,
@@ -67,6 +71,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of nature resistance", suffix=true, instant_resolve=true,
+	keywords = {nature=true},
 	level_range = {1, 50},
 	rarity = 5,
 	cost = 4,
@@ -79,6 +84,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "flaming ", prefix=true, instant_resolve=true,
+	keywords = {flaming=true},
 	level_range = {15, 50},
 	rarity = 8,
 	cost = 8,
@@ -89,6 +95,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "icy ", prefix=true, instant_resolve=true,
+	keywords = {icy=true},
 	level_range = {15, 50},
 	rarity = 8,
 	cost = 10,
@@ -99,6 +106,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "acidic ", prefix=true, instant_resolve=true,
+	keywords = {acidic=true},
 	level_range = {15, 50},
 	rarity = 8,
 	cost = 8,
@@ -109,6 +117,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "shocking ", prefix=true, instant_resolve=true,
+	keywords = {shocking=true},
 	level_range = {15, 50},
 	rarity = 8,
 	cost = 8,
@@ -120,6 +129,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of resilience", suffix=true, instant_resolve=true,
+	keywords = {resilience=true},
 	level_range = {10, 50},
 	rarity = 10,
 	cost = 10,
@@ -131,6 +141,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of deflection", suffix=true, instant_resolve=true,
+	keywords = {deflection=true},
 	level_range = {10, 50},
 	rarity = 10,
 	cost = 10,
@@ -142,6 +153,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "reflective ", prefix=true, instant_resolve=true,
+	keywords = {reflective=true},
 	level_range = {10, 50},
 	rarity = 10,
 	cost = 10,
@@ -156,6 +168,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "brilliant ", prefix=true, instant_resolve=true,
+	keywords = {brilliant=true},
 	level_range = {15, 50},
 	rarity = 8,
 	cost = 8,
@@ -167,6 +180,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of crushing", suffix=true, instant_resolve=true,
+	keywords = {crushing=true},
 	level_range = {15, 50},
 	greater_ego = 1,
 	rarity = 16,
@@ -181,6 +195,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of resistance", suffix=true, instant_resolve=true,
+	keywords = {resistance=true},
 	level_range = {15, 50},
 	greater_ego = 1,
 	rarity = 16,
@@ -198,6 +213,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of the night", suffix=true, instant_resolve=true,
+	keywords = {night=true},
 	level_range = {15, 50},
 	greater_ego = 1,
 	rarity = 16,
@@ -214,6 +230,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "impervious ", prefix=true, instant_resolve=true,
+	keywords = {impervious=true},
 	level_range = {40, 50},
 	greater_ego = 1,
 	rarity = 18,
@@ -230,6 +247,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "spellplated ", prefix=true, instant_resolve=true,
+	keywords = {spellplated=true},
 	level_range = {10, 50},
 	greater_ego = 1,
 	rarity = 15,
@@ -246,6 +264,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "blood-runed ", prefix=true, instant_resolve=true,
+	keywords = {runed=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 17,
@@ -262,6 +281,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "obstinate ", prefix=true, instant_resolve=true,
+	keywords = {obstinate=true},
 	level_range = {40, 50},
 	greater_ego = 1,
 	rarity = 30,
@@ -287,6 +307,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "living ", prefix=true, instant_resolve=true,
+	keywords = {living=true},
 	level_range = {10, 50},
 	greater_ego = 1,
 	rarity = 15,
@@ -305,6 +326,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "coruscating ", prefix=true, instant_resolve=true,
+	keywords = {coruscating=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 30,
@@ -328,6 +350,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "crackling ", prefix=true, instant_resolve=true,
+	keywords = {crackling=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 30,
@@ -351,6 +374,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "corrosive ", prefix=true, instant_resolve=true,
+	keywords = {corrosive=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 30,
@@ -374,6 +398,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "wintry ", prefix=true, instant_resolve=true,
+	keywords = {wintry=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 30,
@@ -394,30 +419,10 @@ newEntity{
 	},
 }
 
-newEntity{
-	power_source = {technique=true},
-	name = " of soul-stealing", suffix=true, instant_resolve=true,
-	level_range = {30, 50},
-	greater_ego = 1,
-	rarity = 20,
-	cost = 40,
-	wielder = {
-		resists={
-			[DamageType.MIND] = resolvers.mbonus_material(15, 5),
-		},
-		inc_stats = {
-			[Stats.STAT_WIL] = resolvers.mbonus_material(9, 1),
-		},
-		resource_leech_chance = resolvers.mbonus_material(10, 5),
-		resource_leech_value = resolvers.mbonus_material(1, 1),
-		max_life = resolvers.mbonus_material(70, 40, function(e, v) return 0, -v end),
-		healing_factor = resolvers.mbonus_material(30, 20, function(e, v) v=v/100 return 0, -v end),
-	},
-}
-
 newEntity{
 	power_source = {arcane=true},
 	name = " of displacement", suffix=true, instant_resolve=true,
+	keywords = {displacement=true},
 	level_range = {10, 50},
 	greater_ego = 1,
 	rarity = 25,
@@ -432,6 +437,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of the earth", suffix=true, instant_resolve=true,
+	keywords = {earth=true},
 	level_range = {10, 50},
 	greater_ego = 1,
 	rarity = 25,
@@ -446,6 +452,7 @@ newEntity{
 newEntity{
 	power_source = {natural=true},
 	name = " of the sun", suffix=true, instant_resolve=true,
+	keywords = {sun=true},
 	level_range = {1, 50},
 	greater_ego = 1,
 	rarity = 10,
@@ -463,6 +470,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of patience", suffix=true, instant_resolve=true,
+	keywords = {patience=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -482,6 +490,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of harmony", suffix=true, instant_resolve=true,
+	keywords = {harmony=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 30,
@@ -498,6 +507,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of faith", suffix=true, instant_resolve=true,
+	keywords = {faith=true},
 	level_range = {1, 50},
 	greater_ego = 1,
 	rarity = 10,
diff --git a/game/modules/tome/data/general/objects/egos/sling.lua b/game/modules/tome/data/general/objects/egos/sling.lua
index 16efe5627ee5f81d1c40e4675c38fb0d2e047616..8e541d87d6ad91f144237a454d3238285fcd9ea5 100644
--- a/game/modules/tome/data/general/objects/egos/sling.lua
+++ b/game/modules/tome/data/general/objects/egos/sling.lua
@@ -24,6 +24,7 @@ local Stats = require("engine.interface.ActorStats")
 newEntity{
 	power_source = {technique=true},
 	name = " of power", suffix=true, instant_resolve=true,
+	keywords = {power=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 6,
@@ -33,6 +34,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "mighty ", prefix=true, instant_resolve=true,
+	keywords = {mighty=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 4,
@@ -44,6 +46,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "steady ", prefix=true, instant_resolve=true,
+	keywords = {steady=true},
 	level_range = {20, 50},
 	rarity = 9,
 	cost = 10,
@@ -55,6 +58,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of dexterity (#STATBONUS#)", suffix=true, instant_resolve=true,
+	keywords = {dex=true},
 	level_range = {20, 50},
 	rarity = 7,
 	cost = 7,
@@ -66,6 +70,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of speed", suffix=true, instant_resolve=true,
+	keywords = {speed=true},
 	level_range = {20, 50},
 	rarity = 7,
 	cost = 7,
@@ -75,6 +80,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of great speed", suffix=true, instant_resolve=true,
+	keywords = {SPEED=true},
 	level_range = {40, 50},
 	greater_ego = 1,
 	rarity = 10,
@@ -85,6 +91,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "halfling ", prefix=true, instant_resolve=true,
+	keywords = {halfling=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 24,
diff --git a/game/modules/tome/data/general/objects/egos/staves.lua b/game/modules/tome/data/general/objects/egos/staves.lua
index ddc30a44f4684ab17589128b1f1445f606ba6661..64f889ff1d4587fc23adc7ab1a07c6d403ffcea7 100644
--- a/game/modules/tome/data/general/objects/egos/staves.lua
+++ b/game/modules/tome/data/general/objects/egos/staves.lua
@@ -27,6 +27,7 @@ local Talents = require "engine.interface.ActorTalents"
 newEntity{
 	power_source = {arcane=true},
 	name = " of power", suffix=true, instant_resolve=true,
+	keywords = {power=true},
 	level_range = {1, 50},
 	rarity = 4,
 	cost = 8,
@@ -38,6 +39,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "shimmering ", prefix=true, instant_resolve=true,
+	keywords = {shimmering=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 8,
@@ -50,6 +52,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of might", suffix=true, instant_resolve=true,
+	keywords = {might=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 8,
@@ -61,6 +64,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of wizardry", suffix=true, instant_resolve=true,
+	keywords = {wizardry=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 18,
@@ -75,6 +79,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "magma ", prefix=true, instant_resolve=true,
+	keywords = {magma=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 5,
@@ -86,6 +91,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "temporal ", prefix=true, instant_resolve=true,
+	keywords = {temporal=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 5,
@@ -97,6 +103,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "icy ", prefix=true, instant_resolve=true,
+	keywords = {icy=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 5,
@@ -108,6 +115,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "acidic ", prefix=true, instant_resolve=true,
+	keywords = {acidic=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 5,
@@ -119,6 +127,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "crackling ", prefix=true, instant_resolve=true,
+	keywords = {crackling=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 5,
@@ -129,7 +138,8 @@ newEntity{
 
 newEntity{
 	power_source = {nature=true},
-	name = "naturalist ", prefix=true, instant_resolve=true,
+	name = "naturalist's ", prefix=true, instant_resolve=true,
+	keywords = {naturalist=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 5,
@@ -141,6 +151,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "blighted ", prefix=true, instant_resolve=true,
+	keywords = {blighted=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 5,
@@ -152,6 +163,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "sunbathed ", prefix=true, instant_resolve=true,
+	keywords = {sunbathed=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 5,
@@ -163,6 +175,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "shadow ", prefix=true, instant_resolve=true,
+	keywords = {shadow=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 5,
@@ -174,6 +187,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of divination", suffix=true, instant_resolve=true,
+	keywords = {divination=true},
 	level_range = {1, 50},
 	rarity = 8,
 	cost = 8,
@@ -187,6 +201,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of conveyance", suffix=true, instant_resolve=true,
+	keywords = {conveyance=true},
 	level_range = {1, 50},
 	rarity = 10,
 	cost = 10,
@@ -208,6 +223,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of illumination", suffix=true, instant_resolve=true,
+	keywords = {illumination=true},
 	level_range = {1, 50},
 	rarity = 8,
 	cost = 8,
@@ -221,6 +237,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of blasting", suffix=true, instant_resolve=true,
+	keywords = {blasting=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 18,
@@ -241,6 +258,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of warding", suffix=true, instant_resolve=true,
+	keywords = {warding=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -260,6 +278,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of channeling", suffix=true, instant_resolve=true,
+	keywords = {channeling=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 18,
@@ -275,6 +294,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "lifebinding ", prefix=true, instant_resolve=true,
+	keywords = {lifebinding=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 16,
@@ -292,6 +312,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "infernal ", prefix=true, instant_resolve=true,
+	keywords = {infernal=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 16,
@@ -309,6 +330,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "chronomancer's ", prefix=true, instant_resolve=true,
+	keywords = {chronomancer=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 16,
@@ -326,15 +348,14 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "abyssal ", prefix=true, instant_resolve=true,
+	keywords = {abyssal=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 40,
 	cost = 80,
 	wielder = {
-		blind_immune = resolvers.mbonus_material(15, 10, function(e, v) v=v/100 return 0, -v end),
-		confusion_immune = resolvers.mbonus_material(15, 10, function(e, v) v=v/100 return 0, -v end),
-		resource_leech_chance = resolvers.mbonus_material(10, 5),
-		resource_leech_value = resolvers.mbonus_material(1, 1),
+		resource_leech_chance = resolvers.mbonus_material(4, 1, function(e, v) v=v*10 return 0, v end),
+		resource_leech_value = resolvers.mbonus_material(15, 5),
 		inc_damage = {
 			[DamageType.COLD] = resolvers.mbonus_material(10, 5),
 			[DamageType.DARKNESS] = resolvers.mbonus_material(10, 5),
@@ -349,6 +370,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "magelord's ", prefix=true, instant_resolve=true,
+	keywords = {magelord=true},
 	level_range = {10, 50},
 	greater_ego = 1,
 	rarity = 40,
@@ -362,6 +384,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "polar ", prefix=true, instant_resolve=true,
+	keywords = {polar=true},
 	level_range = {10, 50},
 	greater_ego = 1,
 	rarity = 15,
@@ -380,6 +403,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "ethereal ", prefix=true, instant_resolve=true,
+	keywords = {ethereal=true},
 	level_range = {1, 50},
 	greater_ego = 1,
 	rarity = 10,
@@ -396,6 +420,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "bloodlich's ", prefix=true, instant_resolve=true,
+	keywords = {bloodlich=true},
 	level_range = {40, 50},
 	greater_ego = 1,
 	rarity = 40,
@@ -416,6 +441,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of conflagration", suffix=true, instant_resolve=true,
+	keywords = {conflagration=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 30,
@@ -435,6 +461,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of the stars", suffix=true, instant_resolve=true,
+	keywords = {stars=true},
 	level_range = {1, 50},
 	greater_ego = 1,
 	rarity = 15,
@@ -452,6 +479,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of ruination", suffix=true, instant_resolve=true,
+	keywords = {ruination=true},
 	level_range = {1, 50},
 	greater_ego = 1,
 	rarity = 15,
@@ -470,6 +498,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of lightning", suffix=true, instant_resolve=true,
+	keywords = {lightning=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 30,
diff --git a/game/modules/tome/data/general/objects/egos/weapon.lua b/game/modules/tome/data/general/objects/egos/weapon.lua
index e75ad8e24d9891c0ad6a396eb267c7b43699e5f0..738bcc7ed29b36645a982db3adaa293c10a0fc2a 100644
--- a/game/modules/tome/data/general/objects/egos/weapon.lua
+++ b/game/modules/tome/data/general/objects/egos/weapon.lua
@@ -25,6 +25,7 @@ local Talents = require "engine.interface.ActorTalents"
 newEntity{
 	power_source = {arcane=true},
 	name = "flaming ", prefix=true, instant_resolve=true,
+	keywords = {flaming=true},
 	level_range = {1, 50},
 	rarity = 5,
 	combat = {
@@ -34,6 +35,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "icy ", prefix=true, instant_resolve=true,
+	keywords = {icy=true},
 	level_range = {15, 50},
 	rarity = 5,
 	combat = {
@@ -43,6 +45,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "acidic ", prefix=true, instant_resolve=true,
+	keywords = {acidic=true},
 	level_range = {1, 50},
 	rarity = 5,
 	combat = {
@@ -52,6 +55,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "shocking ", prefix=true, instant_resolve=true,
+	keywords = {shocking=true},
 	level_range = {1, 50},
 	rarity = 5,
 	combat = {
@@ -62,6 +66,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "poisonous ", prefix=true, instant_resolve=true,
+	keywords = {poisonous=true},
 	level_range = {1, 50},
 	rarity = 5,
 	combat = {
@@ -72,6 +77,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "slime-covered ", prefix=true, instant_resolve=true,
+	keywords = {slime=true},
 	level_range = {10, 50},
 	rarity = 5,
 	combat = {
@@ -82,6 +88,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of accuracy", suffix=true, instant_resolve=true,
+	keywords = {accuracy=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 4,
@@ -91,6 +98,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "phase ", prefix=true, instant_resolve=true,
+	keywords = {phase=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 6,
@@ -100,6 +108,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "elemental ", prefix=true, instant_resolve=true,
+	keywords = {elemental=true},
 	level_range = {35, 50},
 	greater_ego = 1,
 	rarity = 25,
@@ -117,6 +126,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of massacre", suffix=true, instant_resolve=true,
+	keywords = {massacre=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 4,
@@ -128,6 +138,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of torment", suffix=true, instant_resolve=true,
+	keywords = {torment=true},
 	level_range = {15, 50},
 	rarity = 18,
 	cost = 22,
@@ -152,6 +163,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of rage", suffix=true, instant_resolve=true,
+	keywords = {rage=true},
 	level_range = {35, 50},
 	greater_ego = 1,
 	rarity = 25,
@@ -175,6 +187,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of corruption", suffix=true, instant_resolve=true,
+	keywords = {corruption=true},
 	level_range = {35, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -194,6 +207,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of crippling", suffix=true, instant_resolve=true,
+	keywords = {crippling=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 4,
@@ -205,6 +219,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of daylight", suffix=true, instant_resolve=true,
+	keywords = {daylight=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 4,
@@ -216,6 +231,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of defense", suffix=true, instant_resolve=true,
+	keywords = {defense=true},
 	level_range = {1, 50},
 	rarity = 3,
 	cost = 4,
@@ -227,6 +243,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of ruin", suffix=true, instant_resolve=true,
+	keywords = {ruin=true},
 	level_range = {15, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -245,6 +262,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "quick ", prefix=true, instant_resolve=true,
+	keywords = {quick=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 25,
@@ -262,6 +280,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "mystic ", prefix=true, instant_resolve=true,
+	keywords = {mystic=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -278,6 +297,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "blazebringer's ", prefix=true, instant_resolve=true,
+	keywords = {blaze=true},
 	level_range = {10, 50},
 	greater_ego = 1,
 	rarity = 35,
@@ -300,6 +320,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "glacial ", prefix=true, instant_resolve=true,
+	keywords = {glacial=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 45,
@@ -322,6 +343,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "thunderous ", prefix=true, instant_resolve=true,
+	keywords = {thunder=true},
 	level_range = {10, 50},
 	greater_ego = 1,
 	rarity = 35,
@@ -344,6 +366,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "caustic ", prefix=true, instant_resolve=true,
+	keywords = {caustic=true},
 	level_range = {10, 50},
 	greater_ego = 1,
 	rarity = 35,
@@ -366,6 +389,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "vile ", prefix=true, instant_resolve=true,
+	keywords = {vile=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 45,
@@ -388,6 +412,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = "warbringer's ", prefix=true, instant_resolve=true,
+	keywords = {warbringer=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 30,
@@ -407,6 +432,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of shearing", suffix=true, instant_resolve=true,
+	keywords = {shearing=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -425,6 +451,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of plague", suffix=true, instant_resolve=true,
+	keywords = {plague=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 30,
@@ -448,6 +475,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of projection", suffix=true, instant_resolve=true,
+	keywords = {projection=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 30,
@@ -459,6 +487,7 @@ newEntity{
 newEntity{
 	power_source = {technique=true},
 	name = " of sacrifice", suffix=true, instant_resolve=true,
+	keywords = {sacrifice=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -474,6 +503,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of paradox", suffix=true, instant_resolve=true,
+	keywords = {paradox=true},
 	level_range = {1, 50},
 	greater_ego = 1,
 	rarity = 15,
@@ -493,3 +523,22 @@ newEntity{
 	},
 }
 
+newEntity{
+	power_source = {nature=true},
+	name = "insatiable ", prefix=true, instant_resolve=true,
+	keywords = {insatiable=true},
+	level_range = {1, 50},
+	greater_ego = 1,
+	rarity = 60,
+	cost = 40,
+	wielder = {
+		resource_leech_chance = resolvers.mbonus_material(4, 1, function(e, v) v=v*10 return 0, v end),
+		resource_leech_value = resolvers.mbonus_material(15, 5),
+	},
+	combat = {
+		melee_project = {
+			[DamageType.NATURE] = resolvers.mbonus_material(25, 5),
+		},
+	},
+}
+
diff --git a/game/modules/tome/data/general/objects/egos/wizard-hat.lua b/game/modules/tome/data/general/objects/egos/wizard-hat.lua
index 54622e6a10a0252aa7f35f382f4199869830ede5..4bbfe27cb61b2b19a2e6a6f5e95625bc60368a46 100644
--- a/game/modules/tome/data/general/objects/egos/wizard-hat.lua
+++ b/game/modules/tome/data/general/objects/egos/wizard-hat.lua
@@ -27,6 +27,7 @@ local DamageType = require "engine.DamageType"
 newEntity{
 	power_source = {technique=true},
 	name = " of absorption", suffix=true, instant_resolve=true,
+	keywords = {absorb=true},
 	level_range = {20, 50},
 	rarity = 10,
 	cost = 20,
@@ -40,6 +41,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of magic (#STATBONUS#)", suffix=true, instant_resolve=true,
+	keywords = {magic=true},
 	level_range = {1, 50},
 	rarity = 6,
 	cost = 4,
@@ -50,6 +52,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of willpower (#STATBONUS#)", suffix=true, instant_resolve=true,
+	keywords = {will=true},
 	level_range = {1, 50},
 	rarity = 6,
 	cost = 4,
@@ -60,6 +63,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of cunning (#STATBONUS#)", suffix=true, instant_resolve=true,
+	keywords = {cun=true},
 	level_range = {1, 50},
 	rarity = 6,
 	cost = 4,
@@ -70,6 +74,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of telepathic range", suffix=true,
+	keywords = {range=true},
 	level_range = {40, 50},
 	rarity = 15,
 	cost = 15,
@@ -80,6 +85,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "shimmering ", prefix=true, instant_resolve=true,
+	keywords = {shimmering=true},
 	level_range = {1, 50},
 	rarity = 10,
 	cost = 4,
@@ -91,6 +97,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of seeing ", suffix=true, instant_resolve=true,
+	keywords = {seeing=true},
 	level_range = {1, 50},
 	rarity = 5,
 	cost = 6,
@@ -103,6 +110,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of the arcanist", suffix=true, instant_resolve=true,
+	keywords = {arcanist=true},
 	level_range = {25, 50},
 	greater_ego = 1,
 	rarity = 18,
@@ -120,6 +128,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "insulating ", prefix=true, instant_resolve=true,
+	keywords = {insulating=true},
 	level_range = {1, 50},
 	rarity = 6,
 	cost = 5,
@@ -134,6 +143,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "grounding ", prefix=true, instant_resolve=true,
+	keywords = {grounding=true},
 	level_range = {1, 50},
 	rarity = 6,
 	cost = 5,
@@ -148,6 +158,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "anchoring ", prefix=true, instant_resolve=true,
+	keywords = {anchoring=true},
 	level_range = {1, 50},
 	rarity = 6,
 	cost = 5,
@@ -162,6 +173,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "stabilizing ", prefix=true, instant_resolve=true,
+	keywords = {stable=true},
 	level_range = {1, 50},
 	rarity = 6,
 	cost = 5,
@@ -174,6 +186,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "cleansing ", prefix=true, instant_resolve=true,
+	keywords = {cleanse=true},
 	level_range = {1, 50},
 	rarity = 9,
 	cost = 9,
@@ -189,6 +202,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "runed ", prefix=true, instant_resolve=true,
+	keywords = {runed=true},
 	level_range = {15, 50},
 	rarity = 10,
 	cost = 10,
@@ -200,6 +214,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of knowledge", suffix=true, instant_resolve=true,
+	keywords = {knowledge=true},
 	level_range = {15, 50},
 	greater_ego = 1,
 	rarity = 13,
@@ -216,6 +231,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of the Spellblaze", suffix=true, instant_resolve=true,
+	keywords = {Spellblaze=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 15,
@@ -233,6 +249,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "aegis ", prefix=true, instant_resolve=true,
+	keywords = {aegis=true},
 	level_range = {10, 50},
 	greater_ego = 1,
 	rarity = 11,
@@ -249,6 +266,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "soothing ", prefix=true, instant_resolve=true,
+	keywords = {soothing=true},
 	level_range = {25, 50},
 	greater_ego = 1,
 	rarity = 17,
@@ -263,6 +281,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "whispering ", prefix=true, instant_resolve=true,
+	keywords = {whisper=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 30,
@@ -286,6 +305,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "sorcerer's ", prefix=true, instant_resolve=true,
+	keywords = {sorcerer=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -302,6 +322,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "augmenting ", prefix=true, instant_resolve=true,
+	keywords = {augment=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 35,
@@ -320,6 +341,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = "purifying ", prefix=true, instant_resolve=true,
+	keywords = {purify=true},
 	level_range = {1, 50},
 	greater_ego = 1,
 	rarity = 10,
@@ -337,6 +359,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = "eldritch ", prefix=true, instant_resolve=true,
+	keywords = {eldritch=true},
 	level_range = {1, 50},
 	greater_ego = 1,
 	rarity = 10,
@@ -353,6 +376,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of madness", suffix=true, instant_resolve=true,
+	keywords = {madness=true},
 	level_range = {30, 50},
 	greater_ego = 1,
 	rarity = 30,
@@ -374,6 +398,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of earthrunes", suffix=true, instant_resolve=true,
+	keywords = {earthrunes=true},
 	level_range = {1, 50},
 	greater_ego = 1,
 	rarity = 15,
@@ -391,6 +416,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of rainmaking", suffix=true, instant_resolve=true,
+	keywords = {rainmaking=true},
 	level_range = {1, 50},
 	greater_ego = 1,
 	rarity = 15,
@@ -408,6 +434,7 @@ newEntity{
 newEntity{
 	power_source = {arcane=true},
 	name = " of the Brotherhood", suffix=true, instant_resolve=true,
+	keywords = {Brotherhood=true},
 	level_range = {20, 50},
 	greater_ego = 1,
 	rarity = 20,
@@ -424,6 +451,7 @@ newEntity{
 newEntity{
 	power_source = {nature=true},
 	name = " of warding", suffix=true, instant_resolve=true,
+	keywords = {warding=true},
 	level_range = {1, 50},
 	greater_ego = 1,
 	rarity = 15,
diff --git a/game/modules/tome/data/maps/tutorial/tutorial2.lua b/game/modules/tome/data/maps/tutorial/tutorial2.lua
index 5b09309933f8fcb63f2e95a25f0d949209696905..2b25cebe22c58e76c08698fb2244605c8616de7f 100644
--- a/game/modules/tome/data/maps/tutorial/tutorial2.lua
+++ b/game/modules/tome/data/maps/tutorial/tutorial2.lua
@@ -19,7 +19,8 @@
 
 startx = 0
 starty = 1
-
+endx = 5
+endy = 14
 
 defineTile("0", "SIGN", nil, nil, "TUTORIAL_INTRO_MECHANICS_GUIDE")
 defineTile("1", "SIGN", nil, nil, "TUTORIAL_STATS1")
diff --git a/game/modules/tome/data/maps/tutorial/tutorial3.lua b/game/modules/tome/data/maps/tutorial/tutorial3.lua
index 18d9f029f5107767d78967c0312d1812f1aafc5a..955afabdb164e444b0d4604696397fd2674e4c52 100644
--- a/game/modules/tome/data/maps/tutorial/tutorial3.lua
+++ b/game/modules/tome/data/maps/tutorial/tutorial3.lua
@@ -19,7 +19,8 @@
 
 startx = 1
 starty = 1
-
+endx = 5
+endy = 8
 
 defineTile("0", "SIGN_FLOOR", nil, nil, "TUTORIAL_INFORMED1")
 defineTile("1", "SIGN_FLOOR", nil, nil, "TUTORIAL_SCALE1")
diff --git a/game/modules/tome/data/maps/tutorial/tutorial4.lua b/game/modules/tome/data/maps/tutorial/tutorial4.lua
index bdefac1cb2fda35670828064506837728641bcad..c0020f9ccd160030d4fb37a0a344df3a83ad4541 100644
--- a/game/modules/tome/data/maps/tutorial/tutorial4.lua
+++ b/game/modules/tome/data/maps/tutorial/tutorial4.lua
@@ -19,6 +19,8 @@
 
 startx = 4
 starty = 15
+endx = 3
+endy = 9
 
 addSpot({22, 16}, "door", "sealed")
 
diff --git a/game/modules/tome/data/maps/tutorial/tutorial5.lua b/game/modules/tome/data/maps/tutorial/tutorial5.lua
index 9a496b63c8c94883879de03260fd54b6084d2e58..c23b054bbed4f120a3d69f04e89deb5820eeba68 100644
--- a/game/modules/tome/data/maps/tutorial/tutorial5.lua
+++ b/game/modules/tome/data/maps/tutorial/tutorial5.lua
@@ -19,6 +19,8 @@
 
 startx = 13
 starty = 2 
+endx = 2
+endy = 5
 
 defineTile("0", "SIGN_CAVE", nil, nil, "TUTORIAL_TIMED0")
 defineTile("1", "SIGN_CAVE", nil, nil, "TUTORIAL_TIMED1")
diff --git a/game/modules/tome/data/talents/misc/misc.lua b/game/modules/tome/data/talents/misc/misc.lua
index 0918de28e8322b1595a6a3c58c4e1a04989241d7..e706587f225ec2d33c3cc32b7c2dda86f83d889d 100644
--- a/game/modules/tome/data/talents/misc/misc.lua
+++ b/game/modules/tome/data/talents/misc/misc.lua
@@ -193,6 +193,7 @@ newTalent{
 	no_energy = true,
 	cooldown = function(self, t) return 55 - self:getTalentLevel(t) * 5 end,
 	tactical = { DEFEND = 2 },
+	
 	action = function(self, t)
 		local target = self
 		local todel = {}
@@ -211,7 +212,7 @@ newTalent{
 			local e = target.tempeffect_def[eff_id]
 			if e.status == "detrimental" then
 				local save = self[save_for_effects[e.type]](self)
-				local decrease = math.floor(save/10)
+				local decrease = math.floor(save/5)
 				print("About to reduce duration of... %s. Will use %s. Reducing duration by %d", e.desc, save_for_effects[e.type])
 				p.dur = p.dur - decrease
 				if p.dur <= 0 then todel[#todel+1] = eff end
@@ -224,15 +225,15 @@ newTalent{
 		return true
 	end,
 	info = function(self, t)
-		local physical_reduction = math.floor(self:combatPhysicalResist()/10)
-		local spell_reduction = math.floor(self:combatSpellResist()/10)
-		local mental_reduction = math.floor(self:combatMentalResist()/10)
+		local physical_reduction = math.floor(self:combatPhysicalResist()/5)
+		local spell_reduction = math.floor(self:combatSpellResist()/5)
+		local mental_reduction = math.floor(self:combatMentalResist()/5)
 		return ([[Not the Master himself, nor all the orcs in fallen Reknor, nor even the terrifying unknown beyond Reknor's portal could slow your pursuit of the Staff of Absorption.
 		Children will hear of your relentlessness in song for years to come. 
 		When activated, this ability reduces the duration of all active detrimental effects by the appropriate saving throw duration reduction.
-		Physical and poison effect durations reduced by %d turns
-		Bane, disease, hex, and magical effect durations reduced by %d turns
-		Curse and mental effect durations reduced by %d turns]]):
+		Physical effect durations reduced by %d turns
+		Magical effect durations reduced by %d turns
+		Mental effect durations reduced by %d turns]]):
 		format(physical_reduction, spell_reduction, mental_reduction)
 	end,
 }
diff --git a/game/modules/tome/data/talents/techniques/2hweapon.lua b/game/modules/tome/data/talents/techniques/2hweapon.lua
index df9ab66541691601b915f8f953f48c9bc30d19f9..739438cee5e1dc9203e43980bf85fe579b38139d 100644
--- a/game/modules/tome/data/talents/techniques/2hweapon.lua
+++ b/game/modules/tome/data/talents/techniques/2hweapon.lua
@@ -372,7 +372,7 @@ newTalent{
 		return true
 	end,
 	info = function(self, t)
-		return ([[Enter a blood frenzy, draining stamina quickly(-4 stamina/turn). Each time you kill a foe while in blood frenzy you gain a cumulative bonus to weapon power of %d.
+		return ([[Enter a blood frenzy, draining stamina quickly(-4 stamina/turn). Each time you kill a foe while in blood frenzy you gain a cumulative bonus to physical power of %d.
 		Each turn the bonus decreases by 2.]]):format(2 * self:getTalentLevel(t))
 	end,
 }
diff --git a/game/modules/tome/data/talents/techniques/magical-combat.lua b/game/modules/tome/data/talents/techniques/magical-combat.lua
index 168ce622cd8202907286d5d99bae4841901b3aaa..8bc660ce6bc78ec087b03c7ec21011f6ba4b2534 100644
--- a/game/modules/tome/data/talents/techniques/magical-combat.lua
+++ b/game/modules/tome/data/talents/techniques/magical-combat.lua
@@ -123,8 +123,8 @@ newTalent{
 	points = 5,
 	require = techs_req4,
 	info = function(self, t)
-		return ([[Raw magical damage channels through the caster's weapon, increasing physical damage by %d.
-		The damage scales with Magic and Dexterity.]]):
+		return ([[Raw magical damage channels through the caster's weapon, increasing physical power by %d.
+		The bonus scales with Magic and Dexterity.]]):
 		format(self:combatSpellpower() * self:getTalentLevel(Talents.T_ARCANE_DESTRUCTION) / 9)
 	end,
 }
diff --git a/game/modules/tome/data/talents/techniques/unarmed-training.lua b/game/modules/tome/data/talents/techniques/unarmed-training.lua
index a6df1932c1bda08e60501702e68c9dc31ac83fdb..6bc5ce855b90b6519850ed650346378747514752 100644
--- a/game/modules/tome/data/talents/techniques/unarmed-training.lua
+++ b/game/modules/tome/data/talents/techniques/unarmed-training.lua
@@ -35,7 +35,7 @@ newTalent{
 	end,
 	info = function(self, t)
 		local damage = t.getDamage(self, t)
-		return ([[Adds %d damage to all glove and gauntlet strikes.
+		return ([[Grants %d physical power when armed only with gloves or gauntlets.
 		This talent's effects will scale with your level.]]):
 		format(damage)
 	end,
diff --git a/game/modules/tome/data/texts/intro-tutorial-combat-stats.lua b/game/modules/tome/data/texts/intro-tutorial-combat-stats.lua
index 2b1e001d32211ec4fcbf7ba4ee0a2bae8a58ac88..276ad6100050b002378d16471ff05177de571614 100644
--- a/game/modules/tome/data/texts/intro-tutorial-combat-stats.lua
+++ b/game/modules/tome/data/texts/intro-tutorial-combat-stats.lua
@@ -18,11 +18,7 @@
 -- darkgod@te4.org
 
 return [[
-#LIGHT_GREEN#Welcome to ToME 4!#LAST#
+#LIGHT_GREEN#Welcome to ToME 4#LAST#
 
-For testing purposes, this tutorial is temporarily replacing the usual tutorial. For the release, both tutorials will be available from the birther interface.
-
-It is intended as a showcase for some new changes to the way combat stats work. At the end of the tutorial, you'll find directions pointing you to a document that details what exactly has been changed, and why. Constructive feedback is greatly appreciated!
-
-Onward! The #GOLD#Dungeon of Adventurer Enlightenment#WHITE# awaits you!
+The #GOLD#Dungeon of Adventurer Enlightenment#WHITE# awaits you ahead!
 ]]
diff --git a/game/modules/tome/data/texts/tutorial/stats-tier/tier11.lua b/game/modules/tome/data/texts/tutorial/stats-tier/tier11.lua
index 2c8be797f414c31fbb5ada3f8bf2fdd3a7efdeaf..0e2ec3103c25b3dc1275b86c69f69f48cf705da4 100644
--- a/game/modules/tome/data/texts/tutorial/stats-tier/tier11.lua
+++ b/game/modules/tome/data/texts/tutorial/stats-tier/tier11.lua
@@ -20,10 +20,4 @@
 return [[
 #GOLD#Congratulations!#WHITE# You have completed the combat stats tutorial. Hopefully it has been of some use to you.
 
-#LIGHT_GREEN#For those who want to join the discussion on these new mechanics, please first read the document "Transparency.rtf" found here:#WHITE#
-
-tome/data/texts/Transparency.rtf
-
-It explains why changes were made, along with detailing some of the peripheral changes that weren't made obvious in this tutorial. It also points out areas in which further playtesting is needed. This is an essay, not code. Open it with something appropriate to avoid being overwhelmed by a dense wall of text.
-
 ]]
diff --git a/game/modules/tome/data/timed_effects/physical.lua b/game/modules/tome/data/timed_effects/physical.lua
index 09524ff8e53e86feb7ba007f806a695396392ace..c892ec0a648b71856f0a6b6dff1d9102b63b60d0 100644
--- a/game/modules/tome/data/timed_effects/physical.lua
+++ b/game/modules/tome/data/timed_effects/physical.lua
@@ -1430,7 +1430,7 @@ newEffect{
 newEffect{
 	name = "OFFBALANCE",
 	desc = "Off-balance",
-	long_desc = function(self, eff) return ("Badly off balance. Attackers gain a 25% bonus to physical critical strike power, the target movement speed is also reduced by 20%%.") end,
+	long_desc = function(self, eff) return ("Badly off balance. Attackers gain a 25% bonus to physical critical strike power and movement speed is reduced by 20%%.") end,
 	type = "physical",
 	subtype = { ["cross tier"]=true },
 	status = "detrimental",
diff --git a/game/modules/tome/dialogs/CharacterSheet.lua b/game/modules/tome/dialogs/CharacterSheet.lua
index f7f415331b4fce48d0dc91539955f77937a416b4..0adfe19df5782d67b80c5e525bde440ef1e22f27 100644
--- a/game/modules/tome/dialogs/CharacterSheet.lua
+++ b/game/modules/tome/dialogs/CharacterSheet.lua
@@ -549,7 +549,7 @@ function _M:drawDialog(kind, actor_to_compare)
 				if mean and dam then
 					s:drawColorStringBlended(self.font, WeaponTxt, w, h, 255, 255, 255, true) h = h + self.font_h
 					text = compare_fields(player, actor_to_compare, function(actor, ...) return math.floor(actor:combatAttack(...)) end, "%3d", "%+.0f", 1, false, false, mean)
-					dur_text = ("%d"):format(math.floor(player:combatAttack(o.combat)/10))
+					dur_text = ("%d"):format(math.floor(player:combatAttack(o.combat)/5))
 					self:mouseTooltip(self.TOOLTIP_COMBAT_ATTACK, s:drawColorStringBlended(self.font, ("Accuracy    : #00ff00#%s  [+%s effect duration]"):format(text, dur_text), w, h, 255, 255, 255, true)) h = h + self.font_h
 					text = compare_fields(player, actor_to_compare, function(actor, ...) return actor:combatDamage(...) end, "%3d", "%+.0f", 1, false, false, dam)
 					self:mouseTooltip(self.TOOLTIP_COMBAT_DAMAGE, s:drawColorStringBlended(self.font, ("Damage      : #00ff00#%s"):format(text), w, h, 255, 255, 255, true)) h = h + self.font_h
@@ -570,7 +570,7 @@ function _M:drawDialog(kind, actor_to_compare)
 			local mean, dam = player.combat, player.combat
 			if mean and dam then
 				text = compare_fields(player, actor_to_compare, function(actor, ...) return math.floor(actor:combatAttack(...)) end, "%3d", "%+.0f", 1, false, false, mean)
-				dur_text = ("%d"):format(math.floor(player:combatAttack(player.combat)/10))
+				dur_text = ("%d"):format(math.floor(player:combatAttack(player.combat)/5))
 				self:mouseTooltip(self.TOOLTIP_COMBAT_ATTACK, s:drawColorStringBlended(self.font, ("Accuracy    : #00ff00#%s  [+%s effect duration]"):format(text, dur_text), w, h, 255, 255, 255, true)) h = h + self.font_h
 				text = compare_fields(player, actor_to_compare, function(actor, ...) return actor:combatDamage(...) end, "%3d", "%+.0f", 1, false, false, dam)
 				self:mouseTooltip(self.TOOLTIP_COMBAT_DAMAGE, s:drawColorStringBlended(self.font, ("Damage      : #00ff00#%s"):format(text), w, h, 255, 255, 255, true)) h = h + self.font_h
@@ -599,7 +599,7 @@ function _M:drawDialog(kind, actor_to_compare)
 				if mean and dam then
 					s:drawColorStringBlended(self.font, "#LIGHT_BLUE#Off Hand:", w, h, 255, 255, 255, true) h = h + self.font_h
 					text = compare_fields(player, actor_to_compare, function(actor, ...) return math.floor(actor:combatAttack(...)) end, "%3d", "%+.0f", 1, false, false, mean)
-					dur_text = ("%d"):format(math.floor(player:combatAttack(o.combat)/10))
+					dur_text = ("%d"):format(math.floor(player:combatAttack(o.combat)/5))
 					self:mouseTooltip(self.TOOLTIP_COMBAT_ATTACK, s:drawColorStringBlended(self.font, ("Accuracy    : #00ff00#%s  [+%s effect duration]"):format(text, dur_text), w, h, 255, 255, 255, true)) h = h + self.font_h
 					text = compare_fields(player, actor_to_compare, function(actor, ...) return actor:combatDamage(...) end, "%3d", "%+.0f", offmult, false, false, dam)
 					self:mouseTooltip(self.TOOLTIP_COMBAT_DAMAGE, s:drawColorStringBlended(self.font, ("Damage      : #00ff00#%s"):format(text), w, h, 255, 255, 255, true)) h = h + self.font_h
@@ -622,7 +622,7 @@ function _M:drawDialog(kind, actor_to_compare)
 
 		s:drawColorStringBlended(self.font, "#LIGHT_BLUE#Magical:", w, h, 255, 255, 255, true) h = h + self.font_h
 		text = compare_fields(player, actor_to_compare, function(actor, ...) return actor:combatSpellpower() end, "%3d", "%+.0f")
-		dur_text = ("%d"):format(math.floor(player:combatSpellpower()/10))
+		dur_text = ("%d"):format(math.floor(player:combatSpellpower()/5))
 		self:mouseTooltip(self.TOOLTIP_SPELL_POWER, s:drawColorStringBlended(self.font, ("Spellpower  : #00ff00#%s  [+%s effect duration]"):format(text, dur_text), w, h, 255, 255, 255, true)) h = h + self.font_h
 		text = compare_fields(player, actor_to_compare, function(actor, ...) return actor:combatSpellCrit() end, "%d%%", "%+.0f%%")
 		self:mouseTooltip(self.TOOLTIP_SPELL_CRIT, s:drawColorStringBlended(self.font,  ("Crit. chance: #00ff00#%s"):format(text), w, h, 255, 255, 255, true)) h = h + self.font_h
@@ -630,7 +630,7 @@ function _M:drawDialog(kind, actor_to_compare)
 		self:mouseTooltip(self.TOOLTIP_SPELL_SPEED, s:drawColorStringBlended(self.font, ("Spell speed : #00ff00#%s"):format(text), w, h, 255, 255, 255, true)) h = h + self.font_h
 		h = h + self.font_h
 		text = compare_fields(player, actor_to_compare, function(actor, ...) return actor:combatMindpower() end, "%3d", "%+.0f")
-		dur_text = ("%d"):format(math.floor(player:combatMindpower()/10))
+		dur_text = ("%d"):format(math.floor(player:combatMindpower()/5))
 		self:mouseTooltip(self.TOOLTIP_MINDPOWER, s:drawColorStringBlended(self.font, ("Mindpower: #00ff00#%s  [+%s effect duration]"):format(text, dur_text), w, h, 255, 255, 255, true)) h = h + self.font_h
 
 		h = 0
@@ -737,13 +737,13 @@ function _M:drawDialog(kind, actor_to_compare)
 		h = h + self.font_h
 		s:drawColorStringBlended(self.font, "#LIGHT_BLUE#Saves:", w, h, 255, 255, 255, true) h = h + self.font_h
 		text = compare_fields(player, actor_to_compare, function(actor, ...) return math.floor(actor:combatPhysicalResist(true)) end, "%3d", "%+.0f")
-		dur_text = ("%d"):format(math.floor(player:combatPhysicalResist(true)/10))
+		dur_text = ("%d"):format(math.floor(player:combatPhysicalResist(true)/5))
 		self:mouseTooltip(self.TOOLTIP_PHYS_SAVE,   s:drawColorStringBlended(self.font, ("Physical: #00ff00#%s  [-%s effect duration]"):format(text, dur_text), w, h, 255, 255, 255, true)) h = h + self.font_h
 		text = compare_fields(player, actor_to_compare, function(actor, ...) return math.floor(actor:combatSpellResist(true)) end, "%3d", "%+.0f")
-		dur_text = ("%d"):format(math.floor(player:combatSpellResist(true)/10))
+		dur_text = ("%d"):format(math.floor(player:combatSpellResist(true)/5))
 		self:mouseTooltip(self.TOOLTIP_SPELL_SAVE,  s:drawColorStringBlended(self.font, ("Spell   : #00ff00#%s  [-%s effect duration]"):format(text, dur_text), w, h, 255, 255, 255, true)) h = h + self.font_h
 		text = compare_fields(player, actor_to_compare, function(actor, ...) return math.floor(actor:combatMentalResist(true)) end, "%3d", "%+.0f")
-		dur_text = ("%d"):format(math.floor(player:combatMentalResist(true)/10))
+		dur_text = ("%d"):format(math.floor(player:combatMentalResist(true)/5))
 		self:mouseTooltip(self.TOOLTIP_MENTAL_SAVE, s:drawColorStringBlended(self.font, ("Mental  : #00ff00#%s  [-%s effect duration]"):format(text, dur_text), w, h, 255, 255, 255, true)) h = h + self.font_h
 
 		h = 0