PluginToolbarButton

Show Deprecated
not creatable

A PluginToolbarButton is an object created by the PluginToolbar:CreateButton() function. It allows the user to initiate a single, one-off action in Roblox Studio through the Click event. Pictured below are three PluginToolbarButtons. From left to right: the default, hover and pressed states. The hovered button in the center shows tooltip text, which is the 2nd argument passed to PluginToolbar:CreateButton().

Three PluginToolbarButtons rendered on a PluginToolbar titled "Three Wise Monkeys"

Behavior

When pressed, the Click event fires. A button will also remain in the pressed state, which may be set manually using SetActive. Upon plugin activation (Plugin:Activate()), buttons in all other PluginToolbars will be toggled off. If all buttons in a toolbar are off, the toolbar's plugin is deactivated (Plugin:Deactivate()).

When the game viewport is not visible, buttons will be disabled as if their Enabled property were false. Disabled buttons are desaturated and do not respond to user clicks. By setting ClickableWhenViewportHidden to true, you can allow plugin buttons to remain clickable (such as during script editing).

History

  • Prior to an update released in January 2019, this class was simply known as "Button". This was changed to reduce confusion with similarly named in-game UI element classes, such as TextButton.

Summary

Properties

  • not replicated
    read parallel

    Determines whether the button can be clicked when the game viewport is hidden, such as while editing a script in a different Studio tab.

  • not replicated
    read parallel

    Determines whether the button is clickable in general.

  • not replicated
    read parallel

    Determines what icon should represent the button.

Methods

Events

Properties

ClickableWhenViewportHidden

not replicated
read parallel

ClickableWhenViewportHidden determines whether a PluginToolbarButton may be clicked while the game viewport is hidden, such as when a Script is being edited in another tab. In the image below, various plugin toolbar buttons are visible. Some are enabled as a result of this property being true, such as the Localization Tools button.

Various plugin toolbar buttons visible while a Script is being edited, causing the game viewport to be hidden. Some of the buttons are enabled due to this property being true.

Typically, this property is good to enable if an action triggered by a plugin button's Click event doesn't occur in the game world (Workspace). For example, a button that opens a widget should have this property be true, as showing a widget is visible to the user even if the game view isn't visible.

Enabled

not replicated
read parallel

Enabled determines whether a button is clickable in general. When this property is false, the button will be greyed out and unclickable, preventing the user from firing the Click event. Buttons are enabled by default.

Plugins should disable their buttons when the button action isn't relevant in the current context. For example, a plugin button that assigns random colors to selected should not be enabled when the selection contains no parts. See the code samples for more information.

See also:

Code Samples

BrickColor Randomizer Plugin

assert(plugin, "This script must be run as a plugin")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Parts")
local pluginToolbarButton = toolbar:CreateButton(
"Randomize Colors",
"Click this button to assign random colors to selected parts",
"rbxassetid://5325741572" -- A rainbow
)
local function onClick()
local selection = Selection:Get()
for _, object in pairs(selection) do
if object:IsA("BasePart") then
object.BrickColor = BrickColor.random()
end
end
end
pluginToolbarButton.Click:Connect(onClick)
local function doesSelectionContainAPart()
local selection = Selection:Get()
for _, object in pairs(selection) do
if object:IsA("BasePart") then
return true
end
end
return false
end
local function onSelectionChanged()
pluginToolbarButton.Enabled = doesSelectionContainAPart()
end
Selection.SelectionChanged:Connect(onSelectionChanged)
onSelectionChanged()
not replicated
read parallel

Icon determines what icon should be shown for the button in the plugin toolbar. When this property is not set, the button will instead use the button's text given by PluginToolbar:CreateButton().

Methods

SetActive

void

This method can be used to manually set the active state of the plugin button.

Parameters

active: bool

Returns

void

Events

Click

Click fires when the PluginToolbarButton is pressed and released by the user.

Clicking a PluginToolbarButton causes the state of the button to toggle. Call SetActive to manually set the state of the button.


Code Samples

PluginToolbarButton.Click

assert(plugin, "This script must be run as a plugin")
local toolbar = plugin:CreateToolbar("Hello World Plugin Toolbar")
local pluginToolbarButton = toolbar:CreateButton(
"Print Hello World",
"Click this button to print Hello World!",
"rbxassetid://133293265"
)
local function onClick()
print("Hello, world")
end
pluginToolbarButton.Click:Connect(onClick)