diff --git a/game/engine/ai/simple.lua b/game/engine/ai/simple.lua
index 80a698a216a3b6e725f5a3964eb6979c3a4f184a..a3969265d3fb3d8bae26df6a31b92ba62f93fb9f 100644
--- a/game/engine/ai/simple.lua
+++ b/game/engine/ai/simple.lua
@@ -32,15 +32,16 @@ end)
 newAI("move_dmap", function(self)
 	if self.ai_target.actor then
 		local a = self.ai_target.actor
-		if self:hasLOS(a) then return self:runAI("move_simple") end
+		if self:hasLOS(a.x, a.y) then return self:runAI("move_simple") end
 
 		local c = a:distanceMap(self.x, self.y)
 		if not c then return end
 		local dir = 5
 		for i = 1, 9 do
-			local cd = a:distanceMap(util.coordAddDir(self.x, self.y, i))
-			print("looking for dmap", dir, i, "::", c, cd)
-			if cd and cd > c then c = cd; dir = i end
+			local sx, sy = util.coordAddDir(self.x, self.y, i)
+			local cd = a:distanceMap(sx, sy)
+--			print("looking for dmap", dir, i, "::", c, cd)
+			if cd and cd > c and self:canMove(sx, sy) then c = cd; dir = i end
 		end
 
 		return self:moveDirection(util.coordAddDir(self.x, self.y, dir))
@@ -50,15 +51,15 @@ end)
 newAI("flee_dmap", function(self)
 	if self.ai_target.actor then
 		local a = self.ai_target.actor
-		if self:hasLOS(a) then return self:runAI("move_simple") end
 
 		local c = a:distanceMap(self.x, self.y)
 		if not c then return end
 		local dir = 5
 		for i = 1, 9 do
-			local cd = a:distanceMap(util.coordAddDir(self.x, self.y, i))
-			print("looking for dmap", dir, i, "::", c, cd)
-			if cd and cd > c then c = cd; dir = i end
+			local sx, sy = util.coordAddDir(self.x, self.y, i)
+			local cd = a:distanceMap(sx, sy)
+--			print("looking for dmap", dir, i, "::", c, cd)
+			if not cd or (cd < c and self:canMove(sx, sy)) then c = cd; dir = i end
 		end
 
 		return self:moveDirection(util.coordAddDir(self.x, self.y, dir))
diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua
index c7b4fa053a820bd362f10d13392df1662fcda359..4f469e7fdaafcdd6baf478ac6677138a5283239b 100644
--- a/game/modules/tome/class/Actor.lua
+++ b/game/modules/tome/class/Actor.lua
@@ -58,6 +58,9 @@ module(..., package.seeall, class.inherit(
 -- Dont save the can_see_cache
 _M._no_save_fields.can_see_cache = true
 
+-- Use distance maps
+_M.__do_distance_map = true
+
 function _M:init(t, no_default)
 	-- Define some basic combat stats
 	self.combat_def = 0
diff --git a/game/modules/tome/data/general/npcs/ant.lua b/game/modules/tome/data/general/npcs/ant.lua
index d94277baf0ff7544b0f33079cb95a8e16fc6605e..ef8bf89c25a692d45cbd744436775efe5844efd0 100644
--- a/game/modules/tome/data/general/npcs/ant.lua
+++ b/game/modules/tome/data/general/npcs/ant.lua
@@ -27,7 +27,7 @@ newEntity{
 	display = "a", color=colors.WHITE,
 	body = { INVEN = 10 },
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=1, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, },
 	stats = { str=12, dex=10, mag=3, con=13 },
 	energy = { mod=1 },
 	combat_armor = 1, combat_def = 1,
diff --git a/game/modules/tome/data/general/npcs/aquatic_critter.lua b/game/modules/tome/data/general/npcs/aquatic_critter.lua
index a7cfaa6f2a20e60243fd9994e8d6d7399d7e347f..a63703d48372f894cbb6ac1dbeee4423fee8314c 100644
--- a/game/modules/tome/data/general/npcs/aquatic_critter.lua
+++ b/game/modules/tome/data/general/npcs/aquatic_critter.lua
@@ -27,7 +27,7 @@ newEntity{
 	display = "A", color=colors.WHITE,
 	body = { INVEN = 10 },
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=1, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, },
 	stats = { str=12, dex=10, mag=3, con=13 },
 	energy = { mod=1 },
 	combat_armor = 1, combat_def = 1,
diff --git a/game/modules/tome/data/general/npcs/aquatic_demon.lua b/game/modules/tome/data/general/npcs/aquatic_demon.lua
index 4908928e5ceb38bc9c6e1bcf284cd68b89052ff9..828f9eabad91424e8e83cc85ce6375ea65511d5b 100644
--- a/game/modules/tome/data/general/npcs/aquatic_demon.lua
+++ b/game/modules/tome/data/general/npcs/aquatic_demon.lua
@@ -27,7 +27,7 @@ newEntity{
 	display = "U", color=colors.WHITE,
 	body = { INVEN = 10 },
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=1, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, },
 	stats = { str=12, dex=10, mag=3, con=13 },
 	energy = { mod=1 },
 	combat_armor = 1, combat_def = 1,
diff --git a/game/modules/tome/data/general/npcs/bear.lua b/game/modules/tome/data/general/npcs/bear.lua
index de1035a10d0b4c87823fac236fc6907abe7c7431..dd91101d1d12ddf79b9685f596d594cd7ceece3b 100644
--- a/game/modules/tome/data/general/npcs/bear.lua
+++ b/game/modules/tome/data/general/npcs/bear.lua
@@ -30,7 +30,7 @@ newEntity{
 	max_stamina = 100,
 
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=5, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=5, },
 	energy = { mod=0.9 },
 	stats = { str=18, dex=13, mag=5, con=15 },
 	infravision = 20,
diff --git a/game/modules/tome/data/general/npcs/bone-giant.lua b/game/modules/tome/data/general/npcs/bone-giant.lua
index e4e6fce35479dba1283e9515ce8036b1dea5b3ed..c671c1514db884f7aa0e61ea1f21b10da9a65214 100644
--- a/game/modules/tome/data/general/npcs/bone-giant.lua
+++ b/game/modules/tome/data/general/npcs/bone-giant.lua
@@ -35,7 +35,7 @@ newEntity{
 	size_category = 4,
 
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=2, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, },
 	energy = { mod=1 },
 	stats = { str=20, dex=52, mag=16, con=16 },
 
diff --git a/game/modules/tome/data/general/npcs/canine.lua b/game/modules/tome/data/general/npcs/canine.lua
index 83c1f23683b53ca080ad48c9fe91c7026e119f4b..9dec0f5618a090dd6ff237bfa5808d9054783636 100644
--- a/game/modules/tome/data/general/npcs/canine.lua
+++ b/game/modules/tome/data/general/npcs/canine.lua
@@ -33,7 +33,7 @@ newEntity{
 	infravision = 20,
 
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=2, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, },
 	energy = { mod=1.1 },
 	stats = { str=10, dex=17, mag=3, con=7 },
 	combat = { dammod={str=0.6} },
diff --git a/game/modules/tome/data/general/npcs/cold-drake.lua b/game/modules/tome/data/general/npcs/cold-drake.lua
index 5d227e3b470d5cc5a09b443e4a51a821635d0622..26163afcb7ded8b2e1bc063489e3fded5a275146 100644
--- a/game/modules/tome/data/general/npcs/cold-drake.lua
+++ b/game/modules/tome/data/general/npcs/cold-drake.lua
@@ -35,7 +35,7 @@ newEntity{
 	size_category = 5,
 
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=2, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, },
 	energy = { mod=1 },
 	stats = { str=20, dex=20, mag=30, con=16 },
 
diff --git a/game/modules/tome/data/general/npcs/faeros.lua b/game/modules/tome/data/general/npcs/faeros.lua
index 28ab67dcb55eac224126da5b78862c82f4566c3a..b0eb6e34ada049fab1abf91d54fc82443316c94a 100644
--- a/game/modules/tome/data/general/npcs/faeros.lua
+++ b/game/modules/tome/data/general/npcs/faeros.lua
@@ -34,7 +34,7 @@ newEntity{
 	size_category = 3,
 
 	autolevel = "dexmage",
-	ai = "dumb_talented_simple", ai_state = { talent_in=2, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, },
 	energy = { mod=1 },
 	stats = { str=10, dex=8, mag=6, con=16 },
 
diff --git a/game/modules/tome/data/general/npcs/fire-drake.lua b/game/modules/tome/data/general/npcs/fire-drake.lua
index d3182a3da9ff4099a47c6971d6c29fd3a9a06960..9f5a9ed8d2d21407d82472e746f906960064f210 100644
--- a/game/modules/tome/data/general/npcs/fire-drake.lua
+++ b/game/modules/tome/data/general/npcs/fire-drake.lua
@@ -35,7 +35,7 @@ newEntity{
 	size_category = 5,
 
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=2, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, },
 	energy = { mod=1 },
 	stats = { str=20, dex=20, mag=30, con=16 },
 
diff --git a/game/modules/tome/data/general/npcs/major-demon.lua b/game/modules/tome/data/general/npcs/major-demon.lua
index 934314f11c789dbfea62daa98bf22afe11973d1a..e1efca9c8114d3ce39630e3eafe0c0b510ab6870 100644
--- a/game/modules/tome/data/general/npcs/major-demon.lua
+++ b/game/modules/tome/data/general/npcs/major-demon.lua
@@ -27,7 +27,7 @@ newEntity{
 	display = "U", color=colors.WHITE,
 	body = { INVEN = 10 },
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=1, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, },
 	stats = { str=22, dex=10, mag=20, con=13 },
 	energy = { mod=1 },
 	combat_armor = 1, combat_def = 1,
diff --git a/game/modules/tome/data/general/npcs/minor-demon.lua b/game/modules/tome/data/general/npcs/minor-demon.lua
index e00645d5fd81f6146ec3442166f83aab60f0101f..f40ba1c345bddba6a142b5ec6f734e9c77069a3d 100644
--- a/game/modules/tome/data/general/npcs/minor-demon.lua
+++ b/game/modules/tome/data/general/npcs/minor-demon.lua
@@ -27,7 +27,7 @@ newEntity{
 	display = "u", color=colors.WHITE,
 	body = { INVEN = 10 },
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=1, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, },
 	stats = { str=12, dex=10, mag=3, con=13 },
 	energy = { mod=1 },
 	life_rating = 7,
diff --git a/game/modules/tome/data/general/npcs/minotaur.lua b/game/modules/tome/data/general/npcs/minotaur.lua
index 9b7183294131fb2ad853fd515a57fa7b700846b2..13bf8a41aea406cd19d5bf534a16ba2488b4f3c7 100644
--- a/game/modules/tome/data/general/npcs/minotaur.lua
+++ b/game/modules/tome/data/general/npcs/minotaur.lua
@@ -41,7 +41,7 @@ newEntity{
 	open_door = true,
 
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=5, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=5, },
 	energy = { mod=1.2 },
 	stats = { str=15, dex=12, mag=6, cun=12, con=15 },
 
diff --git a/game/modules/tome/data/general/npcs/multihued-drake.lua b/game/modules/tome/data/general/npcs/multihued-drake.lua
index ec87c5907e22d56c0ce14179dd4f2009d69cfc30..22be5abad3fc4db1786a6feab24c93bbf9938050 100644
--- a/game/modules/tome/data/general/npcs/multihued-drake.lua
+++ b/game/modules/tome/data/general/npcs/multihued-drake.lua
@@ -34,7 +34,7 @@ newEntity{
 	size_category = 5,
 
 	autolevel = "drake",
-	ai = "dumb_talented_simple", ai_state = { talent_in=1, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, },
 	energy = { mod=1 },
 	stats = { str=20, dex=20, mag=30, con=16 },
 
diff --git a/game/modules/tome/data/general/npcs/mummy.lua b/game/modules/tome/data/general/npcs/mummy.lua
index c3b55e931eca36cf81ce9ca03fc9070a5d15deed..1e9e689ee7b11338241f302e279bf43610fd20c9 100644
--- a/game/modules/tome/data/general/npcs/mummy.lua
+++ b/game/modules/tome/data/general/npcs/mummy.lua
@@ -28,7 +28,7 @@ newEntity{
 
 	body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 },
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=2, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, },
 	energy = { mod=0.8 },
 	stats = { str=14, dex=12, mag=10, con=12 },
 	infravision = 20,
diff --git a/game/modules/tome/data/general/npcs/naga.lua b/game/modules/tome/data/general/npcs/naga.lua
index 37acc630e84b9433a5f595c99d7bbd8a7662b37b..1107d739d9341644e9e1aa525fdb8f5cf73cd3fb 100644
--- a/game/modules/tome/data/general/npcs/naga.lua
+++ b/game/modules/tome/data/general/npcs/naga.lua
@@ -39,7 +39,7 @@ newEntity{
 	open_door = true,
 
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=1, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, },
 	energy = { mod=1.2 },
 	stats = { str=15, dex=15, mag=15, con=10 },
 }
diff --git a/game/modules/tome/data/general/npcs/ooze.lua b/game/modules/tome/data/general/npcs/ooze.lua
index 47b95b7849c34a30d6920ea1451f51f4fa51cca8..874d6cd2bda39b9704b93fae757712b1ccc28154 100644
--- a/game/modules/tome/data/general/npcs/ooze.lua
+++ b/game/modules/tome/data/general/npcs/ooze.lua
@@ -28,7 +28,7 @@ newEntity{
 	desc = "It's colorful and it's oozing.",
 	body = { INVEN = 10 },
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=1, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, },
 	stats = { str=10, dex=15, mag=3, con=10 },
 	energy = { mod=0.7 },
 	combat_armor = 1, combat_def = 1,
diff --git a/game/modules/tome/data/general/npcs/orc-gorbat.lua b/game/modules/tome/data/general/npcs/orc-gorbat.lua
index 3b8bdbe08db91a67be0c3af6f1883776ce7f4b15..90a968b8271ee81c7aa97334bf6124049c7f5419 100644
--- a/game/modules/tome/data/general/npcs/orc-gorbat.lua
+++ b/game/modules/tome/data/general/npcs/orc-gorbat.lua
@@ -41,7 +41,7 @@ newEntity{
 	resolvers.sustains_at_birth(),
 
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=3, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, },
 	energy = { mod=1 },
 	stats = { str=20, dex=8, mag=6, con=16 },
 }
diff --git a/game/modules/tome/data/general/npcs/orc-grushnak.lua b/game/modules/tome/data/general/npcs/orc-grushnak.lua
index 534c2bb9d7c413f8023c724ed48198e9457c6a5e..1555b1197f85c45ca99364e1d0f9ef1b1066a11e 100644
--- a/game/modules/tome/data/general/npcs/orc-grushnak.lua
+++ b/game/modules/tome/data/general/npcs/orc-grushnak.lua
@@ -41,7 +41,7 @@ newEntity{
 	resolvers.sustains_at_birth(),
 
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=3, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, },
 	energy = { mod=1 },
 	stats = { str=20, dex=8, mag=6, con=16 },
 }
diff --git a/game/modules/tome/data/general/npcs/orc-rak-shor.lua b/game/modules/tome/data/general/npcs/orc-rak-shor.lua
index ba76a7ce6f5f49fb1a67897bb2250e324e477ee1..c55428bf6272250cd4cd9d71e13e258cf717e0f8 100644
--- a/game/modules/tome/data/general/npcs/orc-rak-shor.lua
+++ b/game/modules/tome/data/general/npcs/orc-rak-shor.lua
@@ -40,7 +40,7 @@ newEntity{
 	open_door = true,
 
 	autolevel = "caster",
-	ai = "dumb_talented_simple", ai_state = { talent_in=1, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, },
 	energy = { mod=1 },
 	stats = { str=20, dex=8, mag=6, con=16 },
 }
diff --git a/game/modules/tome/data/general/npcs/orc-vor.lua b/game/modules/tome/data/general/npcs/orc-vor.lua
index ad2174d391912e001bc9d089fe022111941d65d3..f0d20cebaad038dcdbccbc0984fd8902ee717b6b 100644
--- a/game/modules/tome/data/general/npcs/orc-vor.lua
+++ b/game/modules/tome/data/general/npcs/orc-vor.lua
@@ -41,7 +41,7 @@ newEntity{
 	open_door = true,
 
 	autolevel = "caster",
-	ai = "dumb_talented_simple", ai_state = { talent_in=1, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, },
 	energy = { mod=1 },
 	stats = { str=10, dex=8, mag=20, con=16 },
 }
diff --git a/game/modules/tome/data/general/npcs/orc.lua b/game/modules/tome/data/general/npcs/orc.lua
index e1d8f68d5f3571b63fc2cf7bdb8c73de67c8e9ed..2ee5330e35c7b94d5519ce3518d4f9d7c41666a2 100644
--- a/game/modules/tome/data/general/npcs/orc.lua
+++ b/game/modules/tome/data/general/npcs/orc.lua
@@ -40,7 +40,7 @@ newEntity{
 	open_door = true,
 
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=3, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, },
 	energy = { mod=1 },
 	stats = { str=20, dex=8, mag=6, con=16 },
 }
diff --git a/game/modules/tome/data/general/npcs/ritch.lua b/game/modules/tome/data/general/npcs/ritch.lua
index 1e2e238a012f4e674a6e9099e66b0db74601745a..a48aa863db8684fde6c332e0d5457921d56ddcb6 100644
--- a/game/modules/tome/data/general/npcs/ritch.lua
+++ b/game/modules/tome/data/general/npcs/ritch.lua
@@ -35,7 +35,7 @@ Vicous predators they inject corrupting diseases in their foes and they sharp cl
 	rank = 2,
 
 	autolevel = "slinger",
-	ai = "dumb_talented_simple", ai_state = { talent_in=3, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, },
 	energy = { mod=1.2 },
 	stats = { str=15, dex=15, mag=8, con=10 },
 
diff --git a/game/modules/tome/data/general/npcs/rodent.lua b/game/modules/tome/data/general/npcs/rodent.lua
index 6c015cd923c7f7ec1d2090b6c5bcd403bd66bd0d..13c291b795edcf2e47c94f3d5d342fe7a7a68773 100644
--- a/game/modules/tome/data/general/npcs/rodent.lua
+++ b/game/modules/tome/data/general/npcs/rodent.lua
@@ -28,7 +28,7 @@ newEntity{ --rodent base
 	infravision = 20,
 
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=3, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, },
 	energy = { mod=1 },
 	stats = { str=8, dex=15, mag=3, con=5 },
 	combat_armor = 1, combat_def = 1,
diff --git a/game/modules/tome/data/general/npcs/sandworm.lua b/game/modules/tome/data/general/npcs/sandworm.lua
index dbac0e53b175dba6617d0bb10e2d98e6673705ed..e617b2db49cd7c2627a0f546eec75a2d1ad8dd4a 100644
--- a/game/modules/tome/data/general/npcs/sandworm.lua
+++ b/game/modules/tome/data/general/npcs/sandworm.lua
@@ -39,7 +39,7 @@ newEntity{
 	drops = resolvers.drops{chance=20, nb=1, {type="potion"}, {type="scroll"} },
 
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=3, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, },
 	stats = { str=15, dex=7, mag=3, con=3 },
 	combat_armor = 1, combat_def = 1,
 }
diff --git a/game/modules/tome/data/general/npcs/skeleton.lua b/game/modules/tome/data/general/npcs/skeleton.lua
index e45a07252a8163b2d7ff4bea84b81163b6739053..d53a0baeb3de5f0f4c6019a4273b213e57b92068 100644
--- a/game/modules/tome/data/general/npcs/skeleton.lua
+++ b/game/modules/tome/data/general/npcs/skeleton.lua
@@ -34,7 +34,7 @@ newEntity{
 	size_category = 3,
 
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=4, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=4, },
 	energy = { mod=1 },
 	stats = { str=14, dex=12, mag=10, con=12 },
 
diff --git a/game/modules/tome/data/general/npcs/snow-giant.lua b/game/modules/tome/data/general/npcs/snow-giant.lua
index 52c5941a3b2ae2b5aa7207e38e5abf89329e6504..427f0aa4ec0602868c3fb00fa87528ac02b7b2fb 100644
--- a/game/modules/tome/data/general/npcs/snow-giant.lua
+++ b/game/modules/tome/data/general/npcs/snow-giant.lua
@@ -36,7 +36,7 @@ newEntity{
 	size_category = 4,
 
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=2, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, },
 	energy = { mod=1 },
 	stats = { str=20, dex=8, mag=6, con=16 },
 
diff --git a/game/modules/tome/data/general/npcs/spider.lua b/game/modules/tome/data/general/npcs/spider.lua
index 787411a50c902e8a276a26320b3bc42f7bc23d72..707897d754432cf4bc0cb0e405ae8632cacb66bc 100644
--- a/game/modules/tome/data/general/npcs/spider.lua
+++ b/game/modules/tome/data/general/npcs/spider.lua
@@ -34,7 +34,7 @@ newEntity{
 	rank = 1,
 
 	autolevel = "spider",
-	ai = "dumb_talented_simple", ai_state = { talent_in=4, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=4, },
 	energy = { mod=1.2 },
 	stats = { str=15, dex=15, mag=8, con=10 },
 
diff --git a/game/modules/tome/data/general/npcs/sunwall-town.lua b/game/modules/tome/data/general/npcs/sunwall-town.lua
index 4ee6d90426ca586d2896ef919e4af94db0bc820c..03966711f8222f99aba12d4aaff1c5b4205dc211 100644
--- a/game/modules/tome/data/general/npcs/sunwall-town.lua
+++ b/game/modules/tome/data/general/npcs/sunwall-town.lua
@@ -38,7 +38,7 @@ newEntity{
 	open_door = true,
 
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=3, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, },
 	energy = { mod=1 },
 	stats = { str=12, dex=8, mag=6, con=10 },
 }
diff --git a/game/modules/tome/data/general/npcs/swarm.lua b/game/modules/tome/data/general/npcs/swarm.lua
index cd9a1103f2b5c2591c609e526690d92e82cd2afc..28fb564db3f9484ca067875fad78f4978d3ee900 100644
--- a/game/modules/tome/data/general/npcs/swarm.lua
+++ b/game/modules/tome/data/general/npcs/swarm.lua
@@ -29,7 +29,7 @@ newEntity{
 	desc = "Buzzzzzzzzzzzzzzzzzzzzzzzzzzz.",
 	body = { INVEN = 1 },
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=1, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, },
 	stats = { str=1, dex=20, mag=3, con=1 },
 	energy = { mod=2 },
 	infravision = 20,
diff --git a/game/modules/tome/data/general/npcs/thieve.lua b/game/modules/tome/data/general/npcs/thieve.lua
index 8c3dc00472781b84e95d0d9976009c90b0ac3dba..45c68e8fe353bd2953a752fc1011afffd2c2d019 100644
--- a/game/modules/tome/data/general/npcs/thieve.lua
+++ b/game/modules/tome/data/general/npcs/thieve.lua
@@ -45,7 +45,7 @@ newEntity{
 	open_door = true,
 
 	autolevel = "rogue",
-	ai = "dumb_talented_simple", ai_state = { talent_in=5, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=5, },
 	energy = { mod=1 },
 	stats = { str=8, dex=15, mag=6, cun=15, con=7 },
 
diff --git a/game/modules/tome/data/general/npcs/troll.lua b/game/modules/tome/data/general/npcs/troll.lua
index 73f9d92cb996e37bfc9ce83e7c549ceef52b1653..7164511403346fb0c6e8edf81593e77fa2713b03 100644
--- a/game/modules/tome/data/general/npcs/troll.lua
+++ b/game/modules/tome/data/general/npcs/troll.lua
@@ -38,7 +38,7 @@ newEntity{
 	size_category = 4,
 
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=3, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, },
 	energy = { mod=1 },
 	stats = { str=20, dex=8, mag=6, con=16 },
 
diff --git a/game/modules/tome/data/general/npcs/vampire.lua b/game/modules/tome/data/general/npcs/vampire.lua
index c88e4d0c34058631a80d89a29253abaff0439bfd..e87b459c7315f01854b82ce4b3b5fab73657b1b3 100644
--- a/game/modules/tome/data/general/npcs/vampire.lua
+++ b/game/modules/tome/data/general/npcs/vampire.lua
@@ -48,7 +48,7 @@ newEntity{
 	drops = resolvers.drops{chance=20, nb=1, {} },
 
 	autolevel = "warriormage",
-	ai = "dumb_talented_simple", ai_state = { talent_in=9, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=9, },
 	energy = { mod=1 },
 	stats = { str=12, dex=12, mag=12, con=12 },
 	infravision = 20,
diff --git a/game/modules/tome/data/general/npcs/vermin.lua b/game/modules/tome/data/general/npcs/vermin.lua
index 9ae0e1597f879818977e48a2ecdf490fa602bc96..5e84840da7caef87ec4d96748704121135ec13a3 100644
--- a/game/modules/tome/data/general/npcs/vermin.lua
+++ b/game/modules/tome/data/general/npcs/vermin.lua
@@ -27,7 +27,7 @@ newEntity{
 	body = { INVEN = 10 },
 
 	autolevel = "warrior",
-	ai = "dumb_talented_simple", ai_state = { talent_in=3, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, },
 	energy = { mod=0.9 },
 	stats = { str=10, dex=15, mag=3, con=3 },
 	combat_armor = 1, combat_def = 1,
diff --git a/game/modules/tome/data/general/npcs/wight.lua b/game/modules/tome/data/general/npcs/wight.lua
index 597566749a3d62ed31652d749caf461d9baa2fa0..b5fa4b5ff98b2277cbf1b8069e5209a04db3600c 100644
--- a/game/modules/tome/data/general/npcs/wight.lua
+++ b/game/modules/tome/data/general/npcs/wight.lua
@@ -39,7 +39,7 @@ newEntity{
 	resolvers.drops{chance=20, nb=1, {ego_chance=20} },
 
 	autolevel = "caster",
-	ai = "dumb_talented_simple", ai_state = { talent_in=4, },
+	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=4, },
 	energy = { mod=1 },
 	stats = { str=11, dex=11, mag=15, con=12 },
 	infravision = 20,