Stand de Merch

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Le MerchBooth module de développeur vous permet d'offrir des biens d'avatar, des passes et des produits de développeur à la vente directement dans votre expérience. Les joueurs peuvent parcourir les articles, prévisualiser les biens sur leur propre avatar, acheter des articles et les utiliser ou les équiper immédiatement — le tout sans quitter votre expérience. Cela peut vous aider à monétiser votre expérience et à générer des revenus grâce à la commission d'affiliation de 40 % associée à la vente d'articles d'autres créateurs.

Utilisation du module

Installation

Pour utiliser le module MerchBooth dans une expérience :

  1. Depuis le menu Fenêtre de Studio ou la barre d'outils de l'onglet Accueil, ouvrez la Boîte à outils et sélectionnez l'onglet Boutique Créateur.

  2. Assurez-vous que le tri par Modèles est sélectionné, puis cliquez sur le bouton Voir tout pour Catégories.

  3. Localisez et cliquez sur le carreau Packages.

  4. Localisez le module Merch Booth et cliquez dessus, ou faites-le glisser dans la vue 3D.

  5. Dans la fenêtre Explorateur, déplacez l'ensemble du modèle MerchBooth dans ReplicatedStorage. Lorsque vous lancez l'expérience, le module commencera à fonctionner.

Configuration

Le module est préconfiguré pour fonctionner pour la plupart des cas d'utilisation, mais il peut être facilement personnalisé grâce à la fonction configure. Par exemple, pour créer un thème plus clair et désactiver le bouton Filtrer par défaut dans la zone supérieure gauche de la vue du catalogue :

  1. Dans StarterPlayerScripts, créez un nouveau LocalScript et renommez-le en ConfigureMerchBooth.

  2. Collez le code suivant dans le nouveau script.

    LocalScript - ConfigureMerchBooth

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    MerchBooth.configure({
    backgroundColor = Color3.fromRGB(220, 210, 200),
    textSize = 17,
    textFont = Enum.Font.Fondamento,
    textColor = Color3.fromRGB(20, 20, 20),
    useFilters = false
    })

Ajouter des articles

Qu'est-ce qu'un stand de merch sans marchandises ? Les sections suivantes décrivent comment ajouter des biens d'avatar, des passes et des produits de développeur à votre stand de merch.

Biens d'avatar

Les articles tels que les vêtements et accessoires doivent être ajoutés via leur ID d'actif situé sur la page de détails de l'article dans la Boutique Avatar.

  1. Créez un Script dans ServerScriptService et collez le code suivant.

    Script - Add Avatar Assets

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    local items = {
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end
  2. Copiez les IDs d'actifs des articles à partir des URL du site web de leur Boutique Avatar. Par exemple, l'ID de la Casquette de Baseball Roblox est 607702162.

  3. Collez chaque ID copié dans une liste délimitée par des virgules dans la table items. Par défaut, les articles apparaissent dans la vue du catalogue dans un ordre alphabétique, mais vous pouvez personnaliser le tri en utilisant setCatalogSort.

    Script - Add Avatar Assets

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    local items = {
    607702162, -- Casquette de Baseball Roblox
    4819740796, -- Robox
    1374269, -- Oreilles de Chat
    11884330, -- Lunettes de Nerd
    10476359, -- Chapeau en Papier
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end

Passes

L'ajout de passes nécessite des IDs de passes qui peuvent être trouvés dans le Tableau de bord des créateurs.

  1. Créez un Script dans ServerScriptService et collez le code suivant.

    Script - Add Passes

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    local items = {
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end
  2. Naviguez vers le Tableau de bord des créateurs et sélectionnez l'expérience.

  3. Dans la colonne de gauche, sous Monétisation, sélectionnez Passes.

  4. Survolez la vignette d'une passe, cliquez sur le bouton et sélectionnez Copier l'ID d'actif dans le menu contextuel.

  5. Collez chaque ID copié dans une liste délimitée par des virgules dans la table items et incluez Enum.InfoType.GamePass comme deuxième paramètre pour addItemAsync pour indiquer que les articles sont des passes. Par défaut, les articles apparaîtront dans la vue du catalogue par ordre alphabétique, mais le tri peut être personnalisé via setCatalogSort.

    Script - Add Passes

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    local items = {
    4343758, -- Armure ColdFyre
    28521575, -- Bouclier Slime
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)
    end)
    if not success then
    warn(errorMessage)
    end
    end

Produits de développeur

L'ajout de produits de développeur nécessite des IDs de produits qui peuvent être trouvés dans le Tableau de bord des créateurs.

  1. Créez un Script dans ServerScriptService et collez le code suivant.

    Script - Add Developer Products

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    local items = {
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end
  2. Naviguez vers le Tableau de bord des créateurs et sélectionnez l'expérience.

  3. Dans la colonne de gauche, sous Monétisation, sélectionnez Produits de développeur.

  4. Survolez la vignette d'un produit, cliquez sur le bouton et sélectionnez Copier l'ID d'actif dans le menu contextuel.

  5. Collez chaque ID copié dans une liste délimitée par des virgules dans la table items et incluez Enum.InfoType.Product comme deuxième paramètre pour addItemAsync pour indiquer que les articles sont des produits de développeur. Par défaut, les articles apparaîtront dans la vue du catalogue dans un ordre alphabétique, mais vous pouvez personnaliser le tri en utilisant setCatalogSort.

    Script - Add Developer Products

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    local items = {
    1236602053, -- Récupération de Mana
    1257880672, -- Potion de Guérison
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId, Enum.InfoType.Product)
    end)
    if not success then
    warn(errorMessage)
    end
    end

Bouton de catalogue personnalisable

Par défaut, un bouton de catalogue sur le côté droit permet aux joueurs d'ouvrir le stand à tout moment.

Dans certains cas, il peut être utile de supprimer ce bouton et de connecter le vôtre :

  1. Créez un nouveau bouton comme indiqué dans Boutons.

  2. Créez un LocalScript comme enfant de l'objet bouton.

  3. Collez le code suivant dans le nouveau script.

    LocalScript - Custom Catalog Button

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    -- Supprimez le bouton de catalogue par défaut
    MerchBooth.toggleCatalogButton(false)
    -- Connectez le bouton personnalisé
    script.Parent.Activated:Connect(function()
    MerchBooth.openMerchBooth()
    end)

Régions achetables

Une façon utile d'inciter les achats dans votre expérience est d'afficher automatiquement le stand de merch lorsqu'un joueur entre dans une zone.

Pour créer une région achetable :

  1. Créez un bloc Anchored qui englobe la zone de détection. Assurez-vous que le bloc est assez haut pour entrer en collision avec le PrimaryPart des modèles de personnage (HumanoidRootPart par défaut).

    Bloc pour détecter quand les joueurs approchent du devant du comptoir de la boutique
  2. En utilisant la section Tags des propriétés du bloc, appliquez le tag ShopRegion au bloc afin que CollectionService le détecte.

  3. Réglez la Transparency de la pièce à son maximum pour la cacher aux joueurs dans l'expérience. Désactivez également ses propriétés CanCollide et CanQuery afin que les objets ne rentrent pas physiquement en collision avec elle et que les raycasts ne la détectent pas.

  4. Insérez un nouveau LocalScript sous StarterPlayerScripts.

  5. Dans le nouveau script, collez le code suivant qui utilise les événements Touched et TouchEnded pour détecter quand des personnages entrent/sortent de la région et appeler openMerchBooth et closeMerchBooth pour ouvrir/fermer l'interface du stand.

    LocalScript

    local Players = game:GetService("Players")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    -- Supprimez le bouton de catalogue par défaut
    MerchBooth.toggleCatalogButton(false)
    local function setupRegion(region: BasePart)
    region.Touched:Connect(function(otherPart)
    local character = Players.LocalPlayer.Character
    if character and otherPart == character.PrimaryPart then
    MerchBooth.openMerchBooth()
    end
    end)
    region.TouchEnded:Connect(function(otherPart)
    local character = Players.LocalPlayer.Character
    if character and otherPart == character.PrimaryPart then
    MerchBooth.closeMerchBooth()
    end
    end)
    end
    -- Itérez à travers les régions de magasin marquées existantes
    for _, region in CollectionService:GetTagged("ShopRegion") do
    setupRegion(region)
    end
    -- Détectez quand les régions de magasin non diffusées apparaissent
    CollectionService:GetInstanceAddedSignal("ShopRegion"):Connect(setupRegion)

Invite de proximité

Comme alternative à la vue 2D du catalogue, vous pouvez ajouter des invites de proximité sur des objets dans l'expérience. Cela encourage les joueurs à découvrir des articles dans l'environnement 3D, à les prévisualiser sur leur propre avatar, à les acheter et à les équiper immédiatement. Consultez addProximityButton pour plus de détails.

Changer l'effet d'équipement

Par défaut, le stand de merch affiche un effet d'étincelles générique lorsqu'un joueur équipe un article à partir de celui-ci. Pour changer l'effet, définissez particleEmitterTemplate sur votre propre instance de ParticleEmitter dans un appel de configure.

LocalScript - ConfigureMerchBooth

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local myParticleEmitter = Instance.new("ParticleEmitter")
myParticleEmitter.SpreadAngle = Vector2.new(22, 22)
myParticleEmitter.Lifetime = NumberRange.new(0.5, 1.5)
myParticleEmitter.Shape = Enum.ParticleEmitterShape.Sphere
myParticleEmitter.Transparency = NumberSequence.new(0, 1)
myParticleEmitter.RotSpeed = NumberRange.new(200, 200)
MerchBooth.configure({
particleEmitterTemplate = myParticleEmitter
})

Visibilité de l'interface

Par défaut, le stand de merch masque tous les ScreenGuis et CoreGuis lorsque son interface apparaît, y compris le chat, le tableau des leaders et d'autres inclus par Roblox. Si vous souhaitez désactiver ce comportement, définissez hideOtherUis sur false dans un appel de configure.

LocalScript - ConfigureMerchBooth

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.configure({
hideOtherUis = false
})

Mouvement du personnage

Il peut être avantageux d'empêcher un personnage de se déplacer tant qu'il est dans le stand de merch. Cela peut être fait en définissant disableCharacterMovement sur true dans un appel de configure.

LocalScript - ConfigureMerchBooth

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.configure({
disableCharacterMovement = true
})

Référence API

Types

Article

Les articles dans le stand de merch sont représentés par un dictionnaire avec les paires clé-valeur suivantes. Les articles peuvent être rassemblés via la fonction getItems ou l'événement itemAdded.

CléTypeDescription
assetIdnumberID du catalogue de l'article, tel qu'il est passé à addItemAsync.
titlestringTitre de l'article tel qu'il apparaît dans le catalogue.
pricenumberPrix de l'article en Robux.
descriptionstringDescription de l'article tel qu'elle apparaît dans le catalogue.
assetTypestringChaîne représentant le type d'accessoire de l'article.
isOwnedboolIndique si le joueur actuel possède l'article.
creatorNamestringCréateur de l'article tel qu'il apparaît dans le catalogue.
creatorTypeEnum.CreatorTypeType de créateur de l'article.

Enums

MerchBooth.Controls

Utilisé avec setControlKeyCodes pour personnaliser les touches et les boutons de manette pour interagir avec le stand de merch.

NomRésumé
ProximityPromptsTouche et/ou bouton de manette pour ouvrir la vue de l'article lorsque des invites de proximité sont configurées.
OpenMerchBoothTouche et/ou bouton de manette pour ouvrir le stand de merch.
CloseMerchBoothTouche et/ou bouton de manette pour fermer le stand de merch.
FilterTouche et/ou bouton de manette pour utiliser le menu déroulant Filtrer par défaut dans la zone supérieure gauche de la vue du catalogue.
ViewItemTouche et/ou bouton de manette pour ouvrir une vue spécifique d'un article du stand de merch.
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setControlKeyCodes(MerchBooth.Controls.ProximityPrompts, {
keyboard = Enum.KeyCode.Q,
gamepad = Enum.KeyCode.ButtonL1
})

Fonctions

configure

configure(config: table)

Remplace les options de configuration par défaut côté client à travers les clés/valeurs suivantes dans la table config. Cette fonction ne peut être appelée que depuis un LocalScript.

CléDescriptionPar défaut
backgroundColorCouleur de fond principale de la fenêtre (Color3).[0, 0, 0]
cornerRadiusRayon de coin pour la fenêtre principale (UDim).(0, 16)
cornerRadiusSmallRayon de coin pour les éléments à l'intérieur de la fenêtre (UDim).(0, 8)
textFontPolice du "texte principal" tel que les prix, descriptions et autres informations générales (Enum.Font).Gotham
textSizeTaille du texte principal.14
textColorCouleur du texte principal (Color3).[255, 255, 255]
secondaryTextColorCouleur utilisée pour certaines variations du texte principal (Color3).[153, 153, 158]
headerFontPolice du texte d'en-tête utilisé pour le titre de la fenêtre (Enum.Font).GothamMedium
headerTextSizeTaille du texte d'en-tête utilisé pour le titre de la fenêtre.18
titleFontPolice du texte titre utilisée pour les noms des articles sur la page de détails de l'article (Enum.Font).GothamBold
titleTextSizeTaille du texte titre utilisée pour les noms des articles sur la page de détails de l'article.28
buttonColorCouleur de fond pour les boutons plus grands dans un état cliquable, tels que le bouton principal d'achat dans la vue de l'article (Color3).[255, 255, 255]
buttonTextColorCouleur du texte pour les boutons plus grands dans un état cliquable, tels que le bouton principal d'achat dans la vue de l'article (Color3).[0, 0, 0]
secondaryButtonColorCouleur de fond pour les petits boutons tels que les boutons de prix dans la vue de catalogue ou le bouton Essayer (Color3).[34, 34, 34]
secondaryButtonTextColorCouleur du texte pour les petits boutons tels que les boutons de prix dans la vue de catalogue ou le bouton Essayer (Color3).[255, 255, 255]
inactiveButtonColorCouleur de fond pour tous les boutons dans un état non cliquable (Color3).[153, 153, 158]
inactiveButtonTextColorCouleur du texte pour tous les boutons dans un état non cliquable (Color3).[255, 255, 255]
particleEmitterTemplateInstance ParticleEmitter personnalisée optionnelle qui apparaît et joue lors de l'équipement.
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.configure({
backgroundColor = Color3.fromRGB(255, 255, 255),
textSize = 16,
textFont = Enum.Font.Roboto,
textColor = Color3.fromRGB(20, 20, 20),
hideOtherUis = false,
})

addItemAsync

addItemAsync(assetId: number, productType: Enum.InfoType, hideFromCatalog: boolean)

Ajoute de manière asynchrone un article au stand de merch afin qu'il soit éligible à l'achat dans l'expérience. assetId est l'ID d'actif de l'article, productType est l'énumération Enum.InfoType de l'article, et hideFromCatalog peut être utilisé pour masquer l'article dans la vue du catalogue.

Voir Ajouter des Articles pour plus de détails, car l'utilisation varie légèrement pour les actifs par rapport aux passes de jeu ou aux produits de développeur.

Script - Add Avatar Assets

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
607702162, -- Casquette de Baseball Roblox
4819740796, -- Robox
1374269, -- Oreilles de Chat
11884330, -- Lunettes de Nerd
10476359, -- Chapeau en Papier
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
end
Script - Add Passes

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
4343758, -- Armure ColdFyre
28521575, -- Bouclier Slime
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)
end)
if not success then
warn(errorMessage)
end
end
Script - Add Developer Products

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
1236602053, -- Récupération de Mana
1257880672, -- Potion de Guérison
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId, Enum.InfoType.Product)
end)
if not success then
warn(errorMessage)
end
end

getItems

getItems(): table

Retourne un dictionnaire représentant tous les articles actuellement enregistrés. Chaque clé est l'ID d'actif d'un article sous forme de chaîne, et chaque valeur de clé est un Article. Cette fonction ne peut être appelée que depuis un Script.

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
local items = MerchBooth.getItems()
print(items)
end

removeItem

removeItem(assetId: number)

Désinscrit un article précédemment ajouté avec addItemAsync, supprimant sa vignette dans la vue du catalogue et toutes les invites de proximité qui lui sont attribuées. Cette fonction ne peut être appelée que depuis un Script.

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
-- Après un certain temps, supprimez l'article
task.wait(5)
MerchBooth.removeItem(4819740796)
end

addProximityButton

addProximityButton(adornee: BasePart|Model|Attachment, assetId: number)

Ajoute une invite de proximité sur le adornee donné qui déclenchera l'affichage de la vue d'achat d'un article, donné son ID d'actif. Cela peut être utilisé comme alternative à la vue 2D du catalogue, encourageant les joueurs à découvrir des articles dans l'environnement 3D.

Notez qu'un article doit être ajouté via addItemAsync avant qu'un bouton de proximité puisse lui être attribué. Voir aussi removeProximityButton pour supprimer l'invite de proximité d'un objet.

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
local item = Workspace:FindFirstChild("Robox")
if item then
MerchBooth.addProximityButton(item, 4819740796)
end
end

removeProximityButton

removeProximityButton(adornee: BasePart|Model|Attachment)

Supprime une invite de proximité générée par addProximityButton. Cette fonction ne peut être appelée que depuis un Script.

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
local item = Workspace:FindFirstChild("Robox")
if item then
MerchBooth.addProximityButton(item, 4819740796)
end
-- Après un certain temps, supprimez l'invite
task.wait(5)
MerchBooth.removeProximityButton(item)
end

setCatalogSort

setCatalogSort(sortFunction: function): boolean

Définit la fonction de tri sortFunction à utiliser dans la vue du catalogue. La fonction de tri fournie peut utiliser la logique basée sur les informations Article telles que price ou title. Cette fonction ne peut être appelée que depuis un LocalScript.

Voici quelques exemples pour trier le catalogue :

Price Low-to-High

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return a.price < b.price
end)
Price High-to-Low

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return a.price > b.price
end)
Price Low-to-High & Alphabetical

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return if a.price == b.price then a.title < b.title else a.price < b.price
end)

setControlKeyCodes

setControlKeyCodes(control: MerchBooth.Controls, keyCodes: table)

Configure les valeurs de touches et de boutons pour interagir avec le stand de merch. Le premier paramètre doit être une énumération MerchBooth.Controls et le second un tableau contenant les touches keyboard et/ou gamepad avec les énumérations Enum.KeyCode correspondantes.

Enum (control)Valeurs de clés/valeurs par défaut keyCodes
MerchBooth.Controls.ProximityPromptskeyboard = Enum.KeyCode.E
gamepad = Enum.KeyCode.ButtonY
MerchBooth.Controls.OpenMerchBoothgamepad = Enum.KeyCode.ButtonY
MerchBooth.Controls.CloseMerchBoothgamepad = Enum.KeyCode.ButtonB
MerchBooth.Controls.Filtergamepad = Enum.KeyCode.ButtonX
MerchBooth.Controls.ViewItemgamepad = Enum.KeyCode.ButtonA
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setControlKeyCodes(MerchBooth.Controls.ProximityPrompts, {
keyboard = Enum.KeyCode.Q,
gamepad = Enum.KeyCode.ButtonL1,
})

openMerchBooth

openMerchBooth()

Ouvre la fenêtre du stand de merch (si fermée) et navigue vers la vue du catalogue. Cette fonction ne peut être appelée que depuis un LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
MerchBooth.openMerchBooth()

openItemView

openItemView(itemId: number)

Navigue vers la vue d'un seul article donné l'itemId, ouvrant la fenêtre du stand de merch si elle est actuellement fermée. Cette fonction ne peut être appelée que depuis un LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
MerchBooth.openItemView(4819740796)
end

toggleCatalogButton

toggleCatalogButton(enabled: boolean)

Active ou désactive le bouton de catalogue sur le côté droit de l'écran. Cela est utile lors de la mise en œuvre d'un bouton personnalisé ou de limiter l'apparition du stand de merch aux régions ou aux invites de proximité. Ne peut être appelé que depuis un LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.toggleCatalogButton(false)

isMerchBoothOpen

isMerchBoothOpen(): Tuple

Retourne true si l'une ou l'autre de la vue du catalogue ou de la vue des détails de l'article est ouverte. Si la vue des détails est ouverte, l'ID d'actif de l'article est retourné comme seconde valeur. Cette fonction ne peut être appelée que depuis un LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
MerchBooth.openItemView(4819740796)
local isOpen, itemId = MerchBooth.isMerchBoothOpen()
print(isOpen, itemId)
end

closeMerchBooth

closeMerchBooth()

Ferme la fenêtre du stand de merch. Cette fonction ne peut être appelée que depuis un LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.closeMerchBooth()

isMerchBoothEnabled

isMerchBoothEnabled(): boolean

Cette fonction peut être utilisée en tandem avec setEnabled pour vérifier si le stand de merch est actuellement activé ou non. Ne peut être appelé que depuis un LocalScript.

setEnabled

setEnabled(enabled: boolean)

Définit si l'ensemble du stand de merch est activé ou non. Lorsqu'il est désactivé, cette fonction supprime l'interface entière, y compris les invites de proximité, et déconnecte tous les événements. Cette fonction ne peut être appelée que depuis un LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local isEnabled = MerchBooth.isMerchBoothEnabled()
if isEnabled then
MerchBooth.setEnabled(false)
end

Événements

itemAdded

Se déclenche lorsqu'un article est ajouté via addItemAsync. Cet événement ne peut être connecté que dans un Script.

Paramètres
assetId: numberID d'actif de l'article.
itemInfo: tableDictionnaire d'informations sur l'Article telles que price ou title.
Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemAdded:Connect(function(assetId, itemInfo)
print("Article ajouté avec l'ID d'actif de", assetId)
print(itemInfo)
end)

itemRemoved

Se déclenche lorsqu'un article est supprimé via removeItem. Cet événement ne peut être connecté que dans un Script.

Paramètres
assetId: numberID d'actif de l'article.
Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemRemoved:Connect(function(assetId)
print("Article supprimé avec l'ID d'actif de", assetId)
end)

merchBoothOpened

Se déclenche lorsque la vue du catalogue ou la vue de détails de l'article est ouverte.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothOpened:Connect(function()
print("Vue du stand ouverte")
end)

merchBoothClosed

Se déclenche lorsque la vue du catalogue ou la vue de détails de l'article est fermée.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothClosed:Connect(function()
print("Vue du stand fermée")
end)

catalogViewOpened

Se déclenche lorsque la vue du catalogue est ouverte.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewOpened:Connect(function()
print("Vue du catalogue ouverte")
end)

catalogViewClosed

Se déclenche lorsque la vue du catalogue est fermée.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewClosed:Connect(function()
print("Vue du catalogue fermée")
end)

itemViewOpened

Se déclenche lorsque la vue des détails de l'article est ouverte.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewOpened:Connect(function()
print("Vue de l'article ouverte")
end)

itemViewClosed

Se déclenche lorsque la vue des détails de l'article est fermée.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewClosed:Connect(function()
print("Vue de l'article fermée")
end)
©2026 Société Roblox. Roblox, le logo Roblox et Powering Imagination font partie de nos marques déposées aux États-Unis et dans d'autres pays.