Le système de parrainage d'amis encourage les joueurs existants à amener de nouveaux joueurs dans votre expérience, ce qui augmente la rétention des joueurs et l'participationglobal.Les joueurs peuvent accéder et partager des liens de parrainage à partir de invitations de joueur ou directement du menu d'invitation par défaut dans l'expérience.
En tant que développeur, vous pouvez utiliser ces liens de parrainage partageables pour :
- Suivez les joueurs qui ont invité avec succès d'autres joueurs dans votre expérience.
- Suis les joueurs qui ont rejoint ton expérience en utilisant une invitation de lien de parrainage d'un autre joueur.
- Créez et distribuez des récompenses à la fois aux invités et aux invitateurs.

Pour mettre en œuvre un système de parrainage d'amis, configurez un événement de parrainage et créez des récompenses de parrainage.La propriété ReferredByPlayerId de GetJoinData() remplit automatiquement pour tous les types d'invitations et vous donne accès à l'ID utilisateur du joueur référent.Vous pouvez ensuite accéder à ces données dans l'événement Players.PlayerAdded pour identifier l'inviteur et accorder des récompenses à l'inviteur et à l'invité.
function onPlayerAdded(player)
local referredByPlayerId = player:GetJoinData().ReferredByPlayerId
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
referrerEvent:FireClient(player, referredByPlayerId)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Configurer un événement de parrainage
Pour configurer un événement de parrainage :
- Configurez un RemoteEvent dans ReplicatedStorage pour créer un événement distant pour communiquer avec le client lorsqu'un référent est reçu.
- Récupérez l'ID utilisateur de l'inviteur en utilisant ReferredByPlayerId pour suivre les adhésions des joueurs et gérer la logique de parrainage dans votre script côté serveur pendant l'événement Players.PlayerAdded.
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Créer ou obtenir l'événement distant pour gérer les références
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- Fonction qui se déclenche lorsqu'un joueur rejoint
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Vérifier si le joueur a été invité via une référence
if referredByPlayerId and referredByPlayerId ~= 0 then
-- Lancez l'événement de parrainage au client, en passant l'ID de l'inviteur
referrerEvent:FireClient(player, referredByPlayerId)
-- Une logique supplémentaire pour récompenser l'inviteur et l'invité peut être ajoutée ici
-- e.g., rewardReferrer(référé par PlayerId)
-- par exemple, rewardInvitee(joueur)
end
end
-- Reliez la fonction à l'événement PlayerAdded
Players.PlayerAdded:Connect(onPlayerAdded)
Accorder des récompenses de parrainage
Pour encourager la participation, accordez des récompenses à tous les invités et aux invités.Par exemple, vous pouvez donner un badge ou une devise dans l'expérience lorsque leur ami rejoint l'expérience, et donner aux invités une récompense de bienvenue pour avoir rejoint l'expérience via un lierde parrainage.
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Créer ou obtenir l'événement distant pour gérer les références
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- Fonction qui se déclenche lorsqu'un joueur rejoint
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Vérifier si le joueur a été invité via une référence
if referredByPlayerId and referredByPlayerId ~= 0 then
-- Lancez l'événement de parrainage au client, en passant l'ID de l'inviteur
referrerEvent:FireClient(player, referredByPlayerId)
-- Récompenser l'inviteur
function rewardReferrer(referrerId)
local referrerPlayer = Players:GetPlayerByUserId(referrerId)
if referrerPlayer then
-- Accordez à l'inviteur sa récompense
-- Exemple : referrerPlayer.leaderstats.Coins.Value += 100
end
end
-- Récompenser l'invité
function rewardInvitee(player)
-- Accordez à l'invité sa récompense
-- Exemple : joueur.leaderstats.WelcomeBonus.Value += 50
end
end
end
-- Reliez la fonction à l'événement PlayerAdded
Players.PlayerAdded:Connect(onPlayerAdded)
Gérer la prévention de l'abus
Vous pouvez mettre en œuvre des protections pour empêcher les joueurs d'exploiter le système de parrainage d'amis.
- Offrez des récompenses ponctuelles pour suivre les invités et vous assurer qu'ils ne sont récompensés qu'une seule fois.
- Introduire une période de récupération avant que l'invité puisse soumettre une autre référence.
- Surveillez une activité inhabituelle et mettez en œuvre des mesures correctives comme l'interdiction d'utilisateurs ou l'annulation de récompenses.
-- Table pour suivre les joueurs qui ont déjà été référés
local referredPlayers = {}
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Vérifiez si le joueur a été invité et n'a pas déjà utilisé une référence
if referredByPlayerId and referredByPlayerId ~= 0 and not referredPlayers[player.UserId] then
-- Marquer le joueur comme référencé
referredPlayers[player.UserId] = true
-- Inviteur de récompense et invité
rewardReferrer(referredByPlayerId)
rewardInvitee(player)
end
end