Script-IDE addon (1.9.1) breaks in Redot 4.4-alpha.2

Open
#1,041 3 comments 1 reaction 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
25/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Stale
Domain
game-dev

Research direction

Start by reproducing the issue with the linked minimal reproduction project in Redot 4.4-alpha.2, then inspect res://addons/script-ide/plugin.gd, especially the reported lines 596 and 282. Check the script editor errors and broken tabs when the addon is enabled, and confirm whether disabling it also avoids the reported errors; done means the addon works as expected in the affected Redot version.

Written by the indexing model from the issue text.

Description

4.4 bug topic:gdscript
Tested versions

Experienced in Redot 4.4-alpha.2_macos.universal and 4.4-alpha.2_mono_macos.universal, obtained from this repository's own Releases page.

Installed Script-IDE 1.9.1, using both Redot's built-in AssetLib tab and manual installation.

Script-IDE works perfectly fine in Godot 4.4.1. It has also worked as expected prior in Redot 4.3.x.

System information

MacOS Sonoma 14.2.1 (although likely not platform-specific)

Issue description

When installing Script-IDE 1.9.1 and enabling it in a Redot 4.4-alpha.2 project, the script editor visually/functionally breaks:

  • The "Filter Scripts" section, including all recently edited scripts, does not get removed as expected.
  • Top tabs added by Script-IDE to navigate between scripts appear blank, only showing the X button. The tabs cannot be closed (even with middle-click shortcut) or right-clicked to show a context menu. However, they can be left-clicked to open the associated script.

The part that does work is the "Filter Methods" section, which shows all script members (variables, constants, functions, classes, etc.) as expected, and listed members can be clicked to navigate to their first definition in the script.

This issue occurs in both Mono and non-Mono builds of Redot, and is likely not platform specific (I use MacOS, and someone else in Discord said they experienced this same issue with Windows 11). It also doesn't matter whether you install the addon from Redot's built-in AssetLib tab or manually drag-and-drop the addon's files into the project.

Output errors:
  ERROR: res://addons/script-ide/plugin.gd:596 - Trying to assign value of type 'DependencyRemoveDialog' to a variable of type 'VSplitContainer'.
  ERROR: scene/gui/item_list.cpp:106 - Index p_idx = 0 is out of bounds (items.size() = 0).
  ERROR: scene/gui/item_list.cpp:212 - Index p_idx = 0 is out of bounds (items.size() = 0).
  ERROR: scene/gui/item_list.cpp:192 - Index p_idx = 0 is out of bounds (items.size() = 0).

^ The last three lines get repeated upon certain actions like focusing on Redot's window, but they are not constantly spammed.

These additional errors get printed when the addon is disabled:

  ERROR: Attempt to disconnect a nonexistent connection from '@TabContainer@12542:<TabContainer#1013008351070>'. Signal: 'pre_popup_pressed', callable: 'EditorPlugin(plugin.gd)::prepare_scripts_popup'.
  ERROR: res://addons/script-ide/plugin.gd:282 - Invalid call. Nonexistent function 'free' in base 'Nil'.
Screenshot:

Image

Steps to reproduce
  1. Open or create a new Redot project
  2. Set up a scene with attached scripts, if desired
  3. Navigate to the AssetLib tab
  4. Search for "Script-IDE" and install the addon
  5. Enable the addon in the project settings
  6. Observe errors in the Output tab and visual/functional bugs in the Script tab
Minimal reproduction project (MRP)

4.4-alpha.2Script-ideTroubleshooting.zip

Dominant language
C++
Stars
6.1k
Forks
337
Avg merge
4d 5h
Merged PRs (30d)
52

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Redot-Engine/redot-engine

All issues in Redot-Engine/redot-engine

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.