朋友推薦系統鼓勵現有玩家將新玩家帶入您的體驗,增加玩家保留率和整體參與互動。玩家可以從 玩家邀請提示 或直接從體驗預設邀請菜單存取和分享推薦鏈接。
作為開發人員,您可以使用這些可共享的推薦鏈接來:
- 追蹤哪些玩家成功邀請其他玩家進入您的體驗。
- 追蹤哪些玩家使用了其他玩家的轉介鏈邀請加入你的體驗。
- 創建並分配獎勵給邀請者和受邀者。

邀請朋友 彈出窗口和 朋友轉介獎勵 橫幅將在 2025 年初推出。
要實裝朋友推薦系統,設置一個推薦事件和創建推薦獎勵。ReferredByPlayerId 屬性的 GetJoinData() 自動填充所有類型的邀請,並提供您使用參考玩家的用戶ID的訪問。您可以在 Players.PlayerAdded 事件中存取這些資料,以識別邀請者並向邀請者和邀請者授予獎勵。
function onPlayerAdded(player)
local referredByPlayerId = player:GetJoinData().ReferredByPlayerId
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
referrerEvent:FireClient(player, referredByPlayerId)
end
Players.PlayerAdded:Connect(onPlayerAdded)
設定轉介事件
要設定轉介事件:
- 在 RemoteEvent 中設置一個 ReplicatedStorage 來創建一個遠端事件,當收到轉介時與客戶通訊。
- 使用 ReferredByPlayerId 來追蹤玩家加入並處理在 Players.PlayerAdded 事件期間服務器側腳本的轉介邏輯。
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- 創建或取得遠端事件來處理轉介程式
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- 當玩家加入時啟動的功能
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- 檢查玩家是否通過紹介被邀請
if referredByPlayerId and referredByPlayerId ~= 0 then
-- 向客戶發射轉介事件,傳送邀請者的ID
referrerEvent:FireClient(player, referredByPlayerId)
-- 額外的頒獎邏輯可以在此處添加獎勵邀請者和受邀者
-- 例如: rewardReferrer(referredByPlayerId)
-- 例如:rewardInvitee(playe玩家)
end
end
-- 將功能連接到玩家新增事件
Players.PlayerAdded:Connect(onPlayerAdded)
授予轉介獎勵
為了鼓勵參與,向邀請者和受邀者給予獎勵。例如,當朋友加入體驗時,你可以給予邀請者徽章或體驗貨幣;當邀請者通過紹介綁定接加入體驗時,你可以給予他們歡迎獎勵。
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- 創建或取得遠端事件來處理轉介程式
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- 當玩家加入時啟動的功能
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- 檢查玩家是否通過紹介被邀請
if referredByPlayerId and referredByPlayerId ~= 0 then
-- 向客戶發射轉介事件,傳送邀請者的ID
referrerEvent:FireClient(player, referredByPlayerId)
-- 獎勵邀請者
function rewardReferrer(referrerId)
local referrerPlayer = Players:GetPlayerByUserId(referrerId)
if referrerPlayer then
-- 授予邀請者獎勵
-- 範例:參考者玩家.leaderstats.Coins.Value增加100
end
end
-- 獎勵邀請者
function rewardInvitee(player)
-- 授予受邀者獎勵
-- 例如:玩家layer.leaderstats.WelcomeBonus.Value += 50
end
end
end
-- 將功能連接到玩家新增事件
Players.PlayerAdded:Connect(onPlayerAdded)
管理濫用預防
您可以實施保護措施,防止玩家濫用朋友推薦系統。
- 提供一次性獎勵來跟蹤邀請人並確保他們只被獎勵一次。
- 介紹另一位邀請者可以提交另一個推薦之前的冷卻期。
- 監控不尋常的活動,並實施糾正措施,例如禁止使用者或取消獎勵。
-- 表格來跟蹤已經被引用的玩家
local referredPlayers = {}
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- 檢查玩家是否被邀請且尚未使用紹介程式碼
if referredByPlayerId and referredByPlayerId ~= 0 and not referredPlayers[player.UserId] then
-- 標記玩家為已參考
referredPlayers[player.UserId] = true
-- 獎勵邀請者和受邀者
rewardReferrer(referredByPlayerId)
rewardInvitee(player)
end
end