diff --git a/game/modules/tome/class/GameState.lua b/game/modules/tome/class/GameState.lua
index 843ea1a8e0cb589c5d434df53b64f9066f8b2cbe..fb28bcad8fb882617d70b838a116d86ec23b6abc 100644
--- a/game/modules/tome/class/GameState.lua
+++ b/game/modules/tome/class/GameState.lua
@@ -566,6 +566,7 @@ function _M:spawnWorldAmbush(enc, dx, dy)
 		level_range = {game.player.level, game.player.level},
 		level_scheme = "player",
 		max_level = 1,
+		objects_cost_modifier = 0.1,
 		actor_adjust_level = function(zone, level, e) return zone.base_level + e:getRankLevelAdjust() + level.level-1 + rng.range(-1,2) end,
 		width = enc.width or 20, height = enc.height or 20,
 --		no_worldport = true,
diff --git a/game/modules/tome/class/Object.lua b/game/modules/tome/class/Object.lua
index dfd6fc30ae5d841ae7c2ca9a10e5fbf8e2bc2087..0d546c9012f4a72851c59394a2a57baebdb92fb1 100644
--- a/game/modules/tome/class/Object.lua
+++ b/game/modules/tome/class/Object.lua
@@ -1484,6 +1484,10 @@ function _M:getPrice()
 	if self.egoed then
 		base = base + self:getPriceFlags()
 	end
+	if game.level and game.level.data and game.level.data.objects_cost_modifier then
+		local v = util.getval(game.level.data.objects_cost_modifier, self)
+		base = base * v
+	end
 	return base
 end
 
diff --git a/game/modules/tome/data/zones/shertul-fortress/grids.lua b/game/modules/tome/data/zones/shertul-fortress/grids.lua
index 8c319c4ea0d482f97fc30d550f0671ff56ece1da..147cc7b358160727ee5ec4ba26374abfa4d7e495 100644
--- a/game/modules/tome/data/zones/shertul-fortress/grids.lua
+++ b/game/modules/tome/data/zones/shertul-fortress/grids.lua
@@ -88,6 +88,7 @@ It should automatically create a portal back, but it might not be near your arri
 			zone.no_worldport = true
 			zone.force_farportal_recall = true
 			zone.generator.actor.abord_no_guardian = true
+			zone.objects_cost_modifier = 0.1
 			zone.make_back_portal = function(self)
 				local p = game:getPlayer(true)
 				local x, y = p.x, p.y