Sistem referensi teman mendorong pemain yang ada untuk membawa pemain baru ke dalam pengalaman Anda, meningkatkan retensi pemain dan keterlibatan keseluruhan.Pemain dapat mengakses dan berbagi tautan rujukan dari undangan pemain atau langsung dari menu undangan default dalam pengalaman.
Sebagai pengembang, Anda dapat menggunakan tautan referensi bersama ini untuk:
- Lacak pemain mana yang telah berhasil mengundang pemain lain ke pengalaman Anda.
- Lacak pemain mana yang telah bergabung dengan pengalaman Anda menggunakan undangan tautan rujukan dari pemain lain.
- Buat dan distribusikan hadiah kepada kedua penyelenggara dan undangan.

Untuk menerapkan sistem referensi teman, buat acara referensi dan buat hadiah referensi .Properti ReferredByPlayerId dari GetJoinData() secara otomatis mengisi untuk semua jenis undangan dan memberi Anda akses ke ID pengguna pemain referensi.Anda kemudian dapat mengakses data ini di acara Players.PlayerAdded untuk mengidentifikasi pengundang dan memberikan hadiah kepada pengundang dan penerima.
function onPlayerAdded(player)
local referredByPlayerId = player:GetJoinData().ReferredByPlayerId
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
referrerEvent:FireClient(player, referredByPlayerId)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Membuat acara referensi
Untuk mengatur acara referensi:
- Buat RemoteEvent di ReplicatedStorage untuk membuat acara remote untuk berkomunikasi dengan klien saat referensi diterima.
- Ambil ID pengguna penyelenggara menggunakan untuk melacak pendaftaran pemain dan menangani logika referensi di skrip sisi server selama acara .
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Buat atau dapatkan Acara Jarak Jauh untuk menangani referensi
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- Fungsi yang diaktifkan saat pemain bergabung
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Periksa apakah pemain diundang melalui referensi
if referredByPlayerId and referredByPlayerId ~= 0 then
-- Tembak acara referensi ke klien, melewati ID pengundang
referrerEvent:FireClient(player, referredByPlayerId)
-- Logika tambahan untuk menghargai penyambut dan pengundang dapat ditambahkan di sini
-- Contohnya: rewardReferrer(direspon oleh PlayerId)
-- Contohnya: rewardInvitee(pemain)
end
end
-- Hubungkan fungsi ke acara PlayerAdded
Players.PlayerAdded:Connect(onPlayerAdded)
Berikan hadiah referensi
Untuk mendorong partisipasi, berikan hadiah kepada kedua penyelenggara dan peserta.Sebagai contoh, Anda dapat memberi penyambut lencana atau mata uang pengalaman saat teman mereka bergabung dengan pengalaman, dan memberi para undangan hadiah selamat datang karena bergabung dengan pengalaman melalui tautan tautkan.
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Buat atau dapatkan Acara Jarak Jauh untuk menangani referensi
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- Fungsi yang diaktifkan saat pemain bergabung
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Periksa apakah pemain diundang melalui referensi
if referredByPlayerId and referredByPlayerId ~= 0 then
-- Tembak acara referensi ke klien, melewati ID pengundang
referrerEvent:FireClient(player, referredByPlayerId)
-- Hadiahi penyambut
function rewardReferrer(referrerId)
local referrerPlayer = Players:GetPlayerByUserId(referrerId)
if referrerPlayer then
-- Berikan hadiah kepada pengundang mereka
-- Contoh: referrerPlayer.leaderstats.Coins.Value += 100
end
end
-- Hadiahi undangan
function rewardInvitee(player)
-- Berikan hadiah kepada undangan
-- Contoh: pemain.leaderstats.WelcomeBonus.Value += 50
end
end
end
-- Hubungkan fungsi ke acara PlayerAdded
Players.PlayerAdded:Connect(onPlayerAdded)
Mengelola pencegahan penyalahgunaan
Anda dapat menerapkan perlindungan untuk mencegah pemain mengeksploitasi sistem referensi teman.
- Tawarkan hadiah satu kali untuk melacak peserta undangan dan pastikan mereka hanya dihargai sekali.
- Perkenalkan periode pendinginan sebelum penyebut bisa mengirimkan referensi lain.
- Pantau aktivitas tidak biasa dan terapkan langkah-langkah korektif seperti melarang pengguna atau membatalkan hadiah.
-- Tabel untuk melacak pemain yang sudah di referensikan
local referredPlayers = {}
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Periksa apakah pemain diundang dan belum menggunakan referensi
if referredByPlayerId and referredByPlayerId ~= 0 and not referredPlayers[player.UserId] then
-- Tanda tangani pemain sebagai referensi
referredPlayers[player.UserId] = true
-- Hadiah pengundang dan penerima
rewardReferrer(referredByPlayerId)
rewardInvitee(player)
end
end