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 konteyneri içerir: Backpack, StarterGear, PlayerGui ve PlayerScripts.
Her Player ayrıca, mevcut oyunun alanı içindeki oyuncunun kimliğini temsil eden bir User olan Player.User özelliğini açığa çıkarır. Id özelliği her zaman bu kullanıcının ilişkili alan için etkili kullanıcı kimliği olur. Etkili kullanıcı kimlikleri hakkında daha fazla bilgi için Kullanıcılar ve kapsamlı kullanıcı kimlikleri sayfasına bakın.

Yaşam Döngüsü
Players servisi, bir oyundaki tüm Player örneklerini içerir. İstemci ve 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 kullanıcının kullanıcı kimliği altında bir veri deposunda saklanan verilerini almak için PlayerAdded olayını kullanın:
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'u ö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 Player nesnesi, bir kullanıcının istemcisini temsil eder ve birkaç önemli konteyneri depolar: Backpack, StarterGear, PlayerGui ve PlayerScripts. Oyun çalışma zamanında, "düzenle" veri modelindeki birkaç konteyner, Player konteynerlerine içeriklerini kopyalar; bunlar arasında StarterGui'dan PlayerGui, StarterPack'ten Backpack'e ve StarterPlayerScripts'ten PlayerScripts'e kopyalama yapılır.

Tool nesneleri Backpack içinde 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'e kopyalanır. Karakter öldüğünde, istemci Backpack'i 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 medeni ve adil bir oyun 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 engellemeyi de destekler; 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 dışlayan bir oyun kuralı oluşturamazsınız; bu, Roblox'un Ayrımcılık, Hakaret ve Nefret Söylemi politikası ihlalidir.
- 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üşünüyorsanız 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 kurallarını uygulamalarının Topluluk Standartları ihlal ettiğini düşünüyorsa.
- Roblox, bir yaratıcı oyun kurallarının veya kurallarını uygulamalarının Topluluk Standartları ihlal ettiğine dair bir neden varsa 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.