Bir Roblox kullanıcısı bir oyuna katıldığında, Player olarak DataModel içinde temsil edilir. Bu Player nesnesi, kullanıcı adı, arkadaş listesi ve kaydedilmiş avatar karakteri gibi oyunlar arasında evrensel olan kullanıcı hakkında bilgi içerir ve kullanıcının oyuna katılma ve oyundan ayrılma arasındaki yaşam döngüsünü etkileyen özellikler, yöntemler ve olaylar içerir. Her Player nesnesi ayrıca, bir kullanıcının deneyimini özelleştirmek için kullanabileceğiniz dört önemli konteyner içerir: Backpack, StarterGear, PlayerGui ve PlayerScripts.
Her Player ayrıca, mevcut oyundaki oyuncunun alan kapsamlı kimliğini temsil eden bir User değeri olan Player.User özelliğini açığa çıkarır. Kullanıcı tanımlamanın nasıl çalıştığı hakkında daha fazla bilgi için, alan kapsamlı kullanıcı kimlikleri ve User türü hakkında Kullanıcılar ve alan kapsamlı kullanıcı kimlikleri sayfasına bakın.

Yaşam Döngüsü
Players servisi, bir oyundaki tüm Player örneklerini içerir. Hem istemci hem de sunucu tarafı betikleri, Players.PlayerAdded ve Players.PlayerRemoved olaylarına bağlanarak bir Player nesnesinin yaşam döngüsüne yanıt olarak eylemler gerçekleştirebilir. Betikler ayrıca, karakterin doğması veya yok olması durumunda oyunla ilgili eylemler gerçekleştirmek için Player.CharacterAdded ve Player.CharacterRemoving olaylarına da bağlanabilir.
Kullanıcı katılımı
Bir kullanıcı istemcisi bir oyuna bağlandığında, Players.PlayerAdded olayı tetiklenir ve katılan kullanıcının Player nesnesini geçirir; bu nesneyi, bir veri deposundan kullanıcı verilerini yüklemek veya oyuncuyu bir takıma atamak gibi birçok amaç için kullanabilirsiniz.
Örneğin, bir kullanıcının oyuna katıldığında verilerini yüklemek için, bir Script içinde PlayerAdded olayını kullanarak kullanıcının kullanıcı kimliği altında bir veri deposunda saklanan verilerini alabilirsiniz:
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
Players.PlayerAdded:Connect(function(player)
local userId = player.UserId
-- Veri deposu anahtarını oku
local getSuccess, currentData = pcall(function()
return playerDataStore:GetAsync(userId)
end)
if getSuccess then
print(currentData)
end
-- currentData ile daha fazla eylem yap
end)Karakter doğumu
Varsayılan olarak, bir kullanıcının Player.Character modeli, platform avatarını temsil eder ve Players.CharacterAutoLoads true olarak ayarlanmıştır, bu da karakter modelinin kullanıcının bir oyuna katıldığında otomatik olarak doğacağı anlamına gelir.
Bir kullanıcının Player.Character doğduğunda, Scripts ve LocalScripts içindeki StarterCharacterScripts karakter modeline kopyalanır ve Player.CharacterAdded olayı tetiklenir. Bu olay, yeni karakter modelini dinleyicilerine geçirir; bu sayede karakterin Humanoid nesnesini bulabilir ve davranışını değiştirebilirsiniz. Örneğin, avatarın kıyafetini değiştirmek için Humanoid:ApplyDescription() kullanabilirsiniz.
Karakter yok olması
Oyuncunun Humanoid öldüğünde, sunucu otomatik olarak karakter modelini Players.RespawnTime tarafından belirtilen süre sonunda kaldırır. Daha sonra, karakterle ilişkili diğer nesneleri sıfırlamak veya verileri güncellemek için Player.CharacterRemoving olayını kullanabilirsiniz.
Kullanıcı ayrılması
Bir kullanıcı istemcisi bir oyundan ayrıldığında, sunucu, Players servisindeki ilişkili Player nesnesini yok eder. Bu noktada, Players.PlayerRemoving olayı tetiklenir ve bağlantıyı kesen kullanıcının Player nesnesini geçirir. Bu, kullanıcı verilerini kaydetmek, bir puan tablosundan oyuncu istatistiklerini kaldırmak veya oyundaki oyuncu tarafından oluşturulan modelleri yok etmek gibi birçok amaç için kullanılabilir.
Aşağıdaki örnek Script, PlayerRemoving olayını dinler ve kullanıcının verilerini kullanıcı kimliği altında bir veri deposuna kaydetmeye çalışır:
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
Players.PlayerRemoving:Connect(function(player)
local userId = player.UserId
-- Oyundaki oyuncunun veri durumunu al
local currentData = getCurrentData(player)
-- Veri deposuna kaydet
local setSuccess, errorMessage = pcall(function()
playerDataStore:SetAsync(userId, currentData)
end)
if not setSuccess then
warn(errorMessage)
end
end)Konteynerler
Her bir Player nesnesi, bir kullanıcının istemcisini temsil eder ve birkaç önemli konteyner depolar: Backpack, StarterGear, PlayerGui ve PlayerScripts. Oyun çalışma zamanında, "düzenle" veri modelindeki birkaç konteyner, içeriklerini bu Player konteynerlerine kopyalar; StarterGui PlayerGui'ya, StarterPack Backpack'a ve StarterPlayerScripts PlayerScripts'e kopyalanır.

Backpack içindeki Tool nesneleri, oyuncunun envanterini oluşturur ve ekranın alt kısmında simge düğmeleri olarak görüntülenir. Daha fazla bilgi için oyun içi araçlar sayfasına bakın.
Yukarıda gösterildiği gibi, StarterPack ve oyuncunun StarterGear içeriği, bir oyuncunun Character doğduğunda Backpack'a kopyalanır. Karakter öldüğünde, istemci Backpack'ı yok eder ve yerine yenisini koyar.
Varsayılan Roblox envanter GUI'sini devre dışı bırakmak ve kendi GUI'nizle değiştirmek için, varsayılan UI'yi devre dışı bırakma sayfasında açıklandığı gibi bir LocalScript içinde StarterGui:SetCoreGuiEnabled() çağrısını yapın.
Kullanıcıları Yasaklama
Oyunlarınızda nezaket ve adil oyunu sağlamak için, kuralları veya topluluk yönergelerini ihlal eden kullanıcıları yasaklayabilirsiniz. Yasak sürelerini, yasak mesajlarını değiştirebilir ve hatta potansiyel alternatif hesaplara yasakları uzatabilirsiniz. Bu özelliği kullanırken, yasaklama yönergelerine ve mesajlaşmaya uymalısınız.
Yasaklarla çalışmak için birkaç seçeneğiniz vardır:
- Creator Hub üzerindeki her oyun sayfasında bir Yasaklar panosu bulunmaktadır.
- Motor API'si ile programatik kullanım için Players:BanAsync()'a bakın.
- Open Cloud için yasaklar ve engeller sayfasına bakın.
Cihaz Engelleme
Bir hesabı yasaklamanın yanı sıra, Players:BanAsync() cihaz engelleme desteği sunar; bu, yapılandırma tablosundaki ApplyDeviceBlock alanı aracılığıyla yapılır. ApplyDeviceBlock true olarak ayarlandığında, oyununuzda şu anda bağlı olan bir kullanıcıyı yasakladığınızda, o kullanıcıyla ilişkili cihazın yeniden katılmasını 24 saat boyunca engeller. Bu seçenek, yasak kaçışına karşı bir engel ekler; yasaklı oyuncular, aynı cihazdan yeni bir hesapla hemen oyuna katılamazlar.
- Cihaz engelleme şu anda yalnızca masaüstü (Windows ve macOS) oyuncularına uygulanmaktadır. Mobil cihazlar veya konsollar için geçerli değildir.
- Cihaz engeli, cihazı kullanmış olan diğer hesaplara yasak olarak geçmez.
- Etkilenen kullanıcı üzerindeki yasak kaldırma API'sini çağırmak, o kullanıcının cihazıyla ilişkili herhangi bir aktif cihaz engelini hemen kaldırır ve onların oyuna yeniden katılmasına izin verir.
Yasaklama Yönergeleri
Oyunlarınızda yasaklamaları uygularken, aşağıdaki yönergelere uyun:
- Oyun kuralları, Roblox'un Topluluk Standartları ve Kullanım Şartları ile çelişmemelidir. Örneğin, birinin cinsiyeti nedeniyle birini dışlayan bir oyun kuralı oluşturamazsınız; bu, Roblox'un Ayrımcılık, Küfür ve Nefret Söylemi politikası ile çelişir.
- Yaratıcılar, oyun kurallarını tüm kullanıcıların erişebileceği bir yerde açıkça belirtmelidir.
- Yaratıcılar, oyun kurallarını adil bir şekilde uygulamalı ve belirli kullanıcıları keyfi olarak hedef almamalıdır.
- Kullanıcılar, yasaklarının yanlış olduğunu düşündüklerinde doğrudan yaratıcılarla iletişime geçebilirler. Roblox, bu itirazları arabuluculuk yapmayacaktır, yalnızca kullanıcı, yaratıcıların oyun kurallarının veya bu kuralların uygulanmasının Topluluk Standartları ile çeliştiğini düşünüyorsa.
- Roblox, bir yaratıcıların oyun kurallarının veya bu kuralların uygulanmasının Topluluk Standartları ile çeliştiğine dair bir neden olduğunda bir oyunu denetleyebilir.
Mesaj Yönergeleri
Bir kullanıcı yasaklandığında, yasak süresi ve nedeni gibi bilgileri gösteren bir hata modalı alır. Metin filtreli mesajda, Roblox'un Topluluk Standartları ile uyumlu olduğunuz sürece, itiraz veya iletişim bilgileri gibi ek bilgiler ekleyebilirsiniz.
Örneğin, yasak mesajlarınızda marka adlarına ve platformlara atıfta bulunmanıza izin verilir:
- "Grup/oyun sayfamda Discord'a katılın"
- "Bana Twitter veya X üzerinden mesaj atın"
Bu mesaj alanında kişisel bilgilere veya doğrudan bağlantılara atıfta bulunmak yasaktır. Bu, belirli bir kullanıcı adı veya etiket paylaşmayı veya bir Discord sunucusuna veya X hesabına doğrudan bağlantı sağlamayı içerir.