Un plugin est une extension qui ajoute des fonctionnalités ou des caractéristiques supplémentaires à Studio. Vous pouvez installer des plugins créés par la communauté depuis le Creator Store, ou vous pouvez créer et publier les vôtres dans la Boîte à outils pour les utiliser dans vos expériences.
Si vous choisissez également de distribuer vos plugins dans le Creator Store, vous pouvez les proposer gratuitement ou les vendre pour des dollars américains. Roblox offre une part de 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, consultez Creator Store - Distribuer et vendre des actifs.
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é AddEmptyScript qui insère un Script vide en tant qu'enfant d'un Instance ou dans ServerScriptService. Les sections suivantes expliquent les principales parties de la création de ce plugin.
Pour commencer, vous devez activer Plugin Debugging Enabled 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.
Plugin AddEmptyScript
local ServerScriptService = game:GetService("ServerScriptService")
local Selection = game:GetService("Selection")
-- Créer une nouvelle section de barre d'outils et un dossier de menu Plugins intitulé "Custom"
local toolbar = plugin:CreateToolbar("Custom")
-- Ajouter un bouton de barre d'outils étiqueté "Script vide"
local newScriptButton = toolbar:CreateButton("Script vide", "Créer un script vide", "rbxassetid://14978048121")
-- Rendre le bouton cliquable même si la vue 3D est cachée
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)
Enregistrer le script du plugin
Pour créer un plugin, commencez par créer un Script et enregistrez-le localement.
Insérez un nouveau Script à l'intérieur de ServerStorage et renommez-le en AddEmptyScript.

Copiez et collez le code du Plugin AddEmptyScript ci-dessus dans le nouveau script.
Avec le nouveau script sélectionné dans la fenêtre Explorer, sélectionnez Enregistrer en tant que Plugin Local dans le menu Plugins de Studio.
Dans la fenêtre contextuelle, cliquez sur Enregistrer pour insérer le script du plugin dans votre dossier Plugins local de l'installation de Studio.
Le plugin devrait apparaître dans PluginDebugService et commencer à s'exécuter.
- IMPORTANTSupprimez le script original dans ServerStorage et travaillez à partir du plugin AddEmptyScript à l'intérieur de PluginDebugService, sinon vous risquez d'appliquer des modifications au mauvais script.

Ajouter un bouton à la barre d'outils
Pour ajouter un bouton pour votre plugin dans l'onglet Plugins de la barre d'outils de Studio, utilisez les méthodes Plugin:CreateToolbar() et PluginToolbar:CreateButton(). Dans le code de AddEmptyScript, la ligne 5 crée une nouvelle section dans la barre d'outils et le dossier de menu Plugins intitulé Custom, tandis que la ligne 8 crée un bouton étiqueté Script vide.

Exécuter du code au clic
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 de AddEmptyScript, la fonction de connexion est onPluginButtonClicked().
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 onPluginButtonClicked() vérifie si l'utilisateur a des éléments sélectionnés et crée le nouveau script comme enfant plutôt que dans ServerScriptService. Si l'utilisateur n'a rien sélectionné, il crée le nouveau script dans ServerScriptService.

Supporter l'annulation et le rétablissement
Utilisez ChangeHistoryService pour permettre aux utilisateurs d'annuler et de rétablir les modifications effectuées par un plugin dans une expérience. Dans votre script, définissez le plugin pour appeler TryBeginRecording() et conservez l'identifiant attribué à l'appel de l'API avant de faire des modifications. Ensuite, définissez le plugin pour appeler FinishRecording() après avoir apporté des modifications, afin de capturer les changements effectués pendant la session d'enregistrement pour l'annulation et le rétablissement.
L'exemple de code suivant crée un plugin d'exemple qui peut appliquer le matériau néon aux parties sélectionnées. Il utilise ChangeHistoryService pour enregistrer et gérer les changements effectués par le plugin :
Plugin de matériau exemple avec enregistrements pour annuler et rétablir
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- Créer un plugin d'exemple
local toolbar = plugin:CreateToolbar("Plugin Exemple")
local button = toolbar:CreateButton("Le mettre en néon", "", "")
-- Connecter une fonction à l'événement de clic
button.Click:Connect(function()
-- Essayer de commencer un enregistrement avec un identifiant spécifique
local recording = ChangeHistoryService:TryBeginRecording("Définir la sélection en néon")
-- Vérifier si l'enregistrement a été initié avec succès
if not recording then
-- Cela indique que votre plugin a commencé un enregistrement précédent et ne l'a jamais terminé
-- Vous ne pouvez avoir qu'un seul enregistrement par plugin actif à la fois
return
end
-- Itérer à travers les instances sélectionnées
for _, instance in Selection:Get() do
-- Vérifier si l'instance est un BasePart
if instance:IsA("BasePart") then
instance.Material = Enum.Material.Neon -- Définir le matériau de la pièce sur Néon
end
end
-- Terminer l'enregistrement, en engageant les modifications dans l'historique
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)
Télécharger des plugins
Après avoir terminé la création d'un plugin, vous pouvez le télécharger dans votre inventaire afin qu'il soit accessible dans tous vos projets.
Pour télécharger un plugin :
Dans la fenêtre Explorer, sélectionnez un script de plugin.
Accédez au menu Plugins de Studio, puis sélectionnez Publier en tant que Plugin.
- OPTIONNELDans le coin supérieur gauche de la fenêtre de configuration de l'actif, cliquez sur l'image par défaut du puzzle pour télécharger une image miniature de 512×512 pour votre plugin.
Remplissez les champs suivants :
- Nom — Un titre pour votre plugin.
- Description — Une description qui décrit ce à quoi un utilisateur potentiel peut s'attendre du plugin.
- Créateur — Le créateur ou le groupe que vous souhaitez attribuer comme créateur du plugin.
Cliquez sur le bouton Soumettre. Votre plugin est maintenant disponible pour vous dans la Boîte à outils sous les onglets Inventaire et Créations.
Distribuer et vendre des plugins
Vous pouvez distribuer et vendre publiquement vos propres plugins sur le Creator Store pour que d'autres puissent les utiliser dans leur propre développement de jeux. Cette méthode de monétisation vous permet de gagner 100 % des bénéfices nets sur les transactions, en contournant les frais de plate-forme et les taux de DevEx. Pour plus d'informations sur ce processus, y compris comment configurer un compte vendeur pour définir les prix et recevoir des paiements, consultez Creator Store - Exigences.