Pases

Los Pases te permiten cobrar una tarifa única de Robux para que los jugadores accedan a privilegios especiales dentro de una experiencia, como acceder a un área restringida, un artículo de avatar dentro de la experiencia o un aumento permanente de alguna habilidad.

Creación de Pases

Cuando crees una imagen para usarla en tu Pase, ten en cuenta los siguientes requisitos:

  • Usa una plantilla de 512 x 512 píxeles.
  • Guarda la imagen en formato .jpg, .png o .bmp.
  • No incluyas detalles importantes fuera de los límites circulares, ya que el proceso de carga recorta el emblema final en una imagen circular.
Un buen recorte circular
Un mal recorte circular

Para crear un nuevo Pase:

  1. Dirígete a la Interfaz de creación.

  2. Haz clic en la experiencia para la que quieres crear un Pase. Se muestra la página Descripción general de la experiencia.

  3. En la navegación de la izquierda, selecciona Artículos asociados. La página Artículos asociados se muestra para esa experiencia específica.

  4. En la navegación horizontal, selecciona PASES. Se muestran todos los Pases de esa experiencia.

  5. Haz clic en el botón CREAR UN PASE. Se muestra la página Crear un Pase.

  6. Haz clic en el botón CARGAR IMAGEN. Se muestra un explorador de archivos.

  7. Selecciona la imagen que deseas mostrar como icono y, a continuación, haz clic en el botón Abrir.

  8. Rellena los siguientes campos:

    • Nombre: Ingresa un título para tus Pases.
    • Descripción: Una descripción de lo que un jugador puede esperar al comprar el Pase.
  9. Haz clic en el botón CREAR PASE. El Pase se muestra en la sección Pases de la página Artículos asociados.

Localización de la ID del Pase

La ID del Pase es el identificador único de un Pase. Necesitas esta identificación para asignarle un privilegio especial al Pase.

Para localizar la ID de un Pase:

  1. Ve a la sección Pases de la página Artículos asociados de una experiencia.

  2. Pon el cursor sobre la miniatura de un Pase y haz clic en el botón . Se muestra un menú contextual.

  3. Selecciona Copiar la ID del activo. La ID de Pase se copiará en tu portapapeles.

Monetizar Pases

Después de crear un Pase, puedes configurar sus ajustes para monetizarlo.

Para monetizar un Pase:

  1. Ve a la sección Pases de la página Artículos asociados de una experiencia.

  2. Pon el cursor sobre la miniatura de un Pase y haz clic en el botón . Se muestra un menú contextual.

  3. Selecciona Abrir en pestaña nueva. Se muestra la página Configurar el Pase.

  4. En la navegación de la izquierda, selecciona Ventas.

  5. Habilita el desplazador de Artículo en venta.

  6. En el campo Precio, ingresa la cantidad de Robux que quieres cobrar a los jugadores por el Pase. El precio que ingresas afecta la cantidad de Robux que ganas por venta.

  7. Haz clic en el botón Guardar.

El Pase ahora está disponible en la pestaña Tienda de la página de tu experiencia.

Asignación de privilegios del Pase

Una vez que un jugador compra un Pase, esperará recibir el privilegio especial asociado cuando juegue tu experiencia. Esto no ocurre automáticamente, por lo que debes verificar cuáles son los jugadores que poseen el Pase y asignarles el privilegio especial.

El siguiente script comprueba cuando cualquier jugador ingresa a la experiencia y, a continuación, verifica si ese jugador posee el Pase con la ID que coincide según se establece en la variable passID. Pon este código en Script dentro de ServerScriptService para que el servidor pueda manejar el privilegio especial otorgado al jugador.


local MarketplaceService = game: GetService("MarketplaceService")
local Players = game: GetService("Players")
local passID = 0000000 -- Change this to your Pass ID
local function onPlayerAdded(player)
local hasPass = false
-- Check if the player already owns the Pass
local success, message = pcall(function()
hasPass = MarketplaceService: UserOwnsGamePassAsync(player.UserId, passID)
end)
-- If there's an error, issue a warning and exit the function
if not success then
warn("Error while checking if player has pass: " .. tostring(message))
return
end
if hasPass then
print(player.Name .. " owns the Pass with ID " .. passID)
-- Assign this player the ability or bonus related to the Pass
end
end
-- Connect "PlayerAdded" events to the function
Players. PlayerAdded:Connect(onPlayerAdded)

Solicitar compras dentro de la experiencia

Si bien los jugadores pueden comprar Pases directamente desde la página principal de tu experiencia, también puedes ofrecer compras dentro de la experiencia a los jugadores a través de un PNJ de la tienda o de un proveedor dentro de la experiencia. Haz referencia a los scripts de ejemplo del lado del servidor y del lado del cliente para obtener un modelo básico para solicitar a los jugadores que compren Pases.

Ejemplo de un script del lado del servidor

Pon este código en Script dentro de ServerScriptService para que el servidor pueda manejar el privilegio especial otorgado al jugador.


local MarketplaceService = game: GetService("MarketplaceService")
local passID = 0000000 -- Change this to your Pass ID
-- Function to handle a completed prompt and purchase
local function onPromptPurchaseFinished(player, purchasedPassID, purchaseSuccess)
if purchaseSuccess and purchasedPassID == passID then
print(player.Name .. " purchased the Pass with ID " .. passID)
-- Assign this player the ability or bonus related to the Pass
end
end
-- Connect "PromptGamePassPurchaseFinished" events to the function
MarketplaceService. PromptGamePassPurchaseFinished:Connect(onPromptPurchaseFinished)

Ejemplo de script del lado del cliente

El siguiente código implementa una función promptPurchase() que comprueba, de forma segura, si un jugador tiene un Pase y le pide que lo compre, si aún no lo tiene. Coloca este código en LocalScript y llama a promptPurchase() en situaciones como cuando el jugador hace clic en un botón o cuando su personaje toca una parte.


local MarketplaceService = game: GetService("MarketplaceService")
local Players = game: GetService("Players")
local passID = 0000000 -- Change this to your Pass ID
-- Function to prompt purchase of the Pass
local function promptPurchase()
local player = Players. LocalPlayer
local hasPass = false
local success, message = pcall(function()
hasPass = MarketplaceService: UserOwnsGamePassAsync(player.UserId, passID)
end)
if not success then
warn("Error while checking if player has pass: " .. tostring(message))
return
end
if hasPass then
-- Player already owns the Pass; tell them somehow
else
-- Player does NOT own the Pass; prompt them to purchase
MarketplaceService: PromptGamePassPurchase(player, passID)
end
end