Aprender
Clase de motor
Plugin
No creable

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


Resumen
Métodos
Activate(exclusiveMouse: boolean):()
CreateDockWidgetPluginGui(pluginGuiId: string,dockWidgetPluginGuiInfo: DockWidgetPluginGuiInfo):DockWidgetPluginGui
Obsoleto
CreatePluginAction(actionId: string,text: string,statusTip: string,iconName: string,allowBinding: boolean):PluginAction
GetSetting(key: string):Variant
ImportFbxAnimation(rigModel: Instance,isR15: boolean):Instance
Obsoleto
ImportFbxRig(isR15: boolean):Instance
Obsoleto
Intersect(objects: Instances):Instance
Negate(objects: Instances):Instances
OpenScript(script: LuaSourceContainer,lineNumber: number):()
Obsoleto
PromptSaveSelection(suggestedFileName: string):boolean
Obsoleto
Separate(objects: Instances):Instances
SetSetting(key: string,value: Variant):()
StartDrag(dragData: Dictionary):()
Union(objects: Instances):Instance
Miembros heredados
Muestras de código
Script - Pasa el Plugin Global a un ModuleScript
assert(plugin, "¡Este script debe ejecutarse como un plugin!")
-- El código más allá de este punto se ejecutará solo si el script se ejecuta como un plugin
-- Carga el módulo y pasa la referencia del plugin
local pluginModule = require(script.Parent.PluginModule)
pluginModule:Initialize(plugin)
-- Verifica si la referencia del plugin fue inicializada
pluginModule:CheckForPluginGlobal()
MóduloScript - Recibir y Almacenar el Plugin Global
local pluginModule = {}
local plugin -- Referencia local del plugin
-- Inicializa la referencia del plugin si no está configurada
function pluginModule:Initialize(pluginReference: Plugin)
if plugin ~= pluginReference then
plugin = pluginReference
else
error("El plugin ya está inicializado")
end
end
-- Verifica si la referencia del plugin está configurada e imprime la información apropiada
function pluginModule:CheckForPluginGlobal()
if plugin ~= nil then
print("¡La referencia del plugin está configurada!")
else
warn("¡Falta la referencia del plugin!")
end
end
return pluginModule

Referencia API
Propiedades
CollisionEnabled
Solo lectura
No replicado
Leer paralelo
Plugin.CollisionEnabled:boolean

DisableUIDragDetectorDrags
Seguridad de scripts Roblox
Leer paralelo
Plugin.DisableUIDragDetectorDrags:boolean

GridSize
Solo lectura
No replicado
Leer paralelo
Plugin.GridSize:number

IsDebuggable
Seguridad de scripts Roblox
Leer paralelo
Plugin.IsDebuggable:boolean

Métodos
Activate
Seguridad del plugin
Plugin:Activate(exclusiveMouse:boolean):()
Parámetros
exclusiveMouse:boolean
Devuelve
()

CreateDockWidgetPluginGui
Obsoleto

CreateDockWidgetPluginGuiAsync
Proporciona
Seguridad del plugin
Plugin:CreateDockWidgetPluginGuiAsync(
pluginGuiId:string, dockWidgetPluginGuiInfo:DockWidgetPluginGuiInfo
Parámetros
pluginGuiId:string
dockWidgetPluginGuiInfo:DockWidgetPluginGuiInfo
Muestras de código
Botón de Texto en GUI del Widget
-- Crear nuevo objeto 'DockWidgetPluginGuiInfo'
local widgetInfo = DockWidgetPluginGuiInfo.new(
Enum.InitialDockState.Float, -- El widget se inicializará en un panel flotante
true, -- El widget estará habilitado inicialmente
false, -- No sobrescribir el estado habilitado anterior
200, -- Ancho predeterminado de la ventana flotante
300, -- Altura predeterminada de la ventana flotante
150, -- Ancho mínimo de la ventana flotante (opcional)
150 -- Altura mínima de la ventana flotante (opcional)
)
-- Crear nuevo GUI de widget
local testWidget = plugin:CreateDockWidgetPluginGuiAsync("TestWidget", widgetInfo)
local testButton = Instance.new("TextButton")
testButton.BorderSizePixel = 0
testButton.TextSize = 20
testButton.TextColor3 = Color3.new(1, 0.2, 0.4)
testButton.AnchorPoint = Vector2.new(0.5, 0.5)
testButton.Size = UDim2.new(1, 0, 1, 0)
testButton.Position = UDim2.new(0.5, 0, 0.5, 0)
testButton.SizeConstraint = Enum.SizeConstraint.RelativeYY
testButton.Text = "Haz clic en mí"
testButton.Parent = testWidget

CreatePluginAction
Seguridad del plugin
Plugin:CreatePluginAction(
actionId:string, text:string, statusTip:string, iconName:string, allowBinding:boolean
Parámetros
actionId:string
text:string
statusTip:string
iconName:string
allowBinding:boolean
Valor predeterminado: true
Devuelve
Muestras de código
Creando una Acción de Plugin
local pluginAction = plugin:CreatePluginAction(
"AcciónHolaMundo",
"Hola Mundo",
"Imprime un '¡Hola mundo!'",
"rbxasset://textures/sparkle.png",
true
)
pluginAction.Name = "Acción de Prueba"
local function actionTriggered()
print("¡Hola mundo!")
end
pluginAction.Triggered:Connect(actionTriggered)

CreatePluginMenu
Seguridad del plugin
Plugin:CreatePluginMenu(
id:string, title:string, icon:string
Parámetros
title:string
icon:string
Devuelve
Muestras de código
Creando un PluginMenu y PluginMenuAction
-- Este código se puede pegar en la Barra de Comandos, pero solo una vez
local pluginMenu = plugin:CreatePluginMenu(math.random(), "Menú de Pruebas")
pluginMenu.Name = "Menú de Pruebas"
pluginMenu:AddNewAction("AcciónA", "A", "rbxasset://textures/loading/robloxTiltRed.png")
pluginMenu:AddNewAction("AcciónB", "B", "rbxasset://textures/loading/robloxTilt.png")
local subMenu = plugin:CreatePluginMenu(math.random(), "C", "rbxasset://textures/explosion.png")
subMenu.Name = "Submenú"
subMenu:AddNewAction("AcciónD", "D", "rbxasset://textures/whiteCircle.png")
subMenu:AddNewAction("AcciónE", "E", "rbxasset://textures/icon_ROBUX.png")
pluginMenu:AddMenu(subMenu)
pluginMenu:AddSeparator()
pluginMenu:AddNewAction("AcciónF", "F", "rbxasset://textures/sparkle.png")
local toggle = Instance.new("BoolValue")
toggle.Name = "TogglePluginMenu"
toggle.Parent = workspace
local function onToggled()
if toggle.Value then
toggle.Value = false
local selectedAction = pluginMenu:ShowAsync()
if selectedAction then
print("Acción seleccionada:", selectedAction.Text, "con ActionId:", selectedAction.ActionId)
else
print("¡El usuario no seleccionó ninguna acción!")
end
end
end
toggle.Changed:Connect(onToggled)

CreateToolbar
Seguridad del plugin
Plugin:CreateToolbar(name:string):PluginToolbar
Parámetros
name:string
Muestras de código
Complemento:CrearBarraDeHerramientas
plugin:CreateToolbar("EjemploBarraDeHerramientas")

Deactivate
Seguridad del plugin
Plugin:Deactivate():()
Devuelve
()

GetJoinMode
Seguridad del plugin
Plugin:GetJoinMode():Enum.JointCreationMode

GetMouse
Seguridad del plugin
Plugin:GetMouse():PluginMouse
Devuelve
Muestras de código
Plugin:GetMouse
local mouse = plugin:GetMouse()
local function button1Down()
print("Botón 1 presionado desde PluginMouse")
end
mouse.Button1Down:Connect(button1Down)

GetSelectedRibbonTool
Seguridad del plugin
Plugin:GetSelectedRibbonTool():Enum.RibbonTool
Muestras de código
Plugin:ObtenerHerramientaDeCintaSeleccionada
plugin:SelectRibbonTool(Enum.RibbonTool.Move, UDim2.new())
task.wait() -- espera el siguiente cuadro
local selectedRibbonTool = plugin:GetSelectedRibbonTool()
print("La herramienta de cinta seleccionada es", selectedRibbonTool)

GetSetting
Seguridad del plugin
Plugin:GetSetting(key:string):Variant
Parámetros
key:string
Devuelve
Variant
Muestras de código
Plugin:GetSetting
local RAN_BEFORE_KEY = "RanBefore"
local didRunBefore = plugin:GetSetting(RAN_BEFORE_KEY)
if didRunBefore then
print("¡Bienvenido de nuevo!")
else
plugin:SetSetting(RAN_BEFORE_KEY, true)
print("¡Bienvenido! ¡Gracias por instalar este plugin!")
end

GetStudioUserId
Obsoleto

ImportFbxAnimation
Obsoleto

ImportFbxAnimationAsync
Proporciona
Seguridad del plugin
Plugin:ImportFbxAnimationAsync(
rigModel:Instance, isR15:boolean
Parámetros
rigModel:Instance
isR15:boolean
Valor predeterminado: true
Devuelve

ImportFbxRig
Obsoleto

ImportFbxRigAsync
Proporciona
Seguridad del plugin
Plugin:ImportFbxRigAsync(isR15:boolean):Instance
Parámetros
isR15:boolean
Valor predeterminado: true
Devuelve

Intersect
Seguridad del plugin
Plugin:Intersect(objects:Instances):Instance
Parámetros
objects:Instances
Devuelve

IsActivated
Seguridad del plugin
Plugin:IsActivated():boolean
Devuelve

IsActivatedWithExclusiveMouse
Seguridad del plugin
Plugin:IsActivatedWithExclusiveMouse():boolean
Devuelve

Negate
Seguridad del plugin
Plugin:Negate(objects:Instances):Instances
Parámetros
objects:Instances
Devuelve
Instances

OpenScript
Obsoleto

OpenWikiPage
Seguridad del plugin
Plugin:OpenWikiPage(url:string):()
Parámetros
url:string
Devuelve
()
Muestras de código
Plugin:AbrirPaginaWiki
plugin:OpenWikiPage("API:Class/BasePart")

PromptForExistingAssetId
Proporciona
Seguridad del plugin
Plugin:PromptForExistingAssetId(assetType:string):number
Parámetros
assetType:string
Devuelve

PromptForExistingAssetIdAsync
Proporciona
Seguridad del plugin
Plugin:PromptForExistingAssetIdAsync(assetType:string):number
Parámetros
assetType:string
Devuelve

PromptSaveSelection
Obsoleto

PromptSaveSelectionAsync
Proporciona
Seguridad del plugin
Plugin:PromptSaveSelectionAsync(suggestedFileName:string):boolean
Parámetros
suggestedFileName:string
Devuelve

SaveSelectedToRoblox
Seguridad del plugin
Plugin:SaveSelectedToRoblox():()
Devuelve
()

SelectRibbonTool
Seguridad del plugin
Plugin:SelectRibbonTool(
tool:Enum.RibbonTool, position:UDim2
):()
Parámetros
position:UDim2
Devuelve
()

Separate
Seguridad del plugin
Plugin:Separate(objects:Instances):Instances
Parámetros
objects:Instances
Devuelve
Instances

SetSetting
Seguridad del plugin
Plugin:SetSetting(
key:string, value:Variant
):()
Parámetros
key:string
value:Variant
Devuelve
()
Muestras de código
Plugin:GetSetting y Plugin:SetSetting
local RAN_BEFORE_KEY = "RunBefore"
local hasRunBefore = plugin:GetSetting(RAN_BEFORE_KEY)
if hasRunBefore then
print("¡Bienvenido de nuevo!")
else
print("¡Gracias por instalar este plugin!")
plugin:SetSetting(RAN_BEFORE_KEY, true)
end

StartDrag
Seguridad del plugin
Plugin:StartDrag(dragData:Dictionary):()
Parámetros
dragData:Dictionary
Devuelve
()
Muestras de código
Plugin de Arrastrar y Soltar
assert(plugin, "Este script debe ejecutarse como un complemento de Studio")
local widgetInfo = DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float, true, true, 300, 200)
local dragSourceWidget = plugin:CreateDockWidgetPluginGuiAsync("Fuente de Arrastre", widgetInfo)
dragSourceWidget.Title = "Fuente de Arrastre"
local textBox = Instance.new("TextBox")
textBox.Parent = dragSourceWidget
textBox.Size = UDim2.new(1, 0, 0, 32)
textBox.Text = "Hola, arrastres del complemento"
local dragButton = Instance.new("TextButton")
dragButton.Size = UDim2.new(1, 0, 1, -32)
dragButton.Position = UDim2.new(0, 0, 0, 32)
dragButton.Text = "Edita el texto de arriba, luego comienza a arrastrar aquí"
dragButton.Parent = dragSourceWidget
function onMouseButton1Down()
local dragData = {
Sender = "SomeDragSource",
MimeType = "text/plain",
Data = textBox.Text,
MouseIcon = "",
DragIcon = "",
HotSpot = Vector2.new(0, 0),
}
plugin:StartDrag(dragData)
end
dragButton.MouseButton1Down:Connect(onMouseButton1Down)
-- Este widget recibirá las gotas
local dragTargetWidget = plugin:CreateDockWidgetPluginGuiAsync("Objetivo de Caída", widgetInfo)
dragTargetWidget.Title = "Objetivo de Caída"
-- Este TextLabel mostrará lo que fue soltado
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.Text = "Suelta aquí..."
textLabel.Parent = dragTargetWidget
local function onDragDrop(dragData)
if dragData.MimeType == "text/plain" then
textLabel.Text = dragData.Data
else
textLabel.Text = dragData.MimeType
end
end
dragTargetWidget.PluginDragDropped:Connect(onDragDrop)
dragTargetWidget.PluginDragEntered:Connect(function(_dragData)
print("PluginDragEntered")
end)
dragTargetWidget.PluginDragLeft:Connect(function(_dragData)
print("PluginDragLeft")
end)
dragTargetWidget.PluginDragMoved:Connect(function(_dragData)
print("PluginDragMoved")
end)

Union
Seguridad del plugin
Plugin:Union(objects:Instances):Instance
Parámetros
objects:Instances
Devuelve

Eventos
Deactivation
Seguridad del plugin
Plugin.Deactivation():RBXScriptSignal

Unloading
Seguridad del plugin
Plugin.Unloading():RBXScriptSignal

©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.