diff --git a/game/modules/tome/class/GameState.lua b/game/modules/tome/class/GameState.lua
index 77b69a1766e67f3080ff9e759492cbd128a5c2dc..3b843b5d61fa318df7dd6186971111a9e0be4348 100644
--- a/game/modules/tome/class/GameState.lua
+++ b/game/modules/tome/class/GameState.lua
@@ -758,7 +758,7 @@ local default_drops = function(zone, level, what)
 	if zone.default_drops then return zone.default_drops end
 	local lev = util.bound(math.ceil(zone:level_adjust_level(level, "object") / 10), 1, 5)
 	print("[TOME ENTITY FILTER] making default loot table for", what, lev)
-	return drop_tables[what][lev]
+	return table.clone(drop_tables[what][lev])
 end
 
 function _M:defaultEntityFilter(zone, level, type)
@@ -773,12 +773,15 @@ end
 function _M:entityFilterAlter(zone, level, type, filter)
 	if type ~= "object" then return end
 
-	if not filter.tome and not filter.special and not filter.unique and not filter.ego_chance and not filter.ego_filter and not filter.no_tome_drops then filter.tome = default_drops(zone, level, filter.tome_drops or "normal") end
+	if not filter.tome and not filter.defined and not filter.special and not filter.unique and not filter.ego_chance and not filter.ego_filter and not filter.no_tome_drops then filter.tome = default_drops(zone, level, filter.tome_drops or "normal") end
 
 	if filter.tome then
 		local t = (filter.tome == true) and default_drops(zone, level, "normal") or filter.tome
 		filter.tome = nil
 
+		-- If we request a specific type/subtype, we dont waht categories that could make that not happen
+		if filter.type or filter.subtype or filter.name then t.money = 0 end
+
 		local u = t.uniques or 0
 		local dg = u + (t.double_greater or 0)
 		local ge = dg + (t.greater_normal or 0)
diff --git a/game/modules/tome/data/birth/classes/afflicted.lua b/game/modules/tome/data/birth/classes/afflicted.lua
index c315171c956f0c6188ffcfd6d86d7d9fbee7b064..aaaa44c1e21881d2d775f47a4282866c6089a43f 100644
--- a/game/modules/tome/data/birth/classes/afflicted.lua
+++ b/game/modules/tome/data/birth/classes/afflicted.lua
@@ -70,8 +70,8 @@ newBirthDescriptor{
 	copy = {
 		max_life = 110,
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="battleaxe", name="iron battleaxe", autoreq=true},
-			{type="armor", subtype="light", name="rough leather armour", autoreq=true}
+			{type="weapon", subtype="battleaxe", name="iron battleaxe", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="light", name="rough leather armour", autoreq=true, ego_chance=-1000}
 		},
 	},
 	copy_add = {
@@ -112,8 +112,8 @@ newBirthDescriptor{
 	copy = {
 		max_life = 90,
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="staff", name="elm staff", autoreq=true},
-			{type="armor", subtype="cloth", name="linen robe", autoreq=true},
+			{type="weapon", subtype="staff", name="elm staff", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="cloth", name="linen robe", autoreq=true, ego_chance=-1000},
 		},
 	},
 	copy_add = {
diff --git a/game/modules/tome/data/birth/classes/archer.lua b/game/modules/tome/data/birth/classes/archer.lua
index 9c4fab435ea2e7612a02eaeeda8aea7338dc14b1..fc99149b6dc5a21aabd2c45ecbb241261ac82bda 100644
--- a/game/modules/tome/data/birth/classes/archer.lua
+++ b/game/modules/tome/data/birth/classes/archer.lua
@@ -70,7 +70,7 @@ newBirthDescriptor{
 	},
 	copy = {
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="longbow", name="elm longbow", autoreq=true},
+			{type="weapon", subtype="longbow", name="elm longbow", autoreq=true, ego_chance=-1000},
 		},
 		resolvers.generic(function(e)
 			e.auto_shoot_talent = e.T_SHOOT
@@ -111,7 +111,7 @@ newBirthDescriptor{
 	},
 	copy = {
 		equipment = resolvers.equip{ id=true,
-			{type="weapon", subtype="sling", name="rough leather sling", autoreq=true},
+			{type="weapon", subtype="sling", name="rough leather sling", autoreq=true, ego_chance=-1000},
 		},
 	},
 }
diff --git a/game/modules/tome/data/birth/classes/chronomancer.lua b/game/modules/tome/data/birth/classes/chronomancer.lua
index 458a3ac2ee9a3c9dd6d2b2414f29b597a64b2e05..b7cf06649f3d235759cf89de6a4c6e830c3fda9f 100644
--- a/game/modules/tome/data/birth/classes/chronomancer.lua
+++ b/game/modules/tome/data/birth/classes/chronomancer.lua
@@ -73,8 +73,8 @@ newBirthDescriptor{
 	copy = {
 		max_life = 90,
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="staff", name="elm staff", autoreq=true},
-			{type="armor", subtype="cloth", name="linen robe", autoreq=true},
+			{type="weapon", subtype="staff", name="elm staff", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="cloth", name="linen robe", autoreq=true, ego_chance=-1000},
 		},
 	},
 	copy_add = {
@@ -121,12 +121,12 @@ newBirthDescriptor{
 	copy = {
 		max_life = 100,
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="longsword", name="iron longsword", autoreq=true},
-			{type="weapon", subtype="dagger", name="iron dagger", autoreq=true},
-			{type="armor", subtype="light", name="rough leather armour", autoreq=true},
+			{type="weapon", subtype="longsword", name="iron longsword", autoreq=true, ego_chance=-1000},
+			{type="weapon", subtype="dagger", name="iron dagger", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="light", name="rough leather armour", autoreq=true, ego_chance=-1000},
 		},
 		resolvers.inventory{ id=true, inven="QS_MAINHAND",
-			{type="weapon", subtype="longbow", name="elm longbow", autoreq=true},
+			{type="weapon", subtype="longbow", name="elm longbow", autoreq=true, ego_chance=-1000},
 		},
 	},
 }
diff --git a/game/modules/tome/data/birth/classes/corrupted.lua b/game/modules/tome/data/birth/classes/corrupted.lua
index dfc2dc82d3db26ab7f837b7b2e7ebb6be4178e2b..f67eb8d111412478cb35d7d70ee2f3b87d7f93e4 100644
--- a/game/modules/tome/data/birth/classes/corrupted.lua
+++ b/game/modules/tome/data/birth/classes/corrupted.lua
@@ -68,9 +68,9 @@ newBirthDescriptor{
 	},
 	copy = {
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="waraxe", name="iron waraxe", autoreq=true},
-			{type="weapon", subtype="waraxe", name="iron waraxe", autoreq=true},
-			{type="armor", subtype="heavy", name="iron mail armour", autoreq=true}
+			{type="weapon", subtype="waraxe", name="iron waraxe", autoreq=true, ego_chance=-1000},
+			{type="weapon", subtype="waraxe", name="iron waraxe", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="heavy", name="iron mail armour", autoreq=true, ego_chance=-1000}
 		},
 	},
 	copy_add = {
@@ -111,8 +111,8 @@ newBirthDescriptor{
 	},
 	copy = {
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="staff", name="elm staff", autoreq=true},
-			{type="armor", subtype="cloth", name="linen robe", autoreq=true}
+			{type="weapon", subtype="staff", name="elm staff", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="cloth", name="linen robe", autoreq=true, ego_chance=-1000}
 		},
 	},
 }
diff --git a/game/modules/tome/data/birth/classes/divine.lua b/game/modules/tome/data/birth/classes/divine.lua
index 91592ddb580276ef7efff3d813a0168c3bbe59da..0ec548742c518317b5096ccec7db5ac4233d9b60 100644
--- a/game/modules/tome/data/birth/classes/divine.lua
+++ b/game/modules/tome/data/birth/classes/divine.lua
@@ -74,9 +74,9 @@ newBirthDescriptor{
 	copy = {
 		max_life = 110,
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="mace", name="iron mace", autoreq=true},
-			{type="armor", subtype="shield", name="iron shield", autoreq=true},
-			{type="armor", subtype="heavy", name="iron mail armour", autoreq=true},
+			{type="weapon", subtype="mace", name="iron mace", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="shield", name="iron shield", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="heavy", name="iron mail armour", autoreq=true, ego_chance=-1000},
 		},
 	},
 	copy_add = {
@@ -119,8 +119,8 @@ newBirthDescriptor{
 	copy = {
 		max_life = 90,
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="staff", name="elm staff", autoreq=true},
-			{type="armor", subtype="cloth", name="linen robe", autoreq=true}
+			{type="weapon", subtype="staff", name="elm staff", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="cloth", name="linen robe", autoreq=true, ego_chance=-1000}
 		},
 	},
 }
diff --git a/game/modules/tome/data/birth/classes/mage.lua b/game/modules/tome/data/birth/classes/mage.lua
index 6f6978ed0f9fd3089cae6e8edeed5a93304a5a2f..232d1fa4f9432c3f229e797629520518e9f70cdd 100644
--- a/game/modules/tome/data/birth/classes/mage.lua
+++ b/game/modules/tome/data/birth/classes/mage.lua
@@ -79,8 +79,8 @@ newBirthDescriptor{
 		faction = "angolwen",
 		max_life = 90,
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="staff", name="elm staff", autoreq=true},
-			{type="armor", subtype="cloth", name="linen robe", autoreq=true},
+			{type="weapon", subtype="staff", name="elm staff", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="cloth", name="linen robe", autoreq=true, ego_chance=-1000},
 		},
 		resolvers.generic(function(self)
 			if profile.mod.allow_build.mage_pyromancer then self:learnTalentType("spell/wildfire", false) self:setTalentTypeMastery("spell/wildfire", 1.3) end
@@ -129,8 +129,8 @@ newBirthDescriptor{
 	copy = {
 		max_life = 90,
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="staff", name="elm staff", autoreq=true},
-			{type="armor", subtype="cloth", name="linen robe", autoreq=true}
+			{type="weapon", subtype="staff", name="elm staff", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="cloth", name="linen robe", autoreq=true, ego_chance=-1000}
 		},
 		resolvers.inventory{ id=true,
 			{type="gem",},
diff --git a/game/modules/tome/data/birth/classes/psionic.lua b/game/modules/tome/data/birth/classes/psionic.lua
index 64aa5f396bba88a612f632b13ab1c156cdbc0bcc..93c3d153ce28367877a0ab3bac89b8c4bfdf4416 100644
--- a/game/modules/tome/data/birth/classes/psionic.lua
+++ b/game/modules/tome/data/birth/classes/psionic.lua
@@ -73,8 +73,8 @@ newBirthDescriptor{
 	copy = {
 		max_life = 110,
 		resolvers.equip{ id=true,
-			{type="armor", subtype="cloth", name="linen robe", autoreq=true},
-			{type="weapon", subtype="greatsword", name="iron greatsword", autoreq=true},
+			{type="armor", subtype="cloth", name="linen robe", autoreq=true, ego_chance=-1000},
+			{type="weapon", subtype="greatsword", name="iron greatsword", autoreq=true, ego_chance=-1000},
 		},
 		resolvers.generic(function(self)
 			-- Make and wield some alchemist gems
diff --git a/game/modules/tome/data/birth/classes/rogue.lua b/game/modules/tome/data/birth/classes/rogue.lua
index 2e4344a03f130025b3fa5bef13a0e5b6732b40df..ac4382d1b460a0c4eac129971fbbf57d3dfd2469 100644
--- a/game/modules/tome/data/birth/classes/rogue.lua
+++ b/game/modules/tome/data/birth/classes/rogue.lua
@@ -35,9 +35,9 @@ newBirthDescriptor{
 	copy = {
 		max_life = 100,
 		equipment = resolvers.equip{ id=true,
-			{type="weapon", subtype="dagger", name="iron dagger", autoreq=true},
-			{type="weapon", subtype="dagger", name="iron dagger", autoreq=true},
-			{type="armor", subtype="light", name="rough leather armour", autoreq=true}
+			{type="weapon", subtype="dagger", name="iron dagger", autoreq=true, ego_chance=-1000},
+			{type="weapon", subtype="dagger", name="iron dagger", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="light", name="rough leather armour", autoreq=true, ego_chance=-1000}
 		},
 	},
 }
diff --git a/game/modules/tome/data/birth/classes/tutorial.lua b/game/modules/tome/data/birth/classes/tutorial.lua
index 8a9f95138cd863138b21ca1fad3b2ea539cc8049..e0b89c330f8b4fe6e1d8c2fc51523175a6fb72d4 100644
--- a/game/modules/tome/data/birth/classes/tutorial.lua
+++ b/game/modules/tome/data/birth/classes/tutorial.lua
@@ -62,8 +62,8 @@ newBirthDescriptor{
 	copy = {
 		unused_stats = 0, unused_talents = 0, unused_generics = 0, unused_talents_types = 0,
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="longsword", name="iron longsword", autoreq=true},
-			{type="armor", subtype="shield", name="iron shield", autoreq=true},
+			{type="weapon", subtype="longsword", name="iron longsword", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="shield", name="iron shield", autoreq=true, ego_chance=-1000},
 		},
 	},
 }
diff --git a/game/modules/tome/data/birth/classes/warrior.lua b/game/modules/tome/data/birth/classes/warrior.lua
index 56adcd340e6f0ec3d672978220ec1e4211ef06e5..675f245b2f06aa188fdbb6eb8f0488e260d3a2cc 100644
--- a/game/modules/tome/data/birth/classes/warrior.lua
+++ b/game/modules/tome/data/birth/classes/warrior.lua
@@ -73,9 +73,9 @@ newBirthDescriptor{
 	},
 	copy = {
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="longsword", name="iron longsword", autoreq=true},
-			{type="armor", subtype="shield", name="iron shield", autoreq=true},
-			{type="armor", subtype="heavy", name="iron mail armour", autoreq=true}
+			{type="weapon", subtype="longsword", name="iron longsword", autoreq=true, ego_chance=-1000, ego_chance=-1000},
+			{type="armor", subtype="shield", name="iron shield", autoreq=true, ego_chance=-1000, ego_chance=-1000},
+			{type="armor", subtype="heavy", name="iron mail armour", autoreq=true, ego_chance=-1000, ego_chance=-1000}
 		},
 	},
 	copy_add = {
@@ -118,8 +118,8 @@ newBirthDescriptor{
 	},
 	copy = {
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="greatsword", name="iron greatsword", autoreq=true},
-			{type="armor", subtype="heavy", name="iron mail armour", autoreq=true},
+			{type="weapon", subtype="greatsword", name="iron greatsword", autoreq=true, ego_chance=-1000, ego_chance=-1000},
+			{type="armor", subtype="heavy", name="iron mail armour", autoreq=true, ego_chance=-1000, ego_chance=-1000},
 		},
 	},
 	copy_add = {
@@ -165,8 +165,8 @@ newBirthDescriptor{
 		max_life = 100,
 		talent_cd_reduction={[ActorTalents.T_FLAME]=-3, [ActorTalents.T_LIGHTNING]=-3, },
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="greatsword", name="iron greatsword", autoreq=true},
-			{type="armor", subtype="light", name="rough leather armour", autoreq=true},
+			{type="weapon", subtype="greatsword", name="iron greatsword", autoreq=true, ego_chance=-1000, ego_chance=-1000},
+			{type="armor", subtype="light", name="rough leather armour", autoreq=true, ego_chance=-1000, ego_chance=-1000},
 		},
 		resolvers.inscription("RUNE:_MANASURGE", {cooldown=25, dur=10, mana=620}),
 	},
diff --git a/game/modules/tome/data/birth/classes/wilder.lua b/game/modules/tome/data/birth/classes/wilder.lua
index f28a98a35c82ee4c74b5d7efba5845ac17c5894b..f76b873369a990bcf12a39df1a1409420be6948e 100644
--- a/game/modules/tome/data/birth/classes/wilder.lua
+++ b/game/modules/tome/data/birth/classes/wilder.lua
@@ -69,7 +69,7 @@ newBirthDescriptor{
 	copy = {
 		max_life = 90,
 		resolvers.equip{ id=true,
-			{type="armor", subtype="light", name="rough leather armour", autoreq=true}
+			{type="armor", subtype="light", name="rough leather armour", autoreq=true, ego_chance=-1000}
 		},
 	},
 }
@@ -108,8 +108,8 @@ newBirthDescriptor{
 	copy = {
 		max_life = 110,
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="battleaxe", name="iron battleaxe", autoreq=true},
-			{type="armor", subtype="light", name="rough leather armour", autoreq=true}
+			{type="weapon", subtype="battleaxe", name="iron battleaxe", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="light", name="rough leather armour", autoreq=true, ego_chance=-1000}
 		},
 	},
 	copy_add = {
diff --git a/game/modules/tome/data/birth/descriptors.lua b/game/modules/tome/data/birth/descriptors.lua
index c39acfd5cd5dd2c1c0d29e9e978ee88b247f1e0e..accd1a87cb584733f8f8e0623591191141438fa4 100644
--- a/game/modules/tome/data/birth/descriptors.lua
+++ b/game/modules/tome/data/birth/descriptors.lua
@@ -78,7 +78,7 @@ newBirthDescriptor{
 		max_level = 50,
 		money = 10,
 		resolvers.equip{ id=true,
-			{type="lite", subtype="lite", name="brass lantern"},
+			{type="lite", subtype="lite", name="brass lantern", ego_chance=-1000},
 		},
 		make_tile = function(e)
 			if not e.image then
diff --git a/game/modules/tome/data/birth/worlds.lua b/game/modules/tome/data/birth/worlds.lua
index 4be7d78fea52b086ace8d01fc47cb9dd435f777b..1cb25bb3c679ad3841737cadfac4d8ea4fe837d1 100644
--- a/game/modules/tome/data/birth/worlds.lua
+++ b/game/modules/tome/data/birth/worlds.lua
@@ -119,7 +119,7 @@ newBirthDescriptor{
 	copy = {
 		-- Give the orb of knowledge
 		resolvers.inventory{ id=true, {defined="ORB_KNOWLEDGE"}},
-		resolvers.equip{ id=true, {name="iron pickaxe"}},
+		resolvers.equip{ id=true, {name="iron pickaxe", ego_chance=-1000}},
 		resolvers.generic(function(e) e.hotkey[12] = {"inventory", "Orb of Knowledge"} end),
 		-- Override normal stuff
 		before_starting_zone = function(self)