Un plugin ajoute une extension qui ajoute des fonctionnalités ou des fonctionnalités supplémentaires à Studio .Vous pouvez installer des plugins créés par la communauté depuis la boutique des créateurs, ou vous pouvez créer et publier vos propres dans la boîte à outils pour les utiliser dans vos expériences.
Si vous choisissez de distribuer également vos plugins dans la boutique des créateurs, vous pouvez soit les offrir gratuitement, soit les vendre pour dollars américains (le prix minimum est de 4,99 $).Roblox offre une part des revenus de premier plan pour ces ventes, car seules les taxes et les frais de traitement des paiements sont déduits.Pour plus d'informations sur la vente de plugins, voir Vendre sur la boutique des créateurs .
Créer de nouveaux plugins
Vous pouvez créer vos propres plugins pour améliorer votre flux de travail dans Studio.L'exemple de code suivant est un plugin appelé EmptyScriptAdder qui insère un script vide en tant qu'enfant d'un objet ou dans ServerScriptService .Les sections suivantes expliquent les principales parties de la création de ce plugin.
Pour commencer, vous devez activer Débogage de plugin activé dans la section Studio des paramètres de Studio.Cela exposera le PluginDebugService dans Studio qui fournit un débogage en temps réel pour le code de votre plugin et facilite le rechargement et l'enregistrement de votre plugin.
Plug-in EmptyScriptAdder
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- Créer une nouvelle section de barre d'outils intitulée « Outils de script personnalisés »
local toolbar = plugin:CreateToolbar("Custom Script Tools")
-- Ajoutez un bouton de barre d'outils nommé « Créer un script vide »
local newScriptButton = toolbar:CreateButton("Create Empty Script", "Create an empty script", "rbxassetid://14978048121")
-- Rendre le bouton cliquable même si la fenêtre 3D est cachée
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)
Enregistrer les scripts de plugin
Les plugins commencent à partir de scripts.Pour créer un plugin, créez un Script et enregistrez-le en tant que plugin en utilisant le Explorateur.Par exemple, pour créer le plugin EmptyScriptAdder :
Insérez un nouveau Script à l'intérieur de ServerStorage et renommez-le en EmptyScriptAdder .
Copiez et collez le code EmptyScriptAdder Plugin dans le nouveau script.
Dans la fenêtre Explorateur , faites un clic droit sur le script et sélectionnez Enregistrer en tant que plugin local .
Dans la fenêtre contextuelle, cliquez sur Enregistrer pour insérer le script du plugin dans votre dossier local Plugins de l'installation de Studio.
Le plugin devrait apparaître dans PluginDebugService et commencer à fonctionner.
Recharger et enregistrer les modifications
Avec votre Plugin à l'intérieur de PluginDebugService, vous pouvez facilement mettre à jour le plugin en cliquant dessus avec le bouton droit puis en sélectionnant Enregistrer et recharger le plugin dans le menu contextuel.Si vous voulez simplement recharger le plugin, par exemple pour parcourir une section de code en utilisant un point d'arrêt sans enregistrer le plugin, vous pouvez alternativement sélectionner Recharger le plugin .
Ajouter des boutons de barre d'outils
Pour ajouter un bouton pour votre plugin à l'onglet plugins de la barre d'outils Studio, utilisez les méthodes Plugin:CreateToolbar() et PluginToolbar:CreateButton().Dans le code pour EmptyScriptAdder , la ligne 5 crée une nouvelle section dans la barre d'outils nommée Outils de script personnalisé et la ligne 8 crée un bouton nommé Créer un script vide .

Exécuter du code au cliquer
Pour faire en sorte que le plugin exécute du code lorsqu'un utilisateur clique sur le bouton de la barre d'outils, connectez une fonction à l'événement PluginToolbarButton.Click du bouton.Dans le code pour EmptyScriptAdder , la fonction de connexion est onNewScriptButtonClicked().
Vérifier la sélection de l'utilisateur
Pour modifier le comportement d'un plugin en fonction de ce que l'utilisateur a sélectionné, utilisez le service Selection.La fonction onNewScriptButtonClicked() vérifie si l'utilisateur a quelque chose de sélectionné et crée le nouveau script comme son enfant au lieu d'être à l'intérieur de ServerScriptService .Si l'utilisateur n'a rien sélectionné, il crée le nouveau script dans ServerScriptService .

Soutien annuler et restaurer
Utilisez ChangeHistoryService pour permettre aux utilisateurs d'annuler et de refaire les modifications apportées par un plugin dans une expérience.Dans votre script, configurez le plugin pour appeler ChangeHistoryService:TryBeginRecording() et stockez l'identifiant attribué à l'appel de l'API avant d'effectuer des modifications.Ensuite, configurez le plugin pour appeler ChangeHistoryService:FinishRecording() après avoir apporté des modifications, afin qu'il capture toutes les modifications apportées pendant la session d'enregistrement pour annuler et restaurer.
L'exemple de code suivant crée un plugin d'exemple qui peut appliquer le matériau néon à des parties sélectionnées.Il utilise ChangeHistoryService pour enregistrer et gérer les modifications apportées par le plugin :
Exemple de plug-in de matériel avec des enregistrements pour annuler et restaurer
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- Créer un plugin d'exemple
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
-- Relier une fonction à l'événement 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
-- Rien à faire.
return
end
-- Essayez de commencer une enregistrement avec un identifiant spécifique
local recording = ChangeHistoryService:TryBeginRecording("Set selection to neon")
-- Vérifier si l'enregistrement a été initié avec succès
if not recording then
-- Gérer l'erreur ici. Cela indique que votre plugin a commencé une précédente
-- enregistrement et ne l'a jamais terminé. Vous ne pouvez avoir qu'une seule enregistrement
-- par plugin actif à la fois.
return
end
-- Itérer à travers les parties sélectionnées
for _, part in parts do
part.Material = Enum.Material.Neon -- Définir le matériau de la partie sur Néon
end
-- Terminer l'enregistrement, en commettant les modifications dans l'histoire
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)
Télécharger, distribuer et monétiser des plugins
Comme avec les modèles , les mailles , les images et les animations , vous pouvez distribuer des plugins à Roblox pour les rendre faciles à réutiliser à partir de la boîte à outils .Vous pouvez choisir de les rendre publiquement disponibles à tous les autres créateurs sur la boutique des créateurs, ou de les distribuer en privé pour votre propre usage.Si vous choisissez de distribuer votre plugin publiquement, vous pouvez définir un prix auquel le vendre à d'autres créateurs.
Pour distribuer un plugin :
Dans la fenêtre Explorateur , faites un clic droit sur un script de plugin, puis sélectionnez Publier en tant que plugin dans le menu contextuel.
(Facultatif) Dans le coin supérieur gauche de la fenêtre de configuration des ressources, cliquez sur l'image pour télécharger une image 512×512.
Remplissez les champs suivants :
- Nom : Un titre pour votre plugin.
- Description : Une description qui décrit ce qu'un utilisateur potentiel devrait s'attendre à ce que le plugin fasse.
- Créateur : Le créateur que vous souhaitez attribuer en tant que créateur du plugin.
Cliquez sur le bouton Soumettre .Votre plugin est désormais disponible dans les onglets Inventaire et Créations de la boîte à outils.
Cliquez sur le lien vers le tableau de bord du créateur pour configurer la distribution.