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'm currently writing an editor plugin for one of my game projects in order to add a new main screen view for easier editing. It's a massive hassle to have to go in to editor settings and disable then re-enable the plugin every time I make a new change, so I'm using mrpedrobraga's Plugin Refresher to make this a one-click operator.
Describe the problem or limitation you are having in your project
Plugin Refresher is GPLv3! If I were making an open-source game this wouldn't be an issue, but due to various restrictions this project is going to be proprietary. The add-on system in Godot requires that I copy Plugin Refresher's code into my project and then commit it into my version control system; I could put it in gitignore but it gets added to the project.godot as an enabled plugin, meaning any collaborators I end up having would also need to download it separately and put it in the exact same place.
Describe the feature / enhancement and how it helps to overcome the problem or limitation
Godot needs a concept of "global" editor plugins - plugins that only affect the editor and are not used at run time, and so can be kept in a separate location to apply to all Godot projects opened on that machine. An individual project wouldn't need to know about global editor plugins, and the editor would be able to look in the global plugin location and load them automatically.
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
The project manager would be given a new top tab for installing global editor plugins next to the Asset Library Projects tab. The UI for the plugin list view is already implemented in the editor so can be easily re-used in the asset manager screen.
Because only some plugins are editor-exclusive, a new field in plugin.cfg would be added - environment, which would support values of "editor", "runtime", or "both", with a default value of "both" if the field is not specified. Only plugins that explicitly mark themselves as an editor-only environment would be usable as global editor plugins.
The code for global editor plugins can be kept in the same directory as the project manager metadata files.
If this enhancement will not be used often, can it be worked around with a few lines of script?
I think this would be used pretty often! Plugin Refresher isn't the only editor plugin that would benefit from being global. Others include:
vim-motion by wovrik - Vim keybindings are a personal decision, and adding it to a project would force them onto all collaborators due to the aforementioned plugin.godot problem.
Local asset browser by kaifungamedev - the same GPLv3 problem as Plugin Refresher; the code shouldn't have to be included in VCS where it could violate the GPL license.
Quick layout changer by mathrick - this only affects the editor and shouldn't need to be bundled with the final compiled game.
Is there a reason why this should be core and not an add-on in the asset library?
There is actually an add-on for this! Globalize Plugins by dugramen implements a system for globally-loaded editor plugins. However, it is still itself a local plugin, requiring you to set it up again for every new project and keep it in your version management. I believe this is insufficient, and a proper global solution is still necessary.
The text was updated successfully, but these errors were encountered:
Describe the project you are working on
I'm currently writing an editor plugin for one of my game projects in order to add a new main screen view for easier editing. It's a massive hassle to have to go in to editor settings and disable then re-enable the plugin every time I make a new change, so I'm using mrpedrobraga's Plugin Refresher to make this a one-click operator.
Describe the problem or limitation you are having in your project
Plugin Refresher is GPLv3! If I were making an open-source game this wouldn't be an issue, but due to various restrictions this project is going to be proprietary. The add-on system in Godot requires that I copy Plugin Refresher's code into my project and then commit it into my version control system; I could put it in gitignore but it gets added to the
project.godot
as an enabled plugin, meaning any collaborators I end up having would also need to download it separately and put it in the exact same place.Describe the feature / enhancement and how it helps to overcome the problem or limitation
Godot needs a concept of "global" editor plugins - plugins that only affect the editor and are not used at run time, and so can be kept in a separate location to apply to all Godot projects opened on that machine. An individual project wouldn't need to know about global editor plugins, and the editor would be able to look in the global plugin location and load them automatically.
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
The project manager would be given a new top tab for installing global editor plugins next to the Asset Library Projects tab. The UI for the plugin list view is already implemented in the editor so can be easily re-used in the asset manager screen.
Because only some plugins are editor-exclusive, a new field in
plugin.cfg
would be added -environment
, which would support values of"editor"
,"runtime"
, or"both"
, with a default value of"both"
if the field is not specified. Only plugins that explicitly mark themselves as an editor-only environment would be usable as global editor plugins.The code for global editor plugins can be kept in the same directory as the project manager metadata files.
If this enhancement will not be used often, can it be worked around with a few lines of script?
I think this would be used pretty often! Plugin Refresher isn't the only editor plugin that would benefit from being global. Others include:
plugin.godot
problem.Is there a reason why this should be core and not an add-on in the asset library?
There is actually an add-on for this! Globalize Plugins by dugramen implements a system for globally-loaded editor plugins. However, it is still itself a local plugin, requiring you to set it up again for every new project and keep it in your version management. I believe this is insufficient, and a proper global solution is still necessary.
The text was updated successfully, but these errors were encountered: