친구 추천 시스템은 기존 플레이어가 새로운 플레이어를 경험에 가져와 플레이어 유지율과 전반적인 참여도를 높이도록 권장합니다.플레이어는 플레이어 초대 프롬프트에서 참조 링크에 액세스하고 공유하거나 기본 경험 초대 메뉴에서 직접 액세스할 수 있습니다.
개발자로서 이러한 공유 가능한 참조 링크를 사용하여 다음을 수행할 수 있습니다.
- 다른 플레이어를 경험에 성공적으로 초대한 플레이어를 추적합니다.
- 다른 플레이어의 추천 링크 초대를 사용하여 경험에 참여한 플레이어를 추적합니다.
- 초대자와 초대자 모두에게 보상을 만들고 배포합니다.

친구 추천 시스템을 구현하려면 추천 이벤트를 설정하고추천 보상을 만듭니다. 속성은 모든 유형의 초대에 자동으로 채워지며 참조하는 플레이어의 사용자 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를 사용하여 초대자의 사용자 ID를 검색하여 플레이어 참여를 추적하고 서버 사이드 스크립트에서 참조 논리를 처리하세요. 이벤트 Players.PlayerAdded 동안.
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- 참조 처리를 위해 원격 이벤트 생성 또는 가져오기 Create or get the RemoteEvent for handling referrals
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(플레이어)
end
end
-- 함수를 PlayerAdded 이벤트에 연결
Players.PlayerAdded:Connect(onPlayerAdded)
추천 보상 부여
참여를 유도하기 위해 초대자와 초대자 모두에게 보상을 제공합니다.예를 들어, 친구가 경험에 참여할 때 초대자에게 배지 또는 경험 내 통화를 제공하고, 초대자에게 참여 연결통해 경험에 참여하는 보상을 제공할 수 있습니다.
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- 참조 처리를 위해 원격 이벤트 생성 또는 가져오기 Create or get the RemoteEvent for handling referrals
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)
-- 초대자에게 보상 부여
-- 예: 플레이어.leaderstats.WelcomeBonus.Value += 50
end
end
end
-- 함수를 PlayerAdded 이벤트에 연결
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