Um plugin é uma extensão que adiciona recursos ou funcionalidades adicionais ao Estúdio. Você pode instalar plugins feitos pela comunidade na Loja do Criador, ou pode criar e publicar os seus próprios no Caixa de Ferramentas para usar em suas experiências.
Se você optar por distribuir seus plugins na Loja do Criador, poderá oferecê-los gratuitamente ou vendê-los por Dólares dos Estados Unidos. A Roblox oferece uma participação na receita de mercado líder para essas vendas, já que apenas os impostos e as taxas de processamento de pagamento são deduzidos. Para mais informações sobre como vender plugins, consulte Loja do Criador - Distribuir e vender ativos.
Criar novos plugins
Você pode criar seus próprios plugins para melhorar seu fluxo de trabalho no Estúdio. O seguinte exemplo de código é um plugin chamado AddEmptyScript que insere um Script vazio como filho de uma Instance ou no ServerScriptService. As seções a seguir explicam as partes principais para criar este plugin.
Para começar, você deve habilitar Plugin Debugging Enabled na seção Estúdio das configurações do Estúdio. Isso tornará o PluginDebugService visível no Estúdio, que fornece depuração em tempo real para o código do seu plugin e torna mais fácil recarregar e salvar seu plugin.
Plugin AddEmptyScript
local ServerScriptService = game:GetService("ServerScriptService")
local Selection = game:GetService("Selection")
-- Cria uma nova seção de barra de ferramentas e uma pasta de menu Plugins intitulada "Custom"
local toolbar = plugin:CreateToolbar("Custom")
-- Adiciona um botão de barra de ferramentas rotulado "Empty Script"
local newScriptButton = toolbar:CreateButton("Empty Script", "Cria um script vazio", "rbxassetid://14978048121")
-- Torna o botão clicável mesmo se a visualização 3D estiver oculta
newScriptButton.ClickableWhenViewportHidden = true
local function onPluginButtonClicked()
local selectedObjects = Selection:Get()
local parent = selectedObjects[1] or ServerScriptService
local newScript = Instance.new("Script")
newScript.Source = ""
newScript.Parent = parent
end
newScriptButton.Click:Connect(onPluginButtonClicked)
Salvar script do plugin
Para criar um plugin, primeiro crie um Script e salve-o localmente.
Insira um novo Script dentro do ServerStorage e renomeie-o para AddEmptyScript.

Copie e cole o código do Plugin AddEmptyScript acima no novo script.
Com o novo script selecionado na janela Explorer, selecione Salvar como Plugin Local no menu Plugins do Estúdio.
Na janela pop-up, clique em Salvar para inserir o script do plugin na sua pasta local de Plugins da instalação do Estúdio.
O plugin deve aparecer no PluginDebugService e começar a ser executado.
- IMPORTANTEExclua o script original em ServerStorage e trabalhe com o plugin AddEmptyScript dentro do PluginDebugService, caso contrário, você pode acabar aplicando alterações ao script errado.

Adicionar botão à barra de ferramentas
Para adicionar um botão para o seu plugin na aba Plugins da barra de ferramentas do Estúdio, use os métodos Plugin:CreateToolbar() e PluginToolbar:CreateButton(). No código para AddEmptyScript, a linha 5 cria uma nova seção na barra de ferramentas e na pasta do menu Plugins intitulada Custom, enquanto a linha 8 cria um botão rotulado Empty Script.

Executar código ao clicar
Para fazer o plugin executar código quando um usuário clica no botão da barra de ferramentas, conecte uma função ao evento PluginToolbarButton.Click do botão. No código para AddEmptyScript, a função de conexão é onPluginButtonClicked().
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 Selection. A função onPluginButtonClicked() verifica se o usuário tem algo selecionado e cria o novo script como seu filho em vez de dentro do ServerScriptService. Se o usuário não tiver nada selecionado, o novo script é criado no 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 TryBeginRecording() e armazene o identificador atribuído à chamada da API antes de fazer alterações. Em seguida, configure o plugin para chamar FinishRecording() após 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 partes selecionadas. Ele usa ChangeHistoryService para gravar e gerenciar as alterações feitas pelo plugin:
Plugin de Material Exemplo com Gravações para Desfazer e Refazer
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- Cria um plugin de exemplo
local toolbar = plugin:CreateToolbar("Plugin Exemplo")
local button = toolbar:CreateButton("Neon it up", "", "")
-- Conecta uma função ao evento de clique
button.Click:Connect(function()
-- Tente iniciar uma gravação com um identificador específico
local recording = ChangeHistoryService:TryBeginRecording("Definir seleção como neon")
-- Verifique se a gravação foi iniciada com sucesso
if not recording then
-- Isso indica que seu plugin começou uma gravação anterior e nunca a completou
-- Você pode ter apenas uma gravação ativa por plugin ao mesmo tempo
return
end
-- Itera sobre as instâncias selecionadas
for _, instance in Selection:Get() do
-- Verifica se a instância é um BasePart
if instance:IsA("BasePart") then
instance.Material = Enum.Material.Neon -- Define o material da parte como Neon
end
end
-- Finaliza a gravação, comprometendo as alterações ao histórico
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)
Fazer upload de plugins
Depois de terminar de criar um plugin, você pode enviá-lo para o seu inventário para que ele esteja acessível em todos os seus projetos.
Para enviar um plugin:
Na janela Explorer, selecione um script de plugin.
Navegue até o menu Plugins do Estúdio e selecione Publicar como Plugin.
- OPCIONALNo canto superior esquerdo da janela de configuração do ativo, clique na imagem padrão de quebra-cabeça para enviar uma miniatura de imagem de 512×512 para o seu plugin.
Preencha os seguintes campos:
- Nome — Um título para o seu plugin.
- Descrição — Uma descrição que descreve o que um possível usuário pode esperar que o plugin faça.
- Criador — O criador ou grupo que você deseja atribuir como o criador do plugin.
Clique no botão Enviar. Seu plugin agora está disponível para você na Caixa de Ferramentas nas abas Inventário e Criações.
Distribuir e vender plugins
Você pode distribuir publicamente e vender seus próprios plugins na Loja do Criador para que outros possam usar no próprio desenvolvimento de jogos. Este método de monetização permite que você ganhe 100% do líquido das transações, evitando taxas de plataforma e taxas de DevEx. Para mais informações sobre esse processo, incluindo como configurar uma conta de vendedor para definir preços e receber pagamentos, consulte Loja do Criador - Requisitos.