Exported Linux Encrypted build with custom export template release not working

Godot Version

Godot 4.4.1.stable (steam)

Question

Hey! As title says I’m trying to export an encrypted build on linux and my game seems to be frozen(? Or just not doing anything?) at first frame not executing any scripts. I get these errors (see file). I’ve built my template releases with these steps (On ubuntu subsystem for Windows, in console):

(I also installed the prerequesites via sudo apt-get install listed in the docs)

git clone https://github.com/godotengine/godot.git
cd godot
export SCRIPT_AES256_ENCRYPTION_KEY="[Encryption Key Here]"
scons platform=linuxbsd target=template_release

Then took the resulting godot.linuxbsd.template_release.x86_64
and used it to export the game with.

My game now boots (I was exporting with other templates before that were giving me Error: Couldn't load project data at path ".". Is the .pck file missing?, now it doesn’t happen with this new one,), but doesn’t do anything besides spam the logs. Any help?

Here is the godot.log output:

Vulkan 1.3.289 - Forward+ - Using Device #0: Unknown - llvmpipe (LLVM 19.1.1, 128 bits)

SCRIPT ERROR: Parse Error: Expected "{" after enum name.
   at: GDScript::reload (res://scripts/global/Colors.gd:1)
ERROR: Failed to load script "res://scripts/global/Colors.gd" with error "Parse error".
   at: load (modules/gdscript/gdscript.cpp:3019)
ERROR: Failed to instantiate an autoload, script 'res://scripts/global/Colors.gd' does not inherit from 'Node'.
   at: start (main/main.cpp:4283)
SCRIPT ERROR: Parse Error: Expected "{" after enum name.
   at: GDScript::reload (res://scenes/global/utilities.gd:1)
ERROR: Failed to load script "res://scenes/global/utilities.gd" with error "Parse error".
   at: load (modules/gdscript/gdscript.cpp:3019)
SCRIPT ERROR: Parse Error: Expected ":" after class declaration.
   at: GDScript::reload (res://scripts/SaverLoader.gd:1)
ERROR: Failed to load script "res://scripts/SaverLoader.gd" with error "Parse error".
   at: load (modules/gdscript/gdscript.cpp:3019)
SCRIPT ERROR: Parse Error: Expected "{" after enum name.
   at: GDScript::reload (res://scripts/global/text_animator.gd:1)
ERROR: Failed to load script "res://scripts/global/text_animator.gd" with error "Parse error".
   at: load (modules/gdscript/gdscript.cpp:3019)
SCRIPT ERROR: Parse Error: Expected "{" after enum name.
   at: GDScript::reload (res://scripts/global/language_styler.gd:1)
ERROR: Failed to load script "res://scripts/global/language_styler.gd" with error "Parse error".
   at: load (modules/gdscript/gdscript.cpp:3019)
SCRIPT ERROR: Parse Error: Expected "{" after enum name.
   at: GDScript::reload (res://scripts/skill_tree_info.gd:1)
ERROR: Failed to load script "res://scripts/skill_tree_info.gd" with error "Parse error".
   at: load (modules/gdscript/gdscript.cpp:3019)
SCRIPT ERROR: Parse Error: Expected "{" after enum name.
   at: GDScript::reload (res://scripts/global/fire.gd:1)
ERROR: Failed to load script "res://scripts/global/fire.gd" with error "Parse error".
   at: load (modules/gdscript/gdscript.cpp:3019)
SCRIPT ERROR: Parse Error: Expected ":" after class declaration.
   at: GDScript::reload (res://scripts/global/time.gd:1)
ERROR: Failed to load script "res://scripts/global/time.gd" with error "Parse error".
   at: load (modules/gdscript/gdscript.cpp:3019)
[...] lot of the same errors for different files.

If you untick “Encrypt Index” does it do the same thing?

Also a small side note, but you need to build the release template for Linux on an older OS version, to avoid compatibility issues, see:

1 Like

Hey, thanks for the answer.

Unticking “Encrypt Index” does not seem to work either sadly. Same issue.

Good shout on the building on an older version, I’m building on latest LTS for Ubuntu so I’m guessing that would cause issues. Do you think that would be the root of the issue? Running the game on the same VM that I built the template releases onto doesn’t seem to work.. so idk if that is a compatibility issue in this case? I would guess probably not, given it’s from the same version?

My two ideas that could come to mind is

1: Yes, try to build the release template on an older OS, right now the one I personally use for my game is Ubuntu 22.04 LTS

2: I’m sure you already made sure of this, but you need to use the same exact encryption key both during the compilation and inside the export window on Godot, and normally, you shouldn’t include the [ and ] symbols for it, as you showed here in your post. (Again, I’m sure it’s just for display purposes, just trying to rule everything out.

Edit: Also make sure you switched to the correct tag in git, you can list all the tags with
git tag -l and make sure you switch to the exact same version you’re currently using.

1 Like

Thanks for the answer!

I finally got it to work after a lot of tinkering.

My takeaway : Don’t use Ubuntu 16.04, no longer supported by a lot of stuff eg newer Python versions needed to build stuff and overall a pain I couldn’t get to work.

I ended up using Ubuntu 20.04.

Made sure I cloned 4.4.1.stable and not just the repo in itself with
git clone https://github.com/godotengine/godot.git --branch 4.4.1-stable

And I don’t know which one of those was causing the issue (most likely the cloning of the repo being latest and not the specific version) but now it works!

Thanks for the help :heart_hands:

1 Like