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:
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.

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

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

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:
En StarterPlayerScripts, crea un nuevo LocalScript y renómbralo a ConfigurarCabinaDeMerchandising.

Pega el siguiente código en el nuevo script.
LocalScript - ConfigurarCabinaDeMerchandisinglocal 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.
Crea un Script dentro de ServerScriptService y pega el siguiente código.
Script - Agregar Activos de Avatarlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endendCopia 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.

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 Avatarlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {607702162, -- Gorra de Béisbol de Roblox4819740796, -- Robox1374269, -- Orejas de Gatito11884330, -- Gafas de Nerd10476359, -- Sombrero de Papel}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endend
Pases
Agregar pases requiere los ID de pase que pueden encontrarse en el Tablero del Creador.
Crea un Script dentro de ServerScriptService y pega el siguiente código.
Script - Agregar Paseslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endendNavega al Tablero del Creador y selecciona la experiencia.
En la columna izquierda, bajo Monetización, selecciona Pases.
Coloca el cursor sobre la miniatura de un pase, haz clic en el botón ⋯ y selecciona Copiar ID de Activo del menú contextual.

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 Paseslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {4343758, -- Armadura de ColdFyre28521575, -- Escudo de Slime}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)end)if not success thenwarn(errorMessage)endend
Productos de Desarrollador
Agregar productos de desarrollador requiere los ID de producto que pueden encontrarse en el Tablero del Creador.
Crea un Script dentro de ServerScriptService y pega el siguiente código.
Script - Agregar Productos de Desarrolladorlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endendNavega al Tablero del Creador y selecciona la experiencia.
En la columna izquierda, bajo Monetización, selecciona Productos de Desarrollador.
Coloca el cursor sobre la miniatura de un producto, haz clic en el botón ⋯ y selecciona Copiar ID de Activo del menú contextual.

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 Desarrolladorlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {1236602053, -- Recarga de Mana1257880672, -- Poción de Curación}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId, Enum.InfoType.Product)end)if not success thenwarn(errorMessage)endend
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:
Crea un nuevo botón como se detalla en Botones.
Crea un LocalScript como hijo del objeto botón.

Pega el siguiente código en el nuevo script.
LocalScript - Botón de Catálogo Personalizadolocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)-- Eliminar el botón de catálogo predeterminadoMerchBooth.toggleCatalogButton(false)-- Conectar el botón personalizadoscript.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:
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 Usando la sección de Etiquetas de las propiedades del bloque, aplica la etiqueta ShopRegion al bloque para que CollectionService lo detecte.
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.


Inserta un nuevo LocalScript en StarterPlayerScripts.

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.
LocalScriptlocal 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 predeterminadoMerchBooth.toggleCatalogButton(false)local function setupRegion(region: BasePart)region.Touched:Connect(function(otherPart)local character = Players.LocalPlayer.Characterif character and otherPart == character.PrimaryPart thenMerchBooth.openMerchBooth()endend)region.TouchEnded:Connect(function(otherPart)local character = Players.LocalPlayer.Characterif character and otherPart == character.PrimaryPart thenMerchBooth.closeMerchBooth()endend)end-- Iterar a través de regiones de tienda etiquetadas existentesfor _, region in CollectionService:GetTagged("ShopRegion") dosetupRegion(region)end-- Detectar cuando regiones de tienda no transmitidas se transmitenCollectionService: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 - ConfigurarCabinaDeMerchandisinglocal 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.SpheremyParticleEmitter.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 - ConfigurarCabinaDeMerchandisinglocal 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 - ConfigurarCabinaDeMerchandisinglocal 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.
| Clave | Tipo | Descripción |
|---|---|---|
| assetId | número | ID de catálogo del elemento, tal como se pasa a addItemAsync. |
| title | cadena | Título del elemento tal como aparece en el catálogo. |
| price | número | Precio del elemento en Robux. |
| description | cadena | Descripción del elemento tal como aparece en el catálogo. |
| assetType | cadena | Cadena que representa el tipo de accesorio del elemento. |
| isOwned | bool | Si el jugador actual posee el artículo. |
| creatorName | cadena | Creador del elemento tal como se muestra en el catálogo. |
| creatorType | Enum.CreatorType | Tipo 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.
| Nombre | Resumen |
|---|---|
| ProximityPrompts | Tecla y/o botón de gamepad para abrir la vista del elemento cuando se configuran prompts de proximidad. |
| OpenMerchBooth | Tecla y/o botón de gamepad para abrir la cabina de merchandising. |
| CloseMerchBooth | Tecla y/o botón de gamepad para cerrar la cabina de merchandising. |
| Filter | Tecla 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. |
| ViewItem | Tecla y/o botón de gamepad para abrir la vista de un ítem específico de la cabina de merchandising. |
LocalScriptlocal 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.
| Clave | Descripción | Predeterminado |
|---|---|---|
| backgroundColor | Color de fondo principal de la ventana (Color3). | [0, 0, 0] |
| cornerRadius | Radio de esquina para la ventana principal (UDim). | (0, 16) |
| cornerRadiusSmall | Radio de esquina para los elementos dentro de la ventana (UDim). | (0, 8) |
| textFont | Fuente del "texto principal" como precios, descripciones y otra información general (Enum.Font). | Gotham |
| textSize | Tamaño del texto principal. | 14 |
| textColor | Color del texto principal (Color3). | [255, 255, 255] |
| secondaryTextColor | Color utilizado para algunas variaciones del texto principal (Color3). | [153, 153, 158] |
| headerFont | Fuente del texto del encabezado utilizado para el título de la ventana (Enum.Font). | GothamMedium |
| headerTextSize | Tamaño del texto del encabezado utilizado para el título de la ventana. | 18 |
| titleFont | Fuente del texto del título utilizado para los nombres de los elementos en la página de detalles del artículo (Enum.Font). | GothamBold |
| titleTextSize | Tamaño del texto del título utilizado para los nombres de los elementos en la página de detalles del artículo. | 28 |
| buttonColor | Color 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] |
| buttonTextColor | Color 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] |
| secondaryButtonColor | Color 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] |
| secondaryButtonTextColor | Color 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] |
| inactiveButtonColor | Color de fondo para todos los botones en un estado no clickable (Color3). | [153, 153, 158] |
| inactiveButtonTextColor | Color del texto para todos los botones en un estado no clickable (Color3). | [255, 255, 255] |
| particleEmitterTemplate | Instancia opcional personalizada de ParticleEmitter que aparece y se reproduce al equipar. |
LocalScriptlocal 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.ProximityPrompts | keyboard = Enum.KeyCode.E gamepad = Enum.KeyCode.ButtonY |
| MerchBooth.Controls.OpenMerchBooth | gamepad = Enum.KeyCode.ButtonY |
| MerchBooth.Controls.CloseMerchBooth | gamepad = Enum.KeyCode.ButtonB |
| MerchBooth.Controls.Filter | gamepad = Enum.KeyCode.ButtonX |
| MerchBooth.Controls.ViewItem | gamepad = Enum.KeyCode.ButtonA |
LocalScriptlocal 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.
LocalScriptlocal 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.
LocalScriptlocal 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.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local isEnabled = MerchBooth.isMerchBoothEnabled()if isEnabled thenMerchBooth.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úmero | ID del activo del elemento. |
| itemInfo: table | Diccionario 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úmero | ID 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)