Un complemento es una extensión que añade características o funcionalidades adicionales a Studio. Puedes instalar complementos creados por la comunidad desde la Tienda de Creadores, o puedes crear y publicar los tuyos propios en la Caja de Herramientas para usarlos en tus juegos.
Si decides distribuir tus complementos en la Tienda de Creadores, puedes ofrecerlos de forma gratuita o venderlos por Dólares Estadounidenses. Roblox ofrece una participación en los ingresos líder en el mercado para estas ventas, ya que solo se deducen impuestos y tarifas de procesamiento de pagos. Para más información sobre la venta de complementos, consulta Tienda de Creadores - Distribuir y vender activos.
Crear nuevos complementos
Puedes crear tus propios complementos para mejorar tu flujo de trabajo en Studio. El siguiente ejemplo de código es un complemento llamado AddEmptyScript que inserta un Script vacío como hijo de un Instance o en ServerScriptService. Las siguientes secciones explican las partes principales para crear este complemento.
Para comenzar, debes habilitar Plugin Debugging Enabled en la sección Studio de la configuración de Studio. Esto expondrá el PluginDebugService en Studio, que proporciona depuración en tiempo real para el código de tu complemento y facilita la recarga y el guardado de tu complemento.
local ServerScriptService = game:GetService("ServerScriptService")
local Selection = game:GetService("Selection")
-- Crear una nueva sección de barra de herramientas y una carpeta de menú de Complementos titulada "Personalizado"
local toolbar = plugin:CreateToolbar("Personalizado")
-- Agregar un botón de barra de herramientas etiquetado "Script Vacío"
local newScriptButton = toolbar:CreateButton("Script Vacío", "Crear un script vacío", "rbxassetid://14978048121")
-- Hacer que el botón sea clicable incluso si la vista 3D está 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)Guardar el script del complemento
Para crear un complemento, primero crea un Script y guárdalo localmente.
Inserta un nuevo Script dentro de ServerStorage y renómbralo a AddEmptyScript.

Copia y pega el código del Complemento AddEmptyScript anterior en el nuevo script.
Con el nuevo script seleccionado en la ventana Explorer, selecciona Guardar como Complemento Local en el menú Complementos de Studio.
En la ventana emergente, haz clic en Guardar para insertar el script del complemento en tu carpeta local de Complementos de la instalación de Studio.
El complemento debería aparecer en PluginDebugService y comenzar a ejecutarse.
- IMPORTANTEElimina el script original en ServerStorage y trabaja desde el complemento AddEmptyScript dentro de PluginDebugService, de lo contrario, podrías terminar aplicando cambios al script incorrecto.

Agregar botón a la barra de herramientas
Para agregar un botón para tu complemento a la pestaña Complementos de la barra de herramientas de Studio, utiliza los métodos Plugin:CreateToolbar() y PluginToolbar:CreateButton(). En el código de AddEmptyScript, la línea 5 crea una nueva sección en la barra de herramientas y una carpeta de menú de Complementos titulada Personalizado, mientras que la línea 8 crea un botón etiquetado Script Vacío.

Ejecutar código al hacer clic
Para hacer que el complemento ejecute 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 de AddEmptyScript, la función de conexión es onPluginButtonClicked().
Comprobar la selección del usuario
Para modificar el comportamiento de un complemento según lo que el usuario ha seleccionado, utiliza el servicio Selection. La función onPluginButtonClicked() verifica 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.

Soportar deshacer y rehacer
Utiliza ChangeHistoryService para permitir a los usuarios deshacer y rehacer cambios realizados por un complemento dentro de un juego. En tu script, configura el complemento para llamar a TryBeginRecording() y almacena el identificador asignado a la llamada de API antes de realizar cambios. Luego, configura el complemento para llamar a FinishRecording() después de realizar 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 complemento que puede aplicar el material neón a las partes seleccionadas. Utiliza ChangeHistoryService para grabar y gestionar los cambios realizados por el complemento:
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- Crear un complemento de ejemplo
local toolbar = plugin:CreateToolbar("Complemento de Ejemplo")
local button = toolbar:CreateButton("Neonízalo", "", "")
-- Conectar una función al evento de clic
button.Click:Connect(function()
-- Intentar comenzar una grabación con un identificador específico
local recording = ChangeHistoryService:TryBeginRecording("Establecer selección a neón")
-- Verificar si la grabación se inició correctamente
if not recording then
-- Esto indica que tu complemento comenzó una grabación anterior y nunca la completó
-- Solo puedes tener una grabación activa por complemento a la vez
return
end
-- Iterar a través de las instancias seleccionadas
for _, instance in Selection:Get() do
-- Verificar si la instancia es un BasePart
if instance:IsA("BasePart") then
instance.Material = Enum.Material.Neon -- Establecer el material de la parte a Neón
end
end
-- Finalizar la grabación, comprometiendo los cambios a la historia
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)Subir complementos
Después de terminar de crear un complemento, puedes subirlo a tu inventario para que esté accesible en todos tus proyectos.
Para subir un complemento:
En la ventana Explorer, selecciona un script de complemento.
Navega al menú Complementos de Studio, luego selecciona Publicar como Complemento.
- OPCIONALEn la esquina superior izquierda de la ventana de configuración del activo, haz clic en la imagen predeterminada del rompecabezas para subir una miniatura de imagen de 512×512 para tu complemento.
Completa los siguientes campos:
- Nombre — Un título para tu complemento.
- Descripción — Una descripción que explique lo que un usuario potencial puede esperar que haga el complemento.
- Creador — El creador o grupo que deseas atribuir como el creador del complemento.
Haz clic en el botón Enviar. Tu complemento ahora está disponible para ti en la Caja de Herramientas bajo las pestañas Inventario y Creaciones.
Distribuir y vender complementos
Puedes distribuir y vender públicamente tus propios complementos en la Tienda de Creadores para que otros los utilicen en su propio desarrollo de juegos. Este método de monetización te permite ganar el 100% de los ingresos netos de las transacciones, eludiendo tarifas de plataforma y tasas de DevEx. Para más información sobre este proceso, incluyendo cómo configurar una cuenta de vendedor para establecer precios y recibir pagos, consulta Tienda de Creadores - Distribuir y vender activos.