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

วงจรชีวิต
บริการ Players ประกอบด้วยอินสแตนซ์ Player ทั้งหมดในเกม สคริปต์ทั้งฝั่งไคลเอนต์และเซิร์ฟเวอร์สามารถเชื่อมต่อกับเหตุการณ์ Players.PlayerAdded และ Players.PlayerRemoved เพื่อดำเนินการตามวงจรชีวิตของวัตถุ Player สคริปต์ยังสามารถเชื่อมต่อกับเหตุการณ์ Player.CharacterAdded และ Player.CharacterRemoving เพื่อดำเนินการที่เกี่ยวข้องกับการเล่นเกมเมื่อมีการเกิดหรือหายไปของตัวละคร
การเข้าร่วมของผู้ใช้
เมื่อไคลเอนต์ของผู้ใช้เชื่อมต่อกับเกม เหตุการณ์ Players.PlayerAdded จะถูกเรียกและส่งผ่านวัตถุ Player ของผู้ใช้ที่เข้าร่วม; คุณสามารถใช้วัตถุนี้เพื่อวัตถุประสงค์ต่างๆ เช่น โหลด ข้อมูลผู้ใช้ จากที่เก็บข้อมูลหรือมอบหมายผู้เล่นให้กับ ทีม
ตัวอย่างเช่น เพื่อโหลดข้อมูลของผู้ใช้เมื่อพวกเขาเข้าร่วมเกม ให้ใช้เหตุการณ์ PlayerAdded ใน Script เพื่อดึงข้อมูลของผู้ใช้ที่เก็บไว้ในที่เก็บข้อมูลภายใต้ ID ผู้ใช้ของพวกเขา:
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 และพยายามบันทึกข้อมูลของผู้ใช้ในที่เก็บข้อมูลภายใต้ ID ผู้ใช้ของพวกเขา:
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