This Flatpak is available on Flathub. After following the Flatpak setup guide, you can install it by entering the following command in a terminal:
flatpak install --user flathub org.godotengine.GodotSharp -y
Once the Flatpak is installed, you can run Godot using your desktop environment's application launcher.
Looking to package a Godot project as a Flatpak ? For packaging a Godot project that doesn't use C#, see flathub/org.godotengine.godot.BaseApp. A specific BaseApp for GodotSharp does not exist yet, but it could be set up in the future.
This Flatpak follows the latest stable Godot version. To update it, run the following command in a terminal:
flatpak update
This version of Godot is built with special permissions to be able to run commands on the host system outside of the sandbox via flatpak-spawn. This is done by prefixing the command with flatpak-spawn --host
. For example, if you want to run gnome-terminal
on the host system outside of the sandbox, you can do so by running flatpak-spawn --host gnome-terminal
.
Godot expects the Blender executable to be named blender
(lowercase), so a script exactly named blender
that executes Blender via flatpak-spawn --host
should be created. Below are two Bash scripts which may need to be modified depending on your shell and how Blender is installed.
PATH
(e.g. using distribution packages)#!/bin/bash
flatpak-spawn --host blender "$@"
#!/bin/bash
flatpak-spawn --host flatpak run org.blender.Blender "$@"
Make sure your script is executable using chmod +x blender
. Use the directory path containing your script in the Editor Settings (Filesystem > Import > Blender > Blender 3 Path).
This version of Godot is built with special permissions to be able to run commands on the host system outside of the sandbox via flatpak-spawn. This is done by prefixing the command with flatpak-spawn --host
. For example, if you want to run gnome-terminal
on the host system outside of the sandbox, you can do so by running flatpak-spawn --host gnome-terminal
.
To spawn an external editor in Godot, all command line arguments must be split from the commands path in the external editor preferences and because the command needs to be prefixed with "flatpak-spawn --host"
, the Exec Path is replaced by flatpak-spawn
and the Exec Flags are prefixed by --host [command path]
.
For example, for Visual Studio Code, where your external editor preferences would normally look like this...
Exec Path: code
Exec Flags: --reuse-window {project} --goto {file}:{line}:{col}
...it should look like this inside the Flatpak sandbox:
Exec Path: flatpak-spawn
Exec Flags: --host code --reuse-window {project} --goto {file}:{line}:{col}
After the first C# script is created, it is necessary to click build
within Godot. Alternatively, running dotnet restore
in the IDE's terminal would work as well.
Install Git, follow the flatpak-builder setup guide then enter the following commands in a terminal:
git clone --recursive https://github.com/flathub/org.godotengine.GodotSharp.git
cd org.godotengine.GodotSharp/
flatpak install --user flathub org.freedesktop.Sdk//23.08 org.freedesktop.Sdk.Extension.dotnet8//23.08 org.freedesktop.Sdk.Extension.openjdk11//23.08 -y
flatpak-builder --force-clean --install --user -y builddir org.godotengine.GodotSharp.yaml
If all goes well, the Flatpak will be installed after building. You can then run it using your desktop environment's application launcher.
You can speed up incremental builds by installing ccache
and specifying --ccache
in the flatpak-builder command line (before builddir
).
For updating this Flatpak to newer versions of Godot, the source code of Godot for that version must be downloaded and extracted to some location. The path to it must be updated within the generate_sources.py
script. It is also necessary to run generate_sources.py
in the following way:
python3 generate_sources.py
If csproj
files that aren't included within the script include new packages, they must be added to the script.
To compile Godot 4 with double precision, org.godotengine.GodotSharp.yaml
needs to be modified to include the appropriate flags. Under Build Commands
, change all instances of precision=single
to precision=double
.