Quiosque de Merch

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

O MerchBooth módulo de desenvolvedor permite que você ofereça ativos de avatar, passes e produtos de desenvolvedor para venda diretamente dentro da sua experiência. Os jogadores podem navegar por itens, visualizar ativos em seu próprio avatar, comprar itens e usá-los ou equipá-los instantaneamente — tudo isso sem sair da sua experiência. Isso pode ajudar você a monetizar sua experiência e gerar receita através 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. No menu Janela do Studio ou na barra de ferramentas da aba Início, abra a Caixa de Ferramentas e selecione a aba Loja do Criador.

  2. Certifique-se de que a ordenação Modelos está selecionada, então clique no botão Ver Todos para Categorias.

  3. Localize e clique no bloco Pacotes.

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

  5. Na janela Explorador, mova todo o modelo MerchBooth para ReplicatedStorage. Ao executar a experiência, o módulo começará a funcionar.

Configuração

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

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

  2. Cole o seguinte código no novo 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
    })

Adicionar itens

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

Ativos de avatar

Itens como roupas e acessórios devem ser adicionados através de seu ID do ativo localizado na página de detalhes do item na Loja de Avatares.

  1. Crie um Script dentro de ServerScriptService e cole o seguinte código.

    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. Copie os IDs dos ativos dos itens da URL do site da Loja de Avatares. Por exemplo, o ID do Boné de Beisebol do Roblox é 607702162.

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

    Script - Add Avatar Assets

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    local items = {
    607702162, -- Boné de Beisebol do Roblox
    4819740796, -- Robox
    1374269, -- Orelhas de Gatinho
    11884330, -- Óculos Nerd
    10476359, -- Chapéu de Papel
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end

Passes

Adicionar passes requer IDs de passes que podem ser localizados no Painel do Criador.

  1. Crie um Script dentro de ServerScriptService e cole o seguinte código.

    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. Navegue até o Painel do Criador e selecione a experiência.

  3. Na coluna à esquerda, sob Monetização, selecione Passes.

  4. Passe o mouse sobre a miniatura de um passe, clique no botão e selecione Copiar ID do Ativo no menu de contexto.

  5. Cole cada ID copiado em uma lista delimitada por vírgulas dentro da tabela items **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 através de setCatalogSort.

    Script - Add Passes

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    local items = {
    4343758, -- Armadura ColdFyre
    28521575, -- Escudo de 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

Produtos de Desenvolvedor

Adicionar produtos de desenvolvedor requer IDs de produtos que podem ser localizados no Painel do Criador.

  1. Crie um Script dentro de ServerScriptService e cole o seguinte código.

    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. Navegue até o Painel do Criador e selecione a experiência.

  3. Na coluna à esquerda, sob Monetização, selecione Produtos de Desenvolvedor.

  4. Passe o mouse sobre a miniatura de um produto, clique no botão e selecione Copiar ID do Ativo no menu de contexto.

  5. Cole cada ID copiado em uma lista delimitada por vírgulas dentro da tabela items **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ê pode personalizar a ordenação usando setCatalogSort.

    Script - Add Developer Products

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    local items = {
    1236602053, -- Reabastecimento de Mana
    1257880672, -- Poção de Cura
    }
    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

Botão de catálogo personalizado

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

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

  1. Crie um novo botão conforme descrito em Botões.

  2. Crie um LocalScript como filho do objeto do botão.

  3. Cole o seguinte código no novo script.

    LocalScript - Custom Catalog Button

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    -- Remover o botão de catálogo padrão
    MerchBooth.toggleCatalogButton(false)
    -- Conectar o botão personalizado
    script.Parent.Activated:Connect(function()
    MerchBooth.openMerchBooth()
    end)

Regiões compráveis

Uma maneira útil de incentivar compras em sua experiência é mostrar automaticamente o quiosque de merch quando um jogador entra em uma área.

Para criar uma região comprável:

  1. Crie um bloco Anchored que abranja a região de detecção. Certifique-se de que o bloco é alto o suficiente para colidir com a PrimaryPart dos modelos de personagem (HumanoidRootPart por padrão).

    Bloco para detectar quando os jogadores se aproximam da frente do balcão da loja
  2. Usando a seção Tags das propriedades do bloco, aplique a tag ShopRegion ao bloco para que o CollectionService o detecte.

  3. Defina a Transparency da parte para o máximo para escondê-la dos jogadores na experiência. Também desabilite as propriedades CanCollide e CanQuery para que objetos não colidam fisicamente com ela e raycasts não a detectem.

  4. Insira um novo LocalScript em StarterPlayerScripts.

  5. No novo script, cole o seguinte código que usa os eventos Touched e TouchEnded para detectar quando os personagens entram/saem da região e chama openMerchBooth e closeMerchBooth para abrir/fechar a GUI do quiosque.

    LocalScript

    local Players = game:GetService("Players")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    -- Remover o botão de catálogo padrão
    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
    -- Iterar pelas regiões de loja marcadas existentes
    for _, region in CollectionService:GetTagged("ShopRegion") do
    setupRegion(region)
    end
    -- Detectar quando regiões de loja não transmitidas entram
    CollectionService:GetInstanceAddedSignal("ShopRegion"):Connect(setupRegion)

Prompts de proximidade

Como alternativa à visualização 2D do catálogo, você pode adicionar prompts de proximidade sobre objetos dentro da experiência. Isso incentiva os jogadores a descobrirem itens no ambiente 3D, visualizá-los em seus próprios avatares, comprá-los e equipá-los instantaneamente. Consulte addProximityButton para mais detalhes.

Mudar o efeito de equipamento

Por padrão, o quiosque de merch mostra um efeito genérico de brilho quando um jogador equipa um item dele. Para mudar o efeito, defina particleEmitterTemplate para sua própria instância de um ParticleEmitter em uma chamada 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
})

Visibilidade da GUI

Por padrão, o quiosque de merch oculta todas as ScreenGuis e CoreGuis quando sua interface aparece, incluindo o chat, a leaderboard e outros incluídos pelo Roblox. Se você quiser desativar esse comportamento, defina hideOtherUis como false em uma chamada de configure.

LocalScript - ConfigureMerchBooth

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

Movimento do personagem

Pode ser vantajoso impedir que um personagem se mova enquanto está no quiosque de merch. Isso pode ser feito definindo disableCharacterMovement como true em uma chamada de configure.

LocalScript - ConfigureMerchBooth

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

Referência de API

Tipos

Item

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

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

Enums

MerchBooth.Controls

Usado junto com setControlKeyCodes para personalizar as teclas e botões do gamepad para interagir com o quiosque de merch.

NomeResumo
ProximityPromptsTecla e/ou botão do gamepad para abrir a visualização do item quando prompts de proximidade são configurados.
OpenMerchBoothTecla e/ou botão do gamepad para abrir o quiosque de merch.
CloseMerchBoothTecla e/ou botão do gamepad para fechar o quiosque de merch.
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 de item do quiosque 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
})

Funções

configure

configure(config: table)

Substitui opções de configuração padrão do lado do cliente através das seguintes chaves/valores na tabela config. Esta função só pode ser chamada de um LocalScript.

ChaveDescriçãoPadrão
backgroundColorCor de fundo principal da janela (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.14
textColorCor do texto principal (Color3).[255, 255, 255]
secondaryTextColorCor usada para algumas variações do texto principal (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 os nomes dos itens na página de detalhes do item (Enum.Font).GothamBold
titleTextSizeTamanho do texto do título usado para os nomes dos 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 principal de compra na visualização do item (Color3).[255, 255, 255]
buttonTextColorCor do texto para botões maiores em um estado clicável, como o botão principal de compra na visualização do item (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 de Experimentar (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 de Experimentar (Color3).[255, 255, 255]
inactiveButtonColorCor de fundo para todos os botões em um estado não clicável (Color3).[153, 153, 158]
inactiveButtonTextColorCor do texto para todos os botões em um estado não clicável (Color3).[255, 255, 255]
particleEmitterTemplateInstância opcional de ParticleEmitter personalizada que aparece e toca ao equipar.
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)

Adiciona um item ao quiosque de merch de forma assíncrona, tornando-o 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 visualização do catálogo.

Consulte Adicionar Itens para detalhes, pois o uso varia um pouco para ativos em relação a passes de jogo ou produtos de desenvolvedor.

Script - Add Avatar Assets

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
607702162, -- Boné de Beisebol do Roblox
4819740796, -- Robox
1374269, -- Orelhas de Gatinho
11884330, -- Óculos Nerd
10476359, -- Chapéu de Papel
}
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, -- Armadura ColdFyre
28521575, -- Escudo de 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, -- Reabastecimento de Mana
1257880672, -- Poção de Cura
}
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

Retorna um dicionário representando todos os itens registrados atualmente. 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 de um 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)

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

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
-- Após algum tempo, remova o item
task.wait(5)
MerchBooth.removeItem(4819740796)
end

addProximityButton

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

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

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

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)

Remove um prompt de proximidade gerado através de addProximityButton. Esta função só pode ser chamada de um 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
-- Após algum tempo, remova o prompt
task.wait(5)
MerchBooth.removeProximityButton(item)
end

setCatalogSort

setCatalogSort(sortFunction: function): boolean

Define a função de ordenação sortFunction a ser usada na visualização do catálogo. A função de ordenação fornecida pode usar lógica baseada nas informações do Item como price ou title. Esta função só pode ser chamada de um LocalScript.

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

Preço do Menor para o Maior

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return a.price < b.price
end)
Preço do Maior para o Menor

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return a.price > b.price
end)
Preço do Menor para o Maior & Alfabético

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 os valores de teclas e botões para interações com o quiosque de merch. O primeiro parâmetro deve ser um enum MerchBooth.Controls e o segundo parâmetro uma tabela contendo as teclas keyboard e/ou gamepad com os enums correspondentes de Enum.KeyCode.

Enum (control)Teclas/Valores keyCodes Padrã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.MerchBooth)
MerchBooth.setControlKeyCodes(MerchBooth.Controls.ProximityPrompts, {
keyboard = Enum.KeyCode.Q,
gamepad = Enum.KeyCode.ButtonL1,
})

openMerchBooth

openMerchBooth()

Abre a janela do quiosque de merch (se fechada) e navega até a visualização do catálogo. Esta função só pode ser chamada de um 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)

Navega até a visualização de item único do dado itemId, abrindo a janela do quiosque de merch se estiver atualmente fechada. Esta função só pode ser chamada de um 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)

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

LocalScript

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

isMerchBoothOpen

isMerchBoothOpen(): Tuple

Retorna true se o catálogo ou a visualização do item estiver aberto. Se a visualização do item estiver aberta, o ID do ativo do item é retornado como o segundo valor. Esta função só pode ser chamada de um 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()

Fecha a janela do quiosque de merch. Esta função só pode ser chamada de um LocalScript.

LocalScript

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

isMerchBoothEnabled

isMerchBoothEnabled(): boolean

Esta função pode ser usada em conjunto com setEnabled para verificar se o quiosque de merch está atualmente habilitado ou não. Só pode ser chamada de um LocalScript.

setEnabled

setEnabled(enabled: boolean)

Define se todo o quiosque de merch está habilitado ou não. Quando desativado, esta função remove toda a UI, incluindo prompts de proximidade, e desconecta todos os eventos. Esta função só pode ser chamada de um LocalScript.

LocalScript

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

Eventos

itemAdded

Dispara quando um item é adicionado através de addItemAsync. Este evento só pode ser conectado em um 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.MerchBooth)
MerchBooth.itemAdded:Connect(function(assetId, itemInfo)
print("Item adicionado com ID de ativo", assetId)
print(itemInfo)
end)

itemRemoved

Dispara quando um item é removido através de removeItem. Este evento só pode ser conectado em um Script.

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

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemRemoved:Connect(function(assetId)
print("Item removido com ID de ativo", assetId)
end)

merchBoothOpened

Dispara quando a visualização do catálogo ou a visualização de detalhes do item são abertas.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothOpened:Connect(function()
print("Visualização do quiosque aberta")
end)

merchBoothClosed

Dispara quando a visualização do catálogo ou a visualização de detalhes do item é fechada.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothClosed:Connect(function()
print("Visualização do quiosque fechada")
end)

catalogViewOpened

Dispara quando a visualização do catálogo é aberta.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewOpened:Connect(function()
print("Visualização do catálogo aberta")
end)

catalogViewClosed

Dispara quando a visualização do catálogo é fechada.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewClosed:Connect(function()
print("Visualização do catálogo fechada")
end)

itemViewOpened

Dispara quando a visualização de detalhes do item é aberta.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewOpened:Connect(function()
print("Visualização do item aberta")
end)

itemViewClosed

Dispara quando a visualização de detalhes do item é fechada.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewClosed:Connect(function()
print("Visualização do item fechada")
end)
©2026 Roblox Corporation, Roblox, o logotipo Roblox e Powering Imagination estão entre nossas marcas registradas e não registradas nos EUA e em outros países.