友達招待報酬システム

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。


友達紹介システムは、既存のプレイヤーが新しいプレイヤーをあなたの経験に持ってきて、プレイヤーの継続利用率と全体的なエンゲージメントを高めるように促します。プレイヤーは、プレイヤー招待プロンプト からリファラーリンクにアクセスし、またはデフォルトのインエクスペリエンス招待メニューから直接参照リンクを共有できます。

開発者として、これらの共有可能なリファラリンクを使用して以下を行うことができます:

  • 他のプレイヤーを自分のエクスペリエンスに成功裏に招待したプレイヤーを追跡します。
  • 他のプレイヤーからの紹介リンクの招待を使用して、どのプレイヤーがあなたのエクスペリエンスに参加したかを追跡します。
  • 招待者と招待者の両方に報酬を作成し配布する。
友達を招待する ポップアップと 友達紹介報酬 バナーが、2025年初頭に利用可能になります。

友達紹介システムを実装するには、紹介イベントを設定し、紹介報酬を作成します。The ReferredByPlayerId プロパティ of 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)

リファラルイベントを設定する

リファラルイベントを設定するには:

  1. リファラが受信されたときにクライアントとコミュニケーションするリモートイベントを作成するために RemoteEventReplicatedStorage に設定してください。
  2. ReferredByPlayerId を使用して、招待者のユーザーIDを取得して、Players.PlayerAdded イベント中にサーバー側のスクリプトでプレイヤーの参加を追跡し、紹介ロジックを処理します。

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- リファラルを処理するための RemoteEvent を作成または取得
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
-- 機能を PlayerAdded イベントに接続する
Players.PlayerAdded:Connect(onPlayerAdded)

紹介報酬を付与する

参加を促進するには、招待者と招待者の両方に報酬を授与します。たとえば、友達がエクスペリエンスに参加するときに招待者にバッジやインエクスペリエンス通貨を与え、紹介リンクを介してエクスペリエンスに参加すると歓迎報酬を与えることができます。


local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- リファラルを処理するための RemoteEvent を作成または取得
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
-- 招待者に報酬を授与する
-- 例: referrerPlayer.leaderstats.Coins.Value += 100
end
end
-- 招待者を報酬する
function rewardInvitee(player)
-- 招待者に報酬を授与する
-- 例: プレイヤーlayer.leaderstats.WelcomeBonus.Value が 50 を加える
end
end
end
-- 機能を PlayerAdded イベントに接続する
Players.PlayerAdded:Connect(onPlayerAdded)

アブーズ防止の管理

プレイヤーが友達紹介システムを悪用するのを防ぐための保護措置を実装できます。

  • 招待者を追跡し、1回だけ報酬が授与されるように、一度限りの報酬を提供します。
  • 招待者が別の紹介を送信できる前にクールダウン期間を紹介する
  • 珍しいアクティビティをモニタリングし、ユーザーの禁止や報酬のキャンセルなどの修正措置を実行します。

-- 既に参照されたプレイヤーを追跡するテーブル
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