diff --git a/game/engines/default/engine/Store.lua b/game/engines/default/engine/Store.lua
index 9e37e55dfab8fb3b7b4fb5b7f76481af22b31c04..ed861d2a5cfa260a8a86fcddddc422e01ca0cdbc 100644
--- a/game/engines/default/engine/Store.lua
+++ b/game/engines/default/engine/Store.lua
@@ -70,7 +70,7 @@ function _M:loadup(level, zone, force_nb)
 	local i = 1
 	local rngfill = force_nb or (rng.range(s.min_fill, s.max_fill) - #inven)
 	while i <= rngfill do
-		local filter = util.getval(s.filters)
+		local filter = table.clone(util.getval(s.filters))
 		local e
 		if not filter.defined then e = zone:makeEntity(level, "object", filter, nil, true)
 		else e = zone:makeEntityByName(level, "object", filter.defined) end
@@ -90,7 +90,7 @@ function _M:loadup(level, zone, force_nb)
 	end
 
 	for i = 1, #(s.fixed or {}) do
-		local filter = s.fixed[i]
+		local filter = table.clone(s.fixed[i])
 		local e
 		if not filter.defined then e = zone:makeEntity(level, "object", filter, nil, true)
 		else e = zone:makeEntityByName(level, "object", filter.defined) end
diff --git a/game/modules/tome/data/general/grids/mountain.lua b/game/modules/tome/data/general/grids/mountain.lua
index c2aa42748cb65bb053db00998852f6e81cde54d7..e1c6a9f41ae8ae6bed390f33018c34c34d93a864 100644
--- a/game/modules/tome/data/general/grids/mountain.lua
+++ b/game/modules/tome/data/general/grids/mountain.lua
@@ -105,8 +105,45 @@ newEntity{
 	block_sense = true,
 	block_esp = true,
 	air_level = -20,
+	nice_tiler = { method="mountain3d",
+		base={"HARDMOUNTAIN_5", 100, 1, 6},
+		wall8={"HARDMOUNTAIN_8", 100, 1, 6}, wall87={"HARDMOUNTAIN_8", 100, 1, 6}, wall88={"HARDMOUNTAIN_8", 100, 1, 6}, wall89={"HARDMOUNTAIN_8", 100, 1, 6},
+		wall2={"HARDMOUNTAIN_2", 100, 1, 6}, wall21={"HARDMOUNTAIN_2", 100, 1, 6}, wall22={"HARDMOUNTAIN_2", 100, 1, 6}, wall23={"HARDMOUNTAIN_2", 100, 1, 6},
+		wall4={"HARDMOUNTAIN_4", 100, 1, 6}, wall47={"HARDMOUNTAIN_4", 100, 1, 6}, wall44={"HARDMOUNTAIN_4", 100, 1, 6}, wall41={"HARDMOUNTAIN_4", 100, 1, 6},
+		wall6={"HARDMOUNTAIN_6", 100, 1, 6}, wall69={"HARDMOUNTAIN_6", 100, 1, 6}, wall66={"HARDMOUNTAIN_6", 100, 1, 6}, wall63={"HARDMOUNTAIN_6", 100, 1, 6},
+		wall1={"HARDMOUNTAIN_1", 100, 1, 6}, wall3={"HARDMOUNTAIN_3", 100, 1, 6}, wall7={"HARDMOUNTAIN_7", 100, 1, 6}, wall9={"HARDMOUNTAIN_9", 100, 1, 6},
+		wall11={"HARDMOUNTAIN_1", 100, 1, 6}, wall33={"HARDMOUNTAIN_3", 100, 1, 6}, wall77={"HARDMOUNTAIN_7", 100, 1, 6}, wall98={"HARDMOUNTAIN_9", 100, 1, 6},
+		inner_wall1={"HARDMOUNTAIN_1I", 100, 1, 6}, inner_wall3={"HARDMOUNTAIN_3I", 100, 1, 6}, inner_wall7={"HARDMOUNTAIN_7I", 100, 1, 6}, inner_wall9={"HARDMOUNTAIN_9I", 100, 1, 6},
+		pillar={"HARDMOUNTAIN_SINGLE", 100, 1, 6},
+		pillar4={"HARDMOUNTAIN_PILLAR4", 100, 1, 6}, pillar6={"HARDMOUNTAIN_PILLAR6", 100, 1, 6}, pillar2={"HARDMOUNTAIN_PILLAR2", 100, 1, 6}, pillar8={"HARDMOUNTAIN_PILLAR8", 100, 1, 6},
+		pillar82={"HARDMOUNTAIN_PILLAR82", 100, 1, 6}, pillar46={"HARDMOUNTAIN_PILLAR46", 100, 1, 6},
+	},
 }
 
+for i = 1, 6 do
+newEntity{base="HARDMOUNTAIN_WALL", define_as = "HARDMOUNTAIN_5"..i, image="terrain/mountain5_"..i..".png"}
+newEntity{base="HARDMOUNTAIN_WALL", define_as = "HARDMOUNTAIN_8"..i, image="terrain/mountain5_"..i..".png", add_displays = {class.new{z=18, display_y=-1, image="terrain/mountain8.png"}}}
+newEntity{base="HARDMOUNTAIN_WALL", define_as = "HARDMOUNTAIN_2"..i, image="terrain/mountain5_"..i..".png", add_displays = {class.new{display_y=1, image="terrain/mountain2.png"}}}
+newEntity{base="HARDMOUNTAIN_WALL", define_as = "HARDMOUNTAIN_4"..i, image="terrain/mountain5_"..i..".png", add_displays = {class.new{display_x=-1, image="terrain/mountain4.png"}}}
+newEntity{base="HARDMOUNTAIN_WALL", define_as = "HARDMOUNTAIN_6"..i, image="terrain/mountain5_"..i..".png", add_displays = {class.new{display_x=1, image="terrain/mountain6.png"}}}
+newEntity{base="HARDMOUNTAIN_WALL", define_as = "HARDMOUNTAIN_7"..i, image="terrain/mountain5_"..i..".png", add_displays = {class.new{z=18, display_y=-1, display_x=-1, image="terrain/mountain7.png", add_mos = {{display_y=-1, image="terrain/mountain8.png"}, {display_x=-1, image="terrain/mountain4.png"}}}}}
+newEntity{base="HARDMOUNTAIN_WALL", define_as = "HARDMOUNTAIN_9"..i, image="terrain/mountain5_"..i..".png", add_displays = {class.new{z=18, display_y=-1, display_x=1, image="terrain/mountain9.png", add_mos = {{display_y=-1, image="terrain/mountain8.png"}, {display_x=1, image="terrain/mountain6.png"}}}}}
+newEntity{base="HARDMOUNTAIN_WALL", define_as = "HARDMOUNTAIN_1"..i, image="terrain/mountain5_"..i..".png", add_displays = {class.new{display_y=1, display_x=-1, image="terrain/mountain1.png", add_mos = {{display_y=1, image="terrain/mountain2.png"}, {display_x=-1, image="terrain/mountain4.png"}}}}}
+newEntity{base="HARDMOUNTAIN_WALL", define_as = "HARDMOUNTAIN_3"..i, image="terrain/mountain5_"..i..".png", add_displays = {class.new{display_y=1, display_x=1, image="terrain/mountain3.png", add_mos = {{display_y=1, image="terrain/mountain2.png"}, {display_x=1, image="terrain/mountain6.png"}}}}}
+newEntity{base="HARDMOUNTAIN_WALL", define_as = "HARDMOUNTAIN_1I"..i, image="terrain/mountain5_"..i..".png", add_displays = {class.new{z=18, display_y=-1, display_x=1, image="terrain/mountain1i.png"}}}
+newEntity{base="HARDMOUNTAIN_WALL", define_as = "HARDMOUNTAIN_3I"..i, image="terrain/mountain5_"..i..".png", add_displays = {class.new{z=18, display_y=-1, display_x=-1, image="terrain/mountain3i.png"}}}
+newEntity{base="HARDMOUNTAIN_WALL", define_as = "HARDMOUNTAIN_7I"..i, image="terrain/mountain5_"..i..".png", add_displays = {class.new{display_y=1, display_x=1, image="terrain/mountain7i.png"}}}
+newEntity{base="HARDMOUNTAIN_WALL", define_as = "HARDMOUNTAIN_9I"..i, image="terrain/mountain5_"..i..".png", add_displays = {class.new{display_y=1, display_x=-1, image="terrain/mountain9i.png"}}}
+newEntity{base="HARDMOUNTAIN_WALL", define_as = "HARDMOUNTAIN_SINGLE"..i, image="terrain/mountain5_"..i..".png", add_displays = {class.new{z=18, display_y=-1, display_x=-1, image="terrain/mountain7.png", add_mos = {{display_y=-1, image="terrain/mountain8.png"}, {display_x=1, display_y=-1, image="terrain/mountain9.png"}}}, class.new{display_y=1, display_x=-1, image="terrain/mountain1.png", add_mos = {{display_y=1, image="terrain/mountain2.png"}, {display_x=1, display_y=1, image="terrain/mountain3.png"}, {display_x=-1, image="terrain/mountain4.png"}, {display_x=1, image="terrain/mountain6.png"}}}}}
+newEntity{base="HARDMOUNTAIN_WALL", define_as = "HARDMOUNTAIN_PILLAR4"..i, image="terrain/mountain5_"..i..".png", add_displays = {class.new{z=18, display_y=-1, display_x=-1, image="terrain/mountain7.png", add_mos = {{display_y=-1, image="terrain/mountain8.png"}}}, class.new{display_y=1, display_x=-1, image="terrain/mountain1.png", add_mos = {{display_y=1, image="terrain/mountain2.png"}, {display_x=-1, image="terrain/mountain4.png"}}}}}
+newEntity{base="HARDMOUNTAIN_WALL", define_as = "HARDMOUNTAIN_PILLAR6"..i, image="terrain/mountain5_"..i..".png", add_displays = {class.new{z=18, display_y=-1, display_x=1, image="terrain/mountain9.png", add_mos = {{display_y=-1, image="terrain/mountain8.png"}}}, class.new{display_y=1, display_x=1, image="terrain/mountain3.png", add_mos = {{display_y=1, image="terrain/mountain2.png"}, {display_x=1, image="terrain/mountain6.png"}}}}}
+newEntity{base="HARDMOUNTAIN_WALL", define_as = "HARDMOUNTAIN_PILLAR46"..i, image="terrain/mountain5_"..i..".png", add_displays = {class.new{z=18, display_y=-1, image="terrain/mountain8.png"}, class.new{display_y=1, image="terrain/mountain2.png"}}}
+newEntity{base="HARDMOUNTAIN_WALL", define_as = "HARDMOUNTAIN_PILLAR8"..i, image="terrain/mountain5_"..i..".png", add_displays = {class.new{z=18, display_y=-1, display_x=-1, image="terrain/mountain7.png", add_mos = {{display_y=-1, image="terrain/mountain8.png"}, {display_x=1, display_y=-1, image="terrain/mountain9.png"}}}, class.new{display_x=-1, image="terrain/mountain4.png", add_mos = {{display_x=1, image="terrain/mountain6.png"}}}}}
+newEntity{base="HARDMOUNTAIN_WALL", define_as = "HARDMOUNTAIN_PILLAR2"..i, image="terrain/mountain5_"..i..".png", add_displays = {class.new{z=18, display_y=1, display_x=-1, image="terrain/mountain1.png", add_mos = {{display_y=1, image="terrain/mountain2.png"}, {display_x=1, display_y=1, image="terrain/mountain3.png"}}}, class.new{display_x=-1, image="terrain/mountain4.png", add_mos = {{display_x=1, image="terrain/mountain6.png"}}}}}
+newEntity{base="HARDMOUNTAIN_WALL", define_as = "HARDMOUNTAIN_PILLAR82"..i, image="terrain/mountain5_"..i..".png", add_displays = {class.new{display_x=-1, image="terrain/mountain4.png", add_mos = {{display_x=1, image="terrain/mountain6.png"}}}}}
+end
+
+
 -----------------------------------------
 -- Rocky exits
 -----------------------------------------
diff --git a/game/modules/tome/data/general/stores/basic.lua b/game/modules/tome/data/general/stores/basic.lua
index 4cdadb2e12a54d74d32bd41bce987fb36b150667..108f9fa43cc99e234d35b08f2d326ddb4282eaf8 100644
--- a/game/modules/tome/data/general/stores/basic.lua
+++ b/game/modules/tome/data/general/stores/basic.lua
@@ -18,30 +18,26 @@
 -- darkgod@te4.org
 
 newEntity{
-	define_as = "ARMOR",
+	define_as = "HEAVY_ARMOR",
 	name = "heavy armour smith",
 	display = '2', color=colors.UMBER,
 	store = {
 		purse = 25,
 		empty_before_restock = false,
-		min_fill = 10,
-		max_fill = 20,
-		filters = function()
-			return {type="armor", subtype="heavy", id=true, tome_drops="store"}
-			return {type="armor", subtype="massive", id=true, tome_drops="store"}
-		end,
+		filters = {
+			{type="armor", subtype="heavy", id=true, tome_drops="store"},
+			{type="armor", subtype="massive", id=true, tome_drops="store"},
+		},
 	},
 }
 
 newEntity{
-	define_as = "ARMOR",
+	define_as = "LIGHT_ARMOR",
 	name = "tanner",
 	display = '2', color=colors.LIGHT_UMBER,
 	store = {
 		purse = 25,
 		empty_before_restock = false,
-		min_fill = 10,
-		max_fill = 20,
 		filters = function()
 			return {type="armor", subtype="light", id=true, tome_drops="store"}
 		end,
@@ -49,14 +45,12 @@ newEntity{
 }
 
 newEntity{
-	define_as = "ARMOR",
+	define_as = "CLOTH_ARMOR",
 	name = "tailor",
 	display = '2', color=colors.WHITE,
 	store = {
 		purse = 25,
 		empty_before_restock = false,
-		min_fill = 10,
-		max_fill = 20,
 		filters = function()
 			return {type="armor", subtype="cloth", id=true, tome_drops="store"}
 		end,
@@ -64,16 +58,68 @@ newEntity{
 }
 
 newEntity{
-	define_as = "WEAPON",
-	name = "weapon smith",
+	define_as = "SWORD_WEAPON",
+	name = "sword smith",
+	display = '3', color=colors.UMBER,
+	store = {
+		purse = 25,
+		empty_before_restock = false,
+		filters = {
+			{type="weapon", subtype="greatsword", id=true, tome_drops="store"},
+			{type="weapon", subtype="longsword", id=true, tome_drops="store"},
+		},
+	},
+}
+
+newEntity{
+	define_as = "AXE_WEAPON",
+	name = "axe smith",
+	display = '3', color=colors.UMBER,
+	store = {
+		purse = 25,
+		empty_before_restock = false,
+		filters = {
+			{type="weapon", subtype="waraxe", id=true, tome_drops="store"},
+			{type="weapon", subtype="battleaxe", id=true, tome_drops="store"},
+		},
+	},
+}
+
+newEntity{
+	define_as = "MAUL_WEAPON",
+	name = "mace smith",
+	display = '3', color=colors.UMBER,
+	store = {
+		purse = 25,
+		empty_before_restock = false,
+		filters = {
+			{type="weapon", subtype="greatmaul", id=true, tome_drops="store"},
+			{type="weapon", subtype="mace", id=true, tome_drops="store"},
+		},
+	},
+}
+
+newEntity{
+	define_as = "KNIFE_WEAPON",
+	name = "knife smith",
 	display = '3', color=colors.UMBER,
 	store = {
 		purse = 25,
 		empty_before_restock = false,
-		min_fill = 10,
-		max_fill = 20,
 		filters = function()
-			return {type="weapon", subtype="sword", id=true, tome_drops="store"}
+			return {type="weapon", subtype="dagger", id=true, tome_drops="store"}
+		end,
+	},
+}
+newEntity{
+	define_as = "STAFF_WEAPON",
+	name = "staff carver",
+	display = '3', color=colors.RED,
+	store = {
+		purse = 25,
+		empty_before_restock = false,
+		filters = function()
+			return {type="weapon", subtype="staff", id=true, tome_drops="store"}
 		end,
 	},
 }
@@ -85,8 +131,6 @@ newEntity{
 	store = {
 		purse = 10,
 		empty_before_restock = false,
-		min_fill = 4,
-		max_fill = 7,
 		filters = {
 			{type="scroll", subtype="infusion", id=true},
 		},
@@ -100,8 +144,6 @@ newEntity{
 	store = {
 		purse = 10,
 		empty_before_restock = false,
-		min_fill = 4,
-		max_fill = 7,
 		filters = {
 			{type="scroll", subtype="rune", id=true},
 		},
@@ -115,8 +157,6 @@ newEntity{
 	store = {
 		purse = 30,
 		empty_before_restock = false,
-		min_fill = 20,
-		max_fill = 30,
 		filters = {
 			{type="gem", id=true},
 		},
@@ -134,8 +174,6 @@ newEntity{
 	store = {
 		purse = 25,
 		empty_before_restock = false,
-		min_fill = 15,
-		max_fill = 25,
 		filters = function()
 			return rng.table{
 				{type="weapon", subtype="staff", id=true, tome_drops="store"},
@@ -154,8 +192,6 @@ newEntity{
 	store = {
 		purse = 20,
 		empty_before_restock = false,
-		min_fill = 15,
-		max_fill = 25,
 		filters = {
 			{type="jewelry", id=true},
 		},
@@ -177,8 +213,6 @@ newEntity{
 	store = {
 		purse = 10,
 		empty_before_restock = false,
-		min_fill = 5,
-		max_fill = 9,
 		filters = {
 			{type="scroll", subtype="rune", id=true},
 		},
@@ -199,8 +233,6 @@ newEntity{
 		purse = 35,
 		empty_before_restock = false,
 		sell_percent = 240,
-		min_fill = 10,
-		max_fill = 20,
 		filters = function()
 			return {id=true, ignore={type="money"}, add_levels=10, tome_drops="boss"}
 		end,
@@ -214,8 +246,6 @@ newEntity{
 	store = {
 		purse = 5,
 		empty_before_restock = false,
-		min_fill = 40,
-		max_fill = 40,
 		filters = {
 			{id=true, defined="FOUNDATION_NOTE1"},
 			{id=true, defined="FOUNDATION_NOTE2"},
@@ -237,8 +267,6 @@ newEntity{
 	store = {
 		purse = 5,
 		empty_before_restock = false,
-		min_fill = 40,
-		max_fill = 40,
 		filters = {
 			{id=true, defined="ZIGUR_HISTORY"},
 		},
@@ -246,17 +274,86 @@ newEntity{
 }
 
 newEntity{
-	define_as = "ZIGUR_ARMOR",
+	define_as = "ZIGUR_HARMOR",
 	name = "armour smith",
 	display = '2', color=colors.UMBER,
 	store = {
 		purse = 25,
 		empty_before_restock = false,
-		min_fill = 20,
-		max_fill = 30,
+		filters = {
+			{type="armor", subtype="heavy", id=true, tome_drops="store"},
+			{type="armor", subtype="massive", id=true, tome_drops="store"},
+		},
+		post_filter = function(e)
+			if e.power_source and e.power_source.arcane then return false end
+			return true
+		end,
+	},
+}
+newEntity{
+	define_as = "ZIGUR_LARMOR",
+	name = "tanner",
+	display = '2', color=colors.UMBER,
+	store = {
+		purse = 25,
+		empty_before_restock = false,
 		filters = function()
-			return {type="armor", id=true, tome_drops="store"}
+			return {type="armor", subtype="light", id=true, tome_drops="store"}
+		end,
+		post_filter = function(e)
+			if e.power_source and e.power_source.arcane then return false end
+			return true
+		end,
+	},
+}
+
+newEntity{
+	define_as = "ZIGUR_SWORD_WEAPON",
+	name = "sword smith",
+	display = '3', color=colors.UMBER,
+	store = {
+		purse = 25,
+		empty_before_restock = false,
+		filters = {
+			{type="weapon", subtype="greatsword", id=true, tome_drops="store"},
+			{type="weapon", subtype="longsword", id=true, tome_drops="store"},
+		},
+		post_filter = function(e)
+			if e.power_source and e.power_source.arcane then return false end
+			return true
 		end,
+	},
+}
+
+newEntity{
+	define_as = "ZIGUR_AXE_WEAPON",
+	name = "axe smith",
+	display = '3', color=colors.UMBER,
+	store = {
+		purse = 25,
+		empty_before_restock = false,
+		filters = {
+			{type="weapon", subtype="waraxe", id=true, tome_drops="store"},
+			{type="weapon", subtype="battleaxe", id=true, tome_drops="store"},
+		},
+		post_filter = function(e)
+			if e.power_source and e.power_source.arcane then return false end
+			return true
+		end,
+	},
+}
+
+newEntity{
+	define_as = "ZIGUR_MACE_WEAPON",
+	name = "mace smith",
+	display = '3', color=colors.UMBER,
+	store = {
+		purse = 25,
+		empty_before_restock = false,
+		filters = {
+			{type="weapon", subtype="greatmaul", id=true, tome_drops="store"},
+			{type="weapon", subtype="mace", id=true, tome_drops="store"},
+		},
 		post_filter = function(e)
 			if e.power_source and e.power_source.arcane then return false end
 			return true
@@ -265,16 +362,14 @@ newEntity{
 }
 
 newEntity{
-	define_as = "ZIGUR_WEAPON",
-	name = "weapon smith",
+	define_as = "ZIGUR_KNIFE_WEAPON",
+	name = "knife smith",
 	display = '3', color=colors.UMBER,
 	store = {
 		purse = 25,
 		empty_before_restock = false,
-		min_fill = 20,
-		max_fill = 30,
 		filters = function()
-			return {type="weapon", id=true, tome_drops="store"}
+			return {type="weapon", subtype="dagger", id=true, tome_drops="store"}
 		end,
 		post_filter = function(e)
 			if e.power_source and e.power_source.arcane then return false end
diff --git a/game/modules/tome/data/maps/towns/derth.lua b/game/modules/tome/data/maps/towns/derth.lua
index b0ff77eafdb3eec8c67ceeeb296a840b243c3186..0bf49301472b14f8470b7f9da48782c707ea7260 100644
--- a/game/modules/tome/data/maps/towns/derth.lua
+++ b/game/modules/tome/data/maps/towns/derth.lua
@@ -33,8 +33,10 @@ defineTile(":", "FLOOR")
 defineTile("&", "POST")
 defineTile("'", "DOOR")
 
-defineTile('2', "HARDWALL", nil, nil, "WEAPON_STORE")
-defineTile('3', "HARDWALL", nil, nil, "ARMOR_STORE")
+defineTile('2', "HARDWALL", nil, nil, "SWORD_WEAPON_STORE")
+defineTile('5', "HARDWALL", nil, nil, "KNIFE_WEAPON_STORE")
+defineTile('3', "HARDWALL", nil, nil, "HEAVY_ARMOR_STORE")
+defineTile('1', "HARDWALL", nil, nil, "LIGHT_ARMOR_STORE")
 defineTile('4', "HARDWALL", nil, nil, "HERBALIST")
 defineTile('9', "HARDWALL", nil, nil, "JEWELRY")
 
@@ -98,14 +100,14 @@ ttttttt~~~tt.__.........._......_.......t~~~tttttt
 ttttttt~~~t.._.#####....._......_.###...t~~~tttttt
 ttttttt~~~t.._.#####....._.####._.###...t~~~tttttt
 ttttttt~~~t.._.#####....._.####._.###...t~~~tttttt
-ttttttt~~~t.._.###2#....___####._.###...t~~~tttttt
+ttttttt~~~t.._.#5#2#....___####._.###...t~~~tttttt
 ttttttt~~~t.._______..___._.._.._.###...t~~~tttttt
 ttttttt~~~t......._..__..._______.###..tt~~~tttttt
 ttttttt~~~tt......_.._.........._.._...t~~~ttttttt
 tttttttt~~~tt.....____.####.....____...t~~~ttttttt
 ttttttttt~~~tt......_..####....._......t~~~ttttttt
 ttttttttt~~~~tt.....__.####....._.....tt~~~ttttttt
-tttttttttt~~~~ttt....__##3#....._.....t~~~tttttttt
+tttttttttt~~~~ttt....__#13#....._.....t~~~tttttttt
 tttttttttttt~~~~tt....___________...tt~~~~tttttttt
 ttttttttttttt~~~~ttttt............ttt~~~~ttttttttt
 tttttttttttttt~~~~~~~ttttttt...tttt~~~~~~ttttttttt
diff --git a/game/modules/tome/data/maps/towns/elvala.lua b/game/modules/tome/data/maps/towns/elvala.lua
index 8992ac1bda9ec7b6de4f06a6177bc60846e2adbf..24790726dbc8f4e8f823b0fd02071d8f3b866c38 100644
--- a/game/modules/tome/data/maps/towns/elvala.lua
+++ b/game/modules/tome/data/maps/towns/elvala.lua
@@ -30,8 +30,10 @@ defineTile("_", "OLD_FLOOR")
 defineTile(".", "GRASS")
 defineTile("t", {"TREE","TREE2","TREE3","TREE4","TREE5","TREE6","TREE7","TREE8","TREE9","TREE10","TREE11","TREE12","TREE13","TREE14","TREE15","TREE16","TREE17","TREE18","TREE19","TREE20"})
 
-defineTile("2", "HARDWALL", nil, nil, "ARMOR_STORE")
-defineTile("3", "HARDWALL", nil, nil, "WEAPON_STORE")
+defineTile("1", "HARDWALL", nil, nil, "CLOTH_ARMOR_STORE")
+defineTile("2", "HARDWALL", nil, nil, "LIGHT_ARMOR_STORE")
+defineTile("3", "HARDWALL", nil, nil, "STAFF_WEAPON_STORE")
+defineTile("4", "HARDWALL", nil, nil, "SWORD_WEAPON_STORE")
 defineTile("5", "HARDWALL", nil, nil, "RUNEMASTER")
 
 -- addSpot section
@@ -59,7 +61,7 @@ return [[
 ~~...............##___________##......ttt..~~~~~~~
 ~~....ttt........#__#########__#...........~~~~~~~
 ~....ttt.........#_###########_#...........~~~~~~~
-~...ttt.....######__#5#######__######.......~~~~~~
+~...ttt.....######__#5#####1#__######.......~~~~~~
 ~...t....####_______________________####......~~~~
 ~......###_______#_____..._____#_______###.....~~~
 ~.....##________###___.....___###________##....~~~
@@ -71,7 +73,7 @@ return [[
 ~~.......####_______________________####........~~
 ~~..........######__#########__######..........~~~
 ~~...............#_###########_#...............~~~
-~.....t.tt.......#__#########__#...............~~~
+~.....t.tt.......#__####4####__#...............~~~
 ~....ttttt.......##___________##..............~~~~
 ~....ttttt........#___________#......tt.......~~~~
 ~~...tttt.....t...#___________#.....tttt.....~~~~~
diff --git a/game/modules/tome/data/maps/towns/iron-council.lua b/game/modules/tome/data/maps/towns/iron-council.lua
index 41d964f80f529f715610de16ed7ee804d587ef84..e8649e769cbc66460a0c7979187cf50d349b12d2 100644
--- a/game/modules/tome/data/maps/towns/iron-council.lua
+++ b/game/modules/tome/data/maps/towns/iron-council.lua
@@ -31,8 +31,12 @@ defineTile(".", "OLD_FLOOR")
 defineTile("s", "STATUE")
 defineTile("R", "ESCAPE_REKNOR")
 
-defineTile("2", "HARDWALL", nil, nil, "ARMOR_STORE")
-defineTile("3", "HARDWALL", nil, nil, "WEAPON_STORE")
+defineTile("1", "HARDWALL", nil, nil, "HEAVY_ARMOR_STORE")
+defineTile("2", "HARDWALL", nil, nil, "LIGHT_ARMOR_STORE")
+defineTile("7", "HARDWALL", nil, nil, "CLOTH_ARMOR_STORE")
+defineTile("3", "HARDWALL", nil, nil, "AXE_WEAPON_STORE")
+defineTile("4", "HARDWALL", nil, nil, "MACE_WEAPON_STORE")
+defineTile("6", "HARDWALL", nil, nil, "SWORD_WEAPON_STORE")
 defineTile("5", "HARDWALL", nil, nil, "RUNIC_STORE")
 defineTile("9", "HARDWALL", nil, nil, "GEM_STORE")
 
@@ -53,12 +57,12 @@ return [[
 ####.......####........####......####........#####
 ####.......####........####......####.........####
 ####.......####........####......####.........####
-####........###........2##3......###..........####
+####........#1#........2##3......#4#..........####
 ####....................##....................####
 ####...###............................###.....####
 ####...####..........................####.....####
 ####...####..........................####.....####
-####...####..........................####.....####
+####...##7#..........................#6##.....####
 ####.............s..............s.............####
 ####..........................................####
 ####..........................................####
diff --git a/game/modules/tome/data/zones/town-derth/traps.lua b/game/modules/tome/data/zones/town-derth/traps.lua
index 5eaf5910e4bc4a08daaea4b15fe787eb9edb64d9..4f18894d922bbd1fe96b7edc291f8c7055a48867 100644
--- a/game/modules/tome/data/zones/town-derth/traps.lua
+++ b/game/modules/tome/data/zones/town-derth/traps.lua
@@ -19,16 +19,28 @@
 
 load("/data/general/traps/store.lua")
 
-newEntity{ base = "BASE_STORE", define_as = "ARMOR_STORE",
+newEntity{ base = "BASE_STORE", define_as = "HEAVY_ARMOR_STORE",
 	name="Armoury",
 	display='2', color=colors.UMBER,
-	resolvers.store("ARMOR", "allied-kingdoms"),
+	resolvers.store("HEAVY_ARMOR", "allied-kingdoms"),
 }
 
-newEntity{ base = "BASE_STORE", define_as = "WEAPON_STORE",
-	name="Weapon Store",
+newEntity{ base = "BASE_STORE", define_as = "LIGHT_ARMOR_STORE",
+	name="Tanner",
+	display='2', color=colors.UMBER,
+	resolvers.store("LIGHT_ARMOR", "allied-kingdoms"),
+}
+
+newEntity{ base = "BASE_STORE", define_as = "SWORD_WEAPON_STORE",
+	name="Swordsmith",
+	display='3', color=colors.UMBER,
+	resolvers.store("SWORD_WEAPON", "allied-kingdoms"),
+}
+
+newEntity{ base = "BASE_STORE", define_as = "KNIFE_WEAPON_STORE",
+	name="Knives and daggers",
 	display='3', color=colors.UMBER,
-	resolvers.store("WEAPON", "allied-kingdoms"),
+	resolvers.store("KNIFE_WEAPON", "allied-kingdoms"),
 }
 
 newEntity{ base = "BASE_STORE", define_as = "HERBALIST",
diff --git a/game/modules/tome/data/zones/town-elvala/traps.lua b/game/modules/tome/data/zones/town-elvala/traps.lua
index 11103896472bf258b50528a88386f36052f30f43..49517b3e6f0fb05b9e3859a5e73e61ffb7c6ec47 100644
--- a/game/modules/tome/data/zones/town-elvala/traps.lua
+++ b/game/modules/tome/data/zones/town-elvala/traps.lua
@@ -19,16 +19,26 @@
 
 load("/data/general/traps/store.lua")
 
-newEntity{ base = "BASE_STORE", define_as = "ARMOR_STORE",
-	name="Armoury",
+newEntity{ base = "BASE_STORE", define_as = "CLOTH_ARMOR_STORE",
+	name="Tailor",
+	display='2', color=colors.RED,
+	resolvers.store("CLOTH_ARMOR"),
+}
+newEntity{ base = "BASE_STORE", define_as = "LIGHT_ARMOR_STORE",
+	name="Tanner",
 	display='2', color=colors.UMBER,
-	resolvers.store("ARMOR"),
+	resolvers.store("LIGHT_ARMOR"),
 }
 
-newEntity{ base = "BASE_STORE", define_as = "WEAPON_STORE",
-	name="Weapon Store",
+newEntity{ base = "BASE_STORE", define_as = "SWORD_WEAPON_STORE",
+	name="Swordsmith",
 	display='3', color=colors.UMBER,
-	resolvers.store("WEAPON"),
+	resolvers.store("SWORD_WEAPON"),
+}
+newEntity{ base = "BASE_STORE", define_as = "STAFF_WEAPON_STORE",
+	name="Staff carver",
+	display='3', color=colors.RED,
+	resolvers.store("STAFF_WEAPON"),
 }
 
 newEntity{ base = "BASE_STORE", define_as = "RUNEMASTER",
diff --git a/game/modules/tome/data/zones/town-iron-council/traps.lua b/game/modules/tome/data/zones/town-iron-council/traps.lua
index 39d3369e9a311954c8b25ff9828e5246889d1dcf..bc5eca434567f253f5c49a1e379207dac24c6e16 100644
--- a/game/modules/tome/data/zones/town-iron-council/traps.lua
+++ b/game/modules/tome/data/zones/town-iron-council/traps.lua
@@ -19,16 +19,36 @@
 
 load("/data/general/traps/store.lua")
 
-newEntity{ base = "BASE_STORE", define_as = "ARMOR_STORE",
+newEntity{ base = "BASE_STORE", define_as = "HEAVY_ARMOR_STORE",
 	name="Armoury",
 	display='2', color=colors.UMBER,
-	resolvers.store("ARMOR", "iron-throne"),
+	resolvers.store("HEAVY_ARMOR", "iron-throne"),
+}
+newEntity{ base = "BASE_STORE", define_as = "LIGHT_ARMOR_STORE",
+	name="Tanner",
+	display='2', color=colors.UMBER,
+	resolvers.store("LIGHT_ARMOR", "iron-throne"),
+}
+newEntity{ base = "BASE_STORE", define_as = "CLOTH_ARMOR_STORE",
+	name="Tailor",
+	display='2', color=colors.UMBER,
+	resolvers.store("CLOTH_ARMOR", "iron-throne"),
 }
 
-newEntity{ base = "BASE_STORE", define_as = "WEAPON_STORE",
-	name="Weapon Store",
+newEntity{ base = "BASE_STORE", define_as = "SWORD_WEAPON_STORE",
+	name="Sword smith",
+	display='3', color=colors.UMBER,
+	resolvers.store("SWORD_WEAPON", "iron-throne"),
+}
+newEntity{ base = "BASE_STORE", define_as = "AXE_WEAPON_STORE",
+	name="Axe smith",
+	display='3', color=colors.UMBER,
+	resolvers.store("AXE_WEAPON", "iron-throne"),
+}
+newEntity{ base = "BASE_STORE", define_as = "MACE_WEAPON_STORE",
+	name="Mace smith",
 	display='3', color=colors.UMBER,
-	resolvers.store("WEAPON", "iron-throne"),
+	resolvers.store("MAUL_WEAPON", "iron-throne"),
 }
 
 newEntity{ base = "BASE_STORE", define_as = "RUNIC_STORE",
diff --git a/game/modules/tome/data/zones/town-zigur/traps.lua b/game/modules/tome/data/zones/town-zigur/traps.lua
index 09cce3aadae901fda62c58d40efc0e09abe1a0aa..824aa7fbe3bdcf42fd10f8ebc094d6810ed585e3 100644
--- a/game/modules/tome/data/zones/town-zigur/traps.lua
+++ b/game/modules/tome/data/zones/town-zigur/traps.lua
@@ -19,16 +19,36 @@
 
 load("/data/general/traps/store.lua")
 
-newEntity{ base = "BASE_STORE", define_as = "ARMOR_STORE",
+newEntity{ base = "BASE_STORE", define_as = "HEAVY_ARMOR_STORE",
 	name="Armoury",
 	display='2', color=colors.UMBER,
-	resolvers.store("ZIGUR_ARMOR", "zigur"),
+	resolvers.store("ZIGUR_HARMOR", "zigur"),
+}
+newEntity{ base = "BASE_STORE", define_as = "LIGHT_ARMOR_STORE",
+	name="Tanner",
+	display='2', color=colors.UMBER,
+	resolvers.store("ZIGUR_LARMOR", "zigur"),
 }
 
-newEntity{ base = "BASE_STORE", define_as = "WEAPON_STORE",
-	name="Weapon Store",
+newEntity{ base = "BASE_STORE", define_as = "SWORD_WEAPON_STORE",
+	name="Sword smith",
+	display='3', color=colors.UMBER,
+	resolvers.store("ZIGUR_SWORD_WEAPON", "zigur"),
+}
+newEntity{ base = "BASE_STORE", define_as = "MACE_WEAPON_STORE",
+	name="Mace smith",
+	display='3', color=colors.UMBER,
+	resolvers.store("ZIGUR_MACE_WEAPON", "zigur"),
+}
+newEntity{ base = "BASE_STORE", define_as = "AXE_WEAPON_STORE",
+	name="Axe smith",
+	display='3', color=colors.UMBER,
+	resolvers.store("ZIGUR_AXE_WEAPON", "zigur"),
+}
+newEntity{ base = "BASE_STORE", define_as = "KNIFE_WEAPON_STORE",
+	name="Knife smith",
 	display='3', color=colors.UMBER,
-	resolvers.store("ZIGUR_WEAPON", "zigur"),
+	resolvers.store("ZIGUR_KNIFE_WEAPON", "zigur"),
 }
 
 newEntity{ base = "BASE_STORE", define_as = "LIBRARY",
diff --git a/tiled-maps/elvala.tmx b/tiled-maps/elvala.tmx
index 63ca33bd00056ca7f0de06b75df4bcdda453671d..27b0baa289994714ec2577ec16675373fa02f644 100644
--- a/tiled-maps/elvala.tmx
+++ b/tiled-maps/elvala.tmx
@@ -92,6 +92,11 @@
  </tileset>
  <tileset firstgid="361" name="dg_town132" tilewidth="32" tileheight="32">
   <image source="gfx/dg_town132.gif" width="288" height="128"/>
+  <tile id="3">
+   <properties>
+    <property name="display" value="5"/>
+   </properties>
+  </tile>
   <tile id="4">
    <properties>
     <property name="display" value="2"/>
@@ -102,6 +107,11 @@
     <property name="display" value="3"/>
    </properties>
   </tile>
+  <tile id="16">
+   <properties>
+    <property name="display" value="1"/>
+   </properties>
+  </tile>
   <tile id="22">
    <properties>
     <property name="display" value="4"/>
@@ -115,7 +125,7 @@
  </tileset>
  <layer name="Terrain" width="50" height="50">
   <data encoding="base64" compression="zlib">
-   eJzt2tttwzAMBVD7N0tkDM/gLbJAu0PX9DRFgBggBJK6fIhWgnwQBdJY0hFFyXa7L8uyf0ONg8TVY4ka7m9soYYzUMtWMD60j4ijYryIg9YE5/BaKvJU4ajM27FgjtZSPdeWXFgcV837JzvO8f2suuN3nbdOTsfdEM/v315B27kJ4Vkf1Q40Zs8Hja0Jr8M7J6McW6dfj0EzZa4rzjLKQIPbnxAHarGsK6QdzSGdE1x4a32kgToQQ/tcMsrRMyBz/Lfi+eDCa2kdvbFb6sAaqMlS4+jYpd/TtizXcSbEEtmDJCvXJnKdZW/rOSzrhxuPVmseh2TpObzreaSDy/On5iNiubI+rLU+636FOmY+PzwOzYSe0VnnufcsRG2o4Wi+H+kXMWzkZ+9+MZKPkQ7pmay31jx1kGXIcLQ5QR1SW0if1nt3qb328ywH0rf1GUSbjxEOZB1kP5tnOzhDhSO7PtB6zHDQPrh8aOe+dt5Z9hSLQWoP3X8Rh5QLi4G+13qsWJuSi37udaDheVeCvvPJyEdk/JwF3StQi/Ue3DP2mR0eA7pneZ5XPPdTEUNvXNbrrnTsgbZ6lmxD1d+puVoZNfdVluj4Z/sfgdHxD/vJhNg=
+   eJzt2lFuwyAMBuDktZfoMXKG3GIH2Pbex10zp5kmNZKFbPP/xhBa7cGq1CXABxhI1n1Zlv0/3DhEXN2WVsP9hS3ScAZq2Qa0D62jxTGivYhD5oTmiFpGjNMIx8hxOxbMUVpG9zUzFozjqn5/Z8fZvq/Vd3yv8+bJ6bgT8Xf97RmynJsRkfkx2oHG7OMhYysi6oj2SS/HVqk3YvBMmfNKs/QyyNDWJ8SBWph5hZTjOax9Qotorvc0SAdiKJ9LejlqBqSPf1b9mseKjV3UUjpqbWfygA3UxOQ42nbr77Is5j7NhFha1iDLqpWJ3MesbTUHM3+09ni5FnFYlpojOp97OrRxftfxaLFcmR9srs+6XqGOmfePiMMzafs5c75i9/PoXojaUMNRXN9SL2LYxGftvOj18ady1pLX9nRYz2S1uRbJgyxDhqMcE9RhlYXUyZ7drfLK77McSN3sM4jXHz0cyDzIfjbPdmiGEY7s/EDzMcMh69DGw9v3vf2OWVMYg1Ueuv4iDmssGIN8r/WxYmVaLvl91IFG5F0J+s4nYzxa2q9Z0LUCtbBn8EjbZ3ZEDOiaFXleiZynWgy1drH3XenYG8qqWbINo/5PreVKr74fZWlt/2y/Eegdv+VOhAs=
   </data>
  </layer>
 </map>