Cabine de artigos

O módulo de desenvolvedor MerchBooth permite que você ofereça ativos de avatar, passese produtos para desenvolvedor para venda diretamente dentro da sua experiência. Os jogadores podem pesquisar itens, visualizar recursos em seu próprio avatar, comprar itens e usá-los ou equipá-los instantaneamente — tudo sem sair de sua experiência. Isso pode ajudá-lo a monetizar sua experiência e obter receita por meio da taxa de afiliado de 40%, associada à venda de itens de outros criadores.

Uso do módulo

Instalação

Para usar o módulo MerchBooth em uma experiência:

  1. Na aba Exibir, abra a Caixa de ferramentas e selecione a aba Mercado.

    Botão de ativação da Caixa de ferramentas no Studio.
  2. Verifique se a ordenação de Modelos está selecionada e, em seguida, clique no botão Exibir Tudo para Categorias.

  3. Encontre e clique no painel DEV MODULES

  4. Localize o módulo Merch Booth e clique nele, ou arraste-o e solte-o em uma visualização 3D.

  5. Na janela do Explorador, mova o modelo MerchBooth inteiro para o ServerScriptService. Ao executar a experiência, o módulo será distribuído para vários serviços e começará a ser executado.

Configuração

O módulo é pré-configurado para funcionar na maioria dos casos de uso, mas pode ser facilmente personalizado por meio da função configurar. Por exemplo, para criar um tema mais leve e desativar o botão Filtro padrão na área superior esquerda da visualização do catálogo:

  1. Em StarterPlayerScripts, crie um novo Class. LocalScript e renomeie-o para ConfigureMerchBooth.

  2. Cole o seguinte código dentro do script novo.

    LocalScript - ConfigureMerchBooth

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

Adicionar itens

O que é um Merch Booth sem merch? As seções a seguir descrevem como adicionar ativos de avatar, passes e produtos de desenvolvedor para seu Merch Booth.

Ativos de avatar

Itens como roupas e acessórios devem ser adicionados por meio de seu ID de ativo localizado na página de detalhes do item na Loja do avatar.

  1. Crie um Class. Script dentro do ServerScriptService e cole no próximo código.

    Script - Add Avatar Assets

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    }
    for _, assetId in ipairs(items) do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    print(errorMessage)
    end
    end
  2. Copie os IDs de ativos do item do URL do site Loja de Avatar. Por exemplo, o ID do Boné de Basebol da Roblox é 607702162.

  3. Cole cada ID copiado em uma lista delimitada por vírgulas, dentro da items tabela . Por padrão, os itens aparecem na visualização do catálogo em ordem alfabética, mas você personalizar a ordenação usando o setCatalogSort.

    Script - Add Avatar Assets

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

Passes

Adicionar passes exige IDs de passes que podem ser encontrados no Painel de criações.

  1. Crie um Class. Script dentro do ServerScriptService e cole no próximo código.

    Script - Add Passes

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    }
    for _, assetId in ipairs(items) do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    print(errorMessage)
    end
    end
  2. Navegue até o Painel de Criações e selecione a experiência.

  3. Na coluna à esquerda, clique em Itens associados e, em seguida, selecione PASSES.

  4. Clique com o botão direito do mouse em um passe e selecione Copiar ID do ativo.

  5. Cole cada ID copiado em uma lista delimitada por vírgulas dentro da items tabela e inclua Enum. InfoType. GamePass como o segundo parâmetro para addItemAsync para indicar que os itens são passes. Por padrão, os itens aparecerão na visualização do catálogo em ordem alfabética, mas a ordenação pode ser personalizada por meio do setCatalogSort.

    Script - Add Passes

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

Produtos do Desenvolvedor

Adicionar produtos de desenvolvedor exige IDs de produtos que podem ser encontrados no Painel de Criações.

  1. Crie um Class. Script dentro do ServerScriptService e cole no próximo código.

    Script - Add Developer Products

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    }
    for _, assetId in ipairs(items) do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    print(errorMessage)
    end
    end
  2. Navegue até o Painel de Criações e selecione a experiência.

  3. Na coluna à esquerda, clique em Itens associados e, em seguida, selecione PRODUTOS DE DESENVOLVEDOR.

  4. Clique com o botão direito do mouse em um produto e selecione Copiar ID do ativo.

  5. Cole cada ID copiado em uma lista delimitada por vírgulas dentro da items tabela e inclua Enum. InfoType. Product como o segundo parâmetro para addItemAsync para indicar que os itens são produtos de desenvolvedor. Por padrão, os itens aparecem na visualização do catálogo em ordem alfabética, mas você personalizar a ordenação usando o setCatalogSort.

    Script - Add Developer Products

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    1236602053, -- Mana Refill
    1257880672, -- Healing Potion
    }
    for _, assetId in ipairs(items) do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId, Enum. InfoType. Product)
    end)
    if not success then
    print(errorMessage)
    end
    end

Por padrão, um botão de catálogo do lado direito permite que os usuários abram o Booth a qualquer momento.

Em alguns casos, pode ser útil remover este botão e conectar o seu próprio:

  1. Crie um novo botão conforme descrito emBotões e entrada de texto.

  2. Crie um LocalScript como secundário para o objeto do botão.

  3. Cole o seguinte código dentro do script novo.

    LocalScript - Custom Catalog Button

    Regiões compráveis

Regiões compráveis

Uma maneira útil de impulsionar as compras em sua experiência é mostrar automaticamente o estande de produtos quando um usuário entra em uma área.

Para criar uma região comprável:

  1. Crie um Class. BasePart. Anchored|Anchored bloco que engloba a região de detecção.

    Bloqueie para detectar quando os jogadores se aproximam da frente do balcão da loja
  2. Usando o Editor de marcadores, acessível a partir da guia Ver, aplique a guia ShopRegion para bloquear, assim CollectionService poderá detectá-lo.

  3. Desabilite as partes de Class. BasePart. CanCollide|CanCollide e Class. BasePart. CanQuery|CanQuery as propriedades para que os objetos não colidam fisicamente com ela e os raycasts não a detectem. Defina também o Class. BasePart. Transparency|Transparency para o máximo para ocultá-lo dos usuários na experiência.

  4. Insira um novo Class. LocalScript em StarterPlayerScripts.

  5. No novo script, cole o seguinte código que usa os Class. BasePart. Touched|Touched e Class. BasePart. TouchEnded|TouchEnded eventos para detectar quando os usuários entram/saem da região e chama openMerchBooth e closeMerchBooth para abrir/fechar a interface gráfica do Booth.

    LocalScript

    local Players = game:GetService("Players")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- Remove the default catalog button
    MerchBooth.toggleCatalogButton(false)
    -- Iterate through all tagged parts
    for _, region in ipairs(CollectionService:GetTagged("ShopRegion")) do
    region. Touched:Connect(function(otherPart)
    local character = Players. LocalPlayer. Character
    if character and character:FindFirstChild("HumanoidRootPart") == otherPart then
    MerchBooth.openMerchBooth()
    end
    end)
    region. TouchEnded:Connect(function(otherPart)
    local character = Players. LocalPlayer. Character
    if character and character:FindFirstChild("HumanoidRootPart") == otherPart then
    MerchBooth.closeMerchBooth()
    end
    end)
    end

Indicadores de proximidade

Como alternativa à visualização de catálogo 2D, você pode adicionar avisos de proximidade sobre objetos na experiência. Isso incentiva os usuários a descobrir itens no ambiente 3D, visualizá-los em seu próprio avatar, comprá-los e equipá-los instantaneamente. Consulte addProximityButton para obter detalhes.

Alteração do efeito de equipar

Por padrão, o estande de produtos mostra um efeito de brilho genérico quando um usuário equipa um item dele. Para alterar o efeito, defina particleEmitterTemplate a sua própria instância de Class. ParticleEmitter em uma chamada de configuração.

LocalScript - ConfigureMerchBooth

Avisos de proximidade

Visibilidade da interface gráfica

Por padrão, o Merch Booth oculta todos Class. ScreenGui|ScreenGuis e Class. CoreGui|CoreGuis quando sua interface do usuário aparece, incluindo o chat, classificação e outros, incluídos pela Roblox. Se você deseja desabilitar esse comportamento, defina hideOtherUis como false em uma chamada de configuração.

LocalScript - ConfigureMerchBooth

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

Movimento do personagem

Pode ser vantajoso impedir que um personagem se mova enquanto ele estiver no Merch Booth. Isso pode ser feito definindo disableCharacterMovement como true em uma chamada de configuração.

LocalScript - ConfigureMerchBooth

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

Referência de API

Tipos

Item

Os itens no Merch Booth são representados por um dicionário com os seguintes pares de chave-valor. Os itens podem ser coletados por meio da função getItems ou do evento itemAdded.

ChaveTipoDescrição
assetIdnúmeroID do catálogo do item, conforme passado para addItemAsync.
titlestringTítulo do item, como aparece no catálogo.
pricenúmeroPreço do item em Robux.
descriptionstringDescrição do item conforme aparece no catálogo.
assetTypestringString representando o tipo acessório do item.
isOwnedbooleanSe o usuário atual possui o item.
creatorNamestringCriador de itens, como mostrado no catálogo.
creatorTypeEnum. CreatorTypeTipo de criador para o item.

Enumeradores

MerchBooth. Controls

Usado junto com setControlKeyCodes para personalizar as teclas e os botões do gamepad para interagir com o Merch Booth.

NomeResumo
ProximityPromptsTecla e/ou botão de gamepad para abrir a visualização do item quando os avisos de proximidade são configurados.
OpenMerchBoothTecla ou botão do gamepad para abrir o Merch Booth.
CloseMerchBoothBotão de tecla e/ou gamepad fechar o Merch Booth.
FilterTecla e/ou botão do gamepad para usar o menu suspenso Filtro padrão na área superior esquerda da visualização do catálogo.
ViewItemTecla e/ou botão do gamepad para abrir uma visualização específica do item do Merch Boot.
LocalScript

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

Funções

configurar

configure(config:table)

Substitui as opções de configuração padrão do cliente por meio das seguintes chaves-valores na tabela config. Esta função só poder ser chamada de um Class. LocalScript.

Aparência

ChaveDescriçãoPadrão
backgroundColorCor de fundo principal da janela (Datatype. Color3).[0, 0, 0]
cornerRadiusRaio do canto para a janela principal (UDim).(0, 16)
cornerRadiusSmallRaio do canto para elementos dentro da janela (UDim).(0, 8)
textFontFonte do "texto principal", como preços, descrições e outras informações gerais (Enum. Font).Gotham
textSizeTamanho do texto principal.13
textColorCor do texto principal (Datatype. Color3).[255, 255, 255]
secondaryTextColorCor usada para algumas variações do texto principal (Datatype. Color3).[153, 153, 158]
headerFontFonte do texto do cabeçalho usado para o título da janela (Enum. Font).GothamMedium
headerTextSizeTamanho do texto do cabeçalho usado para o título da janela.18
titleFontFonte do texto do título usado para nomes de itens na página de detalhes do item (Enum. Font).GothamBold
titleTextSizeTamanho do texto do título usado para nomes de itens na página de detalhes do item.28
buttonColorCor de fundo para botões maiores em um estado clicável, como o botão de compra principal na visualização do item (Datatype. Color3).[255, 255, 255]
buttonTextColorCor do texto para botões maiores em um estado clicável, como o botão de compra principal na visualização do item (Datatype. Color3).[0, 0, 0]
secondaryButtonColorCor de fundo para botões menores, como os botões de preço na visualização do catálogo ou o botão Experimente (Datatype. Color3).[34, 34, 34]
secondaryButtonTextColorCor do texto para botões menores, como os botões de preço na visualização do catálogo ou o botão Experimente (Datatype. Color3).[255, 255, 255]
inactiveButtonColorCor de fundo para todos os botões em um estado não clicável (Datatype. Color3).[153, 153, 158]
inactiveButtonTextColorCor do texto para todos os botões em um estado não clicável (Datatype. Color3).[255, 255, 255]
particleEmitterTemplateInstância personalizada opcionalClass. ParticleEmitter que aparece e liga o equipamento.

ProximityPrompts`

ChaveDescriçãoPadrão
proximityButtonActivationDistanceA distância máxima que o personagem de um jogador pode estar do aviso adornado para que o aviso apareça.10
proximityButtonExclusivityEnum. ProximityPromptExclusivity especificando quais avisos podem ser mostrados ao mesmo tempo.OnePerButton
proximityButtonOffsetCompensação de pixel aplicado à IU do aviso (Datatype. Vector2).(0, 0)
proximityButtonPulseCountQuantos "pulsos" ocorrem em torno dos botões de proximidade antes de parar.3

Comportamento

ChaveDescriçãoPadrão
useFiltersAtiva/desativa o botão Filtro mostrado no catálogo.true
disableCharacterMovementSe true, impede que o personagem se mova enquanto o Merch Booth estiver aberto.false
hideOtherUisSe true, o Merch Booth oculta todos Class. ScreenGui|ScreenGuis e Class. CoreGui|CoreGuis quando sua IU aparece.true
closeWhenFarFromPromptSe truee se o jogador abriu uma visualização de item por meio de um aviso de proximidade, o Merch Booth fechará automaticamente quando o jogador se afastar mais do objeto de aviso do que sua distância de ativação.true
LocalScript

Avisos de proximidade

addItemAsync

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

Adiciona de forma assíncrona um item ao Merch Booth para que seja elegível para compra na experiência. assetId é o ID do ativo do item, productType é o enum Enum. InfoType do item, e hideFromCatalog pode ser usado para ocultar o item na exibição do catálogo.

Consulte Adicionar itens para obter detalhes, à medida que o uso varia ligeiramente para ativos em relação aos passes de jogo ou produtos de desenvolvedor.

Script - Add Avatar Assets

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

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

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
1236602053, -- Mana Refill
1257880672, -- Healing Potion
}
for _, assetId in ipairs(items) do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId, Enum.InfoType.Product)
end)
if not success then
print(errorMessage)
end
end

getItems

getItems():table

Retorna um dicionário representando todos os itens atualmente registrados. Cada chave é o ID do ativo de um item como uma string e o valor de cada chave é um Item. Esta função só pode ser chamada a partir de um Script.

Script

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

removeItem

removeItem(assetId:number)

Cancela o registro de um item adicionado anteriormente com addItemAsync, removendo seu painel na visualização do catálogo e quaisquer avisos de proximidade atribuídos a ele. Esta função só pode ser chamada a partir de um Script.

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
-- After some time, remove the item
task.wait(5)
MerchBooth.removeItem(4819740796)
end

addProximityButton

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

Adiciona um aviso de proximidade sobre o dado adornee que acionará a exibição da visualização de compra de um item, dado seu ID de ativo. Isso pode ser usado como uma alternativa à visualização de catálogo 2D, incentivando os usuários a descobrir itens no ambiente 3D.

Observe que um item deve ser adicionado via addItemAsync antes que um aviso de proximidade possa ser atribuído a ele. Consulte também removeProximityButton para remover o aviso de proximidade de um objeto.

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("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: Class. BasePart|Class. Model|Class. Attachment|Attachment)

Remove um aviso de proximidade gerado por meio de addProximityButton. Esta função só pode ser chamada a partir de um Class. Script.

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("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
-- After some time, remove the prompt
task.wait(5)
MerchBooth.removeProximityButton(item)
end

setCatalogSort

setCatalogSort(sortFunction:function):boolean

Define a função de classificação sortFunction a ser usada na visualização do catálogo. A função de classificação fornecida pode usar a lógica ligado às informações do item como price ou title. Esta função só poder ser chamada de um Class. LocalScript.

Aqui estão alguns exemplos para classificar o catálogo:

Price Low-to-High

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("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:WaitForChild("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:WaitForChild("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 os valores de chave e botão para interações com o estande de produtos. O primeiro parâmetro deve ser um MerchBooth. Controls enum e o segundo parâmetro uma tabela contendo as chaves keyboard e/ou gamepad com os correspondentes Enum. KeyCode enums.

Enum (control)Chaves/valores keyCodespadrão
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:WaitForChild("MerchBooth"))
MerchBooth.setControlKeyCodes(MerchBooth. Controls. ProximityPrompts, {
keyboard = Enum. KeyCode. Q,
gamepad = Enum. KeyCode. ButtonL1,
})

openMerchBooth

openMerchBooth():

Abre a janela do Merch Booth (se fechada) e navega para a visualização do catálogo. Esta função só poder ser chamada de um Class. LocalScript.

LocalScript

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

openItemView

openItemView(itemId:number)

Navega para a visualização de item único do itemId fornecido, abrindo a janela do Merch Booth se estiver fechada no momento. Esta função só poder ser chamada de um Class. LocalScript.

LocalScript

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

toggleCatalogButton

toggleCatalogButton(enabled:boolean)

Ativa/desativa o botão de catálogo no lado direito da tela. Isso é útil ao implementar um botão personalizado ou limitar aparência do Merch Booths para regiões ou avisos de proximidade. Só pode ser chamado de um Class. LocalScript.

LocalScript

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

isMerchBoothOpen

isMerchBoothOpen():Tuple

Devolve true se o catálogo ou item visão está aberto. Se a visualização do item estiver aberta, o ID do ativo do item será retornado como o segundo valor. Esta função só poder ser chamada de um Class. LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("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():

Fecha a janela do Merch Boot. Esta função só poder ser chamada de um Class. LocalScript.

LocalScript

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

isMerchBoothEnabled

isMerchBoothEnabled():boolean

Esta função pode ser usada em conjunto com setEnabled para verificar se o Merch Booth está habilitado ou não. Só pode ser chamado de um Class. LocalScript.

setEnabled

setEnabled(enabled:boolean)

Define se todo o Merch Booth está ativado ou não. Quando desabilitada, esta função remove toda a IU, incluindo avisos de proximidade e desconecta todos os eventos. Esta função só poder ser chamada de um Class. LocalScript.

LocalScript

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

Eventos

itemAdded

itemAdded(assetId:number, itemInfo:table):RBXScriptSignal

É acionado quando um item é adicionado por meio de addItemAsync. O evento só pode ser conectado a um Class. Script.

Parâmetros
assetId: numberID do ativo do item.
itemInfo: tableDicionário de informações do Item como price ou title.
Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemAdded:Connect(function(assetId, itemInfo)
print("Item added with asset ID of", assetId)
print(itemInfo)
end)

itemRemoved

itemRemoved(assetId:number):RBXScriptSignal

É acionado quando um item é removido por meio de removeItem. O evento só pode ser conectado a um Class. Script.

Parâmetros
assetId: numberID do ativo do item.
Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemRemoved:Connect(function(assetId)
print("Item removed with asset ID of", assetId)
end)

merchBoothOpened

merchBoothOpened():RBXScriptSignal

É acionado quando se abre o catálogo item ou visualização de detalhe do item.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.merchBoothOpened:Connect(function()
print("Booth view opened")
end)

merchBoothClosed

merchBoothClosed():RBXScriptSignal

É acionado quando o catálogo ou visualização do detalhe do item estão fechados.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.merchBoothClosed:Connect(function()
print("Booth view closed")
end)

catalogViewOpened

catalogViewOpened():RBXScriptSignal

É acionado quando a visualização do catálogo se abre.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.catalogViewOpened:Connect(function()
print("Catalog view opened")
end)

catalogViewClosed

catalogViewClosed():RBXScriptSignal

É acionado quando a visualização de catálogo se fecha.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.catalogViewClosed:Connect(function()
print("Catalog view closed")
end)

itemViewOpened

itemViewOpened():RBXScriptSignal

É acionado quando a visualização do detalhe do item se abre.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemViewOpened:Connect(function()
print("Item view opened")
end)

itemViewClosed

itemViewClosed():RBXScriptSignal

É acionado quando a visualização do detalhe do item se fecha.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemViewClosed:Connect(function()
print("Item view closed")
end)