Open-source project
Maran23/script-ide avatar
Maran23/script-ide

Script IDE, a Godot addon that rebuilds the script editor around tabs and an outline

Transforms the Script UI into an IDE like UI. Multiline Tabs, Splitting, Outline with unique icons that shows all members of the script. Quick search and function override functionality.

1,057 stars41 forksGDScriptMIT

At a glance

What is it?
Script IDE is a Godot editor plugin written in GDScript that replaces the single script pane with multiline tabs, a split view, and an outline that lists every member of a script with a distinct icon per type. It adds a quick search popup and a way to override inherited methods, and it is careful to touch as little of the engine as possible.
Who is it for?
Adopt Script IDE if you work with several scripts open at once and the built-in script editor's single pane is the thing slowing you down, and skip it if your project has one script, since the whole value is in navigation across files.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 3 days ago.
What is it written in?
Mainly GDScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What the plugin changes, and what it refuses to change

The plugin's own notes on its further behaviour are the most useful part of the documentation. It tries to modify as little as possible in the engine, and the reason given is stability: since each engine version can introduce changes in the layout, every change carries a risk. That is a design constraint stated by the author rather than a promise, and it explains the shape of the whole thing. The plugin is aware of the structure in script_editor_plugin.cpp, which the documentation names as the native part of the script tree structure that the plugin modifies. That coupling to an engine internal is the real risk of the project, and stating it plainly is more useful than hiding it. The second rule is about failure: the plugin initialization fails fast if something is unexpected, a log message is printed, and nothing else will be changed. So a mismatch with a new engine version leaves your editor alone rather than half-modified.

Scripts as tabs, and splitting one open

The first feature group turns the script list into tabs. Scripts are shown as a multiline tab rather than a single line strip, and a tab can be split, which shows the current script as a read-only CodeEdit next to the main one, with the original reopened by right-clicking it. That detail is the interesting part of the split, because a split that opens a second editable copy of the same file creates two editors fighting over one buffer. Making the second pane read-only and giving you a way back to the original is a deliberate choice. Scripts can also be opened in a popup with a shortcut, or by clicking the three dots at the top right of the tabs, for quick navigation between scripts. The currently edited script is automatically selected in the filesystem dock, and the script tabs can be switched back to a single line, hidden, or moved to the bottom, all through settings.

The outline, with a colour for every kind of member

The outline was overhauled to show much more than the methods of a script, and the mechanism is a distinct icon per member type. The list is explicit: classes get a red square, constants a red circle, signals yellow, export variables orange, variables red, engine callback functions blue, and static functions green, with setter functions drawn as a green circle with an arrow pointing right and getters as a green circle with an arrow pointing left. The setter and getter distinction is worth pausing on, because in a codebase with a lot of exported properties, being able to see at a glance which functions are the property accessors is a real time saver. Every member type can be hidden or shown again through the outline filter, which allows fine control such as showing only signals and Godot functions, and a right click enables only the clicked filter while another right click enables all of them again. The outline can be opened in a popup for keyboard-only navigation, and you can move through it with the arrow keys or page up and page down, scrolling to the selected item by pressing enter.

Quick search and overriding a superclass method

Two features handle the work that would otherwise send you to a file browser. The quick search popup finds files, triggered by pressing Shift twice, and there are separate shortcuts that open it with the scene tab, the script tab or the resource tab already active, which is a small detail that shows the author has thought about the actual workflow. The second feature overrides methods from your superclasses, reachable with Alt and Insert, and it appears as its own popup in the screenshots. In a Godot project built on inheritance, overriding a parent method means navigating to the parent script, finding the right function, copying its signature and switching back, and the popup condenses that into one step. The documentation also notes that the double press behaviour for the quick search shortcut is hardcoded for now, which is an honest limitation rather than a hidden one.

The settings surface, and how much you can move

Everything is configurable from the editor settings under Plugin and Script Ide, and the list is long enough that it is worth scanning for the ones that matter. The outline can be on the right or the left, and the order of member types in it is configurable, which lets you put the members you look at most first. Private members, meaning everything starting with an underscore, can be hidden. The script list above the outline is hidden by default and can be brought back, and the panel itself can be toggled from the File menu. The shortcut settings cover the outline popup, the script popup, the quick search popup in its scene, script and resource variants, the override popup, and tab cycling forward and backward, which the documentation notes only works inside the script editor tab. Default shortcuts pair the control key with the meta key so the same binding works on Windows and macOS, and the outline popup defaults to Ctrl+O or Meta+O while the script popup defaults to Ctrl+U or Meta+U.

Performance as an explicit design goal

The notes explain the performance approach in terms of absence. Everything you might not use also will not consume any resources, with the example given that the quick open menu only rebuilds, lazily, when you open it. And there are no unneeded features, with the reasoning that if a functionality is most likely not relevant for many users, it probably should be its own plugin. That is an unusual thing for an addon author to write down, because it is a constraint on future development as much as a description of the present. It also explains the structure of the repository, which is small: an addons/ directory holding the plugin, the README, a licence and two images. The plugin is written in GDScript, so it is all readable source with no compiled component, and it is published both on the Godot asset store and in the Godot asset library.

Version cadence and how to work on it

The release history shows a plugin that ships regularly: 2.2.5 on 2026-09-02, 2.2.4 on 2026-08-29 and 2.2.3 on 2026-07-19, with the last push to the repository on 2026-10-05 and the repository not archived. The licence is MIT, with the file at the root. For contributors, the note is practical rather than abstract: to open the project in the engine you need to create or copy a project.godot into it, and the README shows what that file starts with. The homepage is a short link to the author's site, and the plugin is also in the Godot asset store and the asset library. The one thing an adopter should keep in mind when tracking versions is the coupling already described to script_editor_plugin.cpp, since a plugin that changes the script editor's structure has to be re-examined whenever the engine's own script editor changes.

Editorial conclusion

Adopt Script IDE if you work with several scripts open at once and the built-in script editor's single pane is the thing slowing you down, and skip it if your project has one script, since the whole value is in navigation across files. Verify three things before you install it: that the addon does not conflict with other editor plugins touching the same panels, since it modifies the script editor area; that the version you take matches your Godot version, because the plugin is aware of the internal structure of script_editor_plugin.cpp and the engine changes between releases; and that the outline member types you rely on are covered, since the list of icons is explicit and anything outside it will not be filtered separately.

Frequently asked questions

What does the Script IDE Godot plugin add to the script editor?

It transforms the script UI into an IDE-like one: scripts are shown as multiline tabs that can be split into a read-only CodeEdit, the outline shows all member types with unique icons, and there is a quick search popup plus a way to override methods from super classes.

What member types does the Script IDE outline show?

Classes with a red square, constants with a red circle, signals in yellow, export variables in orange, variables in red, engine callback functions in blue, and static functions in green, with setter and getter functions distinguished by an arrow inside the green circle. Each type can be toggled independently through the outline filter.

How does Script IDE reduce the risk of breaking with new Godot versions?

It tries to modify as little as possible in the engine, and the initialization fails fast if something is unexpected, printing a log message and changing nothing else. The plugin is aware of the structure in script_editor_plugin.cpp, the native part of the script tree structure it modifies.

Where can I configure the Script IDE plugin?

In the editor settings under Plugin and Script Ide, where you can set the outline position and order, whether private members are hidden, whether script tabs are visible, single line, and positioned at the top, and the shortcuts for the outline popup, script popup, quick search popup, override popup and tab cycling.

Official sources

  1. License: MIT
  2. Maran23/script-ide on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/maran23-script-ide.svg)](https://hysenlabs.com/projects/maran23-script-ide)

Was this useful?