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 插件 es una extensión que agrega funciones o características adicionales a Studio. Puedes instalar plugins creados por la comunidad desde la Tienda del Creador, o puedes crear y 1>publicar1> los tuyos en la 4>Caja de herramientas4> para usarlos en tus experiencias.

Si también distribuye sus plugins en la tienda del creador, puede ofrecerlos gratis o venderlos por dólares estadounidenses (el precio mínimo es $ 4.99). Roblox ofrece un compartir de ingresos de mercado para estas ventas, ya que solo se deducen impuestos y cargos de procesamiento de pagos. Para obtener más información sobre la venta de plugins, consulte Vender en la tienda del creador</

Creando Nuevos Plugins

Puedes crear tus propios plugins para mejorar tu flujo de trabajo en Studio. El siguiente código de ejemplo 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 de la creación de este complemento.

Para comenzar, debe habilitar Depósito de diagnóstico de plugin habilitado en la sección Studio de las configuraciones de Studio. Esto expondrá el PluginDebugService en Studio que proporciona diagnóstico en tiempo real para el código de su complementoy facilita la recompilación y el guardado de su complemento.

Plugin EmptyScriptAdder

local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- Crea una nueva sección de barra de herramientas titulada "Herramientas de Script Personalizadas"
local toolbar = plugin:CreateToolbar("Custom Script Tools")
-- Agregue 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")
-- Haga que el botón sea clicable incluso si se oculta la ventana 3D
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 un script de plugin

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

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

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

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

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

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

Recargando y Guardando Cambios

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

Agregar un Botón de Barra de Herramientas

Para agregar un botón para su 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 1> EmptyScriptAdder1>, la línea 5 crea una nueva se

New plugin button added to toolbar in Studio

Ejecutando código al hacer clic

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

Revisando la selección del usuario

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

Soporte para Deshacer y Hacer de Nuevo

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 almacenar el identificador asignado a la llamada API antes de realizar cambios. Luego configura el plugin para llamar <

El siguiente código de ejemplo crea un plugin de ejemplo que puede aplicar el material de neón a las piezas seleccionadas. Usa ChangeHistoryService para registrar y administrar las cambiaciones hechas por el complemento:

Plugin de material con grabaciones para deshacer y rehacer

local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- Crear un complementode ejemplo
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
-- Conecta 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
-- No hay nada que hacer.
return
end
-- Intenta comenzar una grabación con un identificador específico
local recording = ChangeHistoryService:TryBeginRecording("Set selection to neon")
-- Asegurarse de que la grabación se iniciara con éxito
if not recording then
-- Manipular el error aquí. Esto indica que tu plugin comenzó un anterior
-- grabación y nunca la completó. Puede tener solo una grabación
-- por plugin activo en el momento.
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, enviando los cambios a la historia
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)

Subir, Distribuir y Monetizar Plugins

Al igual que con modelos, mallas, imágenes y 2>animaciones2>, puedes distribuir plugins en Roblox para hacerlos fáciles de reutilizar desde la 5>Caja de herramientas5>. Puedes elegir hacerlos públicamente disponibles para todos los demás

Para distribuir un complemento:

  1. En la ventana Explorador , haz clic con el botón 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 recursos, 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 explica lo que un usuario potencial debería esperar que haga el plugin.
    • Creador : El creador que desea atribuir como el creador del complemento.
  4. Haga clic en el botón Presentar . Su plugin ahora está disponible para usted en las Inventario y Creaciones pestañas de la 1> Caja de herramientas1> .

  5. Haga clic en el enlace a Creator Dashboard para configurar la distribución .