2
\$\begingroup\$

Assume the following: One theme is created via the Godot Editor (version 3.5) and saved under res://themes/my-theme.theme. Due to changes in the project's file hierarchy, it is decided to move the theme to res://gui/themes/my-theme.theme. All the missing dependencies for the nodes are fixed, but when trying to start the game, it crashes with the error message that some resources specified in the theme (like fonts, textures etc.) could not be loaded. From the error message it becomes clear, that the my-theme.theme still contains the old absolute path to these resources and did not update to the new paths. Godot Editor Loading Error Message

Question:

Is there a way to update the resource paths in the theme file or does one have to create the complete theme from scratch?

\$\endgroup\$

2 Answers 2

0
\$\begingroup\$

Outside of Godot: you should be able to open the theme file with a regular text editor, and there you should be able to fix the path via search and replace.

Inside of Godot: in the context menu of the resource file in FileSystem you should find the option "Edit Dependencies..." which should open a window showing which dependencies are broken. There you can either replace them one by one, or use the "Fix Broken" option that will try to search for all the missing the files, which should work since they are just in a different path.

\$\endgroup\$
0
\$\begingroup\$

The answer by @Theraot pointed me in the right direction.

However, at least the way I got my Godot 3.5 instance setup, my theme file is a binary, which means the external editor approach does not work, since the theme file is neither utf8 valid nor ISO compliant. This means there is no way to edit this file externally; it all has to be done within the Godot Editor.

Since I also had some custom fonts loaded, I also had to manually edit the font resource files to contain the correct paths. So the workflow was in the end:

  1. Select the theme resource under FileSystem Tab of the Godot Editor
  2. Right click and select the Edit Dependencies... Menu Option
  3. Edit all the relevant resource paths; make especially sure that all the custom font resource paths are correct
  4. Select the custom font resource under FileSystem Tab of the Godot Editor
  5. Correct the font path.
  6. Repeat Step 4 and Step 5 until all the custom font resource files contain the correct paths
  7. Restart the Godot Editor to load the changes
  8. Select a Node in the Scene Tab that uses the theme.
  9. In the Inspector Tab, under Theme, press on the Downarrow Symbol and select Load
  10. Select the theme and click Open
  11. Repeat Step 8 to Step 10 for all Nodes which use the theme

Steps 8 to Step 11 were necessary for me because a simple Godot Editor restart did not apply the theme changes. If one is using Theme Overrides, especially with the custom font resource, one also has to go through them one by one or otherwise the changes will not be applied.

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .