Packaging Godot

Godot has features to make it easier to distribute and to package it for application repositories.

Default behaviour

By 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 it doesn’t live at a fixed location. If the editor finds a ._sc_ file in the directory the executable is located in, Godot will continue in “self contained mode”. On Windows, the file name to use is _sc_ (without the preceding dot).

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 project.godot, 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.