diff --git a/game/modules/tome/data/maps/vaults/amon-sul-crypt.lua b/game/modules/tome/data/maps/vaults/amon-sul-crypt.lua
index c0b82948272eb270c9ad3c9796dddfc111fe8af3..ce11e654dba5746de6acde089e8a9b1e48613ebb 100644
--- a/game/modules/tome/data/maps/vaults/amon-sul-crypt.lua
+++ b/game/modules/tome/data/maps/vaults/amon-sul-crypt.lua
@@ -18,36 +18,90 @@
 -- darkgod@te4.org
 
 setStatusAll{no_teleport=true, vault_only_door_open=true, room_map = {can_open=true}}
---setStatusAll{no_teleport=true, vault_only_door_open=true, room_map = {special=false, can_open=true}}
+
 specialList("actor", {
-	"/data/general/npcs/skeleton.lua",
+   "/data/general/npcs/skeleton.lua",
+   "/data/general/npcs/ghoul.lua",
 })
 border = 0
 defineTile('.', "FLOOR")
+defineTile(',', data.floor or data['.'] or "FLOOR")
 defineTile('#', "WALL")
 defineTile('X', "HARDWALL")
 defineTile('!', "DOOR_VAULT")
 defineTile('D', "DOOR")
-defineTile('^', "FLOOR", nil, nil, {random_filter={add_levels=4}})
-defineTile('S', "FLOOR", {random_filter={add_levels=4, tome_mod="vault"}}, {random_filter={name="degenerated skeleton warrior", add_levels=4}})
-defineTile('A', "FLOOR", {random_filter={type="armor", tome_mod="vault"}}, nil)
-defineTile('G', "FLOOR", nil, {random_filter={name="armoured skeleton warrior", add_levels=4}})
+
 rotates = {"default", "90", "180", "270", "flipx", "flipy"}
+startx = 4
+starty = 2
 
---startx, starty = 4, 13
+local version = rng.range(1, 4)
+if version == 1 then -- warriors(more or less the original)
+defineTile('S', "FLOOR", {random_filter={add_levels=4, tome_mod="vault"}}, {random_filter={name="skeleton warrior", add_levels=2}})
+defineTile('A', "FLOOR", {random_filter={type="armor", tome_mod="vault", add_levels=5}}, {random_filter={name="skeleton warrior", add_levels=6}})
+defineTile('G', "FLOOR", nil, {random_filter={name="armoured skeleton warrior" , add_levels=4}})
+return {
+[[,,,,,,,,,]],
+[[,,,X.X,,,]],
+[[,,XX!XX,,]],
+[[,XXX.XXX,]],
+[[,XSD.DSX,]],
+[[,XXXGXXX,]],
+[[,XSD.DAX,]],
+[[,XXX.XXX,]],
+[[,,XX!XX,,]],
+[[,,,X.X,,,]],
+[[,,,,,,,,,]],
+}
+elseif version == 2 then -- mages
+defineTile('S', "FLOOR", {random_filter={add_levels=4, tome_mod="vault"}}, {random_filter={name="skeleton mage", add_levels=2}})
+defineTile('A', "FLOOR", {random_filter={type="armor", tome_mod="vault", add_levels=5}}, {random_filter={name="skeleton magus", add_levels=6}})
+defineTile('G', "FLOOR", nil, {random_filter={name="skeleton mage" , add_levels=4}})
+return {
+[[,,,,,,,,,]],
+[[,,,X.X,,,]],
+[[,,XX!XX,,]],
+[[,XXX.XXX,]],
+[[,XSX.XSX,]],
+[[,X.DAD.X,]],
+[[,XSX.XGX,]],
+[[,XXX.XXX,]],
+[[,,XX!XX,,]],
+[[,,,X.X,,,]],
+[[,,,,,,,,,]],
+}
+elseif version == 3 then -- ghouls
+defineTile('S', "FLOOR", {random_filter={add_levels=4, tome_mod="vault"}}, {random_filter={name="ghoul", add_levels=2}})
+defineTile('A', "FLOOR", {random_filter={type="armor", tome_mod="vault", add_levels=5}}, {random_filter={name="ghast", add_levels=6}})
+defineTile('G', "FLOOR", nil, {random_filter={name="ghoul" , add_levels=4}})
+return {
+[[,,,,,,,,,]],
+[[,,,X.X,,,]],
+[[,,XX!XX,,]],
+[[,XX..,XX,]],
+[[,XS..XSX,]],
+[[,X,.A,,X,]],
+[[,XSX..GX,]],
+[[,XX..,XX,]],
+[[,,XX!XX,,]],
+[[,,,X.X,,,]],
+[[,,,,,,,,,]],
+}
+else -- archers
+defineTile('S', "FLOOR", {random_filter={add_levels=4, tome_mod="vault"}}, {random_filter={name="skeleton archer", add_levels=2}})
+defineTile('A', "FLOOR", {random_filter={type="armor", tome_mod="vault", add_levels=5}}, {random_filter={name="skeleton master archer", add_levels=6}})
+defineTile('G', "FLOOR", nil, {random_filter={name="skeleton archer" , add_levels=4}})
 return {
-[[.........]],
-[[...X.X...]],
-[[..XX!XX..]],
-[[.XXX^XXX.]],
-[[.XSD.DSX.]],
-[[.XXXGXXX.]],
-[[.XSD.DAX.]],
-[[.XXX^XXX.]],
-[[..XX!XX..]],
-[[...X.X...]],
-[[.........]],
-[[.#..#..#.]],
-[[.........]],
-[[.........]],
+[[,,,,,,,,,]],
+[[,,,X.X,,,]],
+[[,,XX!XX,,]],
+[[,XX..XXX,]],
+[[,X.SXXGX,]],
+[[,XX.A.XX,]],
+[[,XSXXS.X,]],
+[[,XXX..XX,]],
+[[,,XX!XX,,]],
+[[,,,X.X,,,]],
+[[,,,,,,,,,]],
 }
+end
\ No newline at end of file