Plugins

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Un plugin es una extensión que agrega funciones o funcionalidades adicionales a Studio.Puedes instalar plugins creados por la comunidad de la Tienda del Creador, o puedes crear y publicar los tuyos propios en la Caja de herramientas para usar en tus experiencias.

Si eliges también distribuir tus plugins a la Tienda del Creador, puedes ofrecérselos gratis o venderlos por dólares estadounidenses (el precio mínimo es de $4.99).Roblox ofrece una participación de ingresos de mercado para estas ventas, ya que solo se deducen impuestos y tarifas de procesamiento de pagos.Para obtener más información sobre la venta de plugins, vea Venta en la tienda del creador.

Crear nuevos plugins

Puedes crear tus propios plugins para mejorar tu flujo de trabajo en Studio.El siguiente ejemplo de código es un plugin llamado EmptyScriptAdder que inserta un script vacío como hijo de un objeto o en ServerScriptService .Las siguientes secciones explican las principales partes para crear este complemento.

Para comenzar, debe habilitar Depuración de plugins habilitada en la sección Studio de las configuraciones de Studio.Esto expondrá el PluginDebugService en Studio que proporciona depuración en tiempo real para el código de tu complementoy facilita la recarga y el guardado de tu complemento.

Plugin de EmptyScriptAdder

local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- Crear una nueva sección de barra de herramientas titulada "Herramientas de script personalizadas"
local toolbar = plugin:CreateToolbar("Custom Script Tools")
-- Añade un botón de barra de herramientas llamado "Crear guión vacío"
local newScriptButton = toolbar:CreateButton("Create Empty Script", "Create an empty script", "rbxassetid://14978048121")
-- Hacer que el botón sea clicable incluso si el visor 3D está 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)

Guardar scripts de plugin

Los plugins comienzan desde los scripts.Para crear un complemento, crea un Script y guárdalo como plugin usando el Explorador.Por ejemplo, para crear el plugin EmptyScriptAdder :

  1. Inserta un nuevo Script dentro de ServerStorage y renombralo a EmptyScriptAdder .

  2. Copia y pega el código del plugin EmptyScriptAdder en el nuevo script.

  3. En la ventana Explorador , haz clic derecho en el script y selecciona Guardar como plugin local .

  4. En la ventana emergente, haga clic en Guardar para insertar el script del plugin en su carpeta local Plugins de la instalación de Studio.

  5. El plugin debería aparecer en PluginDebugService y comenzar a funcionar.

Recargar y guardar cambios

Con tu Plugin dentro de PluginDebugService, puedes actualizar fácilmente el plugin haciendo clic derecho en él y luego seleccionando Guardar y recargar plugin desde el menú contextual.Si simplemente quieres recargar el complemento, por ejemplo, para pasar por una sección de código usando un punto de interrupción sin guardar el complemento, puedes alternativamente seleccionar Reutilizar plugin .

Añadir botones de barra de herramientas

Para agregar un botón para tu plugin a la pestaña Plugins de la barra de herramientas de Studio, use los métodos Plugin:CreateToolbar() y PluginToolbar:CreateButton().En el código para EmptyScriptAdder , la línea 5 crea una nueva sección en la barra de herramientas llamada Herramientas de script personalizado y la línea 8 crea un botón llamado Crear script vacío .

New plugin button added to toolbar in Studio

Ejecutar código al hacer hcer clic

Para hacer que el plugin ejecute código cuando un usuario hace clic en el botón de la barra de herramientas, conecte una función al evento PluginToolbarButton.Click del botón.En el código para EmptyScriptAdder , la función de conexión es onNewScriptButtonClicked().

Compruebe la selección del usuario

Para modificar el comportamiento de un complementoen función de lo que el usuario haya seleccionado, use el servicio Selection.La función onNewScriptButtonClicked() comprueba si el usuario tiene algo seleccionado y crea el nuevo script como su hijo en lugar de dentro de ServerScriptService.Si el usuario no tiene nada seleccionado, crea el nuevo script en ServerScriptService .

Soporte de deshacer y rehacer

Usa ChangeHistoryService para permitir a los usuarios deshacer y rehacer los cambios realizados por un plugin dentro de una experiencia.En tu script, configura el plugin para llamar ChangeHistoryService:TryBeginRecording() y almacena el identificador asignado a la llamada de API antes de realizar cambios.Entonces configura el plugin para llamar ChangeHistoryService:FinishRecording() después de hacer cambios, para que capture cualquier cambio realizado durante la sesión de grabación para deshacer y rehacer.

El siguiente ejemplo de código crea un plugin de ejemplo que puede aplicar el material de neón a las partes seleccionadas.Utiliza ChangeHistoryService para registrar y gestionar los cambios realizados por el complemento:

Plugin de material de ejemplo con grabaciones para deshacer y rehacer

local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- Crear un ejemplo de complemento
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
-- Conectar una función al evento de clic
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 que hacer.
return
end
-- Intenta comenzar una grabación con un identificador específico
local recording = ChangeHistoryService:TryBeginRecording("Set selection to neon")
-- Compruebe si la grabación se inició con éxito
if not recording then
-- Manija el error aquí. Esto indica que tu plugin comenzó una anterior
-- grabando y nunca lo completó. Solo puedes tener una grabación
-- por plugin activo a la vez.
return
end
-- Iterar a través de las partes seleccionadas
for _, part in parts do
part.Material = Enum.Material.Neon -- Establece el material de la parte a Neón
end
-- Termina la grabación, comunicando los cambios al historial
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)

Subir, distribuir y monetizar plugins

Al igual que con modelos , mallas , imágenes y animaciones , puedes distribuir plugins a Roblox para hacerlos fáciles de reutilizar desde la caja de herramientas .Puedes elegir hacerlos públicamente disponibles para todos los demás creadores en la Tienda de creadores, o distribuirlos de forma privada para tu propio uso.Si eliges distribuir tu plugin públicamente, puedes establecer un precio al que venderlo a otros creadores.

Para distribuir un complemento:

  1. En la ventana Explorador , haz clic derecho en un script de plugin, luego selecciona Publicar como plugin del menú contextual.

  2. (Opcional) En la esquina superior izquierda de la ventana de configuración de activos, haz clic en la imagen para subir una imagen de 512×512.

  3. Rellena los siguientes campos:

    • Nombre : Un título para tu complemento.
    • Descripción : Una descripción que describe lo que un usuario potencial debe esperar que haga el plugin.
    • Creador : El creador que te gustaría atribuir como el creador del complemento.
  4. Haga clic en el botón Enviar .Su plugin ahora está disponible para usted en las pestañas Inventario y Creaciones de la Caja de herramientas.

  5. Haga clic en el enlace al tablero de creación para configurar la distribución.