Plugins

Un plugin est une extension qui ajoute des fonctionnalités ou des fonctions supplémentaires à Studio. Vous pouvez trouver, installer et gérer des plugins créés par la communauté à partir du Marketplace du créateur. Vous pouvez également créer et publier les vôtres dans la boîte à outils et les utiliser dans vos expériences. Si vous décidez également de publier vos plugins sur le Marketplace du créateur, pour que les créateurs puissent les utiliser dans leurs propres processus de développement, vous pouvez les proposer gratuitement ou les vendre en échange de Robux.

Créer de nouveaux plugins

Vous pouvez créer vos propres plugins pour optimiser votre flux de travail dans Studio. L'exemple de code suivant est un plugin nommé EmptyScriptAdder. Il permet d'insérer un script vide en tant qu'enfant d'un objet ou dans ServerScriptService. Les sections suivantes vous donneront des explications sur les principales parties de la création de ce plugin.

EmptyScriptAdder Plugin

local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- Create a new toolbar section titled "Custom Script Tools"
local toolbar = plugin:CreateToolbar("Custom Script Tools")
-- Add a toolbar button named "Create Empty Script"
local newScriptButton = toolbar:CreateButton("Create Empty Script", "Create an empty script", "rbxassetid://4458901886")
-- Make button clickable even if 3D viewport is hidden
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 un script de plugin

Les plugins commencent à partir de scripts. Pour créer un plugin, créez un Script. Ensuite, enregistrez-le comme un plugin à l'aide de l'Explorateur. Par exemple, pour créer le plugin EmptyScriptAdder :

  1. Insérez un nouveau Script dans ServerStorage et renommez-le EmptyScriptAdder.

  2. Copiez et collez le code EmptyScriptAdder Plugin dans le nouveau script.

  3. Dans l'Explorateur, cliquez droit sur le script et sélectionnez Enregistrer en tant que plugin local.

  4. Dans la fenêtre contextuelle, cliquez sur Enregistrer pour insérer le script du plugin dans votre dossier local de Plugins de l'installation de Studio. Une fois enregistré, la fenêtre Sortie indique que le plugin a bien été sauvegardé et qu'il s'exécute pour la première fois.

Ajouter un bouton à la barre d'outils

Pour que le plugin exécute un code lorsque l'utilisateur clique sur le bouton de la barre d'outils, reliez une fonction à l'événement PluginToolbarButton.Click du bouton. Dans le code de EmptyScriptAdder, la fonction de liaison est onNewScriptButtonClicked.

Exécuter un code avec un clic

Pour ajouter un bouton pour votre plugin sur l'onglet Plugins de la barre d'outils de Studio, utilisez les méthodes PluginToolbar:CreateButton() et Plugin:CreateToolbar(). Dans le code de EmptyScriptAdder, la ligne 5 crée une nouvelle section dans la barre d'outils, nommée Outils de script personnalisés. La ligne 8 crée un bouton Créer un script vide.

Vérifier la sélection de l'utilisateur

Pour modifier le comportement d'un plugin en fonction de ce qu'un utilisateur a sélectionné, utilisez le service Selection. La fonction onNewScriptButtonClicked vérifie si l'utilisateur a sélectionné quelque chose et crée le nouveau script comme étant son enfant, et non pas à l'intérieur de ServerScriptService. Si l'utilisateur ne sélectionne rien, un nouveau script se crée dans ServerScriptService.

Prise en charge des fonctions Annuler et Rétablir

Utiliser ChangeHistoryService pour permettre aux utilisateurs d'annuler et de refaire les modifications apportées par un plugin dans une expérience. Dans votre script, paramétrez le plugin pour qu'il appelle ChangeHistoryService:TryBeginRecording() et stocke l'identifiant attribué à l'appel API avant d'apporter des modifications. Ensuite, définissez le plugin pour appeler la classe .ChangeHistoryService:FinishRecording() après avoir apporté des modifications, donc il capture tous les changements effectués pendant la session d'enregistrement pour annuler et refaire.

L'exemple de code suivant crée un plug-in d'exemple qui peut appliquer le matériau fluo aux parties sélectionnées. Il utilise ChangeHistoryService pour enregistrer et gérer les modifications apportées par le plugin :

Example Material Plugin with Recordings for Undo and Redo

local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- Créer un exemple de plugin
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
-- Connecter une fonction à l'événement clic
button.Click:Connect(function()
local parts = {}
for _, part in pairs(Selection:Get()) do
if part:IsA("BasePart") then
parts[#parts + 1] = part
end
end
if #parts < 1 then
-- Nothing to do.
return
end
-- Essayer de commencer un enregistrement avec un identifiant spécifique
local recording = ChangeHistoryService:TryBeginRecording("Set selection to neon")
-- Vérifier si l'enregistrement a été lancé avec succès
si l'enregistrement n'a pas eu lieu alors
-- Traiter l'erreur ici. Cela indique que votre plug-in a commencé un précédent
-- enregistrement 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 parties sélectionnées
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon -- Sélectionner le matériau de la partie sur fluo
end
-- Terminer l'enregistrement, en validant les modifications dans l'historique
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)

Publier des plugins

Comme pour les modèles, les maillages, les images et les animations, vous pouvez publier des plugins sur Roblox et faciliter leur réutilisation à partir de la boîte à outils. En outre, vous pouvez permettre à d'autres créateurs d'acheter et/ou d'installer vos plugins en les publiant sur le Marketplace du créateur avec des miniatures supplémentaires illustrant la fonctionnalité du plugin. Le prix de vente minimum des plugins est de 100 Robux.

Pour gérer un plugin une fois que vous l'avez installé :

  1. Dans la fenêtre Explorateur, cliquez droit sur le script du plugin que vous souhaitez publier sur Roblox. Un menu contextuel s'affiche.

  2. Sélectionnez Publier en tant que plugin. La fenêtre Configuration du contenu s'ouvre.

  3. (Optionnel) Dans le coin supérieur gauche de la fenêtre, cliquez sur l'image pour télécharger une image de 512×512.

  4. Complétez les champs suivants :

    • Nom : le titre de votre plugin.
    • Description : une description qui indique à l'utilisateur potentiel ce à quoi il peut s'attendre du plugin.
    • (Optionnel) Activez le bouton Distribuer sur le Marketplace pour publier votre plugin sur le Marketplace du créateur. Si vous avez précédemment Création en équipe, chaque créateur apparaît. Sinon, la seule option disponible est « Moi ».
  5. (Optionnel) Si votre ID ou votre téléphone est vérifié, cliquez sur le bouton + pour ajouter jusqu'à 5 miniatures supplémentaires à votre plugin.

  6. (Optionnel) Activez le bouton Distribuer sur le Marketplace pour publier votre plugin sur le Marketplace du créateur. Si vous avez précédemment vérifié votre compte, le champ Prix devient disponible.

  7. (Optionnel) Dans le champ Prix, saisissez le montant de Robux que vous souhaitez facturer pour le plugin. Si vous gardez la valeur par défaut de 0, le plugin est gratuit pour tous les créateurs.

  8. Cliquez sur le bouton Envoyer. Votre plugin est maintenant disponible dans la Boîte à outils.

Gérer les plugins

Pour publier un plugin :

  1. Cliquez sur le bouton Gérer les plugins dans l'onglet Plugins pour ouvrir la fenêtre Gestion des plugins.

  2. Utilisez les options suivantes pour le plugin que vous souhaitez gérer.

    1. Mettre à jour – Mettez à jour le plugin avec la dernière version publiée. Si ce bouton n'est pas visible, cela signifie que le plugin est à jour.
    2. Actif – Indique si le plugin est actif ou pas.
    3. Détails / Désinstaller – Ouvre un menu qui permet d'afficher les détails du plugin ou de le désinstaller.