Merch Booth

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Das MerchBooth Entwicklermodul erlaubt es Ihnen, Avatar-Assets, Pässe und Entwicklerprodukte direkt innerhalb Ihrer Erfahrung zum Verkauf anzubieten. Spieler können Artikel durchstöbern, Assets auf ihrem eigenen Avatar in der Vorschau ansehen, Artikel kaufen und sie sofort verwenden oder ausrüsten — alles ohne die Erfahrung zu verlassen. Dies kann Ihnen helfen, Ihre Erfahrung zu monetarisieren und Einnahmen durch die 40 % Affiliate-Gebühr zu erzielen, die mit dem Verkauf von Artikeln anderer Creator verbunden ist.

Modulanwendung

Installation

Um das MerchBooth-Modul in einer Erfahrung zu verwenden:

  1. Öffnen Sie das Toolbox aus dem Fenster-Menü von Studio oder der Symbolleiste des Start-Tabs und wählen Sie die Registerkarte Creator Store.

  2. Stellen Sie sicher, dass die Sortierung nach Modellen ausgewählt ist, und klicken Sie dann auf die Schaltfläche Alle ansehen für Kategorien.

  3. Suchen Sie das Kachel Packages und klicken Sie darauf.

  4. Suchen Sie das Modul Merch Booth und klicken Sie darauf oder ziehen Sie es in die 3D-Ansicht.

  5. Verschieben Sie das gesamte MerchBooth-Modell im Explorer-Fenster in ReplicatedStorage. Bei Ausführung der Erfahrung beginnt das Modul mit der Ausführung.

Konfiguration

Das Modul ist vorkonfiguriert, um für die meisten Anwendungsfälle zu funktionieren, kann jedoch leicht über die configure-Funktion angepasst werden. Um beispielsweise ein helleres Thema zu erstellen und die Standard-Filter-Schaltfläche im oberen linken Bereich der Katalogansicht zu deaktivieren:

  1. Erstellen Sie in StarterPlayerScripts ein neues LocalScript und benennen Sie es in ConfigureMerchBooth um.

  2. Fügen Sie den folgenden Code in das neue Skript ein.

    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
    })

Artikel hinzufügen

Was ist ein Merch Booth ohne Merch? Die folgenden Abschnitte erläutern, wie Sie Avatar-Assets, Pässe und Entwicklerprodukte zu Ihrem Merch Booth hinzufügen.

Avatar-Assets

Artikel wie Kleidung und Accessoires müssen über ihre Asset-ID hinzugefügt werden, die auf der Detailseite des Artikels im Avatar-Shop zu finden ist.

  1. Erstellen Sie ein Script in ServerScriptService und fügen Sie den folgenden Code ein.

    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. Kopieren Sie die Asset-IDs der Artikel aus der URL des Avatar-Shops. Zum Beispiel ist die ID von Roblox Baseball Cap 607702162.

  3. Fügen Sie jede kopierte ID in eine durch Kommas getrennte Liste innerhalb der items-Tabelle ein. Standardmäßig erscheinen Artikel in der Katalogansicht alphabetisch, aber die Sortierung kann über setCatalogSort angepasst werden.

    Script - Add Avatar Assets

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    local items = {
    607702162, -- Roblox Baseball Cap
    4819740796, -- Robox
    1374269, -- Kitty Ears
    11884330, -- Nerd Glasses
    10476359, -- Paper Hat
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end

Pässe

Das Hinzufügen von Pässen erfordert Pass-IDs, die im Creator Dashboard zu finden sind.

  1. Erstellen Sie ein Script innerhalb von ServerScriptService und fügen Sie den folgenden Code ein.

    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. Navigieren Sie zum Creator Dashboard und wählen Sie die Erfahrung aus.

  3. Wählen Sie in der linken Spalte unter Monetarisierung die Pässe aus.

  4. Fahren Sie mit der Maus über das Thumbnail eines Passes, klicken Sie auf die -Schaltfläche und wählen Sie Asset-ID kopieren aus dem Kontextmenü.

  5. Fügen Sie jede kopierte ID in eine durch Kommas getrennte Liste innerhalb der items-Tabelle ein und fügen Sie Enum.InfoType.GamePass als zweiten Parameter für addItemAsync hinzu, um anzugeben, dass es sich um Pässe handelt. Standardmäßig erscheinen Artikel in der Katalogansicht alphabetisch, aber die Sortierung kann über setCatalogSort angepasst werden.

    Script - Add Passes

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    local items = {
    4343758, -- ColdFyre Armor
    28521575, -- Slime Shield
    }
    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

Entwicklerprodukte

Das Hinzufügen von Entwicklerprodukten erfordert Produkt-IDs, die im Creator Dashboard zu finden sind.

  1. Erstellen Sie ein Script innerhalb von ServerScriptService und fügen Sie den folgenden Code ein.

    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. Navigieren Sie zum Creator Dashboard und wählen Sie die Erfahrung aus.

  3. Wählen Sie in der linken Spalte unter Monetarisierung die Entwicklerprodukte aus.

  4. Fahren Sie mit der Maus über das Thumbnail eines Produkts, klicken Sie auf die -Schaltfläche und wählen Sie Asset-ID kopieren aus dem Kontextmenü.

  5. Fügen Sie jede kopierte ID in eine durch Kommas getrennte Liste innerhalb der items-Tabelle ein und fügen Sie Enum.InfoType.Product als zweiten Parameter für addItemAsync hinzu, um anzugeben, dass es sich um Entwicklerprodukte handelt. Standardmäßig erscheinen Artikel in der Katalogansicht alphabetisch, aber die Sortierung kann über setCatalogSort angepasst werden.

    Script - Add Developer Products

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    local items = {
    1236602053, -- Mana Refill
    1257880672, -- Healing Potion
    }
    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

Benutzerdefinierte Katalogschaltfläche

Standardmäßig lässt eine Katalogschaltfläche auf der rechten Seite die Spieler das Booth jederzeit öffnen.

In einigen Fällen kann es nützlich sein, diese Schaltfläche zu entfernen und Ihre eigene zu verbinden:

  1. Erstellen Sie eine neue Schaltfläche, wie im Abschnitt Schaltflächen beschrieben.

  2. Erstellen Sie ein LocalScript als Kind des Schaltflächenobjekts.

  3. Fügen Sie den folgenden Code in das neue Skript ein.

    LocalScript - Custom Catalog Button

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    -- Entfernen Sie die Standard-Katalogschaltfläche
    MerchBooth.toggleCatalogButton(false)
    -- Verbinden Sie die benutzerdefinierte Schaltfläche
    script.Parent.Activated:Connect(function()
    MerchBooth.openMerchBooth()
    end)

Kaufbare Bereiche

Ein hilfreicher Weg, um Käufe in Ihrer Erfahrung zu fördern, besteht darin, den Merch Booth automatisch anzuzeigen, wenn ein Spieler einen Bereich betritt.

So erstellen Sie einen kaufbaren Bereich:

  1. Erstellen Sie einen Anchored-Block, der den Erkennungsbereich umfasst. Stellen Sie sicher, dass der Block hoch genug ist, um mit dem PrimaryPart von Charaktermodellen (Standardmäßig HumanoidRootPart) zu kollidieren.

    Block zur Erkennung, wenn Spieler sich der Vorderseite des Shopzählers nähern
  2. Wenden Sie mithilfe des Tags-Abschnitts der Eigenschaften des Blocks das Tag ShopRegion auf den Block an, damit CollectionService dies erkennt.

  3. Setzen Sie die Transparency des Teils auf den maximalen Wert, um ihn für Spieler in der Erfahrung zu verbergen. Deaktivieren Sie auch die Eigenschaften CanCollide und CanQuery, damit Objekte nicht physisch mit ihm kollidieren und Strahlen nicht erkannt werden.

  4. Fügen Sie ein neues LocalScript unter StarterPlayerScripts hinzu.

  5. Fügen Sie im neuen Skript den folgenden Code ein, der die Ereignisse Touched und TouchEnded verwendet, um zu erkennen, wann Charaktere den Bereich betreten/verlassen, und ruft openMerchBooth und closeMerchBooth auf, um die Booth-GUI zu öffnen/zu schließen.

    LocalScript

    local Players = game:GetService("Players")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    -- Entfernen Sie die Standard-Katalogschaltfläche
    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
    -- Durch vorhandene markierte Shopregionen iterieren
    for _, region in CollectionService:GetTagged("ShopRegion") do
    setupRegion(region)
    end
    -- erkennen, wenn nicht gestreamte Shopregionen hereinkommen
    CollectionService:GetInstanceAddedSignal("ShopRegion"):Connect(setupRegion)

Proximitätsaufforderungen

Als Alternative zur 2D-Katalogansicht können Sie Proximitätsaufforderungen über Objekte in der Erfahrung hinzufügen. Dies ermutigt die Spieler, Artikel in der 3D-Umgebung zu entdecken, sie auf ihrem eigenen Avatar in der Vorschau anzusehen, sie zu erwerben und sie sofort auszurüsten. Siehe addProximityButton für Details.

Ändern Sie den Ausstattungs-Effekt

Standardmäßig zeigt der Merch Booth einen generischen Funkeneffekt, wenn ein Spieler einen Artikel davon ausstattet. Um den Effekt zu ändern, setzen Sie particleEmitterTemplate auf Ihre eigene Instanz eines ParticleEmitter in einem configure-Aufruf.

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
})

GUI-Sichtbarkeit

Standardmäßig blendet der Merch Booth alle ScreenGuis und CoreGuis aus, wenn seine UI erscheint, einschließlich des Chats, der Bestenliste und anderer von Roblox bereitgestellter Elemente. Wenn Sie dieses Verhalten deaktivieren möchten, setzen Sie hideOtherUis auf false in einem configure-Aufruf.

LocalScript - ConfigureMerchBooth

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

Charakterbewegung

Es kann von Vorteil sein, zu verhindern, dass sich ein Charakter bewegt, während er sich im Merch Booth befindet. Dies kann erreicht werden, indem disableCharacterMovement auf true in einem configure-Aufruf gesetzt wird.

LocalScript - ConfigureMerchBooth

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

API-Referenz

Typen

Artikel

Artikel im Merch Booth werden durch ein Wörterbuch mit den folgenden Schlüssel-Wert-Paaren repräsentiert. Artikel können durch die getItems-Funktion oder das itemAdded-Ereignis gesammelt werden.

SchlüsselTypBeschreibung
assetIdnumberKatalog-ID des Artikels, wie sie an addItemAsync übergeben wird.
titlestringArtikelbezeichnung, wie sie im Katalog erscheint.
pricenumberArtikelpreis in Robux.
descriptionstringArtikelbeschreibung, wie sie im Katalog erscheint.
assetTypestringString, der den Typ des Accessoires des Artikels repräsentiert.
isOwnedboolOb der aktuelle Spieler den Artikel besitzt.
creatorNamestringArtikelcreator, wie er im Katalog angezeigt wird.
creatorTypeEnum.CreatorTypeCreator-Typ des Artikels.

Enums

MerchBooth.Controls

Verwendet zusammen mit setControlKeyCodes, um die Tasten und Gamepad-Tasten für die Interaktion mit dem Merch Booth anzupassen.

NameZusammenfassung
ProximityPromptsSchlüssel und/oder Gamepad-Taste, um die Artikelansicht zu öffnen, wenn Proximitätsaufforderungen konfiguriert sind.
OpenMerchBoothSchlüssel und/oder Gamepad-Taste, um den Merch Booth zu öffnen.
CloseMerchBoothSchlüssel und/oder Gamepad-Taste, um den Merch Booth zu schließen.
FilterSchlüssel und/oder Gamepad-Taste, um die Standard-Filter-Auswahl im oberen linken Bereich der Katalogansicht zu verwenden.
ViewItemSchlüssel und/oder Gamepad-Taste, um eine spezifische Artikelansicht im Merch Booth zu öffnen.
LocalScript

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

Funktionen

configure

configure(config: table)

Überschreibt die Standardkonfigurationsoptionen für den Client über die folgenden Schlüssel/Werte in der config-Tabelle. Diese Funktion kann nur von einem LocalScript aufgerufen werden.

SchlüsselBeschreibungStandard
backgroundColorHaupt-Hintergrundfarbe des Fensters (Color3).[0, 0, 0]
cornerRadiusEckenradius für das Hauptfenster (UDim).(0, 16)
cornerRadiusSmallEckenradius für Elemente innerhalb des Fensters (UDim).(0, 8)
textFontSchriftart des „Haupttextes“, wie Preise, Beschreibungen und andere allgemeine Informationen (Enum.Font).Gotham
textSizeGröße des Haupttextes.14
textColorFarbe des Haupttextes (Color3).[255, 255, 255]
secondaryTextColorFarbe, die für einige Variationen des Haupttextes verwendet wird (Color3).[153, 153, 158]
headerFontSchriftart des Kopfzeilentextes, die für den Fenstertitel verwendet wird (Enum.Font).GothamMedium
headerTextSizeGröße des Kopfzeilentextes, der für den Fenstertitel verwendet wird.18
titleFontSchriftart des Titeltextes, der für Artikelnamen auf der Detailseite verwendet wird (Enum.Font).GothamBold
titleTextSizeGröße des Titeltextes, der für Artikelnamen auf der Detailseite verwendet wird.28
buttonColorHintergrundfarbe für größere Schaltflächen im klickbaren Zustand, wie die Hauptkauftaste in der Artikelansicht (Color3).[255, 255, 255]
buttonTextColorTextfarbe für größere Schaltflächen im klickbaren Zustand, wie die Hauptkauftaste in der Artikelansicht (Color3).[0, 0, 0]
secondaryButtonColorHintergrundfarbe für kleinere Schaltflächen wie die Preisschaltflächen in der Katalogansicht oder die Anprobieren-Schaltfläche (Color3).[34, 34, 34]
secondaryButtonTextColorTextfarbe für kleinere Schaltflächen wie die Preisschaltflächen in der Katalogansicht oder die Anprobieren-Schaltfläche (Color3).[255, 255, 255]
inactiveButtonColorHintergrundfarbe für alle Schaltflächen im nicht klickbaren Zustand (Color3).[153, 153, 158]
inactiveButtonTextColorTextfarbe für alle Schaltflächen im nicht klickbaren Zustand (Color3).[255, 255, 255]
particleEmitterTemplateOptionale benutzerdefinierte ParticleEmitter-Instanz, die erscheint und beim Ausstatten abgespielt wird.
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)

Fügt asynchron einen Artikel zum Merch Booth hinzu, sodass er für den Kauf in der Erfahrung berechtigt ist. assetId ist die Asset-ID des Artikels, productType ist das Enum.InfoType-Enum des Artikels, und hideFromCatalog kann verwendet werden, um den Artikel in der Katalogansicht auszublenden.

Siehe Artikel hinzufügen für Details, da die Verwendung leicht unterschiedlich für Assets im Vergleich zu Spielpässen oder Entwicklerprodukten ist.

Script - Add Avatar Assets

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
607702162, -- Roblox Baseball Cap
4819740796, -- Robox
1374269, -- Kitty Ears
11884330, -- Nerd Glasses
10476359, -- Paper Hat
}
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, -- ColdFyre Armor
28521575, -- Slime Shield
}
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, -- Mana Refill
1257880672, -- Healing Potion
}
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

Gibt ein Wörterbuch zurück, das alle derzeit registrierten Artikel darstellt. Jeder Schlüssel ist die Asset-ID eines Artikels als Zeichenfolge, und jeder Wert des Schlüssels ist ein Artikel. Diese Funktion kann nur von einem Script aufgerufen werden.

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)

Registriert einen zuvor mit addItemAsync hinzugefügten Artikel ab und entfernt dessen Kachel in der Katalogansicht sowie alle Proximitätsaufforderungen, die ihm zugewiesen sind. Diese Funktion kann nur von einem Script aufgerufen werden.

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
-- Nach einiger Zeit, entferne den Artikel
task.wait(5)
MerchBooth.removeItem(4819740796)
end

addProximityButton

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

Fügt eine Proximitätsaufforderung über dem gegebenen adornee hinzu, die die Anzeige der Kaufansicht eines Artikels auslöst, gegeben dessen Asset-ID. Dies kann als Alternative zur 2D-Katalogansicht verwendet werden, um die Spieler dazu zu ermutigen, Artikel in der 3D-Umgebung zu entdecken.

Beachten Sie, dass ein Artikel über addItemAsync hinzugefügt werden muss, bevor eine Proximitäts-Schaltfläche ihm zugewiesen werden kann. Siehe auch removeProximityButton, um die Proximitätsaufforderung von einem Objekt zu entfernen.

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)

Entfernt eine Proximitätsaufforderung, die über addProximityButton generiert wurde. Diese Funktion kann nur von einem Script aufgerufen werden.

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
-- Nach einiger Zeit, entfernen Sie die Aufforderung
task.wait(5)
MerchBooth.removeProximityButton(item)
end

setCatalogSort

setCatalogSort(sortFunction: function): boolean

Setzt die Sortierfunktion sortFunction, die in der Katalogansicht verwendet werden soll. Die bereitgestellte Sortierfunktion kann Logik basierend auf den Artikel-Informationen wie price oder title verwenden. Diese Funktion kann nur von einem LocalScript aufgerufen werden.

Hier sind einige Beispiele für die Sortierung des Katalogs:

Preis niedrig bis hoch

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return a.price < b.price
end)
Preis hoch bis niedrig

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return a.price > b.price
end)
Preis niedrig bis hoch & alphabetisch

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)

Konfiguriert die Schlüssel- und Tastenwerte für die Interaktionen mit dem Merch Booth. Der erste Parameter muss ein MerchBooth.Controls-Enum und der zweite Parameter eine Tabelle mit den Schlüsseln keyboard und/oder gamepad mit den entsprechenden Enum.KeyCode-Enums sein.

Enum (control)Standard keyCodes-Tasten/Werte
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()

Öffnet das Merch Booth-Fenster (wenn es geschlossen ist) und navigiert zur Katalogansicht. Diese Funktion kann nur von einem LocalScript aufgerufen werden.

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)

Navigiert zur Einzelartikelansicht des angegebenen itemId, öffnet das Merch Booth-Fenster, falls es derzeit geschlossen ist. Diese Funktion kann nur von einem LocalScript aufgerufen werden.

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)

Schaltet die Katalogschaltfläche auf der rechten Seite des Bildschirms an/aus. Dies ist nützlich, wenn Sie eine benutzerdefinierte Schaltfläche implementieren oder das Erscheinen des Merch Booths auf Bereiche oder Proximitätsaufforderungen beschränken möchten. Kann nur von einem LocalScript aufgerufen werden.

LocalScript

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

isMerchBoothOpen

isMerchBoothOpen(): Tuple

Gibt true zurück, wenn entweder der Katalog oder die Artikelansicht geöffnet ist. Wenn die Artikelansicht geöffnet ist, wird die Asset-ID des Artikels als zweiter Wert zurückgegeben. Diese Funktion kann nur von einem LocalScript aufgerufen werden.

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()

Schließt das Merch Booth-Fenster. Diese Funktion kann nur von einem LocalScript aufgerufen werden.

LocalScript

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

isMerchBoothEnabled

isMerchBoothEnabled(): boolean

Diese Funktion kann zusammen mit setEnabled verwendet werden, um zu überprüfen, ob der Merch Booth derzeit aktiviert ist oder nicht. Kann nur von einem LocalScript aufgerufen werden.

setEnabled

setEnabled(enabled: boolean)

Legt fest, ob der gesamte Merch Booth aktiviert oder deaktiviert ist oder nicht. Wenn deaktiviert, entfernt diese Funktion die gesamte UI, einschließlich Proximitätsaufforderungen, und trennt alle Ereignisse. Diese Funktion kann nur von einem LocalScript aufgerufen werden.

LocalScript

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

Ereignisse

itemAdded

Ereignet sich, wenn ein Artikel über addItemAsync hinzugefügt wird. Dieses Ereignis kann nur in einem Script verbunden werden.

Parameter
assetId: numberAsset-ID des Artikels.
itemInfo: tableWörterbuch der Artikel-Informationen wie price oder title.
Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemAdded:Connect(function(assetId, itemInfo)
print("Artikel mit der Asset-ID", assetId, "hinzugefügt.")
print(itemInfo)
end)

itemRemoved

Ereignet sich, wenn ein Artikel über removeItem entfernt wird. Dieses Ereignis kann nur in einem Script verbunden werden.

Parameter
assetId: numberAsset-ID des Artikels.
Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemRemoved:Connect(function(assetId)
print("Artikel mit der Asset-ID", assetId, "entfernt.")
end)

merchBoothOpened

Ereignet sich, wenn entweder die Katalog-oder die Artikelansicht geöffnet wird.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothOpened:Connect(function()
print("Booth-Ansicht geöffnet.")
end)

merchBoothClosed

Ereignet sich, wenn entweder die Katalog-oder die Artikelansicht geschlossen wird.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothClosed:Connect(function()
print("Booth-Ansicht geschlossen.")
end)

catalogViewOpened

Ereignet sich, wenn die Katalogansicht geöffnet wird.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewOpened:Connect(function()
print("Katalogansicht geöffnet.")
end)

catalogViewClosed

Ereignet sich, wenn die Katalogansicht geschlossen wird.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewClosed:Connect(function()
print("Katalogansicht geschlossen.")
end)

itemViewOpened

Ereignet sich, wenn die Artikelansicht geöffnet wird.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewOpened:Connect(function()
print("Artikelansicht geöffnet.")
end)

itemViewClosed

Ereignet sich, wenn die Artikelansicht geschlossen wird.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewClosed:Connect(function()
print("Artikelansicht geschlossen.")
end)
©2026 Roblox Corporation. Roblox, das Roblox-Logo und "Powering Imagination" gehören zu unseren eingetragenen und nicht eingetragenen Markenzeichen in den USA und anderen Ländern.