diff --git a/game/modules/tome/data/general/traps/alarm.lua b/game/modules/tome/data/general/traps/alarm.lua
index b5acaa9a9dbb4ca92b5022e2dd1e957905e60cfb..42b4b909bfb911bd03f50859f62ef59224a99fe6 100644
--- a/game/modules/tome/data/general/traps/alarm.lua
+++ b/game/modules/tome/data/general/traps/alarm.lua
@@ -27,8 +27,8 @@ newEntity{ define_as = "TRAP_ALARM",
 
 newEntity{ base = "TRAP_ALARM",
 	name = "intruder alarm", auto_id = true, image = "trap/trap_intruder_alarm_01.png",
-	detect_power = resolvers.clscale(36,50,8,0.5),
-	disarm_power = resolvers.clscale(20,50,8,0.5),
+	detect_power = resolvers.clscale(26,25,8,0.5),
+	disarm_power = resolvers.clscale(30,25,8,0.5),
 	rarity = 3, level_range = {1, 50},
 	color=colors.UMBER,
 	message = "@Target@ triggers an alarm!",
@@ -55,8 +55,8 @@ newEntity{ base = "TRAP_ALARM",
 
 newEntity{ base = "TRAP_ALARM",
 	name = "summoning alarm", auto_id = true, image = "trap/trap_summoning_alarm_01.png",
-	detect_power = resolvers.clscale(30,50,8,0.5),
-	disarm_power = resolvers.clscale(46,50,8,0.5),
+	detect_power = resolvers.clscale(30,25,8,0.5),
+	disarm_power = resolvers.clscale(46,25,8,0.5),
 	rarity = 3, level_range = {10, 50},
 	color=colors.DARK_UMBER,
 	nb_summon = resolvers.mbonus(3, 2),
diff --git a/game/modules/tome/data/general/traps/annoy.lua b/game/modules/tome/data/general/traps/annoy.lua
index 60927edd2c2bedf1aae60d61e0e3b0fb5841ba71..94272ed8ce6387b7543b52494b353ee433905bed 100644
--- a/game/modules/tome/data/general/traps/annoy.lua
+++ b/game/modules/tome/data/general/traps/annoy.lua
@@ -25,9 +25,9 @@ newEntity{ define_as = "TRAP_ANNOY",
 
 newEntity{ base = "TRAP_ANNOY",
 	name = "lethargy trap", auto_id = true, image = "trap/trap_lethargy_rune_01.png",
-	detect_power = resolvers.clscale(20,50,8,0.5),
-	disarm_power = resolvers.clscale(36,50,8,0.5),
-	rarity = 3, level_range = {1, 50},
+	detect_power = resolvers.clscale(20,25,10,0.5),
+	disarm_power = resolvers.clscale(36,25,10,0.5),
+	rarity = 3, level_range = {5, nil},
 	color=colors.BLUE,
 	message = "@Target@ seems less active.",
 	unided_name = "pattern of glyphs",
@@ -50,9 +50,9 @@ newEntity{ base = "TRAP_ANNOY",
 
 newEntity{ base = "TRAP_ANNOY",
 	name = "burning curse trap", auto_id = true, image = "trap/trap_burning_curse_01.png",
-	detect_power = resolvers.clscale(50,50,8,0.5),
-	disarm_power = resolvers.clscale(58,50,8,0.5),
-	rarity = 3, level_range = {30, 50},
+	detect_power = resolvers.clscale(35,30,15,0.5),
+	disarm_power = resolvers.clscale(40,30,15,0.5),
+	rarity = 3, level_range = {30, nil},
 	color=colors.ORCHID,
 	message = "@Target@ triggers a burning curse!",
 	unided_name = "dark pentagram",
diff --git a/game/modules/tome/data/general/traps/complex.lua b/game/modules/tome/data/general/traps/complex.lua
index a9d9789617f231dd33634bf2590f9930f40dab38..c08d7a3981ebc35b909ef76bdd1b8ef4df8f2434 100644
--- a/game/modules/tome/data/general/traps/complex.lua
+++ b/game/modules/tome/data/general/traps/complex.lua
@@ -31,8 +31,8 @@ newEntity{ define_as = "TRAP_COMPLEX",
 newEntity{ base = "TRAP_COMPLEX",
 	subtype = "boulder",
 	name = "giant boulder trap", image = "trap/trap_pressure_plate_01.png",
-	detect_power = resolvers.clscale(40, 50, 8, 0.5),
-	disarm_power = resolvers.clscale(50, 50, 8, 0.5),
+	detect_power = resolvers.clscale(30, 25, 8, 0.5),
+	disarm_power = resolvers.clscale(35, 25, 8, 0.5),
 	rarity = 3, level_range = {1, nil},
 	color = colors.UMBER,
 	message = "@Target@ walks on a trap, and there is a loud noise.",
@@ -77,11 +77,12 @@ newEntity{ base = "TRAP_COMPLEX",
 	end,
 }
 
+local spin_types = {engine.DamageType.ARCANE_SILENCE, engine.DamageType.DARKSTUN, engine.DamageType.COLDNEVERMOVE}
 newEntity{ base = "TRAP_COMPLEX",
 	subtype = "arcane",
 	name = "spinning beam trap", image = "trap/trap_glyph_explosion_01_64.png",
-	detect_power = resolvers.clscale(40, 50, 8, 0.5),
-	disarm_power = resolvers.clscale(50, 50, 8, 0.5),
+	detect_power = resolvers.clscale(35, 35, 8, 0.5),
+	disarm_power = resolvers.clscale(40, 35, 8, 0.5),
 	rarity = 3, level_range = {1, nil},
 	color=colors.PURPLE,
 	message = "@Target@ activates a trap, and its magical energies change.",
@@ -108,14 +109,15 @@ newEntity{ base = "TRAP_COMPLEX",
 		self.list = list
 		self.on_added = nil
 	end,
-	dammode = rng.table{engine.DamageType.ARCANE_SILENCE, engine.DamageType.DARKSTUN, engine.DamageType.COLDNEVERMOVE},
+	dammodes = spin_types,
+	dammode = resolvers.rngtable(spin_types),
 	dam = resolvers.clscale(200, 50, 50, 0.75, 0),
 	mag = resolvers.mbonus(200, 30),
 	unlock_talent_on_disarm = {tid = Talents.T_BEAM_TRAP, chance = 35},
 	triggered = function(self, x, y, who)
 		if self:reactionToward(who) < 0 then
 			local dammode = self.dammode
-			while dammode == self.dammode do dammode = rng.table{engine.DamageType.ARCANE_SILENCE, engine.DamageType.DARKSTUN, engine.DamageType.COLDNEVERMOVE} end
+			while dammode == self.dammode do dammode = rng.table(self.dammodes) end
 			self.dammode = dammode
 
 			if not self.added_to_level then game.level:addEntity(self) self.added_to_level = true end
@@ -151,8 +153,8 @@ newEntity{ base = "TRAP_COMPLEX",
 newEntity{ base = "TRAP_COMPLEX",
 	subtype = "nature",
 	name = "poison spore", image = "trap/trap_acid_blast_01.png",
-	detect_power = resolvers.clscale(40, 50, 8, 0.5),
-	disarm_power = resolvers.clscale(50, 50, 8, 0.5),
+	detect_power = resolvers.clscale(25, 25, 8, 0.5),
+	disarm_power = resolvers.clscale(35, 25, 8, 0.5),
 	rarity = 3, level_range = {1, nil},
 	color=colors.GREEN,
 	message = "@Target@ walks on a poison spore.",
@@ -214,8 +216,8 @@ newEntity{ base = "TRAP_COMPLEX",
 newEntity{ base = "TRAP_COMPLEX",
 	subtype = "arcane",
 	name = "delayed explosion trap", image = "trap/trap_fire_rune_01.png",
-	detect_power = resolvers.clscale(40, 50, 8, 0.5),
-	disarm_power = resolvers.clscale(50, 50, 8, 0.5),
+	detect_power = resolvers.clscale(35, 25, 8, 0.5),
+	disarm_power = resolvers.clscale(45, 25, 8, 0.5),
 	rarity = 3, level_range = {1, nil},
 	color=colors.RED,
 	pressure_trap = true,
@@ -266,8 +268,8 @@ newEntity{ base = "TRAP_COMPLEX",
 newEntity{ base = "TRAP_COMPLEX",
 	subtype = "arcane",
 	name = "cold flames trap", image = "trap/trap_frost_rune_01.png",
-	detect_power = resolvers.clscale(40, 50, 8, 0.5),
-	disarm_power = resolvers.clscale(50, 50, 8, 0.5),
+	detect_power = resolvers.clscale(30, 25, 8, 0.5),
+	disarm_power = resolvers.clscale(35, 25, 8, 0.5),
 	rarity = 3, level_range = {1, nil},
 	color=colors.BLUE,
 	pressure_trap = true,
diff --git a/game/modules/tome/data/general/traps/elemental.lua b/game/modules/tome/data/general/traps/elemental.lua
index aa3f5fbc4fe0f237c1b9f1db1b595d12947b51de..8bc1ecdfdfe0217a436b3783ba65aebf073cc46d 100644
--- a/game/modules/tome/data/general/traps/elemental.lua
+++ b/game/modules/tome/data/general/traps/elemental.lua
@@ -50,8 +50,8 @@ newEntity{ define_as = "TRAP_ELEMENTAL_BLAST",
 newEntity{ base = "TRAP_ELEMENTAL",
 	subtype = "acid",
 	name = "acid trap", image = "trap/blast_acid01.png",
-	detect_power = resolvers.clscale(6,30,4,0.5),
-	disarm_power = resolvers.clscale(6,30,4,0.5),
+	detect_power = resolvers.clscale(6,10,4,0.5),
+	disarm_power = resolvers.clscale(6,10,4,0.5),
 	rarity = 3, level_range = {1, 30},
 	color_r=40, color_g=220, color_b=0,
 	message = "A stream of acid gushes onto @target@!",
@@ -62,8 +62,8 @@ newEntity{ base = "TRAP_ELEMENTAL",
 newEntity{ base = "TRAP_ELEMENTAL",
 	subtype = "fire",
 	name = "fire trap", image = "trap/blast_fire01.png",
-	detect_power = resolvers.clscale(6,30,4,0.5),
-	disarm_power = resolvers.clscale(6,30,4,0.5),
+	detect_power = resolvers.clscale(6,10,4,0.5),
+	disarm_power = resolvers.clscale(6,10,4,0.5),
 	rarity = 3, level_range = {1, 30},
 	color_r=220, color_g=0, color_b=0,
 	message = "A bolt of fire blasts onto @target@!",
@@ -74,8 +74,8 @@ newEntity{ base = "TRAP_ELEMENTAL",
 newEntity{ base = "TRAP_ELEMENTAL",
 	subtype = "cold",
 	name = "ice trap", image = "trap/blast_ice01.png",
-	detect_power = resolvers.clscale(6,30,4,0.5),
-	disarm_power = resolvers.clscale(6,30,4,0.5),
+	detect_power = resolvers.clscale(6,10,4,0.5),
+	disarm_power = resolvers.clscale(6,10,4,0.5),
 	rarity = 3, level_range = {1, 30},
 	color_r=150, color_g=150, color_b=220,
 	message = "A bolt of ice blasts onto @target@!",
@@ -87,8 +87,8 @@ newEntity{ base = "TRAP_ELEMENTAL",
 newEntity{ base = "TRAP_ELEMENTAL",
 	subtype = "lightning",
 	name = "lightning trap", image = "trap/blast_lightning01.png",
-	detect_power = resolvers.clscale(6,30,4,0.5),
-	disarm_power = resolvers.clscale(6,30,4,0.5),
+	detect_power = resolvers.clscale(6,10,4,0.5),
+	disarm_power = resolvers.clscale(6,10,4,0.5),
 	rarity = 3, level_range = {1, 30},
 	color_r=0, color_g=0, color_b=220,
 	message = "A bolt of lightning fires onto @target@!",
@@ -100,8 +100,8 @@ newEntity{ base = "TRAP_ELEMENTAL",
 	subtype = "poison",
 	name = "poison trap",
 	image = "trap/trap_poison_burst_01.png",
-	detect_power = resolvers.clscale(6,30,4,0.5),
-	disarm_power = resolvers.clscale(6,30,4,0.5),
+	detect_power = resolvers.clscale(6,10,4,0.5),
+	disarm_power = resolvers.clscale(6,10,4,0.5),
 	rarity = 3, level_range = {1, 30},
 	color_r=0, color_g=220, color_b=0,
 	message = "A stream of poison gushes onto @target@!",
@@ -117,9 +117,9 @@ newEntity{ base = "TRAP_ELEMENTAL_BLAST",
 	subtype = "acid",
 	name = "acid blast trap",
 	image = "trap/trap_acid_blast_01.png",
-	detect_power = resolvers.clscale(50,50,8,0.5),
-	disarm_power = resolvers.clscale(50,50,8,0.5),
-	rarity = 3, level_range = {20, 50},
+	detect_power = resolvers.clscale(35,25,8,0.5),
+	disarm_power = resolvers.clscale(35,25,8,0.5),
+	rarity = 3, level_range = {20, nil},
 	color_r=40, color_g=220, color_b=0,
 	message = "A stream of acid gushes onto @target@!",
 	unided_name = "corroded spot",
@@ -129,9 +129,9 @@ newEntity{ base = "TRAP_ELEMENTAL_BLAST",
 newEntity{ base = "TRAP_ELEMENTAL_BLAST",
 	subtype = "fire",
 	name = "fire blast trap", image = "trap/trap_fire_rune_01.png",
-	detect_power = resolvers.clscale(50,50,8,0.5),
-	disarm_power = resolvers.clscale(50,50,8,0.5),
-	rarity = 3, level_range = {20, 50},
+	detect_power = resolvers.clscale(35,25,8,0.5),
+	disarm_power = resolvers.clscale(35,25,8,0.5),
+	rarity = 3, level_range = {20, nil},
 	color_r=220, color_g=0, color_b=0,
 	message = "A bolt of fire fires onto @target@!",
 	unided_name = "burnt spot",
@@ -142,9 +142,9 @@ newEntity{ base = "TRAP_ELEMENTAL_BLAST",
 newEntity{ base = "TRAP_ELEMENTAL_BLAST",
 	subtype = "cold",
 	name = "ice blast trap", image = "trap/trap_frost_rune_01.png",
-	detect_power = resolvers.clscale(50,50,8,0.5),
-	disarm_power = resolvers.clscale(50,50,8,0.5),
-	rarity = 3, level_range = {20, 50},
+	detect_power = resolvers.clscale(35,25,8,0.5),
+	disarm_power = resolvers.clscale(35,25,8,0.5),
+	rarity = 3, level_range = {20, nil},
 	color_r=150, color_g=150, color_b=220,
 	message = "A bolt of ice blasts onto @target@!",
 	unided_name = "frozen spot",
@@ -155,9 +155,9 @@ newEntity{ base = "TRAP_ELEMENTAL_BLAST",
 newEntity{ base = "TRAP_ELEMENTAL_BLAST",
 	subtype = "lightning",
 	name = "lightning blast trap", image = "trap/trap_lightning_rune_02.png",
-	detect_power = resolvers.clscale(50,50,8,0.5),
-	disarm_power = resolvers.clscale(50,50,8,0.5),
-	rarity = 3, level_range = {20, 50},
+	detect_power = resolvers.clscale(35,25,8,0.5),
+	disarm_power = resolvers.clscale(35,25,8,0.5),
+	rarity = 3, level_range = {20, nil},
 	color_r=0, color_g=0, color_b=220,
 	message = "A bolt of lightning fires onto @target@!",
 	unided_name = "arcing spot",
@@ -167,9 +167,9 @@ newEntity{ base = "TRAP_ELEMENTAL_BLAST",
 newEntity{ base = "TRAP_ELEMENTAL_BLAST", image = "trap/trap_poison_blast_01.png",
 	subtype = "poison",
 	name = "poison blast trap",
-	detect_power = resolvers.clscale(50,50,8,0.5),
-	disarm_power = resolvers.clscale(50,50,8,0.5),
-	rarity = 3, level_range = {20, 50},
+	detect_power = resolvers.clscale(35,25,8,0.5),
+	disarm_power = resolvers.clscale(35,25,8,0.5),
+	rarity = 3, level_range = {20, nil},
 	color_r=0, color_g=220, color_b=0,
 	message = "A stream of poison gushes onto @target@!",
 	dam = resolvers.clscale(160, 50, 40, 0.75, 60),
@@ -180,9 +180,9 @@ newEntity{ base = "TRAP_ELEMENTAL_BLAST", image = "trap/trap_poison_blast_01.png
 newEntity{ base = "TRAP_ELEMENTAL_BLAST", image = "trap/trap_purging.png",
 	subtype = "nature",
 	name = "anti-magic trap",
-	detect_power = resolvers.clscale(50,50,8,0.5),
-	disarm_power = resolvers.clscale(50,50,8,0.5),
-	rarity = 8, level_range = {25, 50},
+	detect_power = resolvers.clscale(40,25,15,0.5),
+	disarm_power = resolvers.clscale(35,25,15,0.5),
+	rarity = 8, level_range = {25, nil},
 	color_r=40, color_g=220, color_b=0,
 	message = "@Target@ is blasted with anti-magic forces!",
 	dam = resolvers.clscale(160, 50, 40, 0.75, 60),
@@ -196,9 +196,9 @@ newEntity{ base = "TRAP_ELEMENTAL_BLAST", image = "trap/trap_purging.png",
 newEntity{ base = "TRAP_ELEMENTAL_BLAST",
 	subtype = "fire",
 	name = "dragon fire trap", image = "trap/trap_dragonsfire.png",
-	detect_power = resolvers.clscale(50,50,8,0.5),
-	disarm_power = resolvers.clscale(50,50,8,0.5),
-	rarity = 8, level_range = {25, 50},
+	detect_power = resolvers.clscale(40,25,12,0.5),
+	disarm_power = resolvers.clscale(40,25,12,0.5),
+	rarity = 8, level_range = {25, nil},
 	color_r=220, color_g=0, color_b=0,
 	message = "A powerful blast of fire impacts @target@!",
 	unided_name = "burned area",
diff --git a/game/modules/tome/data/general/traps/natural_forest.lua b/game/modules/tome/data/general/traps/natural_forest.lua
index ac22ccafba6b58a144a6718e28f2ff8e908222d6..b2b364d5635127b69380e4f3e2194b1d49926a2c 100644
--- a/game/modules/tome/data/general/traps/natural_forest.lua
+++ b/game/modules/tome/data/general/traps/natural_forest.lua
@@ -30,8 +30,8 @@ newEntity{ define_as = "TRAP_NATURAL_FOREST",
 
 newEntity{ base = "TRAP_NATURAL_FOREST",
 	name = "sliding rock", auto_id = true, image = "trap/trap_slippery_rocks_01.png",
-	detect_power = resolvers.clscale(6,50,8,0.5),
-	disarm_power = resolvers.clscale(16,50,8,0.5),
+	detect_power = resolvers.clscale(6,10,4,0.5),
+	disarm_power = resolvers.clscale(16,10,8,0.5),
 	rarity = 3, level_range = {1, 50},
 	color=colors.UMBER,
 	pressure_trap = true,
@@ -50,8 +50,8 @@ newEntity{ base = "TRAP_NATURAL_FOREST",
 
 newEntity{ base = "TRAP_NATURAL_FOREST",
 	name = "poison vine", auto_id = true, image = "trap/poison_vines01.png",
-	detect_power = resolvers.clscale(8,50,8,0.5),
-	disarm_power = resolvers.clscale(2,50,8,0.5),
+	detect_power = resolvers.clscale(8,10,6,0.5),
+	disarm_power = resolvers.clscale(12,10,8,0.5),
 	rarity = 3, level_range = {1, 50},
 	color=colors.GREEN,
 	message = "A poisonous vine strikes at @Target@!",
diff --git a/game/modules/tome/data/general/traps/teleport.lua b/game/modules/tome/data/general/traps/teleport.lua
index 0630f7f5b779deca5b53c897ec7a1d43385a5328..1587ffb4a6f5f21d7c183147845e43e1d84338e9 100644
--- a/game/modules/tome/data/general/traps/teleport.lua
+++ b/game/modules/tome/data/general/traps/teleport.lua
@@ -27,7 +27,7 @@ newEntity{ base = "TRAP_TELEPORT",
 	name = "teleport trap", auto_id = true, image = "trap/trap_teleport_01.png",
 	desc = [[Teleports the victim away.  How does anyone get close enough to disarm this trap...?]],
 	detect_power = resolvers.mbonus(5, 40), disarm_power = resolvers.mbonus(10, 50),
-	rarity = 5, level_range = {5, 50},
+	rarity = 5, level_range = {5, nil},
 	color=colors.UMBER,
 	pressure_trap = true,
 	message = "@Target@ shimmers briefly.",
diff --git a/game/modules/tome/data/general/traps/temporal.lua b/game/modules/tome/data/general/traps/temporal.lua
index 16a4e48637b7b25a63ecf9b8d0cb5c995d41f803..f554a54ad331fa07e082c71530437f88ec60c631 100644
--- a/game/modules/tome/data/general/traps/temporal.lua
+++ b/game/modules/tome/data/general/traps/temporal.lua
@@ -27,8 +27,8 @@ newEntity{ define_as = "TRAP_TEMPORAL",
 
 newEntity{ base = "TRAP_TEMPORAL",
 	name = "disturbed pocket of time", auto_id = true, image = "trap/disturbed_pocket_of_time.png",
-	detect_power = resolvers.clscale(10,50,8,0.5),
-	disarm_power = resolvers.clscale(35,50,8,0.5),
+	detect_power = resolvers.clscale(10,25,8,0.5),
+	disarm_power = resolvers.clscale(25,25,8,0.5),
 	rarity = 3, level_range = {1, 50},
 	color=colors.VIOLET,
 	message = "@Target@ is caught in a distorted pocket of time!",
@@ -42,9 +42,9 @@ newEntity{ base = "TRAP_TEMPORAL",
 
 newEntity{ base = "TRAP_TEMPORAL",
 	name = "extremely disturbed pocket of time", auto_id = true, image = "trap/extremely_disturbed_pocket_of_time.png",
-	detect_power = resolvers.clscale(8,50,8,0.5),
-	disarm_power = resolvers.clscale(45,50,8,0.5),
-	rarity = 6, level_range = {1, 50},
+	detect_power = resolvers.clscale(8,25,8,0.5),
+	disarm_power = resolvers.clscale(32,25,8,0.5),
+	rarity = 6, level_range = {1, nil},
 	color=colors.PURPLE,
 	message = "@Target@ is caught in an extremely distorted pocket of time!",
 	unided_name = "distortion",