เมื่อผู้ใช้ Roblox เข้าร่วมเกม พวกเขาจะถูกแทนด้วย Player ใน DataModel วัตถุ Player นี้มีข้อมูลเกี่ยวกับผู้ใช้ที่เป็นสากลในทุกเกม เช่น ชื่อผู้ใช้ รายชื่อเพื่อน และ ตัวละครอวตารที่บันทึก เช่นเดียวกับคุณสมบัติ วิธีการ และเหตุการณ์ที่มีผลต่อ วงจรชีวิต ของผู้ใช้ตั้งแต่เข้าร่วมจนถึงออกจากเกม วัตถุ Player แต่ละตัวยังมี 4 container ที่สำคัญซึ่งคุณสามารถใช้เพื่อปรับแต่งประสบการณ์ของผู้ใช้ได้: Backpack, StarterGear, PlayerGui, และ PlayerScripts
แต่ละ Player ยังเปิดเผยคุณสมบัติ Player.User ซึ่งเป็นค่า User ที่แทนตัวตนของผู้เล่นในโดเมนภายในเกมปัจจุบัน สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการระบุตัวผู้ใช้ รวมถึงรหัสผู้ใช้เชิงโดเมนและประเภท User โปรดดูที่ ผู้ใช้และรหัสผู้ใช้เชิงโดเมน

วงจรชีวิต
บริการ Players จะเก็บอินสแตนซ์ Player ทั้งหมดในเกม สคริปต์ทั้งฝั่งไคลเอ็นต์และเซิร์ฟเวอร์สามารถเชื่อมต่อกับเหตุการณ์ Players.PlayerAdded และ Players.PlayerRemoved เพื่อดำเนินการตามวงจรชีวิตของวัตถุ Player สคริปต์ยังสามารถเชื่อมต่อกับเหตุการณ์ Player.CharacterAdded และ Player.CharacterRemoving เพื่อดำเนินการที่เกี่ยวข้องกับเกมเมื่อมีการเกิดตัวละคร
การเข้าร่วมของผู้ใช้
เมื่อไคลเอนต์ของผู้ใช้เชื่อมต่อกับเกม เหตุการณ์ Players.PlayerAdded จะเกิดขึ้นและส่งวัตถุ Player ของผู้ใช้ที่เข้าร่วม คุณสามารถใช้วัตถุนี้เพื่อวัตถุประสงค์ต่าง ๆ เช่น โหลด ข้อมูลของผู้ใช้ จากที่จัดเก็บข้อมูลหรือตั้งค่าผู้เล่นให้เป็น ทีม
ตัวอย่างเช่น เพื่อโหลดข้อมูลของผู้ใช้เมื่อพวกเขาเข้าร่วมเกม ให้ใช้เหตุการณ์ PlayerAdded ใน Script เพื่อเรียกดูข้อมูลของผู้ที่ถูกเก็บไว้ในที่จัดเก็บข้อมูลตามรหัสผู้ใช้ของพวกเขา:
Script in ServerScriptService
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
Players.PlayerAdded:Connect(function(player)
local userId = player.UserId
-- อ่านคีย์ที่จัดเก็บข้อมูล
local getSuccess, currentData = pcall(function()
return playerDataStore:GetAsync(userId)
end)
if getSuccess then
print(currentData)
end
-- ดำเนินการเพิ่มเติมกับ currentData
end)
การเกิดของตัวละคร
โดยปกติแล้ว โมเดล Player.Character ของผู้ใช้จะแทนที่อวตารในแพลตฟอร์มของพวกเขา และ Players.CharacterAutoLoads เป็น true ซึ่งหมายความว่ามโมเดลตัวละครจะเกิดขึ้นโดยอัตโนมัติเมื่อผู้ใช้เข้าร่วมเกม
เมื่อ Player.Character ของผู้ใช้เกิดขึ้น สคริปต์ Scripts และ LocalScripts ใน StarterCharacterScripts จะถูกคัดลอกไปยังโมเดลตัวละครและเหตุการณ์ Player.CharacterAdded จะเกิดขึ้น เหตุการณ์นี้จะส่งโมเดลตัวละครใหม่ไปยังผู้ฟังซึ่งคุณสามารถใช้เพื่อค้นหาวัตถุ Humanoid ของตัวละครและปรับเปลี่ยนพฤติกรรมของมัน ได้ตัวอย่างเช่น คุณสามารถใช้ Humanoid:ApplyDescription() เพื่อเปลี่ยนชุดของอวตาร
การออกของตัวละคร
เมื่อ Humanoid ของผู้เล่นตาย เซิร์ฟเวอร์จะลบนโมเดลตัวละครโดยอัตโนมัติหลังจากระยะเวลาที่ระบุโดย Players.RespawnTime จากนั้นคุณสามารถใช้เหตุการณ์ Player.CharacterRemoving เพื่อตั้งค่าวัตถุอื่น ๆ ใหม่หรืออัปเดตข้อมูลที่เกี่ยวข้องกับตัวละคร
การออกจากผู้ใช้
เมื่อไคลเอนต์ผู้ใช้ตัดการเชื่อมต่อจากเกม เซิร์ฟเวอร์จะทำลายวัตถุ Player ที่เกี่ยวข้องภายในบริการ Players ในจุดนี้ เหตุการณ์ Players.PlayerRemoving จะเกิดขึ้นและส่งวัตถุ Player ของผู้ใช้ที่ตัดการเชื่อมต่อ คุณสามารถใช้สิ่งนี้เพื่อวัตถุประสงค์ต่าง ๆ เช่น การบันทึกข้อมูลของผู้ใช้ การลบสถิติของผู้เล่นจากกระดานคะแนน หรือทำลายโมเดลที่สร้างโดยผู้เล่นในเกม
ตัวอย่าง Script ต่อไปนี้ฟังเหตุการณ์ PlayerRemoving และพยายามบันทึกข้อมูลของผู้ใช้ในที่จัดเก็บข้อมูลตามรหัสผู้ใช้ของพวกเขา:
Script in ServerScriptService
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
Players.PlayerRemoving:Connect(function(player)
local userId = player.UserId
-- รับสถานะข้อมูลของผู้เล่นในเกม
local currentData = getCurrentData(player)
-- บันทึกไปยังที่จัดเก็บข้อมูล
local setSuccess, errorMessage = pcall(function()
playerDataStore:SetAsync(userId, currentData)
end)
if not setSuccess then
warn(errorMessage)
end
end)
คอนเทนเนอร์
วัตถุ Player แต่ละตัวที่แทนไคลเอนต์ของผู้ใช้จะเก็บคอนเทนเนอร์ที่สำคัญหลายรายการ ได้แก่ Backpack, StarterGear, PlayerGui, และ PlayerScripts ในระหว่างการทำงานของเกม คอนเทนเนอร์หลายรายการในโมเดลข้อมูล "แก้ไข" จะคัดลอกเนื้อหาของพวกเขาไปยังคอนเทนเนอร์ Player เหล่านี้ รวมถึง StarterGui ไปเป็น PlayerGui, StarterPack ไปเป็น Backpack, และ StarterPlayerScripts ไปเป็น PlayerScripts

วัตถุ Tool ใน Backpack รวมกันเป็นสินค้าคงคลังของผู้เล่นและแสดงผลเป็นปุ่มไอคอนที่ด้านล่างของหน้าจอ ดู เครื่องมือในเกม สำหรับข้อมูลเพิ่มเติม
ตามที่แสดงข้างต้น เนื้อหาของ StarterPack และ StarterGear ของผู้เล่นจะถูกคัดลอกไปยัง Backpack เมื่อ Character ของผู้เล่นเกิดขึ้น เมื่อชื่อตัวละครตาย ไคลเอ็นต์จะทำลาย Backpack และแทนที่ด้วยอันใหม่
ในการปิดการใช้งาน GUI สินค้าคงคลังเริ่มต้นของ Roblox และแทนที่ด้วยของคุณเอง ให้เรียก StarterGui:SetCoreGuiEnabled() ใน LocalScript ตามที่อธิบายไว้ใน ปิด UI เริ่มต้น
การแบนผู้ใช้
เพื่อให้แน่ใจถึงมารยาทและการเล่นอย่างยุติธรรมในเกมของคุณ คุณสามารถแบนผู้ใช้ที่ฝ่าฝืนกฎหรือนโยบายชุมชน คุณสามารถแก้ไขระยะเวลาการแบน ข้อความแบน และแม้กระทั่งขยายการแบนไปยังบัญชีที่อาจเป็นทางเลือกได้ เมื่อใช้คุณลักษณะนี้ คุณต้องปฏิบัติตาม แนวทางการแบน และ ข้อความ
คุณมีตัวเลือกหลายอย่างในการทำงานกับการแบน:
- ทุกหน้าของเกมใน Creator Hub มีแดชบอร์ด Bans
- สำหรับการใช้งานเชิงโปรแกรมกับ API ของเกม ให้ดูที่ Players:BanAsync()
- สำหรับ Open Cloud ดูที่ การแบนและบล็อก
การบล็อกอุปกรณ์
นอกเหนือจากการแบนบัญชีแล้ว Players:BanAsync() ยังรองรับ การบล็อกอุปกรณ์ ผ่านฟิลด์ ApplyDeviceBlock ในตารางการกำหนดค่า เมื่อคุณแบนผู้ใช้ที่เชื่อมต่อกับเกมของคุณในขณะที่ตั้งค่า ApplyDeviceBlock เป็น true อุปกรณ์ที่เกี่ยวข้องกับผู้ใช้นั้นจะถูกบล็อกจากการเข้าร่วมอีกครั้งเป็นเวลา 24 ชั่วโมง ตัวเลือกนี้เพิ่มแรงต้านทานต่อการหลีกเลี่ยงการแบน; ผู้เล่นที่ถูกแบนไม่สามารถเข้าร่วมเกมจากบัญชีใหม่บนอุปกรณ์เดียวกันได้ทันที
- การบล็อกอุปกรณ์ปัจจุบันใช้ได้เฉพาะกับผู้เล่นบนเดสก์ท็อป (Windows และ macOS) ไม่ใช้กับอุปกรณ์เคลื่อนที่หรือคอนโซล
- การบล็อกอุปกรณ์จะไม่แพร่กระจายเป็นการแบนไปยังบัญชีอื่น ๆ ที่ใช้เครื่องนั้น
- การเรียก API ยกเลิกการแบนบนผู้ใช้ที่ได้รับผลกระทบจะลบการบล็อกอุปกรณ์ที่ใช้งานอยู่ทั้งหมดที่เกี่ยวข้องกับอุปกรณ์ของผู้ใช้นั้นโดยทันที ทำให้พวกเขาสามารถเข้าร่วมเกมได้อีกครั้ง
แนวทางการแบน
เมื่อดำเนินการแบนในเกมของคุณ ให้ปฏิบัติตามแนวทางต่อไปนี้:
- กฎของเกมต้องไม่ขัดแย้งกับ มาตรฐานชุมชน และ ข้อตกลงในการใช้งาน ของ Roblox ตัวอย่างเช่น คุณไม่สามารถสร้างกฎของเกมที่ยกเว้นใครบางคนจากเพศของพวกเขา เนื่องจากเป็นการละเมิด นโยบายการเลือกปฏิบัติ คำพูดแสดงความเกลียดชัง และการดูถูกเหยียดเชื้อชาติของ Roblox
- ผู้สร้างต้องระบุให้ชัดเจนเกี่ยวกับกฎของเกมในที่ที่ผู้ใช้ทุกคนเข้าถึงได้
- ผู้สร้างต้องใช้กฎของเกมอย่างยุติธรรมและไม่เลือกเป้าหมายผู้ใช้บางคนอย่างไร้เหตุผล
- ผู้ใช้สามารถยื่นอุทธรณ์ต่อตัวผู้สร้างได้โดยตรงหากพวกเขาเชื่อว่าการแบนของพวกเขาผิดพลาด Roblox จะไม่ทำหน้าที่เป็นตัวกลางในอุทธรณ์เหล่านี้ เว้นแต่ผู้ใช้จะเชื่อว่ากฎของเกมของผู้สร้างหรือการบังคับใช้กฎเหล่านั้นละเมิด มาตรฐานชุมชน
- Roblox สามารถตรวจสอบเกมได้หากมีเหตุผลที่จะเชื่อว่ากฎของเกมของผู้สร้างหรือการบังคับใช้กฎเหล่านั้นละเมิด มาตรฐานชุมชน
แนวทางการส่งข้อความ
เมื่อผู้ใช้ถูกแบน พวกเขาจะได้รับโมเดลข้อผิดพลาดที่แสดงข้อมูลเช่น ระยะเวลาและเหตุผลในการแบน ในข้อความที่ถูกกรอง คุณสามารถรวมข้อมูลเพิ่มเติม เช่น ข้อมูลการอุทธรณ์หรือข้อมูลติดต่อ ตราบใดที่คุณปฏิบัติตาม มาตรฐานชุมชน ของ Roblox
ตัวอย่างเช่น ในข้อความแบนของคุณ คุณได้รับอนุญาตให้กล่าวถึงชื่อแบรนด์และแพลตฟอร์ม:
- "ไปที่ Discord ในกลุ่ม/หน้าเกมของฉัน"
- "ส่งข้อความถึงฉันทาง Twitter หรือ X"
การกล่าวถึงข้อมูลส่วนบุคคลหรือการเชื่อมโยงโดยตรงไม่ได้รับอนุญาตในฟิลด์ข้อความนี้ รวมถึงการโพสต์ชื่อผู้ใช้เฉพาะหรือแฮนเดิล หรือการให้ลิงก์โดยตรงไปยังเซิร์ฟเวอร์ Discord หรือบัญชี X