Cabina de Merchandising

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

El MerchBooth módulo de desarrollador te permite ofrecer activos de avatar, pases y productos de desarrollador a la venta directamente dentro de tu experiencia. Los jugadores pueden navegar por los elementos, previsualizar activos en su propio avatar, comprar artículos y utilizarlos o equiparlos instantáneamente — todo sin salir de tu experiencia. Esto puede ayudarte a monetizar tu experiencia y generar ingresos a través del 40% de la tarifa de afiliado asociada con la venta de artículos de otros creadores.

Uso del módulo

Instalación

Para utilizar el módulo MerchBooth en una experiencia:

  1. Desde el menú Ventana de Studio o la barra de herramientas de la pestaña Inicio, abre la Caja de Herramientas y selecciona la pestaña Tienda del Creador.

  2. Asegúrate de que esté seleccionada la clasificación de Modelos, luego haz clic en el botón Ver Todo de Categorías.

  3. Localiza y haz clic en el mosaico de Paquetes.

  4. Localiza el módulo Cabina de Merchandising y haz clic en él, o arrástralo y suéltalo en la vista 3D.

  5. En la ventana del Explorador, mueve el modelo completo de MerchBooth a ReplicatedStorage. Al ejecutar la experiencia, el módulo comenzará a funcionar.

Configuración

El módulo está preconfigurado para funcionar en la mayoría de los casos de uso, pero se puede personalizar fácilmente a través de la función configurar. Por ejemplo, para crear un tema más claro y deshabilitar el botón de Filtro predeterminado en la parte superior izquierda de la vista del catálogo:

  1. En StarterPlayerScripts, crea un nuevo LocalScript y renómbralo a ConfigurarCabinaDeMerchandising.

  2. Pega el siguiente código en el nuevo script.

    LocalScript - ConfigurarCabinaDeMerchandising

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

Agregar elementos

¿Qué es una cabina de merchandising sin merchandising? Las siguientes secciones describen cómo agregar activos de avatar, pases y productos de desarrollador a tu cabina de merchandising.

Activos de avatar

Elementos como ropa y accesorios deben ser añadidos a través de su ID de activo ubicado en la página de detalles del artículo en la Tienda de Avatares.

  1. Crea un Script dentro de ServerScriptService y pega el siguiente código.

    Script - Agregar Activos de Avatar

    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 los ID de activos de los artículos desde su URL de la Tienda de Avatares. Por ejemplo, el ID del Gorra de Béisbol de Roblox es 607702162.

  3. Pega cada ID copiado en una lista delimitada por comas dentro de la tabla items. Por defecto, los elementos aparecen en la vista del catálogo en orden alfabético, pero puedes personalizar la clasificación usando setCatalogSort.

    Script - Agregar Activos de Avatar

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    local items = {
    607702162, -- Gorra de Béisbol de Roblox
    4819740796, -- Robox
    1374269, -- Orejas de Gatito
    11884330, -- Gafas de Nerd
    10476359, -- Sombrero de Papel
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end

Pases

Agregar pases requiere los ID de pase que pueden encontrarse en el Tablero del Creador.

  1. Crea un Script dentro de ServerScriptService y pega el siguiente código.

    Script - Agregar Pases

    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. Navega al Tablero del Creador y selecciona la experiencia.

  3. En la columna izquierda, bajo Monetización, selecciona Pases.

  4. Coloca el cursor sobre la miniatura de un pase, haz clic en el botón y selecciona Copiar ID de Activo del menú contextual.

  5. Pega cada ID copiado en una lista delimitada por comas dentro de la tabla items **y** incluye Enum.InfoType.GamePass` como segundo parámetro para addItemAsync para indicar que los ítems son pases. Por defecto, los elementos aparecerán en la vista del catálogo en orden alfabético, pero la clasificación puede ser personalizada a través de setCatalogSort.

    Script - Agregar Pases

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

Productos de Desarrollador

Agregar productos de desarrollador requiere los ID de producto que pueden encontrarse en el Tablero del Creador.

  1. Crea un Script dentro de ServerScriptService y pega el siguiente código.

    Script - Agregar Productos de Desarrollador

    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. Navega al Tablero del Creador y selecciona la experiencia.

  3. En la columna izquierda, bajo Monetización, selecciona Productos de Desarrollador.

  4. Coloca el cursor sobre la miniatura de un producto, haz clic en el botón y selecciona Copiar ID de Activo del menú contextual.

  5. Pega cada ID copiado en una lista delimitada por comas dentro de la tabla items **y** incluye Enum.InfoType.Product` como segundo parámetro para addItemAsync para indicar que los ítems son productos de desarrollador. Por defecto, los elementos aparecerán en la vista del catálogo en orden alfabético, pero puedes personalizar la clasificación usando setCatalogSort.

    Script - Agregar Productos de Desarrollador

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    local items = {
    1236602053, -- Recarga de Mana
    1257880672, -- Poción de Curación
    }
    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ón de catálogo personalizable

Por defecto, un botón de catálogo en el lado derecho permite a los jugadores abrir la cabina en cualquier momento.

En algunos casos, puede ser útil eliminar este botón y conectar tu propio botón:

  1. Crea un nuevo botón como se detalla en Botones.

  2. Crea un LocalScript como hijo del objeto botón.

  3. Pega el siguiente código en el nuevo script.

    LocalScript - Botón de Catálogo Personalizado

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    -- Eliminar el botón de catálogo predeterminado
    MerchBooth.toggleCatalogButton(false)
    -- Conectar el botón personalizado
    script.Parent.Activated:Connect(function()
    MerchBooth.openMerchBooth()
    end)

Regiones comprables

Una manera útil de impulsar compras en tu experiencia es mostrar automáticamente la cabina de merchandising cuando un jugador entra en un área.

Para crear una región comprable:

  1. Crea un bloque Anchored que abarque la región de detección. Asegúrate de que el bloque sea lo suficientemente alto para colisionar con la PrimaryPart de los modelos de personajes (HumanoidRootPart por defecto).

    Bloque para detectar cuando los jugadores se acercan al mostrador de la tienda
  2. Usando la sección de Etiquetas de las propiedades del bloque, aplica la etiqueta ShopRegion al bloque para que CollectionService lo detecte.

  3. Establece la Transparency del bloque al máximo para ocultarlo de los jugadores en la experiencia. También desactiva sus propiedades CanCollide y CanQuery para que los objetos no colisionen físicamente con él y los raycasts no lo detecten.

  4. Inserta un nuevo LocalScript en StarterPlayerScripts.

  5. En el nuevo script, pega el siguiente código que utiliza los eventos Touched y TouchEnded para detectar cuándo los personajes entran/salen de la región y llama a openMerchBooth y closeMerchBooth para abrir/cerrar la GUI de la cabina.

    LocalScript

    local Players = game:GetService("Players")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    -- Eliminar el botón de catálogo predeterminado
    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 a través de regiones de tienda etiquetadas existentes
    for _, region in CollectionService:GetTagged("ShopRegion") do
    setupRegion(region)
    end
    -- Detectar cuando regiones de tienda no transmitidas se transmiten
    CollectionService:GetInstanceAddedSignal("ShopRegion"):Connect(setupRegion)

Prompts de proximidad

Como alternativa a la vista 2D del catálogo, puedes agregar prompts de proximidad sobre objetos dentro de la experiencia. Esto anima a los jugadores a descubrir artículos en el entorno 3D, previsualizarlos en su propio avatar, comprarlos y equiparlos instantáneamente. Consulta addProximityButton para más detalles.

Cambiar el efecto de equipamiento

Por defecto, la cabina de merchandising muestra un efecto de chispa genérico cuando un jugador equipa un artículo de ella. Para cambiar el efecto, establece particleEmitterTemplate a tu propia instancia de un ParticleEmitter en una llamada a configure.

LocalScript - ConfigurarCabinaDeMerchandising

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

Visibilidad de la GUI

Por defecto, la cabina de merchandising oculta todas las ScreenGuis y CoreGuis cuando aparece su UI, incluyendo el chat, la tabla de clasificación y otros elementos incluidos por Roblox. Si deseas desactivar este comportamiento, establece hideOtherUis como false en una llamada a configure.

LocalScript - ConfigurarCabinaDeMerchandising

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

Movimiento del personaje

Puede ser ventajoso evitar que un personaje se mueva mientras está en la cabina de merchandising. Esto se puede hacer estableciendo disableCharacterMovement como true en una llamada a configure.

LocalScript - ConfigurarCabinaDeMerchandising

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

Referencia de API

Tipos

Elemento

Los elementos en la cabina de merchandising se representan mediante un diccionario con los siguientes pares clave-valor. Los elementos se pueden recoger mediante la función getItems o el evento itemAdded.

ClaveTipoDescripción
assetIdnúmeroID de catálogo del elemento, tal como se pasa a addItemAsync.
titlecadenaTítulo del elemento tal como aparece en el catálogo.
pricenúmeroPrecio del elemento en Robux.
descriptioncadenaDescripción del elemento tal como aparece en el catálogo.
assetTypecadenaCadena que representa el tipo de accesorio del elemento.
isOwnedboolSi el jugador actual posee el artículo.
creatorNamecadenaCreador del elemento tal como se muestra en el catálogo.
creatorTypeEnum.CreatorTypeTipo de creador del elemento.

Enums

MerchBooth.Controls

Utilizado junto con setControlKeyCodes para personalizar las teclas y botones del gamepad para interactuar con la cabina de merchandising.

NombreResumen
ProximityPromptsTecla y/o botón de gamepad para abrir la vista del elemento cuando se configuran prompts de proximidad.
OpenMerchBoothTecla y/o botón de gamepad para abrir la cabina de merchandising.
CloseMerchBoothTecla y/o botón de gamepad para cerrar la cabina de merchandising.
FilterTecla y/o botón de gamepad para usar el menú desplegable de Filtro predeterminado en la parte superior izquierda de la vista del catálogo.
ViewItemTecla y/o botón de gamepad para abrir la vista de un ítem específico de la cabina de merchandising.
LocalScript

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

Funciones

configurar

configurar(config: table)

Sobrescribe las opciones de configuración predeterminadas del cliente a través de las siguientes claves/valores en la tabla config. Esta función solo puede ser llamada desde un LocalScript.

ClaveDescripciónPredeterminado
backgroundColorColor de fondo principal de la ventana (Color3).[0, 0, 0]
cornerRadiusRadio de esquina para la ventana principal (UDim).(0, 16)
cornerRadiusSmallRadio de esquina para los elementos dentro de la ventana (UDim).(0, 8)
textFontFuente del "texto principal" como precios, descripciones y otra información general (Enum.Font).Gotham
textSizeTamaño del texto principal.14
textColorColor del texto principal (Color3).[255, 255, 255]
secondaryTextColorColor utilizado para algunas variaciones del texto principal (Color3).[153, 153, 158]
headerFontFuente del texto del encabezado utilizado para el título de la ventana (Enum.Font).GothamMedium
headerTextSizeTamaño del texto del encabezado utilizado para el título de la ventana.18
titleFontFuente del texto del título utilizado para los nombres de los elementos en la página de detalles del artículo (Enum.Font).GothamBold
titleTextSizeTamaño del texto del título utilizado para los nombres de los elementos en la página de detalles del artículo.28
buttonColorColor de fondo para botones más grandes en un estado clicable, como el botón principal de compra en la vista del artículo (Color3).[255, 255, 255]
buttonTextColorColor del texto para botones más grandes en un estado clicable, como el botón principal de compra en la vista del artículo (Color3).[0, 0, 0]
secondaryButtonColorColor de fondo para botones más pequeños como los botones de precio en la vista del catálogo o el botón de Probar (Color3).[34, 34, 34]
secondaryButtonTextColorColor del texto para botones más pequeños como los botones de precio en la vista del catálogo o el botón de Probar (Color3).[255, 255, 255]
inactiveButtonColorColor de fondo para todos los botones en un estado no clickable (Color3).[153, 153, 158]
inactiveButtonTextColorColor del texto para todos los botones en un estado no clickable (Color3).[255, 255, 255]
particleEmitterTemplateInstancia opcional personalizada de ParticleEmitter que aparece y se reproduce al 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: número, productType: Enum.InfoType, hideFromCatalog: boolean)

Agrega de manera asíncrona un elemento a la cabina de merchandising para que sea elegible para compra en la experiencia. assetId es el ID de activo del artículo, productType es el enum Enum.InfoType del artículo, y hideFromCatalog puede usarse para ocultar el artículo en la vista del catálogo.

Consulta Agregando Elementos para más detalles, ya que el uso varía ligeramente para activos frente a pases de juego o productos de desarrollador.

Script - Agregar Activos de Avatar

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
607702162, -- Gorra de Béisbol de Roblox
4819740796, -- Robox
1374269, -- Orejas de Gatito
11884330, -- Gafas de Nerd
10476359, -- Sombrero 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 - Agregar Pases

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

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
1236602053, -- Recarga de Mana
1257880672, -- Poción de Curación
}
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

Devuelve un diccionario que representa todos los elementos actualmente registrados. Cada clave es el ID de activo de un elemento como una cadena, y cada valor de clave es un Elemento. Esta función solo puede ser llamada desde 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: número)

Anula el registro de un elemento agregado previamente con addItemAsync, eliminando su mosaico en la vista del catálogo y cualquier prompts de proximidad asignados a él. Esta función solo puede ser llamada desde 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
-- Después de un tiempo, eliminar el ítem
task.wait(5)
MerchBooth.removeItem(4819740796)
end

addProximityButton

addProximityButton(adornee: BasePart|Model|Attachment, assetId: número)

Agrega un prompt de proximidad sobre el adornee dado que activará la visualización de la compra de un ítem, dado su ID de activo. Esto se puede usar como alternativa a la vista 2D del catálogo, animando a los jugadores a descubrir elementos en el entorno 3D.

Ten en cuenta que un elemento debe ser agregado a través de addItemAsync antes de que se le pueda asignar un botón de proximidad. Consulta también removeProximityButton para eliminar el prompt de proximidad de un 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)

Elimina un prompt de proximidad generado a través de addProximityButton. Esta función solo puede ser llamada desde 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
-- Después de un tiempo, eliminar el prompt
task.wait(5)
MerchBooth.removeProximityButton(item)
end

setCatalogSort

setCatalogSort(sortFunction: function): boolean

Establece la función de clasificación sortFunction que se utilizará en la vista del catálogo. La función de clasificación proporcionada puede utilizar lógica basada en información de Elemento como precio o título. Esta función solo puede ser llamada desde un LocalScript.

Aquí hay algunos ejemplos de clasificación del catálogo:

Precio Bajo a Alto

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return a.price < b.price
end)
Precio Alto a Bajo

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return a.price > b.price
end)
Precio Bajo a Alto & 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 los valores de teclas y botones para las interacciones con la cabina de merchandising. El primer parámetro debe ser un enum de MerchBooth.Controls y el segundo parámetro una tabla que contiene las teclas keyboard y/o gamepad con los enums correspondientes de Enum.KeyCode.

Enum (control)Teclas/Valores predeterminados 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()

Abre la ventana de la cabina de merchandising (si está cerrada) y navega a la vista del catálogo. Esta función solo puede ser llamada desde 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: número)

Navega a la vista de un solo ítem del itemId dado, abriendo la ventana de la cabina de merchandising si está actualmente cerrada. Esta función solo puede ser llamada desde 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)

Activa/desactiva el botón del catálogo en el lado derecho de la pantalla. Esto es útil al implementar un botón personalizado o limitar la apariencia de la cabina de merchandising a regiones o prompts de proximidad. Solo puede ser llamado desde un LocalScript.

LocalScript

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

isMerchBoothOpen

isMerchBoothOpen(): Tuple

Devuelve true si la vista del catálogo o del ítem está abierta. Si la vista del ítem está abierta, el ID del activo del ítem se devuelve como el segundo valor. Esta función solo puede ser llamada desde 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()

Cierra la ventana de la cabina de merchandising. Esta función solo puede ser llamada desde un LocalScript.

LocalScript

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

isMerchBoothEnabled

isMerchBoothEnabled(): boolean

Esta función puede usarse junto con setEnabled para verificar si la cabina de merchandising está actualmente habilitada o no. Solo puede ser llamada desde un LocalScript.

setEnabled

setEnabled(enabled: boolean)

Establece si toda la cabina de merchandising está habilitada o no. Cuando está deshabilitada, esta función elimina toda la UI, incluidos los prompts de proximidad, y desconecta todos los eventos. Esta función solo puede ser llamada desde un 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

Se activa cuando se agrega un elemento a través de addItemAsync. Este evento solo puede ser conectado en un Script.

Parámetros
assetId: númeroID del activo del elemento.
itemInfo: tableDiccionario de información sobre el Elemento como precio o título.
Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemAdded:Connect(function(assetId, itemInfo)
print("Elemento agregado con ID de activo", assetId)
print(itemInfo)
end)

itemRemoved

Se activa cuando se elimina un elemento a través de removeItem. Este evento solo puede ser conectado en un Script.

Parámetros
assetId: númeroID del activo del elemento.
Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemRemoved:Connect(function(assetId)
print("Elemento eliminado con ID de activo", assetId)
end)

merchBoothOpened

Se activa cuando se abren la vista del catálogo o la vista de detalles del ítem.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothOpened:Connect(function()
print("Vista de cabina abierta")
end)

merchBoothClosed

Se activa cuando se cierran la vista del catálogo o la vista de detalles del ítem.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothClosed:Connect(function()
print("Vista de cabina cerrada")
end)

catalogViewOpened

Se activa cuando se abre la vista del catálogo.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewOpened:Connect(function()
print("Vista del catálogo abierta")
end)

catalogViewClosed

Se activa cuando se cierra la vista del catálogo.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewClosed:Connect(function()
print("Vista del catálogo cerrada")
end)

itemViewOpened

Se activa cuando se abre la vista de detalles del ítem.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewOpened:Connect(function()
print("Vista del ítem abierta")
end)

itemViewClosed

Se activa cuando se cierra la vista de detalles del ítem.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewClosed:Connect(function()
print("Vista del ítem cerrada")
end)
©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.