Banco Merch

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Il MerchBooth modulo per sviluppatori ti consente di offrire asset per avatar, pass e prodotti per sviluppatori in vendita direttamente all'interno del tuo gioco. I giocatori possono sfogliare gli oggetti, visualizzare gli asset sul proprio avatar, acquistare articoli e utilizzarli o equipaggiarli istantaneamente — tutto senza lasciare il tuo gioco. Questo può aiutarti a monetizzare il tuo gioco e guadagnare entrate attraverso la commissione di affiliazione del 40% associata alla vendita di articoli di altri creatori.

Utilizzo del modulo

Installazione

Per utilizzare il modulo MerchBooth in un gioco:

  1. Dal menu Finestra di Studio o dalla barra degli strumenti della scheda Home, apri il Toolbox e seleziona la scheda Negozio Creatore.

  2. Assicurati che sia selezionato l'ordinamento Modelli, quindi fai clic sul pulsante Vedi Tutti per Categorie.

  3. Individua e fai clic sulla tessera Pacchetti.

  4. Individua il modulo Banco Merch e fai clic su di esso, oppure trascinalo nella vista 3D.

  5. Nella finestra Esplora, sposta l'intero modello MerchBooth in ReplicatedStorage. Una volta avviato il gioco, il modulo inizierà a funzionare.

Configurazione

Il modulo è preconfigurato per funzionare per la maggior parte dei casi d'uso, ma può essere facilmente personalizzato tramite la funzione configure. Ad esempio, per creare un tema più chiaro e disabilitare il pulsante Filtro predefinito nell'area in alto a sinistra della vista catalogo:

  1. In StarterPlayerScripts, crea un nuovo LocalScript e rinominalo in ConfigureMerchBooth.

  2. Incolla il seguente codice nel nuovo 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
    })

Aggiungi articoli

Che cos'è un banco merch senza merch? Le seguenti sezioni descrivono come aggiungere asset per avatar, pass e prodotti per sviluppatori al tuo banco merch.

Asset per avatar

Articoli come abbigliamento e accessori devono essere aggiunti tramite il loro ID asset situato nella pagina dei dettagli dell'articolo nel Negozio Avatar.

  1. Crea uno Script all'interno di ServerScriptService e incolla il seguente codice.

    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. Copia gli ID degli asset degli articoli dall'URL del sito web del loro Negozio Avatar. Ad esempio, l'ID del Cappellino da Baseball Roblox è 607702162.

  3. Incolla ciascun ID copiato in un elenco delimitato da virgole all'interno della tabella items. Per impostazione predefinita, gli articoli appaiono nella vista catalogo in ordine alfabetico, ma puoi personalizzare l'ordinamento utilizzando setCatalogSort.

    Script - Add Avatar Assets
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    local items = {
    607702162, -- Cappellino da Baseball Roblox
    4819740796, -- Robox
    1374269, -- Orecchie di Gatto
    11884330, -- Occhiali da Nerd
    10476359, -- Cappello di Carta
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end

Pass

Aggiungere pass richiede ID di pass che possono essere trovati nel Dashboard Creatore.

  1. Crea uno Script all'interno di ServerScriptService e incolla il seguente codice.

    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. Naviga al Dashboard Creatore e seleziona il gioco.

  3. Nella colonna di sinistra, sotto Monetizzazione, seleziona Pass.

  4. Passa il mouse sopra la miniatura di un pass, fai clic sul pulsante e seleziona Copia ID Asset dal menu contestuale.

  5. Incolla ciascun ID copiato in un elenco delimitato da virgole all'interno della tabella items e includi Enum.InfoType.GamePass come secondo parametro per addItemAsync per indicare che gli articoli sono pass. Per impostazione predefinita, gli articoli appariranno nella vista catalogo in ordine alfabetico, ma l'ordinamento può essere personalizzato tramite setCatalogSort.

    Script - Add Passes
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    local items = {
    4343758, -- Armatura ColdFyre
    28521575, -- Scudo di Melma
    }
    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

Prodotti per sviluppatori

Aggiungere prodotti per sviluppatori richiede ID di prodotto che possono essere trovati nel Dashboard Creatore.

  1. Crea uno Script all'interno di ServerScriptService e incolla il seguente codice.

    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. Naviga al Dashboard Creatore e seleziona il gioco.

  3. Nella colonna di sinistra, sotto Monetizzazione, seleziona Prodotti per Sviluppatori.

  4. Passa il mouse sopra la miniatura di un prodotto, fai clic sul pulsante e seleziona Copia ID Asset dal menu contestuale.

  5. Incolla ciascun ID copiato in un elenco delimitato da virgole all'interno della tabella items e includi Enum.InfoType.Product come secondo parametro per addItemAsync per indicare che gli articoli sono prodotti per sviluppatori. Per impostazione predefinita, gli articoli appaiono nella vista catalogo in ordine alfabetico, ma puoi personalizzare l'ordinamento utilizzando setCatalogSort.

    Script - Add Developer Products
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    local items = {
    1236602053, -- Ricarica Mana
    1257880672, -- Pozione di Guarigione
    }
    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

Pulsante catalogo personalizzato

Per impostazione predefinita, un pulsante catalogo sul lato destro consente ai giocatori di aprire il banco in qualsiasi momento.

In alcuni casi, potrebbe essere utile rimuovere questo pulsante e collegare il tuo:

  1. Crea un nuovo pulsante come descritto in Pulsanti.

  2. Crea un LocalScript come figlio dell'oggetto pulsante.

  3. Incolla il seguente codice nel nuovo script.

    LocalScript - Custom Catalog Button
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    -- Rimuovi il pulsante catalogo predefinito
    MerchBooth.toggleCatalogButton(false)
    -- Collega il pulsante personalizzato
    script.Parent.Activated:Connect(function()
    MerchBooth.openMerchBooth()
    end)

Aree acquistabili

Un modo utile per incentivare gli acquisti nel tuo gioco è mostrare automaticamente il banco merch quando un giocatore entra in un'area.

Per creare un'area acquistabile:

  1. Crea un blocco Anchored che racchiuda la regione di rilevamento. Assicurati che il blocco sia abbastanza alto da collidere con il PrimaryPart dei modelli dei personaggi (HumanoidRootPart per impostazione predefinita).

    Blocco per rilevare quando i giocatori si avvicinano alla parte anteriore del banco
  2. Utilizzando la sezione Tag delle proprietà del blocco, applica il tag ShopRegion al blocco in modo che CollectionService lo rilevi.

  3. Imposta la Transparency della parte al massimo per nasconderla dai giocatori nel gioco. Disabilita anche le proprietà CanCollide e CanQuery in modo che gli oggetti non collidano fisicamente con essa e i raycast non la rilevino.

  4. Inserisci un nuovo LocalScript sotto StarterPlayerScripts.

  5. Nel nuovo script, incolla il seguente codice che utilizza gli eventi Touched e TouchEnded per rilevare quando i personaggi entrano/escono dalla regione e chiama openMerchBooth e closeMerchBooth per aprire/chiudere l'interfaccia del banco.

    LocalScript
    local Players = game:GetService("Players")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    -- Rimuovi il pulsante catalogo predefinito
    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
    -- Itera attraverso le regioni di negozio già taggate
    for _, region in CollectionService:GetTagged("ShopRegion") do
    setupRegion(region)
    end
    -- Rileva quando le regioni di negozio non in streaming vengono aggiunte
    CollectionService:GetInstanceAddedSignal("ShopRegion"):Connect(setupRegion)

Promemoria di prossimità

Come alternativa alla vista catalogo 2D, puoi aggiungere promemoria di prossimità sugli oggetti di gioco. Questo incoraggia i giocatori a scoprire articoli nell'ambiente 3D, visualizzarli sul proprio avatar, acquistarli e equipaggiarli istantaneamente. Vedi addProximityButton per dettagli.

Cambia l'effetto di equipaggiamento

Per impostazione predefinita, il banco merch mostra un effetto scintillante generico quando un giocatore equipaggia un articolo da esso. Per cambiare l'effetto, imposta particleEmitterTemplate sulla tua istanza di ParticleEmitter in una chiamata a 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à GUI

Per impostazione predefinita, il banco merch nasconde tutte le ScreenGuis e CoreGuis quando la sua interfaccia appare, inclusi la chat, la classifica e altri inclusi da Roblox. Se desideri disabilitare questo comportamento, imposta hideOtherUis su false in una chiamata a configure.

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

Movimento del personaggio

Può essere vantaggioso impedire a un personaggio di muoversi mentre si trova nel banco merch. Questo può essere fatto impostando disableCharacterMovement su true in una chiamata a configure.

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

Riferimento API

Tipi

Articolo

Gli articoli nel banco merch sono rappresentati da un dizionario con le seguenti coppie chiave-valore. Gli articoli possono essere raccolti tramite la funzione getItems o l'evento itemAdded.

ChiaveTipoDescrizione
assetIdnumberID catalogo dell'articolo, come passato a addItemAsync.
titlestringTitolo dell'articolo come appare nel catalogo.
pricenumberPrezzo dell'articolo in Robux.
descriptionstringDescrizione dell'articolo come appare nel catalogo.
assetTypestringStringa che rappresenta il tipo di accessorio dell'articolo.
isOwnedboolSe il giocatore attuale possiede l'articolo.
creatorNamestringCreatore dell'articolo come mostrato nel catalogo.
creatorTypeEnum.CreatorTypeTipo di creatore per l'articolo.

Enums

MerchBooth.Controls

Utilizzato insieme a setControlKeyCodes per personalizzare i tasti e i pulsanti del gamepad per interagire con il banco merch.

NomeRiepilogo
ProximityPromptsTasto e/o pulsante del gamepad per aprire la vista dell'articolo quando sono configurati promemoria di prossimità.
OpenMerchBoothTasto e/o pulsante del gamepad per aprire il banco merch.
CloseMerchBoothTasto e/o pulsante del gamepad per chiudere il banco merch.
FilterTasto e/o pulsante del gamepad per utilizzare il menu a discesa Filtro predefinito nell'area in alto a sinistra della vista catalogo.
ViewItemTasto e/o pulsante del gamepad per aprire una vista specifica dell'articolo del banco 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
})

Funzioni

configure

configure(config: table)

Sovrascrive le opzioni di configurazione predefinite lato client tramite le seguenti chiavi/valori nella tabella config. Questa funzione può essere chiamata solo da un LocalScript.

ChiaveDescrizionePredefinito
backgroundColorColore di sfondo principale della finestra (Color3).[0, 0, 0]
cornerRadiusRaggio degli angoli per la finestra principale (UDim).(0, 16)
cornerRadiusSmallRaggio degli angoli per gli elementi all'interno della finestra (UDim).(0, 8)
textFontFont del "testo principale" come prezzi, descrizioni e altre informazioni generali (Enum.Font).Gotham
textSizeDimensione del testo principale.14
textColorColore del testo principale (Color3).[255, 255, 255]
secondaryTextColorColore utilizzato per alcune variazioni del testo principale (Color3).[153, 153, 158]
headerFontFont del testo dell'intestazione utilizzato per il titolo della finestra (Enum.Font).GothamMedium
headerTextSizeDimensione del testo dell'intestazione utilizzato per il titolo della finestra.18
titleFontFont del testo del titolo utilizzato per i nomi degli articoli nella pagina dei dettagli dell'articolo (Enum.Font).GothamBold
titleTextSizeDimensione del testo del titolo utilizzato per i nomi degli articoli nella pagina dei dettagli dell'articolo.28
buttonColorColore di sfondo per i pulsanti più grandi in uno stato cliccabile, come il pulsante principale di acquisto nella vista dell'articolo (Color3).[255, 255, 255]
buttonTextColorColore del testo per i pulsanti più grandi in uno stato cliccabile, come il pulsante principale di acquisto nella vista dell'articolo (Color3).[0, 0, 0]
secondaryButtonColorColore di sfondo per i pulsanti più piccoli come i pulsanti di prezzo nella vista catalogo o il pulsante Prova On (Color3).[34, 34, 34]
secondaryButtonTextColorColore del testo per i pulsanti più piccoli come i pulsanti di prezzo nella vista catalogo o il pulsante Prova On (Color3).[255, 255, 255]
inactiveButtonColorColore di sfondo per tutti i pulsanti in uno stato non cliccabile (Color3).[153, 153, 158]
inactiveButtonTextColorColore del testo per tutti i pulsanti in uno stato non cliccabile (Color3).[255, 255, 255]
particleEmitterTemplateOpzionale istanza personalizzata di ParticleEmitter che appare e viene riprodotta all'equipaggiamento.
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)

Aggiunge in modo asincrono un articolo al banco merch in modo che sia idoneo per l'acquisto nel gioco. assetId è l'ID asset dell'articolo, productType è l'enum Enum.InfoType dell'articolo e hideFromCatalog può essere utilizzato per nascondere l'articolo nella vista catalogo.

Vedi Aggiunta di Articoli per dettagli, poiché l'uso varia leggermente per asset rispetto a pass o prodotti per sviluppatori.

Script - Add Avatar Assets
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
607702162, -- Cappellino da Baseball Roblox
4819740796, -- Robox
1374269, -- Orecchie di Gatto
11884330, -- Occhiali da Nerd
10476359, -- Cappello di Carta
}
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, -- Armatura ColdFyre
28521575, -- Scudo di Melma
}
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, -- Ricarica Mana
1257880672, -- Pozione di Guarigione
}
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

Restituisce un dizionario che rappresenta tutti gli articoli attualmente registrati. Ogni chiave è l'ID asset di un articolo come stringa, e il valore di ogni chiave è un Articolo. Questa funzione può essere chiamata solo da 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)

Deregistra un articolo precedentemente aggiunto con addItemAsync, rimuovendo la sua tessera nella vista catalogo e eventuali promemoria di prossimità ad esso assegnati. Questa funzione può essere chiamata solo da 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
-- Dopo un po', rimuovi l'articolo
task.wait(5)
MerchBooth.removeItem(4819740796)
end

addProximityButton

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

Aggiunge un promemoria di prossimità sopra l'adornee dato che attiverà la visualizzazione dell'acquisto di un articolo, dato il suo ID asset. Questo può essere utilizzato come alternativa alla vista catalogo 2D, incoraggiando i giocatori a scoprire articoli nell'ambiente 3D.

Nota che un articolo deve essere aggiunto tramite addItemAsync prima che un pulsante di prossimità possa essere assegnato ad esso. Vedi anche removeProximityButton per rimuovere il promemoria di prossimità da un oggetto.

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)

Rimuove un promemoria di prossimità generato tramite addProximityButton. Questa funzione può essere chiamata solo da 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
-- Dopo un po', rimuovi il promemoria
task.wait(5)
MerchBooth.removeProximityButton(item)
end

setCatalogSort

setCatalogSort(sortFunction: function): boolean

Imposta la funzione di ordinamento sortFunction da utilizzare nella vista catalogo. La funzione di ordinamento fornita può utilizzare logica basata sulle informazioni Articolo come price o title. Questa funzione può essere chiamata solo da un LocalScript.

Ecco alcuni esempi per ordinare il catalogo:

Prezzo Basso-Ad Alto
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return a.price < b.price
end)
Prezzo Alto-Ad Basso
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return a.price > b.price
end)
Prezzo Basso-Ad Alto & Alfabetico
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)

Configura i valori dei tasti e dei pulsanti per le interazioni con il banco merch. Il primo parametro deve essere un enum MerchBooth.Controls e il secondo parametro una tabella contenente i tasti keyboard e/o gamepad con i corrispondenti enum Enum.KeyCode.

Enum (control)Valori Predefiniti 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()

Apre la finestra del banco merch (se chiusa) e naviga alla vista catalogo. Questa funzione può essere chiamata solo da 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)

Naviga alla vista di un singolo articolo dato il itemId, aprendo la finestra del banco merch se è attualmente chiusa. Questa funzione può essere chiamata solo da 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)

Attiva/disattiva il pulsante catalogo sul lato destro dello schermo. Questo è utile quando si implementa un pulsante personalizzato o si limita l'aspetto del banco merch a regioni o promemoria di prossimità. Può essere chiamato solo da un LocalScript.

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

isMerchBoothOpen

isMerchBoothOpen(): Tuple

Restituisce true se la vista catalogo o la vista articolo è aperta. Se la vista articolo è aperta, l'ID asset dell'articolo viene restituito come secondo valore. Questa funzione può essere chiamata solo da 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()

Chiude la finestra del banco merch. Questa funzione può essere chiamata solo da un LocalScript.

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

isMerchBoothEnabled

isMerchBoothEnabled(): boolean

Questa funzione può essere utilizzata insieme a setEnabled per controllare se il banco merch è attualmente abilitato o meno. Può essere chiamata solo da un LocalScript.

setEnabled

setEnabled(enabled: boolean)

Imposta se l'intero banco merch è abilitato o meno. Quando disabilitato, questa funzione rimuove l'intera interfaccia, inclusi i promemoria di prossimità, e disconnette tutti gli eventi. Questa funzione può essere chiamata solo da un LocalScript.

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

Eventi

itemAdded

Si attiva quando un articolo viene aggiunto tramite addItemAsync. Questo evento può essere connesso solo in un Script.

Parametri
assetId: numberID asset dell'articolo.
itemInfo: tableDizionario delle informazioni Articolo come price o title.
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemAdded:Connect(function(assetId, itemInfo)
print("Articolo aggiunto con ID asset di", assetId)
print(itemInfo)
end)

itemRemoved

Si attiva quando un articolo viene rimosso tramite removeItem. Questo evento può essere connesso solo in un Script.

Parametri
assetId: numberID asset dell'articolo.
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemRemoved:Connect(function(assetId)
print("Articolo rimosso con ID asset di", assetId)
end)

merchBoothOpened

Si attiva quando viene aperta la vista catalogo o la vista dei dettagli dell'articolo.

LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothOpened:Connect(function()
print("Vista del banco aperta")
end)

merchBoothClosed

Si attiva quando viene chiusa la vista catalogo o la vista dei dettagli dell'articolo.

LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothClosed:Connect(function()
print("Vista del banco chiusa")
end)

catalogViewOpened

Si attiva quando viene aperta la vista catalogo.

LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewOpened:Connect(function()
print("Vista catalogo aperta")
end)

catalogViewClosed

Si attiva quando viene chiusa la vista catalogo.

LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewClosed:Connect(function()
print("Vista catalogo chiusa")
end)

itemViewOpened

Si attiva quando viene aperta la vista dei dettagli dell'articolo.

LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewOpened:Connect(function()
print("Vista articolo aperta")
end)

itemViewClosed

Si attiva quando viene chiusa la vista dei dettagli dell'articolo.

LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewClosed:Connect(function()
print("Vista articolo chiusa")
end)
© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.