Hi, there are quite a few plugins now that add various GUI buttons to the game. Right now, every plugin author has to implement button behaviour themselves. Also, there is no consistent button style between different plugins' buttons.
I have written a plugin that is targeted towards those plugins. Specifically, it provides an API for third-party plugins to provide GUI buttons to a toolbar. Those buttons then can invoke an arbitrary action specified by the plugin's author, such as opening a new window. The ultimate goal of this plugin is the separation of specifying a button's contents (such as text or image) and its action from the actual display style and position of the button. The player should be free to position buttons anywhere they please.
Download Toolbar Plugin 1.7.0
Source code: https://github.com/blizzy78/ksp_toolbar
(The Toolbar Plugin is licensed under the BSD 2-clause license.)
Older video demonstrating some of the features:
Mod spotlight from HAWX Gaming:
- A single draggable and resizable toolbar holds all buttons
- Buttons have a texture (icon)
- Custom button order can be maintained
- Unlimited number of toolbars per game scene
- Custom button folders can be created to improve organization
- Toolbar position is saved between KSP restarts
- Toolbar will auto-clamp to screen area so that it cannot be dragged off-screen
- Toolbar may auto-hide itself if positioned at screen edge
- Clicking a button invokes an arbitrary action specified by plugin author
- Every button looks the same, no need for plugin author to provide any styles
Please note that this is not a regular plugin in the usual sense. You can install it, but it won't actually do anything on its own unless being told to do so by other plugins.
However, if you're a player and would like your favorite plugin to use the Toolbar Plugin, please tell that plugin's author to look into it.
Plugins Currently Using the Toolbar
Are you a plugin author and would like to use the Toolbar Plugin? Please head over to the development thread which has all the info you need.
Frequently Asked Questions
How do I reposition the toolbar on my screen?
Click on the little triangle button on the toolbar, then select "Unlock Position and Size" from the menu. You can now drag the toolbar around. When done, click on the triangle button again, then select "Lock Position and Size."
How do I change the layout of the toolbar? I want there to be two rows of buttons, or two columns, or ...
Click on the little triangle button on the toolbar, then select "Unlock Position and Size" from the menu. You can now resize the toolbar by clicking and dragging in the lower-right corner of it. When done, click on the triangle button again, then select "Lock Position and Size."
How do I change the order of the buttons?
Click on the little triangle button on the toolbar, then select "Unlock Button Order" from the menu. You can now drag the buttons around. When done, click on the triangle button again, then select "Lock Button Order."
Does the toolbar remember position, layout, button order, and button visibility dependent on current game scene?
Yes, all those settings are saved dependent on the current game scene.
Is there a way to automatically hide the toolbar when I don't need it?
First, drag the toolbar to the screen edge. Then, click the triangle button and select "Activate Auto-Hide at Screen Edge" from the menu. The toolbar should now auto-hide itself when the mouse pointer is not hovering above it. To disable this behaviour, click the triangle button again, then select "Deactivate Auto-Hide at Screen Edge."
So many buttons! Can I hide the ones I don't need?
Click on the little triangle button on the toolbar, then select "Configure Visible Buttons" from the menu. Activate or deactivate buttons as desired. Click "Close" to close the configuration window.
How do I create a new button folder? How do I put buttons into a folder?
Click the triangle button, then select "Create New Folder" from the menu.
To put buttons into the folder, click the triangle button, then select "Unlock Button Order" from the menu. Then drag any regular button onto the folder button (not into the folder, should it be visible.) To exit the button drag mode, click the triangle button, then select "Lock Button Order."
How do I delete a button folder?
Right-click on the button folder, then select "Delete Folder" from the menu.
Folders are not enough, I need more toolbars. How do I add them?
Click the triangle button, then select "Create New Toolbar" to add a new toolbar.
How do I delete a toolbar?
Click the triangle button on the toolbar in question, then select "Delete Toolbar". Note that you cannot delete the last toolbar.
How do I change a folder button's tool tip text?
Right-click on the button folder, then select "Edit Folder Settings" from the menu.
I like the KSP GUI skin better than Unity's default, is there a way to make the buttons look like that?
Click the triangle button, then select "Use KSP Skin" from the menu. To revert back to Unity's default skin, click the triangle button again, then select "Use Unity 'Smoke' Skin."
Is there a way to hide the toolbar's border?
Click the triangle button, then select "Hide Border" from the menu. To show the border again, click the triangle button again, then select "Show Border."
My toolbar is all messed up, how do I reset it completely?
To reset to defaults completely, exit KSP, delete the GameData\toolbar-settings.dat file from your installation, then start KSP again.
- Fixed a bug that could prevent the saving of settings in certain situations.
- Plugin authors: Added new API to allow to display "drawables." These are any
GUI widgets that you wish to display that are tied to a particular button.
For example, drawables can be used to display a popup menu (see the
PopupMenuDrawable class and the example source code), or an informational
small window when hovering over a button. Drawables will always be positioned
near the parent toolbar (much like button folders.)
This new API is available for users of the official Toolbar wrapper as well.
- You can now choose different icons for folder buttons.
- Added support for multiple toolbars. You can add new toolbars by selecting
"Create New Toolbar" from the triangle drop-down menu. Each toolbar has its
own separate set of settings, folders, and visible buttons.
- The map view during flight is now considered a separate game scene. This
means that it is now possible to configure different toolbars for the
regular flight scene and the flight map scene.
- Fixed a bug where buttons marked as "important" could prevent the toolbar
from auto-hiding itself, even though those buttons have not been configured
to be visible.
- Removed the popup dialog that notifies about new buttons that became
available. Instead, the toolbar will always show the configuration button as
long as no other buttons are configured to be visible.
- Fixed a bug where the toolbar would lose the configured visibility of some
- Fixed a bug where a newly-created folder would not respect the "show border"
setting of the main toolbar.
- Plugin authors: Added an official Toolbar Plugin wrapper that can be used to
provide Toolbar Plugin support without creating a hard dependency. Check the
development forum thread at http://bit.ly/1b1ZXda for details.
- Fixed a bug where the new buttons notification would pop up more often
- Fixed a bug where folders would not display their contents.
- The update notification button can now be dismissed (hidden) by right-
- You can now configure the visibility of each button. For example, you can
now hide a button if you don't need it. Button visibility is saved in
relation to game scene.
Note: This change will cause a one-time reset of the toolbar, such that
no buttons are visible at first. Toolbar location will be preserved.
- Fixed another bug where the toolbar would get completely invisible under
- Various other minor improvements and bug fixes.
- Fixed a bug where the toolbar would get completely invisible under certain
- Various minor improvements and bug fixes.
- The plugin will now display a confirmation dialog before deleting a folder.
- The plugin will now check for incorrect installations and display a
warning if necessary.
- Fixed a bug that could sometimes cause buttons to render with Unity's
default skin instead of the KSP skin.
- You can now add custom folders to the toolbar, which can hold any number
of regular buttons for improved organization.
- You can now reorder the buttons on the toolbar. Button order is saved in
relation to game scene (for example, you can have a different button order
in the flight scene and the tracking station scene.)
- Plugin authors: Added new property IButton.EffectivelyVisible. See the
documentation of that property for details.
- You may now chose to use the KSP skin for buttons instead of Unity's
default 'Smoke' skin.
- The toolbar border can now be hidden.
- Improved the positioning/sizing of the toolbar after startup with respect
to the size that has been chosen previously by the player.
- Increased the size of the triangle button that opens the toolbar-specific
- Fixed a bug that could make the toolbar completely invisible under
- The toolbar should now no longer be visible during loading screens.
- Plugin authors: Added new events IButton.OnMouseEnter/OnMouseLeave.
See the documentation of those events for details.
- Toolbar position and size are stored in relation to the current scene now.
For example, you can place it at different positions in the vehicle assembly
building, the spaceplane hangar, and the actual flight scene.
- Plugin authors: There is a new property IButton.Important now. See the
documentation of that property for details.
- Added a new toolbar-specific drop-down menu where players can configure
- Repositioning and resizing the toolbar should now be considerably easier.
- Added the ability to auto-hide the toolbar when it is positioned at the
- Plugin authors: No API changes were made in this version.
- Initial public release.