Apprendre
Classe de moteur
Plugin
Création impossible

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.


Résumé
Méthodes
Activate(exclusiveMouse: boolean):()
CreateDockWidgetPluginGui(pluginGuiId: string,dockWidgetPluginGuiInfo: DockWidgetPluginGuiInfo):DockWidgetPluginGui
Déprécié
CreatePluginAction(actionId: string,text: string,statusTip: string,iconName: string,allowBinding: boolean):PluginAction
GetSetting(key: string):Variant
GetStudioUserId():number
Déprécié
ImportFbxAnimation(rigModel: Instance,isR15: boolean):Instance
Déprécié
ImportFbxRig(isR15: boolean):Instance
Déprécié
Intersect(objects: Instances):Instance
Negate(objects: Instances):Instances
OpenScript(script: LuaSourceContainer,lineNumber: number):()
Déprécié
PromptSaveSelection(suggestedFileName: string):boolean
Déprécié
Separate(objects: Instances):Instances
SetSetting(key: string,value: Variant):()
StartDrag(dragData: Dictionary):()
Union(objects: Instances):Instance
Membres hérités
Échantillons de code
Script - Passer la référence globale du plugin à un ModuleScript
assert(plugin, "Ce script doit être exécuté en tant que plugin!")
-- Le code au-delà de ce point s'exécutera uniquement si le script est exécuté en tant que plugin
-- Charger le module et passer la référence du plugin
local pluginModule = require(script.Parent.PluginModule)
pluginModule:Initialize(plugin)
-- Vérifier si la référence du plugin a été initialisée
pluginModule:CheckForPluginGlobal()
ModuleScript - Recevoir et stocker le global du plugin
local pluginModule = {}
local plugin -- Référence locale du plugin
-- Initialiser la référence du plugin si elle n'est pas déjà définie
function pluginModule:Initialize(pluginReference: Plugin)
if plugin ~= pluginReference then
plugin = pluginReference
else
error("Le plugin est déjà initialisé")
end
end
-- Vérifier si la référence du plugin est définie et imprimer les informations appropriées
function pluginModule:CheckForPluginGlobal()
if plugin ~= nil then
print("La référence du plugin est définie !")
else
warn("La référence du plugin est manquante !")
end
end
return pluginModule

Référence API
Propriétés
CollisionEnabled
Lecture uniquement
Non répliqué
Lecture parallèle
Plugin.CollisionEnabled:boolean

DisableUIDragDetectorDrags
Sécurité des scripts Roblox
Lecture parallèle
Plugin.DisableUIDragDetectorDrags:boolean

GridSize
Lecture uniquement
Non répliqué
Lecture parallèle
Plugin.GridSize:number

IsDebuggable
Sécurité des scripts Roblox
Lecture parallèle
Plugin.IsDebuggable:boolean

Méthodes
Activate
Sécurité des plugins
Plugin:Activate(exclusiveMouse:boolean):()
Paramètres
exclusiveMouse:boolean
Retours
()

CreateDockWidgetPluginGui
Déprécié

CreateDockWidgetPluginGuiAsync
Rendement
Sécurité des plugins
Plugin:CreateDockWidgetPluginGuiAsync(
pluginGuiId:string, dockWidgetPluginGuiInfo:DockWidgetPluginGuiInfo
Paramètres
pluginGuiId:string
dockWidgetPluginGuiInfo:DockWidgetPluginGuiInfo
Échantillons de code
Bouton Texte GUI Widget
-- Créer un nouvel objet 'DockWidgetPluginGuiInfo'
local widgetInfo = DockWidgetPluginGuiInfo.new(
Enum.InitialDockState.Float, -- Le widget sera initialisé dans un panneau flottant
true, -- Le widget sera initialement activé
false, -- Ne pas remplacer l'état activé précédent
200, -- Largeur par défaut de la fenêtre flottante
300, -- Hauteur par défaut de la fenêtre flottante
150, -- Largeur minimale de la fenêtre flottante (optionnel)
150 -- Hauteur minimale de la fenêtre flottante (optionnel)
)
-- Créer une nouvelle interface utilisateur 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 = "Cliquez Moi"
testButton.Parent = testWidget

CreatePluginAction
Sécurité des plugins
Plugin:CreatePluginAction(
actionId:string, text:string, statusTip:string, iconName:string, allowBinding:boolean
Paramètres
actionId:string
text:string
statusTip:string
iconName:string
allowBinding:boolean
Valeur par défaut : true
Échantillons de code
Créer un PluginAction
local pluginAction = plugin:CreatePluginAction(
"HelloWorldAction",
"Bonjour le monde",
"Affiche un 'Hello world!'",
"rbxasset://textures/sparkle.png",
true
)
pluginAction.Name = "Action de test"
local function actionTriggered()
print("Hello world!")
end
pluginAction.Triggered:Connect(actionTriggered)

CreatePluginMenu
Sécurité des plugins
Plugin:CreatePluginMenu(
id:string, title:string, icon:string
Paramètres
title:string
icon:string
Retours
Échantillons de code
Création d'un PluginMenu et d'une PluginMenuAction
-- Ce code peut être collé dans la barre de commande, mais seulement une fois
local pluginMenu = plugin:CreatePluginMenu(math.random(), "Menu de Test")
pluginMenu.Name = "Menu de Test"
pluginMenu:AddNewAction("ActionA", "A", "rbxasset://textures/loading/robloxTiltRed.png")
pluginMenu:AddNewAction("ActionB", "B", "rbxasset://textures/loading/robloxTilt.png")
local subMenu = plugin:CreatePluginMenu(math.random(), "C", "rbxasset://textures/explosion.png")
subMenu.Name = "Sous Menu"
subMenu:AddNewAction("ActionD", "D", "rbxasset://textures/whiteCircle.png")
subMenu:AddNewAction("ActionE", "E", "rbxasset://textures/icon_ROBUX.png")
pluginMenu:AddMenu(subMenu)
pluginMenu:AddSeparator()
pluginMenu:AddNewAction("ActionF", "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("Action Sélectionnée:", selectedAction.Text, "avec ActionId:", selectedAction.ActionId)
else
print("L'utilisateur n'a pas sélectionné d'action!")
end
end
end
toggle.Changed:Connect(onToggled)

CreateToolbar
Sécurité des plugins
Plugin:CreateToolbar(name:string):PluginToolbar
Paramètres
name:string
Échantillons de code
Plugin:CréerBarreOutils
plugin:CreateToolbar("ExempleBarreOutils")

Deactivate
Sécurité des plugins
Plugin:Deactivate():()
Retours
()

GetJoinMode
Sécurité des plugins
Plugin:GetJoinMode():Enum.JointCreationMode

GetMouse
Sécurité des plugins
Plugin:GetMouse():PluginMouse
Échantillons de code
Plugin:GetMouse
local mouse = plugin:GetMouse()
local function button1Down()
print("Bouton 1 enfoncé depuis PluginMouse")
end
mouse.Button1Down:Connect(button1Down)

GetSelectedRibbonTool
Sécurité des plugins
Plugin:GetSelectedRibbonTool():Enum.RibbonTool
Échantillons de code
Plugin:GetSelectedRibbonTool
plugin:SelectRibbonTool(Enum.RibbonTool.Move, UDim2.new())
task.wait() -- attendre la prochaine image
local selectedRibbonTool = plugin:GetSelectedRibbonTool()
print("L'outil RibbonTool sélectionné est", selectedRibbonTool)

GetSetting
Sécurité des plugins
Plugin:GetSetting(key:string):Variant
Paramètres
key:string
Retours
Variant
Échantillons de code
Plugin:GetSetting
local RAN_BEFORE_KEY = "RanBefore"
local didRunBefore = plugin:GetSetting(RAN_BEFORE_KEY)
if didRunBefore then
print("Bienvenue de retour !")
else
plugin:SetSetting(RAN_BEFORE_KEY, true)
print("Bienvenue ! Merci d'avoir installé ce plugin !")
end

GetStudioUserId
Déprécié

ImportFbxAnimation
Déprécié

ImportFbxAnimationAsync
Rendement
Sécurité des plugins
Plugin:ImportFbxAnimationAsync(
rigModel:Instance, isR15:boolean
Paramètres
rigModel:Instance
isR15:boolean
Valeur par défaut : true
Retours

ImportFbxRig
Déprécié

ImportFbxRigAsync
Rendement
Sécurité des plugins
Plugin:ImportFbxRigAsync(isR15:boolean):Instance
Paramètres
isR15:boolean
Valeur par défaut : true
Retours

Intersect
Sécurité des plugins
Plugin:Intersect(objects:Instances):Instance
Paramètres
objects:Instances
Retours

IsActivated
Sécurité des plugins
Plugin:IsActivated():boolean
Retours

IsActivatedWithExclusiveMouse
Sécurité des plugins
Plugin:IsActivatedWithExclusiveMouse():boolean
Retours

Negate
Sécurité des plugins
Plugin:Negate(objects:Instances):Instances
Paramètres
objects:Instances
Retours
Instances

OpenScript
Déprécié

OpenWikiPage
Sécurité des plugins
Plugin:OpenWikiPage(url:string):()
Paramètres
url:string
Retours
()
Échantillons de code
Plugin:OuvrirPageWiki
plugin:OpenWikiPage("API:Class/BasePart")

PromptForExistingAssetId
Rendement
Sécurité des plugins
Plugin:PromptForExistingAssetId(assetType:string):number
Paramètres
assetType:string
Retours

PromptForExistingAssetIdAsync
Rendement
Sécurité des plugins
Plugin:PromptForExistingAssetIdAsync(assetType:string):number
Paramètres
assetType:string
Retours

PromptSaveSelection
Déprécié

PromptSaveSelectionAsync
Rendement
Sécurité des plugins
Plugin:PromptSaveSelectionAsync(suggestedFileName:string):boolean
Paramètres
suggestedFileName:string
Retours

SaveSelectedToRoblox
Sécurité des plugins
Plugin:SaveSelectedToRoblox():()
Retours
()

SelectRibbonTool
Sécurité des plugins
Plugin:SelectRibbonTool(
tool:Enum.RibbonTool, position:UDim2
):()
Paramètres
position:UDim2
Retours
()

Separate
Sécurité des plugins
Plugin:Separate(objects:Instances):Instances
Paramètres
objects:Instances
Retours
Instances

SetSetting
Sécurité des plugins
Plugin:SetSetting(
key:string, value:Variant
):()
Paramètres
key:string
value:Variant
Retours
()
Échantillons de code
Plugin:GetSetting et Plugin:SetSetting
local RAN_BEFORE_KEY = "RunBefore"
local hasRunBefore = plugin:GetSetting(RAN_BEFORE_KEY)
if hasRunBefore then
print("Bienvenue à nouveau !")
else
print("Merci d'avoir installé ce plugin !")
plugin:SetSetting(RAN_BEFORE_KEY, true)
end

StartDrag
Sécurité des plugins
Plugin:StartDrag(dragData:Dictionary):()
Paramètres
dragData:Dictionary
Retours
()
Échantillons de code
Plugin Glisser-Déposer
assert(plugin, "Ce script doit être exécuté en tant que plugin du Studio")
local widgetInfo = DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float, true, true, 300, 200)
local dragSourceWidget = plugin:CreateDockWidgetPluginGuiAsync("Source de glisser", widgetInfo)
dragSourceWidget.Title = "Source de glisser"
local textBox = Instance.new("TextBox")
textBox.Parent = dragSourceWidget
textBox.Size = UDim2.new(1, 0, 0, 32)
textBox.Text = "Bonjour, glissements de plugin"
local dragButton = Instance.new("TextButton")
dragButton.Size = UDim2.new(1, 0, 1, -32)
dragButton.Position = UDim2.new(0, 0, 0, 32)
dragButton.Text = "Modifiez le texte ci-dessus, puis commencez à glisser ici"
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)
-- Ce widget recevra les dépôts
local dragTargetWidget = plugin:CreateDockWidgetPluginGuiAsync("Cible de dépôt", widgetInfo)
dragTargetWidget.Title = "Cible de dépôt"
-- Ce TextLabel affichera ce qui a été déposé
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.Text = "Déposez ici..."
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
Sécurité des plugins
Plugin:Union(objects:Instances):Instance
Paramètres
objects:Instances
Retours

Événements
Deactivation
Sécurité des plugins
Plugin.Deactivation():RBXScriptSignal

Unloading
Sécurité des plugins
Plugin.Unloading():RBXScriptSignal

©2026 Société Roblox. Roblox, le logo Roblox et Powering Imagination font partie de nos marques déposées aux États-Unis et dans d'autres pays.