Plugin

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Nicht erstellbar

Plugin ist das Hauptobjekt, das für die Erstellung von grundlegenden Studio-Podcasts, Plugin-Toolbарs, Plugin-Schaltflächen und mehr verantwortlich ist. Es ist ein benutzerdefiniertes Add-on für Studio, das neue Verhalten und Funktionen hinzufügt, die normalerweise nicht enthalten sind. Das Plugin -Objekt kann über den globalen Verweis auf das <

Code-Beispiele

Script - Pass the Plugin Global to a ModuleScript

assert(plugin, "This script must be run as a plugin!")
-- Code beyond this point will execute only if the script is run as a plugin
-- Load the module and pass the plugin reference
local pluginModule = require(script.Parent.PluginModule)
pluginModule:Initialize(plugin)
-- Verify if the plugin reference was initialized
pluginModule:CheckForPluginGlobal()
ModuleScript - Receive and Store the Plugin Global

local pluginModule = {}
local plugin -- Local plugin reference
-- Initialize the plugin reference if not already set
function pluginModule:Initialize(pluginReference: Plugin)
if plugin ~= pluginReference then
plugin = pluginReference
else
error("Plugin is already initialized")
end
end
-- Check if the plugin reference is set and print out appropriate info
function pluginModule:CheckForPluginGlobal()
if plugin ~= nil then
print("Plugin reference is set!")
else
warn("Plugin reference is missing!")
end
end
return pluginModule

Zusammenfassung

Eigenschaften

  • Schreibgeschützt
    Nicht repliziert
    Parallel lesen

    Gibt zurück, ob der Benutzer Collisions im Studio unter der Modell-Registerkarte aktiviert hat.

  • Schreibgeschützt
    Nicht repliziert
    Parallel lesen

    Kehre die Größe des Raster-Snapping, die der Benutzer in Studio festgelegt hat, zurück.

Methoden

Ereignisse

Eigenschaften

CollisionEnabled

Schreibgeschützt
Nicht repliziert
Parallel lesen

Gibt zurück, ob der Benutzer Collisions im Studio unter der Modell-Registerkarte aktiviert hat.

DisableUIDragDetectorDrags

Parallel lesen
Roblox-Skript-Sicherheit

GridSize

Schreibgeschützt
Nicht repliziert
Parallel lesen

Kehre die Raster-Snapping-Größe zurück, die der Benutzer in Studio unter den Modell oder Avatar-Tabs festgelegt hat. Beachten Sie, dass diese Eigenschaft einige Rundenungsfehler haben kann; zum Beispiel kann es 0.0099999997764826 für einen Benutzer festgelegt sein, der 1 oder 0.400000005960

Methoden

Activate

void
Plugin-Sicherheit

Diese Funktion setzt den Zustand des Call-Plugins auf aktiviert. Wenn Sie das Plugin aktivieren, ermöglicht es die Maussteuerung über die Methode Plugin:GetMouse().

Zu jedem Zeitpunkt gibt es entweder 0 oder 1 aktivierte Plugins. Wenn ein Plugin aktiviert wird, deaktivieren alle anderen Plugins (es erhalten ein Plugin.Deactivation -Ereignis).

Siehe auch:

  • Plugin:IsActivatedWithExclusiveMouse() , gibt zurück, wenn dieses Plugin mit einem exklusiven Maus-Button aktiviert ist, nachdem es über diese Funktion aktiviert wurde
  • Plugin.Unloading , wird sofort ausgelöst, bevor das Plugin über die Entfernung, Deaktivierung oder Aktualisierung entfernt oder zurückgeladen wird

Parameter

exclusiveMouse: bool

EinBoolean spezifiziert, ob das Plugin mit einer exklusiven Maus aktiviert werden soll. Wenn true, ein PluginMouse kann über Plugin:GetMouse() abgerufen werden.


Rückgaben

void

CreatePluginAction

Plugin-Sicherheit

Diese Funktion erstellt eine PluginAction, die ein Objekt darstellt, das eine generische performable Aktion in Roblox Studio darstellt, mit keinem direkt verbundenem Toolbar oder Enum.Button. In Roblox Studio können sie einem Keyboard-Tastenkürzel unter 2>File → Advanced → Customize Shortcuts…2> zugewiesen werden, und sie können

Wenn eine Aktion ausgelöst wird, wird das Ereignis PluginAction.Triggered signalisiert.

Damit PluginActions wie erwartet funktioniert, müssen sie mit dieser Funktion erstellt worden sein.

Siehe auch:

  • PluginMenu , ein Kontextmenü, das in Studio angezeigt werden kann, das eine Liste von PluginActions anzeigt und Untermenüs unterstützt
  • Plugin:CreatePluginMenu() , erstellt ein PluginMenü

Parameter

actionId: string

Muss eine eindeutige Zeichenfolge sein, die diesen PluginAction von anderen identifiziert.

text: string

Der angezeigte Name der Action.

statusTip: string

Die angezeigte Beschreibung der Action.

iconName: string

Der Name des Icons, das verwendet wird, um das Plug-inanzuzeigen.

Standardwert: ""
allowBinding: bool

Ob die PluginAction von Studio-Shortcuts-Ansicht versteckt sein wird. Nützlich für Kontext-Aktionen. Standard ist auf true.

Standardwert: true

Rückgaben

Code-Beispiele

Creating a PluginAction

local pluginAction = plugin:CreatePluginAction(
"HelloWorldAction",
"Hello World",
"Prints a 'Hello world!'",
"rbxasset://textures/sparkle.png",
true
)
pluginAction.Name = "Test Action"
local function actionTriggered()
print("Hello world!")
end
pluginAction.Triggered:Connect(actionTriggered)

CreatePluginMenu

Plugin-Sicherheit

Diese Funktion erstellt ein neues PluginMenu, das ein Kontextmenü ist, das in Studio angezeigt wird, das eine Liste von PluginActions und Untermenüs unterstützt.

Damit Plugin-Menüs wie erwartet funktionieren, müssen sie mit dieser Funktion erstellt worden sein.

Siehe auch:

Parameter

id: string

Einzigartige ID für das Menü.

title: string

Der Text, der beim Verwenden als Untermenü angezeigt wird.

Standardwert: ""
icon: string

Das Icon, das angezeigt wird, wenn als Untermenü verwendet.

Standardwert: ""

Rückgaben

Code-Beispiele

Creating a PluginMenu and PluginMenuAction

-- This code can be pasted into the command bar, but only once
local pluginMenu = plugin:CreatePluginMenu(math.random(), "Test Menu")
pluginMenu.Name = "Test Menu"
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 = "Sub 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("Selected Action:", selectedAction.Text, "with ActionId:", selectedAction.ActionId)
else
print("User did not select an action!")
end
end
end
toggle.Changed:Connect(onToggled)

CreateToolbar

Plugin-Sicherheit

Die CreateToolbar -Funktion erstellt einen neuen PluginToolbar mit dem angegebenen Namen. Die Toolbar kann dann verwendet werden, um Plugin-Schaltflächen zu erstellen.

Parameter

name: string

Der sichtbare Text in der Symbolleiste, der die Gruppe der in ihm enthaltenen Schaltflächen anzeigt.


Rückgaben

Code-Beispiele

Plugin:CreateToolbar

plugin:CreateToolbar("ExampleToolbar")

Deactivate

void
Plugin-Sicherheit

Deaktiviert das Plug-in. Dies wird die zugeordnete PluginMouse deaktivieren, wenn es aktiviert wurde

Siehe auch:

  • Plugin:Activate() , setzt den Zustand des aufrufenden Plugins auf aktiviert
  • Plugin.Deactivation , feuert ab, wenn das Plugin deaktiviert ist
  • Plugin.Unloading , wird sofort ausgelöst, bevor das Plugin über die Entfernung, Deaktivierung oder Aktualisierung entfernt oder zurückgeladen wird

Rückgaben

void
Plugin-Sicherheit

Kehrt den Enum.JointCreationMode zurück, den der Benutzer unter der Registerkarte Modell im Studio festgelegt hat.


Rückgaben

GetMouse

Plugin-Sicherheit

GetMouse gibt eine PluginMouse zurück, die während der Plugin-Aktivität über Plugin:Activate() verwendet werden kann.


Rückgaben

Code-Beispiele

Plugin:GetMouse

local mouse = plugin:GetMouse()
local function button1Down()
print("Button 1 pressed from PluginMouse")
end
mouse.Button1Down:Connect(button1Down)

GetSelectedRibbonTool

Plugin-Sicherheit

GetSelectedRibbonTool return the currently selected Enum.RibbonTool . It returns an Enum that corresponds to a particular tool. This will return whether the tool is selected manually or programmatically via Plugin:SelectRibbonTool() .


Rückgaben

Code-Beispiele

Plugin:GetSelectedRibbonTool

plugin:SelectRibbonTool(Enum.RibbonTool.Move, UDim2.new())
task.wait() -- wait for next frame
local selectedRibbonTool = plugin:GetSelectedRibbonTool()
print("The selected RibbonTool is", selectedRibbonTool)

GetSetting

Variant
Plugin-Sicherheit

Rufe einen zuvor gespeicherten Wert mit dem angegebenen Schlüssel ab, oder null, wenn der angegebene Schlüssel nicht existiert.

Da mehrere Instanzen desselben Plugins gleichzeitig ausgeführt werden können (z. B. wenn mehrere Studio-Fenster geöffnet sind), sollten Sie nicht von diesem Wert abhängen, der über Zeit gleich bleibt. Die anderen Plugin-Instanzen können die Einstellung jederzeit aktualisieren.

Dieser Fehler kann stillschalig fehlen und nil wenn mehrere Instanzen desselben Plugins aktiv sind und Daten lesen und schreiben. Wenn Ihr Plugin häufig auf Einstellungen schreiben sollte, sollten Sie den zurückgegebenen Wert nach einer kurzen Zeit überprüfen, um zwischen einer Einstellung, die vorübergehend nicht verfügbar ist, und einer Einstellung, die nicht vorhanden ist, zu unterscheiden.

Parameter

key: string

Rückgaben

Variant

Code-Beispiele

Plugin:GetSetting

local RAN_BEFORE_KEY = "RanBefore"
local didRunBefore = plugin:GetSetting(RAN_BEFORE_KEY)
if didRunBefore then
print("Welcome back!")
else
plugin:SetSetting(RAN_BEFORE_KEY, true)
print("Welcome! Thanks for installing this plugin!")
end

Intersect

Plugin-Sicherheit

Parameter

objects: Instances

Rückgaben

IsActivated

Plugin-Sicherheit

Diese Funktion gibt zurück, wenn diese Plugin derzeit aktiv ist, nachdem es über die Funktion Plugin:Activate() aktiviert wurde.


Rückgaben

EinBoolean, der anzeigt, ob das Plugin derzeit aktiv ist.

IsActivatedWithExclusiveMouse

Plugin-Sicherheit

Diese Funktion gibt zurück, wenn dieses Plugin derzeit mit einer exklusiven Maus aktiv ist, nachdem es über die Plugin:Activate()-Funktion aktiviert wurde. Wenn dies zurückgibt, kann ein PluginMouse abgerufen werden, indem man über Plugin:GetMouse()1> Class.Plugin:Activate1> .

Siehe auch:

  • Plugin.Deactivation , feuert ab, wenn das Plugin deaktiviert ist
  • Plugin.Unloading , wird sofort ausgelöst, bevor das Plugin über die Entfernung, Deaktivierung oder Aktualisierung entfernt oder zurückgeladen wird

Rückgaben

Ob dieses Plugin mit einer exklusiven Maus aktiviert ist.

Negate

Instances
Plugin-Sicherheit

Lehnt die gegebenen Teile ab und gibt die resultierenden NegateOperations zurück.

Parameter

objects: Instances

Rückgaben

Instances

OpenScript

void
Plugin-Sicherheit

Wird verwendet, um die angegebene Skript-Instanz in einem Editor-Fenster, in Roblox Studio, an der angegebenen Zeile zu öffnen. Wenn keine Zeile als Argument angegeben wird, wird standardmäßig auf 1 gesetzt.

Parameter

lineNumber: number
Standardwert: 1

Rückgaben

void

Code-Beispiele

Plugin:OpenScript

local newScript = Instance.new("Script")
newScript.Parent = workspace
plugin:OpenScript(newScript)

OpenWikiPage

void
Plugin-Sicherheit

Öffnet das Kontext-Hilfsfenster auf die Wiki-Seite, zu der url verlinkt ist.

Parameter

url: string

Rückgaben

void

Code-Beispiele

Plugin:OpenWikiPage

plugin:OpenWikiPage("API:Class/BasePart")

SaveSelectedToRoblox

void
Plugin-Sicherheit

Öffnet ein Upload-Fenster für die aktuelle Auswahl des Benutzers.


Rückgaben

void

SelectRibbonTool

void
Plugin-Sicherheit

Aktiviert das angegebene Roblox Tool. Wenn das Werkzeug ein Fenster öffnet, bestimmt der Positionsparameter, wo es auf dem Bildschirm angezeigt werden soll.

Hinweis:

  • Ein Objekt muss ausgewählt sein, damit dies richtig funktioniert.
  • Die Änderung der Skalefelder der position-Eigenschaft wirkt sich nicht auf die Popups des Dialogs aus.

Parameter

position: UDim2

Rückgaben

void

Separate

Instances
Plugin-Sicherheit

Separiert die gegebenen UnionOperations und gibt die resultierenden Teile zurück.

Parameter

objects: Instances

Rückgaben

Instances

SetSetting

void
Plugin-Sicherheit

Speichert einen bestimmten Wert für spätere Verwendung unter dem angegebenen Schlüssel. Der Wert bleibt auch nach dem Schließen von Roblox Studio bestehen. Diese Einstellungen werden in JSON-Form als Karte mit Zeichenkombinationen gespeichert. Arrays werden automatisch in Karten umgewandelt, indem die numerischen Schlüssel zu Zeichenkombinationen umgewandelt werden.

Beachten Sie, dass das JSON-Format zusätzliche Einschränkungen auferlegt, einschließlich der folgenden Zeichen, die die Einstellungsdatei beschädigen können:

  • Backslashes ( \ ) in Schlüsseln oder Werten, insbesondere entkommene Zitate ( \ "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "5 "
  • Neulinien ( \n ) in Schlüssen.
  • Zitaten ( " ) in Schlüssen.
  • Periods ( ) in Schlüssen.

Dieser Fehler kann stillschalten gescheitern, wenn mehrere Instanzen desselben Plugins aktiv Daten lesen und schreiben. Wenn dein Plugin häufig auf Einstellungen schreiben erwartet, kannst du überprüfen, dass die Daten richtig geschrieben wurden, indem du Plugin:GetSetting() aufrufst.

Parameter

key: string
value: Variant

Rückgaben

void

Code-Beispiele

Plugin:GetSetting and Plugin:SetSetting

local RAN_BEFORE_KEY = "RunBefore"
local hasRunBefore = plugin:GetSetting(RAN_BEFORE_KEY)
if hasRunBefore then
print("Welcome back!")
else
print("Thanks for installing this plugin!")
plugin:SetSetting(RAN_BEFORE_KEY, true)
end

StartDrag

void
Plugin-Sicherheit

Start Drag startet eine Ziehaktion mit einem Wörterbuch von Parametern. Die Parameter sind wie folgt:


<tbody>
<tr>
<td><b>Absender</b></td>
<td>string</td>
<td><code>""</code></td>
<td>
Identifiziert die Quelle der Ziehaktion zum Ziel
</td>
</tr>
<tr>
<td><b>MimeType</b></td>
<td>string</td>
<td><code>""</code></td>
<td>
Die <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME</a> Typ von <b>Daten</b> .
</td>
</tr>
<tr>
<td><b>Daten</b></td>
<td>string</td>
<td><code>""</code></td>
<td>
Informationen über die Action, zum Beispiel was gerade zieht. Sollte vom Ziehziel verwendet werden.
</td>
</tr>
<tr>
<td><b>Maus-Symbol</b></td>
<td><code>Datatype.Content</code></td>
<td><code>""</code></td>
<td>
Das Symbol zum Verwenden für den Maus-Cursor während des Ziehens. Wenn leer, verwendet es den Standard-Cursor.
</td>
</tr>
<tr>
<td><b>DragIcon</b></td>
<td><code>Datatype.Content</code></td>
<td><code>""</code></td>
<td>
Ein Bild, das unter dem Mauszeiger während des Ziehens angezeigt wird. Dies sollte das Item repräsentieren, das gezogen wird.
</td>
</tr>
<tr>
<td><b>HotSpot</b></td>
<td><code>Datatype.Vector2</code></td>
<td><code>Datatype.Vector2.new(0, 0)</code></td>
<td>
Der Pixel-Versatz von oben links, wo der Cursor die <b>DragIcon</b> halten sollte.
</td>
</tr>
</tbody>
NameTypStandardBeschreibung

Siehe auch:

Parameter

dragData: Dictionary

Rückgaben

void

Code-Beispiele

Plugin Drag and Drop

assert(plugin, "This script must be run as a Studio plugin")
local widgetInfo = DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float, true, true, 300, 200)
local dragSourceWidget = plugin:CreateDockWidgetPluginGui("Drag Source", widgetInfo)
dragSourceWidget.Title = "Drag Source"
local textBox = Instance.new("TextBox")
textBox.Parent = dragSourceWidget
textBox.Size = UDim2.new(1, 0, 0, 32)
textBox.Text = "Hello, plugin drags"
local dragButton = Instance.new("TextButton")
dragButton.Size = UDim2.new(1, 0, 1, -32)
dragButton.Position = UDim2.new(0, 0, 0, 32)
dragButton.Text = "Edit the text above, then start drag here"
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)
-- This widget will receive drops
local dragTargetWidget = plugin:CreateDockWidgetPluginGui("Drop Target", widgetInfo)
dragTargetWidget.Title = "Drop Target"
-- This TextLabel will display what was dropped
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.Text = "Drop here..."
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)
Plugin-Sicherheit

Verbindet die angegebenen Teile und gibt die resultierende UnionOperation zurück.

Parameter

objects: Instances

Rückgaben

CreateDockWidgetPluginGui

Angehalten
Plugin-Sicherheit

CreateDockWidgetPluginGui erstellt ein neues DockWidgetPluginGui aus dem gegebenen DockWidgetPluginGuiInfo. Der erste Parameter, 0> uginGuiId0>, sollte ein einzigartiges und konsistentes Strings sein. Es wird verwendet, um den Zustand des Dock-Status des widgets und andere interne Details zu speichern.

Parameter

pluginGuiId: string

Eine einzigartige und konsistente Kennung, die verwendet wird, um den Dock-Status des Widgets und andere interne Details zu speichern.

dockWidgetPluginGuiInfo: DockWidgetPluginGuiInfo

Beschreibt das DockWidgetPluginGui zum Erstellen (ursprünglicher Zustand, Größe usw.).


Rückgaben

Code-Beispiele

Widget GUI Text Button

-- Create new 'DockWidgetPluginGuiInfo' object
local widgetInfo = DockWidgetPluginGuiInfo.new(
Enum.InitialDockState.Float, -- Widget will be initialized in floating panel
true, -- Widget will be initially enabled
false, -- Don't override the previous enabled state
200, -- Default width of the floating window
300, -- Default height of the floating window
150, -- Minimum width of the floating window (optional)
150 -- Minimum height of the floating window (optional)
)
-- Create new widget GUI
local testWidget = plugin:CreateDockWidgetPluginGui("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 = "Click Me"
testButton.Parent = testWidget

ImportFbxAnimation

Angehalten
Plugin-Sicherheit

Diese Funktion fordert den Benutzer auf, eine .fbx-Animation-Datei zu öffnen, die auf dem rigModel geladen werden kann, und fährt dann mit der Einfügung der Animation als KeyframeSequence in den Workspace fort.

Parameter

rigModel: Instance
isR15: bool
Standardwert: true

Rückgaben

ImportFbxRig

Angehalten
Plugin-Sicherheit

Fordert den Benutzer auf, eine .fbx-Datei zu öffnen, die einzelne Komponenten des Modells als Meshes hochzuladen, und erstellt ein Charakter-Rig für den Anwendungszweck, das in den Workspace geladen ist.

Parameter

isR15: bool
Standardwert: true

Rückgaben

PromptForExistingAssetId

Angehalten
Plugin-Sicherheit

Öffnet ein Fenster in Roblox Studio, die den Benutzer auffordert, eine Asset-basierte Ressource aus der assetType angegebenen Auswahl auszuwählen. Wird AssetId ausgewählt, oder -1, wenn das Fenster geschlossen wurde.

Parameter

assetType: string

Rückgaben

PromptSaveSelection

Angehalten
Plugin-Sicherheit

Fordert den Benutzer auf, seine aktuelle Auswahl mit dem angegebenen Dateinamen zu speichern. Kehrt wahr zurück, wenn der Benutzer den Dateinamen gespeichert hat.

Parameter

suggestedFileName: string
Standardwert: ""

Rückgaben

Ereignisse

Deactivation

Plugin-Sicherheit

Ausgelöst, wenn der Plugin deaktiviert wird. Dies geschieht, wenn entweder der Plugin-Code aufruft Plugin:Deactivate() , oder wenn ein anderes Plugin aufruft Plugin:Activate(), was alle anderen Plugins in ihren aktiven Zustand versetzt.

Siehe auch:

  • Plugin.Unloading , wird sofort ausgelöst, bevor das Plugin über die Entfernung, Deaktivierung oder Aktualisierung entfernt oder zurückgeladen wird

Unloading

Plugin-Sicherheit

Dieses Ereignis wird sofort ausgelöst, bevor das Plugin aufgehört wird zu laufen. Plugins werden deaktiviert, entfernt, über das Update informiert oder wenn der Ort schließt.

Es ermöglicht einem Plugin, sich nach seinen Skripten zu reinigen, bevor seine Skripte aufgehört laufen, z. B. um unnötige Instanzen aus dem DataModel zu entfernen. Wenn ein Plugin nicht richtig gereinigt wird, bleiben die alten Kopien bestehen. Wenn dies geschieht, können Benutzer gezwungen werden, den Ort zu schließen und erneut zu öffnen, was ein schlechtes Erlebnisist.

Plugin-bezogene Instanzen wie PluginToolbarButtons , DockWidgetPluginGuis und PluginGuis werden automatisch gespielt, wenn das Plugin entladen wird, so dass keine Notwendigkeit besteht, sie zu entfernen.