diff --git a/game/engines/default/engine/PlayerProfile.lua b/game/engines/default/engine/PlayerProfile.lua
index 2606d4ae1782941a5859173112ed875dff92aac8..8a30b0fb01be0d83852223eea7cbdfa64dfc8dd9 100644
--- a/game/engines/default/engine/PlayerProfile.lua
+++ b/game/engines/default/engine/PlayerProfile.lua
@@ -518,6 +518,7 @@ function _M:syncOnline(module)
 end
 
 function _M:checkModuleHash(module, md5)
+do self.hash_valid = true return true end
 	self.hash_valid = false
 --	if not self.auth then return nil, "no online profile active" end
 	if config.settings.cheat then return nil, "cheat mode active" end
diff --git a/game/engines/default/engine/interface/PlayerDumpJSON.lua b/game/engines/default/engine/interface/PlayerDumpJSON.lua
index bc9532eb9a1a10993a56b3b92fea6596564d8931..e32ac9ce9c7fa181b6d1a3afc229f2a0aa47e18c 100644
--- a/game/engines/default/engine/interface/PlayerDumpJSON.lua
+++ b/game/engines/default/engine/interface/PlayerDumpJSON.lua
@@ -43,6 +43,10 @@ function _M:saveUUID()
 	end
 	local data = {sections={}}
 	setmetatable(data, {__index={
+		hiddenData = function(self, key, value)
+			self.hidden = self.hidden or {}
+			self.hidden[key] = value
+		end,
 		newSection = function(self, display, table, type, column, sectable)
 			self.sections[#self.sections+1] = {display=display, table=table, type=type, column=column}
 			self[table] = sectable or {}
diff --git a/game/modules/tome/class/interface/PlayerDumpJSON.lua b/game/modules/tome/class/interface/PlayerDumpJSON.lua
index 32c496e1f41f0255916f1aaaa448921d9e2ae9a6..9184eabe5dd0d22e761c983d16a36f3d6fb38e9e 100644
--- a/game/modules/tome/class/interface/PlayerDumpJSON.lua
+++ b/game/modules/tome/class/interface/PlayerDumpJSON.lua
@@ -296,6 +296,10 @@ function _M:dumpToJSON(js)
 		dead = self.dead and "dead" or nil,
 		winner = self.winner and "winner" or nil,
 	}
+	if self.has_custom_tile then
+		tags.tile = self.has_custom_tile
+		js:hiddenData("tile", self.has_custom_tile)
+	end
 
 	return title, tags
 end
diff --git a/game/modules/tome/data/talents/gifts/summon-utility.lua b/game/modules/tome/data/talents/gifts/summon-utility.lua
index 11d1b5f08a9a2b25dbb8f129b3c534dbc930284b..5d597ea597e3e4bceb3e736b98e39df177449f5f 100644
--- a/game/modules/tome/data/talents/gifts/summon-utility.lua
+++ b/game/modules/tome/data/talents/gifts/summon-utility.lua
@@ -196,7 +196,7 @@ newTalent{
 		local NPC = require "mod.class.NPC"
 		local m = NPC.new{
 			type = "animal", subtype = "spider",
-			display = "S", color=colors.LIGHT_DARK, image = "npc/summoner_spider.png",
+			display = "S", color=colors.LIGHT_DARK, image = "npc/spiderkin_spider_giant_spider.png",
 			name = "giant spider", faction = self.faction,
 			desc = [[]],
 			autolevel = "none",
diff --git a/game/modules/tome/dialogs/Birther.lua b/game/modules/tome/dialogs/Birther.lua
index e622bb6d0ae58224ab15e2b8c4cfd15da6fdc52d..ef651fe716681d8d8b40fbaf90ebec4acb091529 100644
--- a/game/modules/tome/dialogs/Birther.lua
+++ b/game/modules/tome/dialogs/Birther.lua
@@ -166,6 +166,7 @@ function _M:atEnd(v)
 
 			game:unregisterDialog(self)
 			self:apply()
+			if self.actor.has_custom_tile then self.actor.make_tile = nil end
 			game:setPlayerName(self.c_name.text)
 			self.at_end(false)
 		end)
@@ -717,7 +718,7 @@ function _M:setTile(f, w, h)
 			self.actor.add_mos = nil
 			self.actor.image = f
 		end
-		self.actor.has_custom_tile = true
+		self.actor.has_custom_tile = f
 	end
 	if self.actor._mo then self.actor._mo:invalidate() end
 	self.actor._mo = nil