.. _doc_packaging_godot:

Packaging Godot
===============

Starting with 2.0, Godot has features to make it easier to package it for application repositories.

Default behaviour
-----------------

Per default, Godot stores all settings and installed templates in a per-user directory.
First Godot checks the ``APPDATA`` environment variable. If it exists, the per-user directory
is the "Godot" subdirectory of ``$APPDATA``.
If ``APPDATA`` doesn't exist, Godot checks the ``HOME`` environment variable. The per-user
directory is then the ".godot" subdir of ``$HOME``.

This meets common operating system standards.

Global template path (Unix only)
--------------------------------

The ``unix_global_settings_path`` build variable is meant for Unix/Linux distro packagers
who want to package export templates together with godot. It allows to put the export
templates on a hardcoded path.

To use it, pass the desired path via the scons ``unix_global_settings_path`` build variable
when building the editor. The export templates then live at the "templates" subdirectory
of the path specified.

Templates installed at the per-user location still override the system wide templates.

This option is only available on unix based platforms.

Self contained mode
-------------------

The self contained mode can be used to package godot for distribution systems where godot
doesn't live at a fixed location. If the godot editor finds a ``._sc_`` file in the directory
the executable is located, godot will continue in "self contained mode".

In self contained mode, all config files are located next to the executable in a directory
called ``editor_data``. Godot doesn't read or write to the per-user location anymore.

The contents of the ``._sc_`` file (when not empty) are read with the ConfigFile api (same
format as ``engine.cfg``, etc). So far it can contain a list of pre-loaded project in this
format:

:: 

  [init_projects]
  list=["demos/2d/platformer", "demos/2d/isometric"]

The paths are relative to the executable location, and will be added to the file ``editor_settings.xml``
when this is created for the first time.


