Transferencias de Robux

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

Transferencias de Robux permiten a los suscriptores de Roblox Plus enviar Robux directamente a otros usuarios.

Para soportar transferencias en tu juego, llama a PromptRobuxTransferAsync para abrir el aviso de transferencia y utiliza BindReceiptHandler para procesar recibos de transferencia. Cuando un suscriptor completa una transferencia, tu juego gana 10% de los Robux enviados y el destinatario recibe el 90% restante. Por ejemplo, una transferencia de 100 Robux paga 90 Robux al destinatario y 10 Robux a tu juego.

Los Robux que tu juego gana de las transferencias son elegibles para el programa DevEx. Roblox no cobra una tarifa por estas transferencias.

Como creador, no tienes acceso a los detalles de las transferencias ni control sobre su ejecución. Todas las transferencias de Robux son procesadas y gestionadas por la plataforma de Roblox, y todas las acciones del remitente y del destinatario pasan por las mismas verificaciones de seguridad y elegibilidad. Dentro de tu juego, las transferencias se completan a través de una interfaz de usuario controlada por Roblox para asegurar que sean seguras y cumplan con las políticas.

Aviso de transferencias de Robux

Para iniciar una transferencia de Robux dentro de tu juego:

  1. Llama a PromptRobuxTransferAsync desde un script del lado del servidor.
  2. Pasa los parámetros requeridos:
    • sender: El jugador que inicia la transferencia.
    • receiverUserId: El ID de usuario del destinatario.
    • amount: La cantidad de Robux a transferir.
  3. Almacena el transferRequestId retornado que identifica la solicitud de transferencia y puede ser usado para registrar o correlacionar la transferencia con recibos más tarde.

El siguiente ejemplo inicia una transferencia de Robux entre dos usuarios:


local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
-- Transfiere Robux cuando un usuario activa un RemoteEvent
local transferEvent = game.ReplicatedStorage:WaitForChild("RequestTransfer")
transferEvent.OnServerEvent:Connect(function(sender, receiverUserId, amount)
-- Valida las entradas
if not sender or not sender:IsA("Player") then
return
end
if typeof(receiverUserId) ~= "number" or receiverUserId <= 0 then
warn("receiverUserId inválido")
return
end
if typeof(amount) ~= "number" or amount <= 0 then
warn("monto inválido")
return
end
local success, result = pcall(function()
return MarketplaceService:PromptRobuxTransferAsync(sender, receiverUserId, amount)
end)
if success then
print(`Transferencia iniciada con TransferRequestId: {result}`)
else
warn(`Transferencia fallida: {result}`)
end
end)

Manejar recibos de transferencia

Después de una transferencia exitosa, Roblox genera recibos tanto para el remitente como para el destinatario. Puedes procesar estos recibos utilizando BindReceiptHandler para confirmar que la transferencia se completó exitosamente.

Para motivar a los suscriptores Plus a transferir Robux dentro de tu juego, puedes ofrecer objetos u otros beneficios por cada transferencia exitosa. Si lo haces, procesa el recibo antes de otorgar la recompensa para asegurar que solo se entregue por transferencias completadas.

Para procesar recibos de transferencia de Robux:

  1. Usa BindReceiptHandler para registrar un manejador para RobuxTransferSender, que maneja los recibos para el usuario que inició la transferencia.
  2. Registra un segundo manejador para RobuxTransferReceiver, que maneja los recibos para el usuario que recibió los Robux.
  3. En cada manejador, inspecciona la información del recibo, incluido PlayerId y TransferRequestId. Ambos tipos de recibo incluyen un TransferRequestId que coincide con el transferRequestId retornado por PromptRobuxTransferAsync.
  4. Retorna un valor de Enum.ReceiptDecision desde tu manejador:
    • Retorna Processed después de que terminas de manejar el recibo. Esto marca el recibo como completo y confirma que la transferencia de Robux fue exitosa.
    • Retorna NotProcessedYet si el recibo no puede ser procesado todavía (por ejemplo, si el usuario ya no está en el servidor). Esto mantiene el recibo no resuelto para que pueda ser entregado más tarde (por ejemplo, cuando el usuario vuelve a unirse al servidor).

El siguiente ejemplo registra manejadores tanto para recibos de remitente como de destinatario:


local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
-- Maneja los recibos de los remitentes (el usuario que envió los Robux)
local senderConnection = MarketplaceService:BindReceiptHandler(
Enum.ReceiptType.RobuxTransferSender,
function(receiptInfo)
local player = Players:GetPlayerByUserId(receiptInfo.PlayerId)
if not player then
-- El usuario salió del servidor - el procesamiento del recibo se difiere hasta que el usuario vuelva a unirse al servidor
return Enum.ReceiptDecision.NotProcessedYet
end
print(`{player.Name} envió Robux (TransferRequestId: {receiptInfo.TransferRequestId})`)
-- Puedes otorgar cualquier reconocimiento del lado del remitente o actualizar la interfaz aquí
return Enum.ReceiptDecision.Processed
end
)
-- Maneja los recibos de los destinatarios (el usuario que recibió los Robux)
local receiverConnection = MarketplaceService:BindReceiptHandler(
Enum.ReceiptType.RobuxTransferReceiver,
function(receiptInfo)
local player = Players:GetPlayerByUserId(receiptInfo.PlayerId)
if not player then
return Enum.ReceiptDecision.NotProcessedYet
end
print(`{player.Name} recibió Robux (TransferRequestId: {receiptInfo.TransferRequestId})`)
-- Puedes otorgar cualquier beneficio del lado del destinatario o actualizar la interfaz aquí
return Enum.ReceiptDecision.Processed
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.