diff --git a/.hgignore b/.hgignore
index 22ab5938d..7892f93af 100644
--- a/.hgignore
+++ b/.hgignore
@@ -261,3 +261,4 @@ code/web/public_php/role_domain
code/web/public_php/db_version_ring
code/web/public_php/config_user.php
code/nel/tools/build_gamedata/processes/pz/build_world_packed_col.cfg
+code/nel/tools/build_gamedata/processes/cartographer/island_screenshots.cfg
diff --git a/code/nel/tools/build_gamedata/0_setup.py b/code/nel/tools/build_gamedata/0_setup.py
index f3edfc9ba..8eff34131 100755
--- a/code/nel/tools/build_gamedata/0_setup.py
+++ b/code/nel/tools/build_gamedata/0_setup.py
@@ -433,6 +433,7 @@ if not args.noverify:
findTool(log, ToolDirectories, PatchGenTool, ToolSuffix)
findTool(log, ToolDirectories, TranslationToolsTool, ToolSuffix)
findTool(log, ToolDirectories, BuildWorldPackedColTool, ToolSuffix)
+ findTool(log, ToolDirectories, R2IslandsTexturesTool, ToolSuffix)
log.close()
if os.path.isfile("0_setup.log"):
diff --git a/code/nel/tools/build_gamedata/configuration/tools.py b/code/nel/tools/build_gamedata/configuration/tools.py
index ce2dcff9c..c0c962360 100755
--- a/code/nel/tools/build_gamedata/configuration/tools.py
+++ b/code/nel/tools/build_gamedata/configuration/tools.py
@@ -92,3 +92,4 @@ TgaCutTool = "tga_cut"
PatchGenTool = "patch_gen"
TranslationToolsTool = "translation_tools"
BuildWorldPackedColTool = "build_world_packed_col"
+R2IslandsTexturesTool = "r2_islands_textures"
diff --git a/code/nel/tools/build_gamedata/processes/cartographer/0_setup.py b/code/nel/tools/build_gamedata/processes/cartographer/0_setup.py
new file mode 100644
index 000000000..6f8b9a754
--- /dev/null
+++ b/code/nel/tools/build_gamedata/processes/cartographer/0_setup.py
@@ -0,0 +1,114 @@
+#!/usr/bin/python
+#
+# \file 0_setup.py
+# \brief setup cartographer
+# \date 2014-09-13 13:32GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Setup cartographer
+#
+# NeL - MMORPG Framework
+# Copyright (C) 2014 Jan BOON
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero 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 Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+
+import time, sys, os, shutil, subprocess, distutils.dir_util
+sys.path.append("../../configuration")
+
+if os.path.isfile("log.log"):
+ os.remove("log.log")
+log = open("log.log", "w")
+from scripts import *
+from buildsite import *
+from process import *
+from tools import *
+from directories import *
+
+printLog(log, "")
+printLog(log, "-------")
+printLog(log, "--- Setup cartographer")
+printLog(log, "-------")
+printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
+printLog(log, "")
+
+# Setup build directories
+printLog(log, ">>> Setup build directories <<<")
+mkPath(log, ExportBuildDirectory + "/" + CartographerBuildDirectory)
+
+# Setup lookup directories
+printLog(log, ">>> Setup lookup directories <<<")
+mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory) # IN
+mkPath(log, ExportBuildDirectory + "/" + ZoneLightBuildDirectory) # IN (.zonel)
+mkPath(log, ExportBuildDirectory + "/" + ZoneLightIgLandBuildDirectory) # IN (.ig)
+mkPath(log, ExportBuildDirectory + "/" + SmallbankExportDirectory) # IN
+mkPath(log, ExportBuildDirectory + "/" + FarbankBuildDirectory) # IN
+mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory) # IN
+mkPath(log, ExportBuildDirectory + "/" + TilesExportDirectory) # IN
+mkPath(log, LeveldesignDataCommonDirectory) # IN
+mkPath(log, LeveldesignDfnDirectory) # IN
+mkPath(log, LeveldesignDirectory) # IN
+for dir in PropertiesExportBuildSearchPaths:
+ mkPath(log, ExportBuildDirectory + "/" + dir)
+
+# Setup client directories
+printLog(log, ">>> Setup install directories <<<")
+mkPath(log, InstallDirectory + "/" + CartographerInstallDirectory)
+
+# Setup client directories
+printLog(log, ">>> Setup configuration <<<")
+mkPath(log, ActiveProjectDirectory + "/generated")
+cfg = open(ActiveProjectDirectory + "/generated/island_screenshots.cfg", "w")
+cfg.write("\n")
+cfg.write("// BUILD CARTOGRAPHER CONFIGURATION\n")
+cfg.write("\n")
+cfg.write("SearchPaths = {\n")
+cfg.write("\t\"" + ExportBuildDirectory + "/" + AiWmapBuildDirectory + "\", \n")
+cfg.write("\t\"" + ExportBuildDirectory + "/" + ZoneLightBuildDirectory + "\", \n")
+cfg.write("\t\"" + ExportBuildDirectory + "/" + ZoneLightIgLandBuildDirectory + "\", \n")
+cfg.write("\t\"" + ExportBuildDirectory + "/" + SmallbankExportDirectory + "\", \n")
+cfg.write("\t\"" + ExportBuildDirectory + "/" + FarbankBuildDirectory + "\", \n")
+cfg.write("\t\"" + ExportBuildDirectory + "/" + DisplaceExportDirectory + "\", \n")
+cfg.write("\t\"" + ExportBuildDirectory + "/" + TilesExportDirectory + "\", \n")
+cfg.write("\t\"" + LeveldesignDataCommonDirectory + "\", \n")
+cfg.write("\t\"" + LeveldesignDfnDirectory + "\", \n")
+cfg.write("\t\"" + LeveldesignDirectory + "\", \n")
+for dir in PropertiesExportBuildSearchPaths:
+ cfg.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
+cfg.write("};\n")
+cfg.write("\n")
+cfg.write("OutDir = \"" + ExportBuildDirectory + "/" + CartographerBuildDirectory + "\";\n")
+cfg.write("\n")
+cfg.write("Continents = {\n")
+cfg.write("\t\"" + CartographerContinent + "\", \n")
+cfg.write("};\n")
+cfg.write("\n")
+cfg.write("SeasonSuffixes = {\n")
+for suffix in MultipleTilesPostfix:
+ cfg.write("\t\"" + suffix + "\", \n")
+cfg.write("};\n")
+cfg.write("\n")
+cfg.write("InverseZTest = true;\n")
+cfg.write("Vegetation = true;\n")
+cfg.write("MeterPixelSize = 2;\n")
+cfg.write("\n")
+cfg.write("CompleteIslandsFile = \"r2_islands.xml\";\n")
+cfg.write("EntryPointsFile = \"r2_entry_points.txt\";\n")
+cfg.write("\n")
+cfg.close()
+
+log.close()
+
+
+# end of file
diff --git a/code/nel/tools/build_gamedata/processes/cartographer/1_export.py b/code/nel/tools/build_gamedata/processes/cartographer/1_export.py
new file mode 100644
index 000000000..319316728
--- /dev/null
+++ b/code/nel/tools/build_gamedata/processes/cartographer/1_export.py
@@ -0,0 +1,49 @@
+#!/usr/bin/python
+#
+# \file 1_export.py
+# \brief Export cartographer
+# \date 2014-09-13 13:32GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Export cartographer
+#
+# NeL - MMORPG Framework
+# Copyright (C) 2014 Jan BOON
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero 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 Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+
+import time, sys, os, shutil, subprocess, distutils.dir_util
+sys.path.append("../../configuration")
+
+if os.path.isfile("log.log"):
+ os.remove("log.log")
+log = open("log.log", "w")
+from scripts import *
+from buildsite import *
+from process import *
+from tools import *
+from directories import *
+
+printLog(log, "")
+printLog(log, "-------")
+printLog(log, "--- Export cartographer")
+printLog(log, "-------")
+printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
+printLog(log, "")
+
+log.close()
+
+
+# end of file
diff --git a/code/nel/tools/build_gamedata/processes/cartographer/2_build.py b/code/nel/tools/build_gamedata/processes/cartographer/2_build.py
new file mode 100644
index 000000000..c3c14e9aa
--- /dev/null
+++ b/code/nel/tools/build_gamedata/processes/cartographer/2_build.py
@@ -0,0 +1,62 @@
+#!/usr/bin/python
+#
+# \file 2_build.py
+# \brief Build cartographer
+# \date 2014-09-13 13:32GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Build cartographer
+#
+# NeL - MMORPG Framework
+# Copyright (C) 2014 Jan BOON
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero 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 Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+
+import time, sys, os, shutil, subprocess, distutils.dir_util
+sys.path.append("../../configuration")
+
+if os.path.isfile("log.log"):
+ os.remove("log.log")
+log = open("log.log", "w")
+from scripts import *
+from buildsite import *
+from process import *
+from tools import *
+from directories import *
+
+printLog(log, "")
+printLog(log, "-------")
+printLog(log, "--- Build cartographer")
+printLog(log, "-------")
+printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
+printLog(log, "")
+
+# Find tools
+R2IslandsTextures = findTool(log, ToolDirectories, R2IslandsTexturesTool, ToolSuffix)
+
+if R2IslandsTextures == "":
+ toolLogFail(log, R2IslandsTexturesTool, ToolSuffix)
+else:
+ printLog(log, ">>> Copy island_screenshots.cfg <<<")
+ cfgPath = ActiveProjectDirectory + "/generated/island_screenshots.cfg"
+ shutil.copy(cfgPath, "island_screenshots.cfg")
+ printLog(log, ">>> Build cartographer <<<")
+ subprocess.call([ R2IslandsTextures ])
+printLog(log, "")
+
+log.close()
+
+
+# end of file
diff --git a/code/nel/tools/build_gamedata/processes/cartographer/3_install.py b/code/nel/tools/build_gamedata/processes/cartographer/3_install.py
new file mode 100644
index 000000000..f241318c4
--- /dev/null
+++ b/code/nel/tools/build_gamedata/processes/cartographer/3_install.py
@@ -0,0 +1,57 @@
+#!/usr/bin/python
+#
+# \file 3_install.py
+# \brief Install cartographer
+# \date 2014-09-13 13:32GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Install cartographer
+#
+# NeL - MMORPG Framework
+# Copyright (C) 2014 Jan BOON
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero 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 Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+
+import time, sys, os, shutil, subprocess, distutils.dir_util
+sys.path.append("../../configuration")
+
+if os.path.isfile("log.log"):
+ os.remove("log.log")
+log = open("log.log", "w")
+from scripts import *
+from buildsite import *
+from process import *
+from tools import *
+from directories import *
+
+printLog(log, "")
+printLog(log, "-------")
+printLog(log, "--- Install cartographer")
+printLog(log, "-------")
+printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
+printLog(log, "")
+
+installPath = InstallDirectory + "/" + CartographerInstallDirectory
+mkPath(log, installPath)
+
+printLog(log, ">>> Install cartographer <<<")
+mkPath(log, ExportBuildDirectory + "/" + CartographerBuildDirectory)
+copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + CartographerBuildDirectory, installPath)
+
+printLog(log, "")
+log.close()
+
+
+# end of file
diff --git a/code/nel/tools/build_gamedata/processes/pz/3_install.py b/code/nel/tools/build_gamedata/processes/pz/3_install.py
index 91f9f0a32..c4feedef1 100644
--- a/code/nel/tools/build_gamedata/processes/pz/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/pz/3_install.py
@@ -48,7 +48,8 @@ mkPath(log, installPath)
printLog(log, ">>> Install pz <<<")
mkPath(log, ExportBuildDirectory + "/" + PackedZoneBuildDirectory)
-copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + PackedZoneBuildDirectory, installPath)
+copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + PackedZoneBuildDirectory, installPath, ".island_hm")
+copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + PackedZoneBuildDirectory, installPath, ".packed_island")
printLog(log, "")
log.close()