diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua
index 8106c8ac1949287cfb3fb1efc5202977b855187d..9d20384653f97b4a67524b65c06d2725c13525f2 100644
--- a/game/modules/tome/class/Game.lua
+++ b/game/modules/tome/class/Game.lua
@@ -1115,7 +1115,9 @@ function _M:setupCommands()
 			end end
 		end end,
 		[{"_g","ctrl"}] = function() if config.settings.cheat then
-			game.state:debugRandomZone()
+			local o = self.state:generateRandart(false)
+			o:identify(true)
+			self.zone:addEntity(self.level, o, "object", game.player.x, game.player.y)
 		end end,
 		[{"_f","ctrl"}] = function() if config.settings.cheat then
 			self.player.quests["love-melinda"] = nil
diff --git a/game/modules/tome/class/GameState.lua b/game/modules/tome/class/GameState.lua
index 51efa63dd2ce43c5fcd20faf81e5b4ae06a3d6a8..6d9f3b64bd85bbe1643ef506730fb134a03d381a 100644
--- a/game/modules/tome/class/GameState.lua
+++ b/game/modules/tome/class/GameState.lua
@@ -323,6 +323,10 @@ function _M:generateRandart(add, base, lev, nb_egos)
 			local filter = nil
 			if rng.percent(lev) and been_greater < 2 then been_greater = been_greater + 1 filter = function(e) return e.greater_ego end end
 			for z = 1, #egos do list[#list+1] = egos[z].e end
+
+			local ef = self:egoFilter(game.zone, game.level, "object", "randartego", o, {special=filter}, list, {})
+			filter = ef.special
+
 			local pick_egos = game.zone:computeRarities("object", list, game.level, filter, nil, nil)
 			local ego = game.zone:pickEntity(pick_egos)
 			if ego then