diff --git a/game/engines/default/engine/Shader.lua b/game/engines/default/engine/Shader.lua
index 7581bfd468d5ee54952f77fd212826ad6327b0b4..9bac56128edbe7aa9678b109c8a37d625d9d28a7 100644
--- a/game/engines/default/engine/Shader.lua
+++ b/game/engines/default/engine/Shader.lua
@@ -149,12 +149,15 @@ function _M:createProgram(def)
 end
 
 function _M:loaded()
-	if _M.progs[self.totalname] and not _M.progsreset[self.totalname] then
---		print("[SHADER] using cached shader "..self.totalname)
+	if _M.progsperm[self.totalname] then
+		print("[SHADER] using permcached shader "..self.totalname)
+		self.shad = _M.progsperm[self.totalname]
+	elseif _M.progs[self.totalname] and not _M.progsreset[self.totalname] then
+		print("[SHADER] using cached shader "..self.totalname)
 		self.shad = _M.progs[self.totalname].shad
 		_M.progs[self.totalname].dieat = os.time() + 2
 	else
---		print("[SHADER] Loading from /data/gfx/shaders/"..self.name..".lua")
+		print("[SHADER] Loading from /data/gfx/shaders/"..self.name..".lua")
 		local f, err = loadfile("/data/gfx/shaders/"..self.name..".lua")
 		if not f and err then error(err) end
 		setfenv(f, setmetatable(self.args or {}, {__index=_G}))
@@ -170,7 +173,7 @@ function _M:loaded()
 		if def.resetargs then
 			self.totalname = self:makeTotalName(def.resetargs)
 		end
---		print("[SHADER] Loaded shader with totalname", self.totalname)
+		print("[SHADER] Loaded shader with totalname", self.totalname)
 
 		if not _M.progs[self.totalname] then
 			_M.progs[self.totalname] = {shad=self:createProgram(def), dieat=def.resetargs and (os.time() + 3) or (os.time() + 2)}
diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua
index ee53a105425da56658e35f146dcf24ba320c90d1..95cfa2500846ebfd98a7fdfc401299c4238c80a7 100644
--- a/game/modules/tome/class/Game.lua
+++ b/game/modules/tome/class/Game.lua
@@ -497,6 +497,8 @@ function _M:setupDisplayMode(reboot, mode)
 end
 
 function _M:createFBOs()
+	print("[GAME] Creating FBOs")
+
 	-- Create the framebuffer
 	self.fbo = core.display.newFBO(Map.viewport.width, Map.viewport.height)
 	if self.fbo then
diff --git a/game/modules/tome/data/zones/test/npcs.lua b/game/modules/tome/data/zones/test/npcs.lua
index 20e1acaf8288f33456d46367a776576af037162c..31d77de9646b897494e8d88952dd6f6cf883cb4b 100644
--- a/game/modules/tome/data/zones/test/npcs.lua
+++ b/game/modules/tome/data/zones/test/npcs.lua
@@ -17,4 +17,5 @@
 -- Nicolas Casalini "DarkGod"
 -- darkgod@te4.org
 
-load("/data/general/npcs/feline.lua", rarity(0))
+load("/data/zones/town-angolwen/npcs.lua", rarity(0))
+load("/data/zones/golem-graveyard/npcs.lua", rarity(0))
diff --git a/game/modules/tome/data/zones/test/zone.lua b/game/modules/tome/data/zones/test/zone.lua
index 3e71e7bfeeaa1e83199091c1b8dbe72f49caf4e2..2a35fd0dc797939f97260c8c111712bc1ea75485 100644
--- a/game/modules/tome/data/zones/test/zone.lua
+++ b/game/modules/tome/data/zones/test/zone.lua
@@ -24,18 +24,15 @@ return {
 	max_level = 4,
 	decay = {300, 800},
 	actor_adjust_level = function(zone, level, e) return zone.base_level + e:getRankLevelAdjust() + level.level-1 + rng.range(-1,2) end,
-	width = 50, height = 50,
+	width = 15, height = 15,
 --	all_remembered = true,
 	all_lited = true,
 	no_level_connectivity = true,
 	generator =  {
 		map = {
 -- [[
-			class = "mod.class.generator.map.Caldera",
-			mountain = "MOUNTAIN_WALL",
-			tree = "JUNGLE_TREE",
-			grass = "JUNGLE_GRASS",
-			water = "POISON_DEEP_WATER",
+			class = "engine.generator.map.Static",
+			map = "zones/test",
 --]]
 --[[
 			class = "engine.generator.map.Building",