diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua
index 76d2d848b53d78e7fb73b5f98e6fe4c2609815bf..0c42e0fe3b9d89fdea5cb3ca95379ca1bf0fcd3f 100644
--- a/game/modules/tome/class/Game.lua
+++ b/game/modules/tome/class/Game.lua
@@ -681,7 +681,7 @@ function _M:setupCommands()
 --]]
 -- [[
 				for i = 1, 50 do
-					local a = self.zone:makeEntity(self.level, "object", {type="scroll", ego_chance=100, add_levels=50}, nil, true)
+					local a = self.zone:makeEntity(self.level, "object", {type="weapon", ego_chance=100, add_levels=50}, nil, true)
 					if a then
 						a:identify(true)
 						self.zone:addEntity(self.level, a, "object", self.player.x, self.player.y)
diff --git a/game/modules/tome/class/Object.lua b/game/modules/tome/class/Object.lua
index 36581e643a97d6134ea03fddc4b5520df5333749..e4b23824f6b16d94a803b1e17a56f0ffe39e5fa7 100644
--- a/game/modules/tome/class/Object.lua
+++ b/game/modules/tome/class/Object.lua
@@ -244,6 +244,14 @@ function _M:getTextualDesc()
 		if combat.travel_speed then
 			desc:add("Increase travel speed by "..combat.travel_speed.."%", true)
 		end
+
+		if combat.melee_project then
+			local rs = {}
+			for typ, dam in pairs(combat.melee_project) do
+				rs[#rs+1] = ("%d %s"):format(dam, DamageType.dam_def[typ].name)
+			end
+			desc:add(("Damage on strike(melee): %s."):format(table.concat(rs, ',')), true)
+		end
 	end
 
 	local desc_wielder = function(w)
diff --git a/game/modules/tome/class/interface/Combat.lua b/game/modules/tome/class/interface/Combat.lua
index 9776fba3ffa8235446b93ace1dcc85dbbd9f2e42..31c2db38ce48f9cf747255384d5e520d76bb5810 100644
--- a/game/modules/tome/class/interface/Combat.lua
+++ b/game/modules/tome/class/interface/Combat.lua
@@ -239,6 +239,11 @@ function _M:attackTargetWith(target, weapon, damtype, mult)
 	end
 
 	-- Melee project
+	if hitted and not target.dead and weapon.melee_project then for typ, dam in pairs(weapon.melee_project) do
+		if dam > 0 then
+			DamageType:get(typ).projector(self, target.x, target.y, typ, dam)
+		end
+	end end
 	if hitted and not target.dead then for typ, dam in pairs(self.melee_project) do
 		if dam > 0 then
 			DamageType:get(typ).projector(self, target.x, target.y, typ, dam)
diff --git a/game/modules/tome/data/general/objects/boss-artifacts.lua b/game/modules/tome/data/general/objects/boss-artifacts.lua
index 9ccf07a67596a61901b82434bc98fbeaad9491e4..ace4ef9b835aad27eee605d51d33dbd7f57dc098 100644
--- a/game/modules/tome/data/general/objects/boss-artifacts.lua
+++ b/game/modules/tome/data/general/objects/boss-artifacts.lua
@@ -38,13 +38,13 @@ It is said the Conclave created this weapon for their warmaster during the dark
 		physcrit = 10,
 		dammod = {str=1},
 		damrange = 1.4,
+		melee_project={[DamageType.ICE] = 15},
 	},
 	wielder = {
 		lite = 1,
 		see_invisible = 2,
 		resists={[DamageType.COLD] = 25},
 		inc_damage = { [DamageType.COLD] = 20 },
-		melee_project={[DamageType.ICE] = 15},
 	},
 	max_power = 18, power_regen = 1,
 	use_power = { name = "generate a burst of ice", power = 8,
@@ -164,6 +164,10 @@ Tridents require the exotic weapons mastery talent to correctly use.]],
 		physcrit = 15,
 		dammod = {str=1.3},
 		damrange = 1.4,
+		melee_project={
+			[DamageType.COLD] = 15,
+			[DamageType.NATURE] = 20,
+		},
 	},
 
 	wielder = {
@@ -171,10 +175,6 @@ Tridents require the exotic weapons mastery talent to correctly use.]],
 		see_invisible = 2,
 		resists={[DamageType.COLD] = 25},
 		inc_damage = { [DamageType.COLD] = 20 },
-		melee_project={
-			[DamageType.COLD] = 15,
-			[DamageType.NATURE] = 20,
-		},
 	},
 
 	max_power = 150, power_regen = 1,
@@ -356,11 +356,11 @@ newEntity{ base = "BASE_WARAXE",
 		physcrit = 10,
 		dammod = {str=1},
 		damrange = 1.2,
+		melee_project={[DamageType.BLIGHT] = 20},
 	},
 	wielder = {
 		life_regen = -0.3,
 		inc_damage = { [DamageType.BLIGHT] = 20 },
-		melee_project={[DamageType.BLIGHT] = 20},
 	},
 }
 
diff --git a/game/modules/tome/data/general/objects/egos/weapon.lua b/game/modules/tome/data/general/objects/egos/weapon.lua
index 575d5ed6278ccdda2882e69429c95a37830059b9..4e9cb5344800312e279bd3db468914d32370c3c8 100644
--- a/game/modules/tome/data/general/objects/egos/weapon.lua
+++ b/game/modules/tome/data/general/objects/egos/weapon.lua
@@ -25,7 +25,7 @@ newEntity{
 	name = "flaming ", prefix=true, instant_resolve=true,
 	level_range = {1, 50},
 	rarity = 5,
-	wielder = {
+	combat = {
 		melee_project={[DamageType.FIRE] = resolvers.mbonus_material(25, 4, function(e, v) return v * 0.64 end)},
 	},
 }
@@ -33,7 +33,7 @@ newEntity{
 	name = "icy ", prefix=true, instant_resolve=true,
 	level_range = {15, 50},
 	rarity = 5,
-	wielder = {
+	combat = {
 		melee_project={[DamageType.ICE] = resolvers.mbonus_material(15, 4, function(e, v) return v * 0.7 end)},
 	},
 }
@@ -41,7 +41,7 @@ newEntity{
 	name = "acidic ", prefix=true, instant_resolve=true,
 	level_range = {1, 50},
 	rarity = 5,
-	wielder = {
+	combat = {
 		melee_project={[DamageType.ACID] = resolvers.mbonus_material(25, 4, function(e, v) return v * 0.7 end)},
 	},
 }
@@ -49,7 +49,7 @@ newEntity{
 	name = "shocking ", prefix=true, instant_resolve=true,
 	level_range = {1, 50},
 	rarity = 5,
-	wielder = {
+	combat = {
 		melee_project={[DamageType.LIGHTNING] = resolvers.mbonus_material(25, 4, function(e, v) return v * 0.7 end)},
 	},
 }
@@ -57,7 +57,7 @@ newEntity{
 	name = "poisonous ", prefix=true, instant_resolve=true,
 	level_range = {1, 50},
 	rarity = 5,
-	wielder = {
+	combat = {
 		melee_project={[DamageType.POISON] = resolvers.mbonus_material(45, 6, function(e, v) return v * 0.5 end)},
 	},
 }
@@ -66,7 +66,7 @@ newEntity{
 	name = "slime-covered ", prefix=true, instant_resolve=true,
 	level_range = {10, 50},
 	rarity = 5,
-	wielder = {
+	combat = {
 		melee_project={[DamageType.SLIME] = resolvers.mbonus_material(45, 6, function(e, v) return v * 0.9 end)},
 	},
 }
@@ -93,7 +93,7 @@ newEntity{
 	greater_ego = true,
 	rarity = 25,
 	cost = 35,
-	wielder = {
+	combat = {
 		melee_project={
 			[DamageType.FIRE] = resolvers.mbonus_material(25, 4, function(e, v) return v * 0.7 end),
 			[DamageType.ICE] = resolvers.mbonus_material(15, 4, function(e, v) return v * 0.7 end),
@@ -165,11 +165,13 @@ newEntity{
 	greater_ego = true,
 	rarity = 20,
 	cost = 35,
-	wielder = {
+	combat = {
 		melee_project={
 			[DamageType.BLIGHT] = resolvers.mbonus_material(25, 4, function(e, v) return v * 0.7 end),
 			[DamageType.DARKNESS] = resolvers.mbonus_material(25, 4, function(e, v) return v * 0.7 end),
 		},
+	},
+	wielder = {
 		see_invisible = resolvers.mbonus_material(20, 5, function(e, v) return v * 0.2 end),
 		combat_physcrit = resolvers.mbonus_material(10, 4, function(e, v) return v * 0.4 end),
 	},
diff --git a/game/modules/tome/data/general/objects/world-artifacts.lua b/game/modules/tome/data/general/objects/world-artifacts.lua
index 5bc1fb6311a3cbe85ddef43f72f50201eec6e612..5c27b4ad0cbac6ad9b361a20115a74b55bfc5ca8 100644
--- a/game/modules/tome/data/general/objects/world-artifacts.lua
+++ b/game/modules/tome/data/general/objects/world-artifacts.lua
@@ -588,8 +588,6 @@ newEntity{ base = "BASE_KNIFE",
 		physcrit = 8,
 		dammod = {dex=0.55,cun=0.35},
 		no_stealth_break = true,
-	},
-	wielder = {
 		melee_project={[DamageType.RANDOM_SILENCE] = 10},
 	},
 }
@@ -609,13 +607,13 @@ newEntity{ base = "BASE_KNIFE",
 		apr = 15,
 		physcrit = 5,
 		dammod = {dex=0.45,str=0.45},
+		melee_project={[DamageType.DARKNESS] = 20},
 	},
 	wielder = {
 		lite = -1,
 		inc_damage={
 			[DamageType.DARKNESS] = 5,
 		},
-		melee_project={[DamageType.DARKNESS] = 20},
 	},
 }
 
@@ -634,13 +632,13 @@ newEntity{ base = "BASE_KNIFE",
 		apr = 7,
 		physcrit = 13,
 		dammod = {dex=0.45,str=0.45},
+		melee_project={[DamageType.LIGHT] = 20},
 	},
 	wielder = {
 		lite = 1,
 		inc_damage={
 			[DamageType.LIGHT] = 5,
 		},
-		melee_project={[DamageType.LIGHT] = 20},
 	},
 }
 
@@ -692,12 +690,12 @@ newEntity{ base = "BASE_GREATMAUL",
 		physcrit = 4,
 		dammod = {str=1.2},
 		talent_on_hit = { [Talents.T_FLAMESHOCK] = {level=3, chance=10} },
+		melee_project={[DamageType.FIRE] = 30},
 	},
 	wielder = {
 		inc_damage={
 			[DamageType.PHYSICAL] = 15,
 		},
-		melee_project={[DamageType.FIRE] = 30},
 	},
 }
 
@@ -1005,10 +1003,10 @@ newEntity{ base = "BASE_WARAXE",
 		apr = 4.5,
 		physcrit = 7,
 		dammod = {str=1},
+		melee_project={[DamageType.COLD] = 25},
 	},
 	wielder = {
 		combat_atk = 15,
-		melee_project={[DamageType.COLD] = 25},
 	},
 }
 
@@ -1025,10 +1023,10 @@ newEntity{ base = "BASE_WHIP",
 		atk = 10,
 		physcrit = 5,
 		dammod = {dex=1},
+		melee_project={[DamageType.POISON] = 22},
 	},
 	wielder = {
 		see_invisible = 9,
-		melee_project={[DamageType.POISON] = 22},
 	},
 }
 
@@ -1296,8 +1294,6 @@ newEntity{ base = "BASE_GREATSWORD",
 			elseif eff == "confusion" then target:setEffect(target.EFF_CONFUSED, 3, {power=75})
 			end
 		end},
-	},
-	wielder = {
 		melee_project={[DamageType.LIGHT] = 40, [DamageType.DARKNESS] = 40},
 	},
 }