You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am currently working on a plugin-based development workflow within the Godot Editor. As part of this project, I frequently make changes to the plugin’s code or structure, and I would like to see those changes reflected immediately within the editor without reloading the entire project.
Describe the problem or limitation you are having in your project
Currently, in Godot, when I make changes to a plugin, I must manually disable and re-enable the plugin for the changes to take effect. This process it's a bit time-consuming and disrupts the workflow, especially when I am iterating on the plugin and need to frequently test updates. Having to disable and enable plugins for each change makes development less efficient and can hinder the overall experience.
Describe the feature / enhancement and how it helps to overcome the problem or limitation
I propose the addition of a feature to support hot-reloading of plugins within the Godot Editor, which would allow changes to be applied without needing to manually disable and re-enable the plugin. This feature could also include the ability to trigger the reload via a shortcut, making the process more streamlined and reducing the friction in the development cycle.
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
This feature would likely involve a function or method that allows the editor to unload and reload a plugin dynamically. The feature could be triggered through a keyboard shortcut.
Here is an example of how the feature could work programmatically:
funcreload_plugin():
vareditor_interface=get_editor_interface()
# Deactivate the plugineditor_interface.set_plugin_enabled("MyPlugin", false)
# Wait until the plugin is completely unloaded (if needed)whileeditor_interface.is_plugin_enabled("MyPlugin"):
awaitget_tree().create_timer(0.1).timeout# Reactivate the plugin to apply changeseditor_interface.set_plugin_enabled("MyPlugin", true)
If this enhancement will not be used often, can it be worked around with a few lines of script?
Currently, there is no reliable workaround using scripts to reload plugins in Godot, as the method of manually toggling plugins via code (such as set_plugin_enabled) does not work as expected in some cases. This makes it impractical for developers to implement their own solution for hot-reloading plugins. A dedicated hot-reload feature would provide a seamless workflow and avoid the need for these workarounds, ensuring changes to plugins are applied instantly without requiring manual intervention or restarting the editor.
Is there a reason why this should be core and not an add-on in the asset library?
This feature would be good for plugin development and would significantly enhance the efficiency of iterating on plugins within the Godot Editor. Having it as part of the core editor would provide a native solution for all plugin developers. Additionally, integrating this feature directly into the editor would ensure that it works consistently across all plugins and would likely benefit a large portion of the Godot development community.
The text was updated successfully, but these errors were encountered:
Describe the project you are working on
I am currently working on a plugin-based development workflow within the Godot Editor. As part of this project, I frequently make changes to the plugin’s code or structure, and I would like to see those changes reflected immediately within the editor without reloading the entire project.
Describe the problem or limitation you are having in your project
Currently, in Godot, when I make changes to a plugin, I must manually disable and re-enable the plugin for the changes to take effect. This process it's a bit time-consuming and disrupts the workflow, especially when I am iterating on the plugin and need to frequently test updates. Having to disable and enable plugins for each change makes development less efficient and can hinder the overall experience.
Describe the feature / enhancement and how it helps to overcome the problem or limitation
I propose the addition of a feature to support hot-reloading of plugins within the Godot Editor, which would allow changes to be applied without needing to manually disable and re-enable the plugin. This feature could also include the ability to trigger the reload via a shortcut, making the process more streamlined and reducing the friction in the development cycle.
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
This feature would likely involve a function or method that allows the editor to unload and reload a plugin dynamically. The feature could be triggered through a keyboard shortcut.
Here is an example of how the feature could work programmatically:
If this enhancement will not be used often, can it be worked around with a few lines of script?
Currently, there is no reliable workaround using scripts to reload plugins in Godot, as the method of manually toggling plugins via code (such as set_plugin_enabled) does not work as expected in some cases. This makes it impractical for developers to implement their own solution for hot-reloading plugins. A dedicated hot-reload feature would provide a seamless workflow and avoid the need for these workarounds, ensuring changes to plugins are applied instantly without requiring manual intervention or restarting the editor.
Is there a reason why this should be core and not an add-on in the asset library?
This feature would be good for plugin development and would significantly enhance the efficiency of iterating on plugins within the Godot Editor. Having it as part of the core editor would provide a native solution for all plugin developers. Additionally, integrating this feature directly into the editor would ensure that it works consistently across all plugins and would likely benefit a large portion of the Godot development community.
The text was updated successfully, but these errors were encountered: