Un plugin est une extension qui ajoute des fonctionnalités ou des fonctionnalités supplémentaires à Studio. Vous pouvez installer des plugins créés par la communauté à partir de la boutique des créateurs, ou vous pouvez créer et 0> publier0> les vôtres dans la 3>boîte à outils3> pour les utiliser dans vos expériences.
Si vous choisissez de distribuer également vos plugins dans la boutique des créateurs, vous pouvez les offrir gratuitement ou les vendre pour dollars américains (le prix minimum est de 4,99 $). Roblox offre un partage de revenu de marché pour ces ventes, car seuls les impôts 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 devriez 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éez une nouvelle section de barre d'outils intitulée « Outils de script personnalisés »
local toolbar = plugin:CreateToolbar("Custom Script Tools")
-- Ajout d'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")
-- Faire cliquer le bouton 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)
Enregistrement d'un script 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 EmptyScriptAdder Plugin :
Insérez un nouveau Script à l'intérieur de ServerStorage et renommez-le en EmptyScriptAdder .
Copiez et collez le EmptyScriptAdder Plugin code 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.
Rechargement et enregistrement des modifications
Avec votre Plugin à l'intérieur de PluginDebugService, vous pouvez facilement mettre à jour le plugin en faisant un clic droit dessus, puis en sélectionnant Enregistrer et recharger le plugin dans le menu contextuel. Si vous voulez simplement recharger le plugin, par exemple pour examiner une section de code en utilisant un point d'arrêt sans enregistrer le plugin, vous
Ajout d'un bouton 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 1> EmptyScriptAdder1>, la ligne 5 crée une nouvelle section dans la barre
Exécution du code au clic
Pour 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 function de connexion est onNewScriptButtonClicked().
Vérification de la sélection de l'utilisateur
Pour modifier le comportement d'un plugin en fonction de ce que l'utilisateur a sélectionné, usez 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 de le créer dans ServerScriptService. Si l'utilisateur n'a rien
Supporter 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'apporter des modifications. Puis
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 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", "", "")
-- Connectez 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é initialisé avec succès
if not recording then
-- Gérez l'erreur ici. Cela indique que votre plugin a commencé un précédent
-- enregistré et ne l'as jamais terminé. Vous n'avez peut-être qu'un 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
-- Terminez l'enregistrement, validez les modifications dans l'historique
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)
Téléchargement, distribution et monétisation des plugins
Comme avec modèles, mailles, images, et 2>animations2>, vous pouvez distribuer des plugins sur Roblox pour les rendre faciles à réutiliser à partir de la 5>boîte à outils5>. Vous pouvez choisir de les rendre publiquement disponibles à tous
Pour distribuer un plugin :
Dans la fenêtre Explorateur , cliquez avec le bouton 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 Envoyer. Votre plugin est maintenant 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.