Jump to content

Godot

From NixOS Wiki
Revision as of 22:04, 10 April 2025 by Superherointj (talk | contribs) (Export Templates: Fixes reference for Godot, "-" is replaced with ".")
☶︎
This article or section needs to be expanded. Further information may be found in the related discussion page. Please consult the pedia article metapage for guidelines on contributing.

Godot is an open-source game engine, capable of creating both 2D and 3D games.

Usage in NixOS

Use steam-run to run a Godot exported project (without having to fix paths for Nix).

Installation

Add either pkgs.godot (GDScript) or pkgs.godot-mono (GDScript + C#) to environment.systemPackages.

Export Templates

Automatically enable `godot-templates` in your host using:

home.file.".local/share/godot/export_templates/${builtins.replaceStrings [ "-" ] [ "." ] pkgs.godot_4-export-templates.version}".source = pkgs.godot_4-export-templates;

Whenever Godot application is upgraded, the new template version will be automatically provisioned.

For `godot-mono`, should reference `pkgs.godot-mono_4-export-templates` but package is still pending in nixpkgs.

Android Export Target

Configuring VSCode Editor for Godot-Mono (C#)

As Godot editor has poor support for C#, VSCode editor is recommended.

Install and configure VSCode as such:

programs.vscode = {
  enable = true;
  package = pkgs.codium;
  profiles.default = {
    "godotTools.lsp.serverPort" = 6005; # port should match your Godot configuration
    "dotnetAcquisitionExtension.sharedExistingDotnetPath" = "${pkgs.dotnet-sdk_8}/bin/dotnet";
    "dotnetAcquisitionExtension.existingDotnetPath" = [
       {
          "extensionId" = "ms-dotnettools.csharp";
          "path" = "${pkgs.dotnet-sdk_8}/bin/dotnet";
       }
       {
          "extensionId" = "ms-dotnettools.csdevkit";
          "path" = "${pkgs.dotnet-sdk_8}/bin/dotnet";
       }
    ];
  extensions = with pkgs.vscode-extensions; [
    geequlim.godot-tools # For Godot GDScript
    ms-dotnettools.csdevkit
    ms-dotnettools.csharp
    ms-dotnettools.vscode-dotnet-runtime
  ];
};

Configure Godot's Editor → Editor Settings menu:

  • Set Dotnet -> Editor -> External Editor to Visual Studio Code.
Configure Godot 4 for External VSCode Integration

Click Editor [top menu] -> Editor Settings [menu item] -> General [Tab] -> Text Editor [Category] -> External [Sub-Category]:

  • Exec Path -> Add the output of which codium, on my case would be: /etc/profiles/per-user/REPLACE-USERNAME/bin/codium
  • Exec Flags -> {project} --goto {file}:{line}:{col}
  • Use External Editor -> On