Um plugin é uma extensão que adiciona recursos ou funcionalidades adicionais ao Studio .Você pode instalar plugins criados pela comunidade da Loja do Criador, ou você pode criar e publicar os seus próprios na Caixa de Ferramentas para usar em suas experiências.
Se você optar por distribuir também seus plugins para a Loja do Criador, você pode oferecê-los gratuitamente ou vendê-los por Dólares Americanos (o preço mínimo é $4.99).O Roblox oferece uma participação de receita de mercado para essas vendas, pois apenas impostos e taxas de processamento de pagamento são deduzidos.Para mais informações sobre venda de plugins, veja Venda na Loja do Criador.
Criar novos plugins
Você pode criar seus próprios plugins para melhorar seu fluxo de trabalho no Studio.O seguinte exemplo de código é um plugin chamado EmptyScriptAdder que insere um script vazio como filho de um objeto ou em .As seções a seguir explicam as principais partes para criar este plugin.
Para começar, você deve habilitar Depuração de Plugin Ativada na seção Studio das configurações do Studio.Isso exporá o PluginDebugService no Studio que fornece depuração em tempo real para o código do seu plugin e facilita o recarregamento e o salvamento do seu plugin.
Plugin EmptyScriptAdder
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- Crie uma nova seção na barra de ferramentas intitulada "Ferramentas de Script Personalizadas"
local toolbar = plugin:CreateToolbar("Custom Script Tools")
-- Adicione um botão na barra de ferramentas chamado "Criar Script Vazio"
local newScriptButton = toolbar:CreateButton("Create Empty Script", "Create an empty script", "rbxassetid://14978048121")
-- Torne o botão clicável mesmo que o visualizador 3D esteja oculto
newScriptButton.ClickableWhenViewportHidden = true
local function onNewScriptButtonClicked()
local selectedObjects = Selection:Get()
local parent = game:GetService("ServerScriptService")
if #selectedObjects > 0 then
parent = selectedObjects[1]
end
local newScript = Instance.new("Script")
newScript.Source = ""
newScript.Parent = parent
ChangeHistoryService:SetWaypoint("Added new empty script")
end
newScriptButton.Click:Connect(onNewScriptButtonClicked)
Salvar scripts de plugue
Plugins começam a partir de scripts.Para criar um plugin, crie um Script e salve-o como plugin usando o Explorer.Por exemplo, para criar o Plugin EmptyScriptAdder :
Insira um novo Script dentro de ServerStorage e renomeie-o para EmptyScriptAdder .
Copie e cole o código EmptyScriptAdder Plugin no novo script.
Na janela Explorer , clique com o botão direito no script e selecione Salvar como Plugin Local .
Na janela pop-up, clique em Salvar para inserir o script do plugin na sua pasta local Plugins da instalação do Studio.
O plugin deve aparecer em PluginDebugService e começar a funcionar.
Recarregar e salvar alterações
Com o seu Plugin dentro de PluginDebugService, você pode atualizar facilmente o plugin clicando com o botão direito nele e selecionando Salvar e Recarregar Plugin no menu de contexto.Se você simplesmente quiser recarregar o plugin, por exemplo, para percorrer uma seção de código usando um ponto de interrupção sem salvar o plugin, você pode alternativamente selecionar Recarregar Plugin .
Adicionar botões na barra de ferramentas
Para adicionar um botão para o seu plugin na aba Plugins da barra de ferramentas do Studio, use os métodos Plugin:CreateToolbar() e PluginToolbar:CreateButton().No código para EmptyScriptAdder , a linha 5 cria uma nova seção na barra de ferramentas chamada Ferramentas de Script Personalizado e a linha 8 cria um botão chamado Criar Script Vazio .

Executar código ao clique
Para fazer com que o plugin execute código quando um usuário clicar no botão da barra de ferramentas, conecte uma função ao evento do botão PluginToolbarButton.Click.No código para EmptyScriptAdder , a função de conexão é onNewScriptButtonClicked().
Verificar seleção do usuário
Para modificar o comportamento de um plugin com base no que o usuário selecionou, use o serviço .A função onNewScriptButtonClicked() verifica se o usuário tem algo selecionado e cria o novo script como seu filho em vez de dentro de ServerScriptService.Se o usuário não tiver nada selecionado, ele cria o novo script em ServerScriptService .

Suporte a desfazer e refazer
Use ChangeHistoryService para permitir que os usuários desfaçam e refaçam as alterações feitas por um plugin dentro de uma experiência.Em seu script, configure o plugin para chamar ChangeHistoryService:TryBeginRecording() e armazenar o identificador atribuído à chamada da API antes de fazer alterações.Então configure o plugin para chamar ChangeHistoryService:FinishRecording() depois de fazer alterações, para que ele capture quaisquer alterações feitas durante a sessão de gravação para desfazer e refazer.
O seguinte exemplo de código cria um plugin de exemplo que pode aplicar o material neon a peças selecionadas.Ela usa ChangeHistoryService para registrar e gerenciar as alterações feitas pelo plugin:
Exemplo de Plugin de Material com Gravações para Desfazer e Refazer
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- Crie um exemplo de plugin
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
-- Conecte uma função ao evento de clique
button.Click:Connect(function()
local parts = {}
for _, part in Selection:Get() do
if part:IsA("BasePart") then
parts[#parts + 1] = part
end
end
if #parts < 1 then
-- Nada para fazer.
return
end
-- Tente iniciar uma gravação com um identificador específico
local recording = ChangeHistoryService:TryBeginRecording("Set selection to neon")
-- Verifique se a gravação foi iniciada com sucesso
if not recording then
-- Lidar com erro aqui. Isso indica que seu plugin começou um anterior
-- gravando e nunca concluindo. Você só pode ter uma gravação
-- por plugin ativo em um momento.
return
end
-- Iterar pelas peças selecionadas
for _, part in parts do
part.Material = Enum.Material.Neon -- Defina o material da peça para Neon
end
-- Finalize a gravação, commitindo as alterações para a história
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)
Carregar, distribuir e monetizar plugins
Como com modelos , malhas , imagens e animações , você pode distribuir plugins para o Roblox para torná-los fáceis de reutilizar a partir da Caixa de Ferramentas.Você pode optar por torná-los publicamente disponíveis para todos os outros criadores na Loja do Criador, ou distribuí-los de forma privada para seu próprio uso.Se você optar por distribuir seu plugin publicamente, você pode definir um preço para vendê-lo a outros criadores.
Para distribuir um plugin:
Na janela Explorer , clique com o botão direito em um script de plugin, então selecione Publicar como Plugin do menu contextual.
(Opcional) Na canto superior esquerdo da janela de configuração de recursos, clique na imagem para carregar uma imagem de 512×512.
Preencha os seguintes campos:
- Nome : Um título para o seu plugin.
- Descrição : Uma descrição que descreve o que um usuário em potencial deve esperar que o plugin faça.
- Criador : O criador que você gostaria de atribuir como o criador do plugin.
Clique no botão Enviar .Seu plugin agora está disponível para você nas abas Inventário e Criações da Caixa de Ferramentas.
Clique no link para Painel do Criador para configurar a distribuição.