diff --git a/game/modules/tome/data/general/grids/mountain.lua b/game/modules/tome/data/general/grids/mountain.lua
index ea370311c82425f55ca532dc00e44c06a8ea4fc6..37e8cad026d84017b5e556918c997f4c33659d9e 100644
--- a/game/modules/tome/data/general/grids/mountain.lua
+++ b/game/modules/tome/data/general/grids/mountain.lua
@@ -69,6 +69,21 @@ for i = 1, 30 do
 	}))
 end
 
+newEntity{ define_as = "CLIFFSIDE",
+	type = "floor", subtype = "rock",
+	name = "cliffside",  image = "terrain/rocky_ground.png", add_mos = {{image = "terrain/half_wall.png"}},
+	display = 'v', color=colors.UMBER, back_color=colors.LIGHT_UMBER,
+	always_remember = true,
+
+	does_block_move = true,
+	block_sight = false,
+	pass_projectile = true,
+
+	can_pass = {pass_wall=1},
+
+	dig = "ROCKY_GROUND",
+}
+
 newEntity{
 	define_as = "HARDMOUNTAIN_WALL",
 	type = "rockwall", subtype = "rock",
diff --git a/game/modules/tome/data/gfx/shockbolt/object/artifact/the_far_hand.png b/game/modules/tome/data/gfx/shockbolt/object/artifact/the_far_hand.png
new file mode 100644
index 0000000000000000000000000000000000000000..f0eb5226cf4cd643dc9906ba37bff1ccc8b93cb4
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/object/artifact/the_far_hand.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/half_wall.png b/game/modules/tome/data/gfx/shockbolt/terrain/half_wall.png
new file mode 100644
index 0000000000000000000000000000000000000000..c20a0f1d690812a807f659cfe56a9da5775c3391
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/half_wall.png differ
diff --git a/game/modules/tome/data/maps/vaults/auto/greater/sleeping-dragons.lua b/game/modules/tome/data/maps/vaults/auto/greater/sleeping-dragons.lua
index 093dd1702eb25ea5c404620173097b073864b2f2..6f7ef42f942babee0c351088b7a256e2a1a37dbb 100644
--- a/game/modules/tome/data/maps/vaults/auto/greater/sleeping-dragons.lua
+++ b/game/modules/tome/data/maps/vaults/auto/greater/sleeping-dragons.lua
@@ -41,6 +41,7 @@ local wyrm_types = {
    storm={"storm drake", "storm wyrm"},
    venom={"venom drake", "venom wyrm"}
 }
+
 local wyrm_types_names = {"cold", "fire", "storm", "venom"}
 roomCheck(function(room, zone, level, map)
    local wyrm_types_name = rng.table(wyrm_types_names)
@@ -55,6 +56,7 @@ roomCheck(function(room, zone, level, map)
    end
    return true
 end)
+
 local check_sleep = function(self)
    if game.level.wyrm_awoken == true then
       return true
@@ -68,6 +70,7 @@ local check_sleep = function(self)
    end
    return true
 end
+
 local aggro_wyrm = function()
    if game.level.wyrm_awoken == true then
       return false
@@ -82,18 +85,22 @@ local aggro_wyrm = function()
    game.log("#CRIMSON#The dragons awaken from their slumber detecting their loot being stolen!")
    return true
 end
+
 local aggro_wyrm_takehit = function(self, value, src)
-   aggro_wyrm()
+   self:aggro_wyrm()
    return value
 end
+
 local aggro_wyrm_grid = function(chance)
    local g = game.zone.grid_list.FLOOR:clone()
+   g.aggro_wyrm_chance = chance
+   g.aggro_wyrm = aggro_wyrm
    g.on_move = function(self, x, y, actor, forced)
       if not actor.player then return end
       if forced then return end
       if game.level.wyrm_awoken then return end
-      if not rng.percent(chance) then return end
-      aggro_wyrm()
+      if not rng.percent(self.aggro_wyrm_chance) then return end
+      self:aggro_wyrm()
    end
    return g
 end
@@ -106,6 +113,7 @@ defineTile('W', "FLOOR", nil,
       e.on_seen = check_sleep
       e.on_act = check_sleep
       e.on_takehit = aggro_wyrm_takehit
+      e.aggro_wyrm = aggro_wyrm
       e.sleeping_wyrm = true
       return e
    end,
@@ -121,6 +129,7 @@ defineTile('D', "FLOOR", nil,
       e.on_seen = check_sleep
       e.on_act = check_sleep
       e.on_takehit = aggro_wyrm_takehit
+      e.aggro_wyrm = aggro_wyrm
       e.sleeping_wyrm = true
       return e
    end,
diff --git a/game/modules/tome/data/maps/vaults/auto/lesser/perilous-cliffs.lua b/game/modules/tome/data/maps/vaults/auto/lesser/perilous-cliffs.lua
new file mode 100644
index 0000000000000000000000000000000000000000..c3879c34f347d9a4d7e7a00f3bda46d1f6422d56
--- /dev/null
+++ b/game/modules/tome/data/maps/vaults/auto/lesser/perilous-cliffs.lua
@@ -0,0 +1,50 @@
+-- ToME - Tales of Maj'Eyal
+-- Copyright (C) 2009 - 2019 Nicolas Casalini
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+--
+-- Nicolas Casalini "DarkGod"
+-- darkgod@te4.org
+
+specialList("actor", {
+   "/data/general/npcs/snow-giant.lua",
+})
+
+specialList("terrain", {
+	"/data/general/grids/mountain.lua",
+})
+
+rotates = {"default", "90", "180", "270", "flipx", "flipy"}
+
+defineTile('#', "HARDMOUNTAIN_WALL")
+defineTile('.', "ROCKY_GROUND")
+defineTile('v', "CLIFFSIDE")
+defineTile('!', "DOOR_VAULT")
+
+defineTile('$', "ROCKY_GROUND", {random_filter={add_levels=20, type="money"}})
+
+defineTile('T', "ROCKY_GROUND", {random_filter={add_levels=5, tome_mod="gvault"}}, {random_filter={add_levels=8, name = "snow giant thunderer"}} )
+defineTile('G', "ROCKY_GROUND", nil, {random_filter={add_levels=5, name = "snow giant boulder thrower"}} )
+
+return {
+ [[###########]],
+ [[#.........#]],
+ [[#.vvvvvvv.#]],
+ [[#.v.....v.#]],
+ [[#.v.vGT.v.#]],
+ [[#.v.v$G.v.#]],
+ [[#.v.vvvvv.#]],
+ [[#.v.......#]],
+ [[#!#########]],
+}
diff --git a/game/modules/tome/data/maps/vaults/greater-crypt.lua b/game/modules/tome/data/maps/vaults/greater-crypt.lua
index 3ed0f4a13948f2313423a822d49e243fd9016d47..68d5f626ac6dbeeb4afb4106165c0de9cb666f73 100644
--- a/game/modules/tome/data/maps/vaults/greater-crypt.lua
+++ b/game/modules/tome/data/maps/vaults/greater-crypt.lua
@@ -194,7 +194,6 @@ defineTile('5', mod.class.Grid.new{
 )
 startx, starty = 0, 17
 return {
-
 [[###############################MMM#]],
 [[#..+.#..z.S+...#......u....z.,MMMMM]],
 [[#..#.#.~~~.###.#..V....z.....,MMMM#]],
diff --git a/game/modules/tome/data/maps/vaults/snake-pit.lua b/game/modules/tome/data/maps/vaults/snake-pit.lua
index 5fc4debb7f4d2479a1d3398ff473d33671bd3873..2b630d07e2f67a365c2c246e4b128a76fa308c5c 100644
--- a/game/modules/tome/data/maps/vaults/snake-pit.lua
+++ b/game/modules/tome/data/maps/vaults/snake-pit.lua
@@ -18,7 +18,7 @@
 -- darkgod@te4.org
 
 startx = 3
-starty = 4
+starty = 5
 
 setStatusAll{no_teleport=true, room_map = {can_open=false}}
 specialList("actor", {
@@ -26,6 +26,7 @@ specialList("actor", {
    "/data/general/npcs/molds.lua",
    "/data/general/npcs/feline.lua",
    "/data/general/npcs/ant.lua",
+   "/data/zones/ritch-tunnels/npcs.lua",
    "/data/general/npcs/sandworm.lua",
    "/data/general/npcs/spider.lua",
    "/data/general/npcs/vermin.lua",
@@ -33,17 +34,20 @@ specialList("actor", {
 })
 rotates = {"default", "90", "180", "270", "flipx", "flipy"}
 
+defineTile(',', data.floor or data['.'] or "FLOOR")
 defineTile('#', "HARDWALL")
-defineTile('!', "DOOR_VAULT")
+defineTile('w', "WALL")
+defineTile('d', "FLOOR", {random_filter={type="tool", subtype="digger", name="iron pickaxe", ego_chance=-1000, ego_chance=-1000}})
 
 local mobs = {
    "rattlesnake",
    "green worm mass",
-   "giant ice ant",
+   "giant brown ant",
    "snow cat",
    "green mold",
    "giant grey rat",
    "giant spider",
+   "ritch flamespitter",
    "sandworm"
 }
 local mob = rng.tableRemove(mobs)
@@ -51,9 +55,11 @@ local mob = rng.tableRemove(mobs)
 defineTile('s', "FLOOR", {random_filter={type="scroll", ego_chance=25}}, {random_filter={name=mob}})
 
 return {
-[[#####]],
-[[#sss#]],
-[[#sss!]],
-[[#sss#]],
-[[#####]],
+[[,,,,,,,,]],
+[[,######,]],
+[[,#sss##,]],
+[[,#ssswd,]],
+[[,#sss##,]],
+[[,######,]],
+[[,,,,,,,,]],
 }
\ No newline at end of file
diff --git a/game/modules/tome/data/rooms/greater_vault.lua b/game/modules/tome/data/rooms/greater_vault.lua
index 5d85f6b0f6c97b50f6cfb04d555cc5d7926eed34..53deb6487febbfad0a0b09c91c8f323ff1526277 100644
--- a/game/modules/tome/data/rooms/greater_vault.lua
+++ b/game/modules/tome/data/rooms/greater_vault.lua
@@ -73,6 +73,7 @@ return function(gen, id, lev, old_lev)
 	if vault then
 		vault:generate(lev, old_lev)
 		print("generated greater_vault", vaultid)
+		if config.settings.cheat then game.log("#GOLD#PLACED GREATER VAULT: %s", vaultid) end
 	end
 	game.level = old_game_level
 	gen.level.map = old_map
diff --git a/game/modules/tome/data/rooms/lesser_vault.lua b/game/modules/tome/data/rooms/lesser_vault.lua
index ca215cd8625f4991465b852d278fde1269f5f12c..5e396aa0dc59e1db0c003001365184a9b36eb260 100644
--- a/game/modules/tome/data/rooms/lesser_vault.lua
+++ b/game/modules/tome/data/rooms/lesser_vault.lua
@@ -73,6 +73,7 @@ return function(gen, id, lev, old_lev)
 	if vault then
 		vault:generate(lev, old_lev)
 		print("generated lesser_vault", vaultid)
+		if config.settings.cheat then game.log("#GOLD#PLACED LESSER VAULT: %s", vaultid) end
 	end
 	game.level = old_game_level
 	gen.level.map = old_map
diff --git a/game/modules/tome/data/timed_effects/other.lua b/game/modules/tome/data/timed_effects/other.lua
index 75f83032a84ab09145542db957bd27f1d748d2c0..7eb6f85cee6a5647ff7ded95ade7d415222919c7 100644
--- a/game/modules/tome/data/timed_effects/other.lua
+++ b/game/modules/tome/data/timed_effects/other.lua
@@ -3631,7 +3631,7 @@ newEffect{
 
 newEffect{
 	name = "DEMI_GODMODE",
-	desc = "Demigod Mode", --image = "",
+	desc = "Demigod Mode", image = "effects/darkgod.png",
 	long_desc = function(self, eff) return ("DEMI-GODMODE: Target has 10000 additional life and regenerates 2000 life per turn.  It deals +500%% damage, and has full ESP."):format() end,
 	type = "other",
 	subtype = { cheat=true },
@@ -3662,7 +3662,7 @@ newEffect{
 
 newEffect{
 	name = "GODMODE",
-	desc = "God Mode", --image = "",
+	desc = "God Mode", image = "effects/darkgod.png",
 	long_desc = function(self, eff) return ("GODMODE: Target is invulnerable to damage, immune to bad status effects, deals +10000%% damage (100%% penetration), does not need to breathe, and has full ESP."):format() end,
 	type = "other",
 	subtype = { cheat=true },
diff --git a/game/modules/tome/data/zones/daikara/zone.lua b/game/modules/tome/data/zones/daikara/zone.lua
index 7a47180b994588b9ef5a1b8ca8c9c2a9b5dc6e66..72bade8af6d6db3f7512b11338ffcf159e7f0fa7 100644
--- a/game/modules/tome/data/zones/daikara/zone.lua
+++ b/game/modules/tome/data/zones/daikara/zone.lua
@@ -43,7 +43,7 @@ return {
 			edge_entrances = {2,8},
 			rooms = {"forest_clearing", "rocky_snowy_trees", {"lesser_vault",7}},
 			rooms_config = {forest_clearing={pit_chance=5, filters={{}}}},
-			lesser_vaults_list = {"snow-giant-camp"},
+			lesser_vaults_list = {"snow-giant-camp", "perilous-cliffs"},
 			['.'] = is_volcano and function() if rng.percent(5 + game.level.level * 6) then return "LAVA_FLOOR" else return "ROCKY_GROUND" end end or "ROCKY_GROUND",
 			['T'] = "ROCKY_SNOWY_TREE",
 			['#'] = "MOUNTAIN_WALL",