Sistema de referencia de amigos

*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 sistema de referencia de amigos anima a los jugadores existentes a traer nuevos jugadores a tu juego, aumentando la retención de jugadores y el compromiso general. Los jugadores pueden acceder y compartir enlaces de referencia desde los mensajes de invitación de jugadores o directamente desde el menú de invitación predeterminado en el juego.

Como desarrollador, puedes crear banners personalizados para publicitar tu sistema de recompensas y utilizar enlaces de referencia compartibles para:

  • Rastrear qué jugadores han invitado con éxito a otros jugadores a tu juego.
  • Rastrear qué jugadores se han unido a tu juego utilizando una invitación de enlace de referencia de otro jugador.
  • Crear y distribuir recompensas tanto a los invitadores como a los invitados.
Los invitadores envían invitaciones
Los invitados se unen al juego

Para implementar un sistema de referencia, configura un evento de referencia y crea recompensas de referencia en Studio. La propiedad ReferredByPlayerId de GetJoinData() se llena automáticamente para todos los tipos de invitaciones y te da acceso al ID de usuario del jugador que refiere. Luego puedes acceder a estos datos en el evento Players.PlayerAdded para identificar al invitador y otorgar recompensas tanto al invitador como al invitado.

function onPlayerAdded(player)
local referredByPlayerId = player:GetJoinData().ReferredByPlayerId
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
referrerEvent:FireClient(player, referredByPlayerId)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Para asegurarte de que los jugadores entiendan el sistema de recompensas, implementa un banner de recompensa personalizado en la parte superior de tu modal de invitación de amigos que les muestre detalles sobre las recompensas que pueden ganar.

Configurar un evento de referencia

Para configurar un evento de referencia:

  1. Configura un RemoteEvent en ReplicatedStorage para crear un evento remoto que se comunique con el cliente cuando se recibe una referencia.
  2. Recupera el ID de usuario del invitador utilizando ReferredByPlayerId para rastrear las uniones de jugadores y manejar la lógica de referencia en tu script del lado del servidor durante el evento Players.PlayerAdded.
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Crear o obtener el RemoteEvent para manejar referencias
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- Función que se activa cuando un jugador se une
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Verificar si el jugador fue invitado a través de una referencia
if referredByPlayerId and referredByPlayerId ~= 0 then
-- Activar el evento de referencia al cliente, pasando el ID del invitador
referrerEvent:FireClient(player, referredByPlayerId)
-- Se puede agregar lógica adicional para recompensar al invitador y al invitado aquí
-- e.g., rewardReferrer(referredByPlayerId)
-- e.g., rewardInvitee(player)
end
end
-- Conectar la función al evento PlayerAdded
Players.PlayerAdded:Connect(onPlayerAdded)

Otorgar recompensas de referencia

Para fomentar la participación, otorga recompensas tanto a los invitadores como a los invitados. Por ejemplo, puedes dar a los invitadores una insignia o moneda del juego cuando su amigo se una al juego, y dar a los invitados una recompensa de bienvenida por unirse al juego a través de un enlace de referencia.

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Crear o obtener el RemoteEvent para manejar referencias
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- Función que se activa cuando un jugador se une
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Verificar si el jugador fue invitado a través de una referencia
if referredByPlayerId and referredByPlayerId ~= 0 then
-- Activar el evento de referencia al cliente, pasando el ID del invitador
referrerEvent:FireClient(player, referredByPlayerId)
-- Recompensar al invitador
function rewardReferrer(referrerId)
local referrerPlayer = Players:GetPlayerByUserId(referrerId)
if referrerPlayer then
-- Otorgar la recompensa al invitador
-- Ejemplo: referrerPlayer.leaderstats.Coins.Value += 100
end
end
-- Recompensar al invitado
function rewardInvitee(player)
-- Otorgar la recompensa al invitado
-- Ejemplo: player.leaderstats.WelcomeBonus.Value += 50
end
end
end
-- Conectar la función al evento PlayerAdded
Players.PlayerAdded:Connect(onPlayerAdded)

Crear un banner de recompensa

Los banners de recompensa animan a los usuarios a invitar amigos a unirse a tu juego mostrándoles detalles sobre las recompensas de referencia que pueden ganar. Estos banners se muestran en la parte superior de tu modal de invitación de amigos.

Para crear un banner de recompensa personalizado:

  1. En el Creator Hub, ve a Creaciones y selecciona el juego para el que has configurado un evento de referencia.
  2. Ve a CompromisoRecompensas de Referencia.
  3. Haz clic en Agregar Detalles de Recompensa.
  4. En la página de Recompensas de Referencia:
    1. Reemplaza el ícono predeterminado con una imagen que represente tu juego.
    2. Ingresa un nombre de recompensa para mostrar en el banner.
    3. Selecciona una fecha de inicio y una fecha de finalización para cuando quieras mostrar el banner a los jugadores.
    4. OPCIONAL
      Ingresa una descripción con detalles sobre la recompensa.
    5. OPCIONAL
      Si deseas agregar restricciones a la recompensa, ingresa un límite de recompensa. Por ejemplo, un límite de hasta 3 recompensas por invitador.
  5. Haz clic en Guardar para guardar tus cambios.
  6. Haz clic en Publicar para hacer visible el banner a los jugadores.

Puedes crear muchos banners diferentes, pero solo se puede publicar y mostrar un banner a la vez. Asegúrate de que el banner publicado describa con precisión el sistema de referencia que has implementado en Studio.



Prevenir el abuso del sistema de referencia

Puedes implementar salvaguardias para evitar que los jugadores exploten el sistema de referencia de amigos.

  • Ofrece recompensas únicas para rastrear a los invitados y asegurarte de que solo sean recompensados una vez.
  • Introduce un período de enfriamiento antes de que un invitador pueda enviar otra referencia.
  • Monitorea actividades inusuales e implementa medidas correctivas como prohibir usuarios o cancelar recompensas.
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
-- Crear o obtener el datastore para referencias
local referralDataStore = DataStoreService:GetDataStore("ReferralDataStore")
-- Función para verificar y marcar la referencia
local function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Cargar los datos de referencia del jugador
local success, alreadyReferred = pcall(function()
return referralDataStore:GetAsync(tostring(player.UserId))
end)
if not success then
warn("Error al obtener los datos de referencia para el jugador:", player.UserId)
return
end
if referredByPlayerId and referredByPlayerId ~= 0 and not alreadyReferred then
-- Recompensar al invitador y al invitado
rewardReferrer(referredByPlayerId)
rewardInvitee(player)
-- Marcar al jugador como referido en DataStore
local saveSuccess, err = pcall(function()
referralDataStore:SetAsync(tostring(player.UserId), true)
end)
if not saveSuccess then
warn("Error al guardar el estado de referencia para el jugador:", player.UserId, err)
end
end
end
-- Conectar la función al unirse el jugador
Players.PlayerAdded:Connect(onPlayerAdded)

Preguntas frecuentes

¿Qué juegos son elegibles para usar esta función?

Esta función está abierta a cualquier juego que haya estado en vivo durante al menos un día y que no viole los Estándares de la Comunidad.

¿Qué jugadores pueden aprovechar las referencias?

Todos los jugadores son elegibles para ganar recompensas a través de referencias.

¿La invitación está restringida a los amigos de un jugador en Roblox?

No, los jugadores pueden enviar una invitación a amigos con los que aún no están conectados en la plataforma Roblox.

¿El enlace de referencia expira?

El enlace nunca expira.

¿Cómo puedo aprovechar al máximo esta función?

Puedes agregar un botón en el juego para publicitar el sistema de referencia y animar a los jugadores a aprovechar las referencias. Luego puedes darle al botón un título descriptivo y conectar el evento de clic del botón al modal de invitación de amigos donde los jugadores pueden ver el banner de recompensa.

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