diff --git a/game/engine/Actor.lua b/game/engine/Actor.lua
index fbec3491b47525bef2ff335dadee52f8c674e29b..baa58b747ab96e4030d3a52b7fcbc242ad66f9bc 100644
--- a/game/engine/Actor.lua
+++ b/game/engine/Actor.lua
@@ -50,6 +50,8 @@ function _M:move(x, y, force)
 
 	if self.x and self.y then
 		map:remove(self.x, self.y, Map.ACTOR)
+	else
+		print("[MOVE] actor moved without a starting position", self.name)
 	end
 	if x < 0 then x = 0 end
 	if x >= map.w then x = map.w - 1 end
diff --git a/game/engine/generator/actor/Random.lua b/game/engine/generator/actor/Random.lua
index 0219536d61d537849c60dc0609c6c6e85165a4a3..98ebd07b2215bc008a7f83716f0c4e24ce235350 100644
--- a/game/engine/generator/actor/Random.lua
+++ b/game/engine/generator/actor/Random.lua
@@ -9,9 +9,9 @@ function _M:init(zone, map, level)
 	local data = level.data.generator.actor
 
 	if data.adjust_level then
-		self.adjust_level = {base=zone.base_level, min=data.adjust_level[1], max=data.adjust_level[2]}
+		self.adjust_level = {base=zone.base_level, lev = self.level.level, min=data.adjust_level[1], max=data.adjust_level[2]}
 	else
-		self.adjust_level = {base=zone.base_level, lev = self.level.level, min=0, 0}
+		self.adjust_level = {base=zone.base_level, lev = self.level.level, min=0, max=0}
 	end
 	self.filters = data.filters
 	self.nb_npc = data.nb_npc or {10, 20}
@@ -37,7 +37,7 @@ function _M:generate()
 
 				-- Levelup ?
 				if self.adjust_level then
-					local newlevel = self.adjust_level.base + rng.avg(self.adjust_level.min, self.adjust_level.max)
+					local newlevel = self.adjust_level.base + self.adjust_level.lev - 1 + rng.avg(self.adjust_level.min, self.adjust_level.max)
 					m:forceLevelup(newlevel)
 				end
 			end
diff --git a/game/engine/generator/map/Static.lua b/game/engine/generator/map/Static.lua
index 0cf7d5bc1516f1f68ccbeafd1ad465e12d9d3612..71a2e39cb323f305ddae6db653d7b0c323e13092 100644
--- a/game/engine/generator/map/Static.lua
+++ b/game/engine/generator/map/Static.lua
@@ -9,6 +9,13 @@ function _M:init(zone, map, level, data)
 	self.grid_list = zone.grid_list
 	self.subgen = {}
 	self.data = data
+
+	if data.adjust_level then
+		self.adjust_level = {base=zone.base_level, lev = self.level.level, min=data.adjust_level[1], max=data.adjust_level[2]}
+	else
+		self.adjust_level = {base=zone.base_level, lev = self.level.level, min=0, max=0}
+	end
+
 	self:loadMap(data.map)
 end
 
@@ -78,16 +85,16 @@ function _M:generate(lev, old_lev)
 		local c = self.gen_map[i][j]
 		self.map(i-1, j-1, Map.TERRAIN, self:resolve("grid", c))
 
-		local actor = self.tiles[c].actor
+		local actor = self.tiles[c] and self.tiles[c].actor
 
 		if actor then
-			local m = self.zone:makeEntityByName(self.level, "actor", f)
+			local m = self.zone:makeEntityByName(self.level, "actor", actor)
 			if m then
-				m:move(x, y, true)
+				m:move(i-1, j-1, true)
 				self.level:addEntity(m)
 				m:added()
 				if self.adjust_level then
-					local newlevel = self.adjust_level.base + rng.avg(self.adjust_level.min, self.adjust_level.max)
+					local newlevel = self.adjust_level.base + self.adjust_level.lev + rng.avg(self.adjust_level.min, self.adjust_level.max)
 					m:forceLevelup(newlevel)
 				end
 			end
diff --git a/game/engine/interface/ActorQuest.lua b/game/engine/interface/ActorQuest.lua
index a27121c926a23f7340c1838df012839f99173e76..12a6eaa6ed44473450fbd4cd7356a29cc4e429e8 100644
--- a/game/engine/interface/ActorQuest.lua
+++ b/game/engine/interface/ActorQuest.lua
@@ -31,7 +31,7 @@ end
 --- Sets the status of a quest for an actor
 -- If the actor does not have the quest, does nothing
 function _M:setQuestStatus(quest, status, sub)
-	print("[QUEST] try update status on", self.name, quest, status, sub, "::", self.quests[quest])
+	print("[QUEST] try update status on", self.name, quest, status, sub)
 	if not self.quests then return end
 	local q = self.quests[quest]
 	if not q then return end
diff --git a/game/engine/utils.lua b/game/engine/utils.lua
index dec3819b9c2e3649d4f582d6de5d4566f11b44d7..496b92f34203b68130f31aa4e97986480107bb90 100644
--- a/game/engine/utils.lua
+++ b/game/engine/utils.lua
@@ -390,3 +390,15 @@ function rng.tableRemove(t)
 	local id = rng.range(1, #t)
 	return table.remove(t, id)
 end
+
+function util.show_backtrace()
+	local level = 2
+
+	print("backtrace:")
+	while true do
+		local stacktrace = debug.getinfo(level, "nlS")
+		if stacktrace == nil then break end
+		print(("    function: %s (%s) at %s:%d"):format(stacktrace.name or "???", stacktrace.what, stacktrace.source or stacktrace.short_src or "???", stacktrace.currentline))
+		level = level + 1
+	end
+end
diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua
index dfea6faef06d465b0c0e4c831b354061f565da9b..556bf0ba55c7c48259a63be3b36a95b1241db645 100644
--- a/game/modules/tome/class/Game.lua
+++ b/game/modules/tome/class/Game.lua
@@ -562,21 +562,8 @@ function _M:setupMouse()
 		-- Target stuff
 		if button == "right" then
 			local tmx, tmy = self.level.map:getMouseTile(mx, my)
-
-			local actor = self.level.map(tmx, tmy, Map.ACTOR)
-
-			if actor and self.level.map.seens(tmx, tmy) then
-				self.target.target.entity = actor
-			else
-				self.target.target.entity = nil
-				self.target.target.x = tmx
-				self.target.target.y = tmy
-			end
-			if tostring(self.target_mode) == "exclusive" then
-				self:targetMode(false, false)
-			else
-				self:targetMode(true, true)
-			end
+			-- DEBUG
+			game.player:move(tmx, tmy, true)
 		-- Move map around
 		elseif button == "left" and xrel and yrel then
 			derivx = derivx + xrel
diff --git a/game/modules/tome/class/Object.lua b/game/modules/tome/class/Object.lua
index 360e4917f96f10719c6ed1f965c2b2a1462cc5ef..43ad9bd8423f7283f09850a972ced529b5d83ac9 100644
--- a/game/modules/tome/class/Object.lua
+++ b/game/modules/tome/class/Object.lua
@@ -164,7 +164,7 @@ function _M:getDesc()
 	if w.on_melee_hit then
 		local rs = {}
 		for typ, dam in pairs(w.on_melee_hit) do
-			rs[#rs+1] = ("%d %s"):format(dam, DamageType.dam_def[res].name)
+			rs[#rs+1] = ("%d %s"):format(dam, DamageType.dam_def[typ].name)
 		end
 		desc[#desc+1] = ("Damage when hit: %s."):format(table.concat(rs, ','))
 	end
@@ -172,7 +172,7 @@ function _M:getDesc()
 	if w.resists then
 		local rs = {}
 		for res, i in pairs(w.resists) do
-			rs[#rs+1] = ("%d%% %s"):format(i, DamageType.dam_def[typ].name)
+			rs[#rs+1] = ("%d%% %s"):format(i, DamageType.dam_def[res].name)
 		end
 		desc[#desc+1] = ("Increases resistances: %s."):format(table.concat(rs, ','))
 	end
diff --git a/game/modules/tome/class/Player.lua b/game/modules/tome/class/Player.lua
index f5c375f02b76e8c4649fedf7ca0726697c67d230..41b6a3812e8d2f71de022062ec3348562ffd5e14 100644
--- a/game/modules/tome/class/Player.lua
+++ b/game/modules/tome/class/Player.lua
@@ -272,7 +272,6 @@ function _M:playerUseItem(object, item)
 				self:removeObject(self:getInven(self.INVEN_INVEN), item)
 				game.log("You have no more "..o:getName())
 				self:sortInven()
-				self:useEnergy()
 			end
 		end
 		self:breakStealth()
diff --git a/game/modules/tome/class/generator/map/Wilderness.lua b/game/modules/tome/class/generator/map/Wilderness.lua
index 6a8705fdc2c29ee8f34a26df7b8b2e4853c40df9..2a402641ba33559421b0165c1fc51521c5ccbaad 100644
--- a/game/modules/tome/class/generator/map/Wilderness.lua
+++ b/game/modules/tome/class/generator/map/Wilderness.lua
@@ -4,9 +4,9 @@ require "engine.generator.map.Static"
 --- Make the wilderness map, loaded from the player's current wilderness
 module(..., package.seeall, class.inherit(engine.generator.map.Static))
 
-function _M:init(zone, map, grid_list, data)
+function _M:init(zone, map, level, data)
 	print("Loading wilderness map: ", game.player.current_wilderness)
 	data.map = game.player.current_wilderness
 
-	engine.generator.map.Static.init(self, zone, map, grid_list, data)
+	engine.generator.map.Static.init(self, zone, map, level, data)
 end
diff --git a/game/modules/tome/data/birth/races/dwarf.lua b/game/modules/tome/data/birth/races/dwarf.lua
index 49f180fa0328d332e649d636b13c7db824a7b5bf..d14f58a3ff1900c8d087ceace133cab0212a33f8 100644
--- a/game/modules/tome/data/birth/races/dwarf.lua
+++ b/game/modules/tome/data/birth/races/dwarf.lua
@@ -28,7 +28,7 @@ newBirthDescriptor{
 	},
 	copy = {
 		type = "humanoid", subtype="dwarf",
-		default_wilderness = {"wilderness/main", 39, 19},
+		default_wilderness = {"wilderness/main", 39, 17},
 		starting_zone = "tower-amon-sul",
 		starting_quest = "start-dunadan",
 		starting_intro = "dwarf",
diff --git a/game/modules/tome/data/birth/races/elf.lua b/game/modules/tome/data/birth/races/elf.lua
index 995a14c5177c609186aab61cb7bb7ce5d8271912..a5a9ba357c717d18462aff22cd812c7380eb32ff 100644
--- a/game/modules/tome/data/birth/races/elf.lua
+++ b/game/modules/tome/data/birth/races/elf.lua
@@ -23,7 +23,7 @@ newBirthDescriptor{
 	},
 	copy = {
 		type = "humanoid", subtype="elf",
-		default_wilderness = {"wilderness/main", 39, 19},
+		default_wilderness = {"wilderness/main", 39, 17},
 		starting_zone = "tower-amon-sul",
 		starting_quest = "start-dunadan",
 		starting_intro = "elf",
diff --git a/game/modules/tome/data/birth/races/hobbit.lua b/game/modules/tome/data/birth/races/hobbit.lua
index 7d389f9c9a5779b88a4476e4ebe0d81b2d47da30..cc2c915e960fd43de7833cce03ea3b321e08ffcf 100644
--- a/game/modules/tome/data/birth/races/hobbit.lua
+++ b/game/modules/tome/data/birth/races/hobbit.lua
@@ -25,7 +25,7 @@ newBirthDescriptor{
 	copy = {
 		type = "humanoid", subtype="hobbit",
 		life_rating = 12,
-		default_wilderness = {"wilderness/main", 39, 19},
+		default_wilderness = {"wilderness/main", 39, 17},
 		starting_zone = "tower-amon-sul",
 		starting_quest = "start-dunadan",
 		starting_intro = "hobbit",
diff --git a/game/modules/tome/data/birth/races/human.lua b/game/modules/tome/data/birth/races/human.lua
index 1ef70703769a6b6e1a47186ba6c3650230fd988b..293a011dc04518d97db125d6705463edcbd8e253 100644
--- a/game/modules/tome/data/birth/races/human.lua
+++ b/game/modules/tome/data/birth/races/human.lua
@@ -36,7 +36,7 @@ newBirthDescriptor
 		"Humans hailing from the northen town of Bree. A common kind of man, unremarkable in all respects.",
 	},
 	copy = {
-		default_wilderness = {"wilderness/main", 39, 19},
+		default_wilderness = {"wilderness/main", 39, 17},
 		starting_zone = "tower-amon-sul",
 		starting_quest = "start-dunadan",
 		starting_intro = "bree-man",
@@ -58,7 +58,7 @@ newBirthDescriptor
 		[ActorTalents.T_DUNADAN_HEAL]=1,
 	},
 	copy = {
-		default_wilderness = {"wilderness/main", 39, 19},
+		default_wilderness = {"wilderness/main", 39, 17},
 		starting_zone = "tower-amon-sul",
 		starting_quest = "start-dunadan",
 		starting_intro = "dunadan",