Players

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Tidak Dapat Dibuat
Layanan

Layanan Players memiliki objek Player untuk klien yang saat ini terhubung ke server Roblox.Ini juga berisi informasi tentang konfigurasi tempat.Ini dapat menyelidiki informasi tentang pemain yang tidak terhubung ke server, seperti penampilan karakter, teman, dan thumbnailavatar.

Rangkuman

Properti

Metode

Acara

Properti

BanningEnabled

Tidak Direplikasi
Tidak Dapat Ditulis Skripnya
Baca Paralel

Aktifkan atau nonaktifkan tiga metode Players ( BanAsync() , UnbanAsync() , dan GetBanHistoryAsync() ) yang membentuk API larangan.Properti ini tidak dapat diskripkan dan hanya dapat dimodifikasi di Studio.

BubbleChat

Hanya Baca
Tidak Direplikasi
Baca Paralel

Properti ini menunjukkan apakah atau tidak obrolan gelembung diaktifkan. Ini diatur dengan metode Players:SetChatStyle() menggunakan enum Enum.ChatStyle.

Ketika mode obrolan ini diaktifkan, permainan menampilkan obrolan di antarmuka pengguna obrolan di sudut kiri atas layar.

Ada dua mode obrolan lain, Players.ClassicChat dan mode obrolan di mana kedua obrolan klasik dan gelembung diaktifkan.

CharacterAutoLoads

Tidak Direplikasi
Baca Paralel

Properti ini menunjukkan apakah characters akan muncul kembali secara otomatis. Nilai default adalah benar.

Jika properti ini dinonaktifkan (salah), pemain characters tidak akan muncul sampai fungsi Player:LoadCharacter() dipanggil untuk setiap Player, termasuk saat pemain bergabung dengan pengalaman.

Ini bisa berguna dalam pengalaman di mana pemain memiliki kehidupan terbatas, seperti permainan kompetitif di mana pemain tidak respawn sampai ronde permainan berakhir.

Contoh Kode

Player Respawn Timer

local Players = game:GetService("Players")
-- Set CharacterAutoLoads to false
Players.CharacterAutoLoads = false
-- Remove player's character from workspace on death
Players.PlayerAdded:Connect(function(player)
while true do
local char = player.CharacterAdded:Wait()
char.Humanoid.Died:Connect(function()
char:Destroy()
end)
end
end)
-- Respawn all dead players once every 10 seconds
while true do
local players = Players:GetChildren()
-- Check if each player is dead by checking if they have no character, if dead load that player's character
for _, player in pairs(players) do
if not workspace:FindFirstChild(player.Name) then
player:LoadCharacter()
end
end
-- Wait 10 seconds until next respawn check
task.wait(10)
end

ClassicChat

Hanya Baca
Tidak Direplikasi
Baca Paralel

Menunjukkan apakah atau tidak obrolan klasik diaktifkan. Properti ini ditetapkan oleh metode Players:SetChatStyle() menggunakan enum Enum.ChatStyle.

Saat mode obrolan ini diaktifkan, permainan menampilkan obrolan di sebuah gelembung di atas kepala pengirim.

Ada dua mode obrolan lain, Players.BubbleChat dan mode obrolan di mana kedua obrolan klasik dan gelembung diaktifkan.

LocalPlayer

Hanya Baca
Tidak Direplikasi
Baca Paralel

Properti baca hanya ini merujuk pada Player yang kliennya menjalankan pengalaman.

Properti ini hanya didefinisikan untuk LocalScripts dan ModuleScripts diperlukan oleh mereka, karena mereka berjalan di klien.Untuk server, di mana Script objek menjalankan kode mereka, properti ini adalah nil .

MaxPlayers

Hanya Baca
Tidak Direplikasi
Baca Paralel

Properti ini menentukan jumlah maksimum pemain yang dapat ada di server.Properti ini hanya dapat ditetapkan melalui pengaturan tempat tertentu di Dashboard Pencipta atau melalui Pengaturan Game .

PreferredPlayers

Hanya Baca
Tidak Direplikasi
Baca Paralel

Properti ini menunjukkan jumlah pemain yang akan diisi oleh matchmaker Roblox ke server.Angka ini akan kurang dari jumlah maksimum pemain ( Players.MaxPlayers ) yang didukung oleh pengalaman.

RespawnTime

Baca Paralel

Properti ini mengontrol waktu, dalam detik, dibutuhkan waktu bagi pemain untuk respawn ketika Players.CharacterAutoLoads adalah benar. Ini default ke 5,0 detik.

Ini berguna ketika Anda ingin mengubah berapa lama waktu yang dibutuhkan untuk respawn berdasarkan jenis pengalaman Anda tetapi tidak ingin menangani pemutaran pemain secara individual.

Meskipun properti ini dapat ditetapkan dari dalam Script , Anda dapat dengan mudah mengatur langsung di objek Players di jendela Explorer Studio.

UseStrafingAnimations

Tidak Dapat Ditulis Skripnya
Baca Paralel

Metode

Chat

()
Keamanan Plugin

Fungsi ini membuat pemain lokal mengobrol pesan yang diberikan.Karena item ini dilindungi, mencoba menggunakannya di Script atau LocalScript akan menyebabkan kesalahan.

Sebagai gantinya, saat membuat sistem obrolan khusus, atau sistem yang membutuhkan akses ke obrolan, Anda dapat menggunakan fungsi Chat layanan Chat:Chat() sebagai gantinya.

Parameter

message: string

Pesan obrolan.

Nilai Default: ""

Memberikan nilai

()

Contoh Kode

Players:Chat

-- Command bar
game:GetService("Players"):Chat("Hello, world!") --Results in 'Hello, world!' appearing in the Chat log under your Player's name.
-- Script
local Players = game:GetService("Players")
Players:Chat("Hello, world!") --Errors

GetPlayerByUserId

Tulis Paralel

Fungsi ini mencari masing-masing Player di Players untuk satu yang Player.UserId sesuai dengan yang diberikan userId .Jika pemain seperti itu tidak ada, ia mengembalikan nil .

Metode ini berguna dalam menemukan pembeli produk pengembang menggunakan MarketplaceService.ProcessReceipt yang menyediakan tabel yang berisi pembeli UserId dan bukan referensi ke objek Player itu sendiri.Sebagian besar pengalaman akan memerlukan referensi ke pemain untuk memberikan produk.

Parameter

userId: number

The Player.UserId dari pemain yang ditentukan.

Nilai Default: ""

Memberikan nilai

Contoh Kode

Players:GetPlayerByUserId

local Players = game:GetService("Players")
local player = Players:GetPlayerByUserId(1)
if player then
print("Player with userId 1 is in this server! Their name is: " .. player.Name)
else
print("Player with userId 1 is not in this server!")
end

GetPlayerFromCharacter

Fungsi ini mengembalikan Player yang terkait dengan Player.Character yang diberikan, atau nil jika tidak dapat ditemukan.Ini setara dengan fungsi berikut:


local function getPlayerFromCharacter(character)
for _, player in game:GetService("Players"):GetPlayers() do
if player.Character == character then
return player
end
end
end

Metode ini sering digunakan ketika beberapa peristiwa dalam karakter pemain terbakar (seperti Class.Humanoid``Class.Humanoid.Died|dying ).Peristiwa seperti itu mungkin tidak secara langsung merujuk pada objek Pemain, tetapi metode ini memberikan akses mudah.Kebalikan fungsi ini dapat digambarkan sebagai mendapatkan Karakter Pemain.Untuk melakukan ini, cukup akses properti Karakter.

Parameter

character: Model

Instansi karakter yang ingin Anda dapatkan pemainnya dari.

Nilai Default: ""

Memberikan nilai

Contoh Kode

Players:GetPlayerFromCharacter

local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local PLAYER_NAME = "Nightriff"
local character = Workspace:FindFirstChild(PLAYER_NAME)
local player = Players:GetPlayerFromCharacter(character)
if player then
print(`Player {player.Name} ({player.UserId}) is in the game`)
else
print(`Player {PLAYER_NAME} is not in the game!`)
end

GetPlayers

Instances
Tulis Paralel

Metode ini mengembalikan tabel semua objek yang saat ini terhubung Player .Ini berfungsi dengan cara yang sama Instance:GetChildren() akan kecuali bahwa itu hanya mengembalikan objek Player yang ditemukan di bawah Players .Ketika digunakan dengan loop for , itu berguna untuk mengulangi semua pemain dalam game.


local Players = game:GetService("Players")
for _, player in Players:GetPlayers() do
print(player.Name)
end

Skrip yang terhubung ke Players.PlayerAdded sering mencoba untuk memproses setiap Pemain yang terhubung ke game.Metode ini berguna untuk mengulangi pemain yang sudah terhubung yang tidak akan menembak PlayerAdded .Menggunakan metode ini memastikan tidak ada pemain yang terlewatkan!


local Players = game:GetService("Players")
local function onPlayerAdded(player)
print("Player: " .. player.Name)
end
for _, player in Players:GetPlayers() do
onPlayerAdded(player)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Memberikan nilai

Instances

Meja yang berisi semua pemain di server.

Contoh Kode

Berikan Kilauan kepada Semua Orang

local Players = game:GetService("Players")
local function onCharacterAdded(character)
-- Berikan mereka kilauan di kepala mereka jika mereka belum memilikinya
if not character:FindFirstChild("Sparkles") then
local sparkles = Instance.new("Sparkles")
sparkles.Parent = character:WaitForChild("Head")
end
end
local function onPlayerAdded(player)
-- Periksa apakah mereka sudah muncul di
if player.Character then
onCharacterAdded(player.Character)
end
-- Dengarkan pemain (re)spawning
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)

SetChatStyle

()
Keamanan Plugin

Fungsi ini menetapkan apakah BubbleChat dan ClassicChat digunakan, dan memberi tahu TeamChat dan Chat apa yang harus dilakukan menggunakan enum Enum.ChatStyle.Karena item ini dilindungi, mencoba menggunakannya di Script atau LocalScript akan menyebabkan kesalahan.

Fungsi ini digunakan secara internal saat mode obrolan ditetapkan oleh game.

Parameter

Gaya obrolan yang ditentukan sedang atur.

Nilai Default: "Classic"

Memberikan nilai

()

Contoh Kode

Mengatur Gaya Obrolan Pemain

-- Bar perintah
game.Players:SetChatStyle(Enum.ChatStyle.Classic) -- Atur gaya obrolan ke Klasik
-- Skrip Lokal
local Players = game:GetService("Players")
Players:SetChatStyle(Enum.ChatStyle.Classic) -- Errors

TeamChat

()
Keamanan Plugin

Fungsi ini membuat Players.LocalPlayer obrolan pesan yang diberikan, yang hanya dapat dilihat oleh pengguna di tim yang sama.Karena item ini dilindungi, mencoba menggunakannya di Script atau LocalScript akan menyebabkan kesalahan.

Fungsi ini digunakan secara internal saat Players.LocalPlayer mengirim pesan ke tim mereka.

Parameter

message: string

Pesan yang dibicarakan.

Nilai Default: ""

Memberikan nilai

()

Contoh Kode

Mengirim Obrolan Tim

-- Bar perintah
game.Players:TeamChat("Hello World") -- Mengirim pesan "Halo Dunia" ke semua pemain di tim pemain lokal
-- Skrip Lokal
local Players = game:GetService("Players")
Players:TeamChat("Hello World") -- Errors

BanAsync

()
Hasil

Metode Players:BanAsync() memungkinkan Anda dengan mudah melarang pengguna yang melanggar panduan pengalaman Anda.Anda dapat menentukan durasi larangan, mengaktifkan larangan untuk menyebar ke akun alternatif yang diduga, dan memberikan pesan kepada pengguna yang dilarang sesuai dengan Panduan Penggunaan.Anda juga harus memposting aturan pengalaman Anda di suatu tempat yang dapat diakses oleh semua pengguna dan memberikan cara bagi mereka untuk mengajukan banding.Metode ini diaktifkan dan dinonaktifkan oleh properti Players.BanningEnabled, yang dapat Anda aktifkan di Studio.

Pembatasan dan Pesan

Pengguna yang dilarang akan segera diusir dan tidak dapat bergabung kembali dengan pengalaman Anda.Mereka akan ditampilkan dengan modus kesalahan yang menampilkan waktu yang tersisa pada larangan mereka dan DisplayReason Anda.Sistem backend Roblox akan mengusir pemain di semua server dari tempat (s) yang Anda spesifikasikan. DisplayReason dapat memiliki panjang maksimal 400 karakter dan berada di bawah filter teks.Untuk informasi lebih lanjut tentang teks modal yang dapat diterima, lihat pesan larangan.

Tempat dan Alam Semesta

Secara default, larangan berlaku ke tempat mana pun di alam semesta itu.Untuk membatasi larangan hanya ke tempat dari mana API ini dipanggil, konfigurasi ApplyToUniverse ke false.Namun, jika pengguna dilarang di tempat awal alam semesta, itu secara efektif menyebabkan pengguna dikecualikan dari seluruh alam semesta, terlepas dari apakah larangan universal ada atau tidak.

Akun Alternatif

Pengguna sering bermain di bawah beberapa akun berbeda, yang dikenal sebagai akun alternatif atau akun alt, yang terkadang digunakan untuk menghindari larangan akun.Untuk membantu Anda menjaga pengguna yang dilarang tetap keluar, perilaku default dari API ini akan menyebarkan semua larangan dari akun sumber yang Anda larang ke salah satu akun alternatif yang dituduhkan.Anda dapat mematikan penyebaran larangan ke akun alternatif dengan mengkonfigurasi ExcludeAltAccounts ke true.

Durasi Larangan

Tidak semua pelanggaran sama, jadi tidak semua larangan harus memiliki panjang yang sama.API ini memungkinkan Anda untuk mengkonfigurasi durasi blokir, dalam beberapa detik, dengan bidang Duration.Untuk menentukan blokirpermanen, atur bidang ke -1 .Anda mungkin juga ingin mengkonfigurasi dinamis durasi larangan berdasarkan histori larangan pengguna, yang dapat Anda tanyakan untuk digunakan Players:GetBanHistoryAsync() .Sebagai contoh, Anda mungkin ingin mempertimbangkan jumlah larangan, durasi larangan sebelumnya, atau membangun logika dari catatan yang disimpan di bawah PrivateReason yang bisa mencapai 1000 karakter dan tidak disaring teks. PrivateReason catatan tidak pernah dibagikan dengan klien dan dapat dianggap aman dari penyerang.

Kesalahan dan Pengurangan

Metode ini memanggil panggilan HTTP ke layanan backend yang berada di bawah pengurangan dan dapat gagal.Jika Anda memanggil API ini dengan lebih dari satu UserId, metode ini akan mencoba membuat panggilan HTTP untuk setiap ID.Kemudian akan mengumpulkan pesan kesalahan dan menggabungkannya sebagai daftar terpisah dengan koma.Sebagai contoh, jika metode ini dipanggil untuk lima pengguna dan permintaan untuk mereka yang memiliki UserIds 2 dan 4 gagal, pesan kesalahan berikut muncul:

HTTP failure for UserId 2: Timedout, HTTP 504 (Service unavailable) failure for UserId 4: Service exception

Pesan akan selalu termasuk failure for UserId {} jika itu adalah kesalahan HTTP.

Persyaratan Sisi Klien

Karena risiko yang terkait dengan melarang pengguna, metode ini hanya dapat dipanggil di server pengalaman backend (panggilan sisi klien akan menyebabkan kesalahan).Anda dapat menguji API ini di Studio, selama kolaboratif kreasi, atau di tes tim tim, tetapi larangan tidak akan berlaku untuk produksi.

API ini menggunakan Batasan Pengguna Terbuka API Cloud. Anda akan dapat menggunakan API ini untuk mengelola larangan Anda di aplikasi pihak ketiga.

Parameter

config: Dictionary
  • UserIds (diperlukan; array) — Array dari UserIds pemain yang harus dilarang. Ukuran maksimum adalah 50 .

  • ApplyToUniverse (opsional; boolean) — Apakah larangan menyebar ke semua tempat dalam alam semesta pengalaman. Default adalah true .

  • Duration (diperlukan; bilangan bulat) — Durasi blokir, dalam detik.Larangan permanen harus memiliki nilai -1 .0 dan semua nilai negatif lainnya tidak valid.

  • DisplayReason (diperlukan; string) — Pesan yang akan ditampilkan kepada pengguna saat mereka mencoba dan gagal bergabung dengan pengalaman.Panjang string maksimum adalah 400 .

  • PrivateReason (diperlukan; string) — Pesan internal yang akan dikembalikan saat menanyai riwayat banned pengguna. Panjang string maksimum adalah 1000 .

  • ExcludeAltAccounts (opsional; boolean) — Saat true , Roblox tidak berusaha melarang akun alternatif. Default adalah false .

Nilai Default: ""

Memberikan nilai

()

Contoh Kode

Banning Users

local Players = game:GetService("Players")
if shouldBeBanned(player) then
local banHistoryPages = Players:GetBanHistoryAsync(player.UserId)
local duration = getNextBanDuration(banHistoryPages) -- Creator-implemented logic
local config: BanConfigType = {
UserIds = { player.UserId },
Duration = duration,
DisplayReason = "You violated community guideline #5",
PrivateReason = "Put anything here that the user should not know but is helpful for your records",
ExcludeAltAccounts = false,
ApplyToUniverse = true,
}
local success, err = pcall(function()
return Players:BanAsync(config)
end)
print(success, err)
end

CreateHumanoidModelFromDescription

Hasil

Kembalikan model karakter yang dilengkapi dengan semua yang ditentukan dalam Deskripsi Humanoid yang dikirimkan, dan adalah R6 atau R15 seperti yang ditentukan oleh jenis rig.

Parameter

description: HumanoidDescription

Mengidentifikasi penampilan karakter yang dikembalikan.

Nilai Default: ""

Menentukan apakah karakter yang dikembalikan akan menjadi R6 atau R15.

Nilai Default: ""
assetTypeVerification: Enum.AssetTypeVerification

Verifikasi jenis aset menentukan apakah fungsi ini akan memuat model atau tidak (Anda harus mengatur ini menjadi Selalu kecuali Anda ingin memuat aset non-katalog).

Nilai Default: "Default"

Memberikan nilai

Model karakter manusiawi.

Contoh Kode

Create Humanoid Model From Description

game.Players:CreateHumanoidModelFromDescription(Instance.new("HumanoidDescription"), Enum.HumanoidRigType.R15).Parent =
game.Workspace

CreateHumanoidModelFromUserId

Hasil

Kembalikan pengaturan model karakter dengan semua yang dilengkapi untuk cocok dengan avatar pengguna yang ditentukan oleh userId yang ditransmisikan.Ini termasuk apakah karakter itu saat ini R6 atau R15.

Parameter

userId: number

ID pengguna untuk pengguna Roblox. (ID Pengguna adalah nomor dalam profil pengguna misalnya www.roblox.com/users/1/profile).

Nilai Default: ""

Memberikan nilai

Model karakter manusiawi.

Contoh Kode

Create Humanoid Model From A User ID

game.Players:CreateHumanoidModelFromUserId(1).Parent = game.Workspace

GetBanHistoryAsync

Hasil

Ambil sejarah larangan dan pencabutan larangan dari pengguna mana pun di alam semesta pengalaman.Metode ini mengembalikan instansi BanHistoryPages yang mewarisi dari Pages.Metode ini diaktifkan dan dinonaktifkan oleh properti Players.BanningEnabled, yang dapat Anda aktifkan di Studio.

Panggilan fungsi ini hanya akan berhasil di server game produksi dan bukan di perangkat klien atau di Studio.

API ini menggunakan Batasan Pengguna Terbuka API Cloud. Anda akan dapat menggunakan API ini untuk mengelola larangan Anda di aplikasi pihak ketiga.

Parameter

userId: number
Nilai Default: ""

Memberikan nilai

Lihat BanHistoryPages untuk referensi pengembalian.

GetCharacterAppearanceInfoAsync

Hasil

Fungsi ini mengembalikan informasi tentang avatar pemain (mengabaikan perlengkapan) di situs Roblox dalam bentuk kamus.Ini tidak boleh dikacaukan dengan GetCharacterAppearanceAsync , yang sebenarnya memuat aset yang dijelaskan oleh metode ini.Anda dapat menggunakan InsertService:LoadAsset() untuk memuat aset yang digunakan dalam avatar pemain.Struktur kamus yang dikembalikan adalah sebagai berikut:


<th>Jenis</th>
<th>Deskripsi</th>
</tr>
</thead>
<tr>
<td><code>aset</code></td>
<td>tabel (lihat di bawah)</td>
<td>Menggambarkan aset yang dilengkapi (topi, bagian tubuh, dll)</td>
</tr>
<tr>
<td><code>warna tubuh</code></td>
<td>tabel (lihat di bawah)</td>
<td>Menggambarkan nilai BrickColor untuk setiap anggota tubuh</td>
</tr>
<tr>
<td><code>bodyColor3s</code></td>
<td>tabel (lihat di bawah)</td>
<td>Menggambarkan instansi Color3 untuk setiap anggota tubuh yang mungkin tidak cocok sempurna dengan bodyColors</td>
</tr>
<tr>
<td><code>pantal default diterapkan</code></td>
<td>bool</td>
<td>Menggambarkan apakah celana default diterapkan</td>
</tr>
<tr>
<td><code>pakaian default diterapan</code></td>
<td>bool</td>
<td>Menggambarkan apakah kemeja default diterapkan</td>
</tr>
<tr>
<td><code>emote</code></td>
<td>tabel (lihat di bawah)</td>
<td>Menjelaskan animasi emote yang dilengkapi</td>
</tr>
<tr>
<td><code>pemainAvatarType</code></td>
<td>string</td>
<td>Entah "R15" atau "R6"</td>
</tr>
<tr>
<td><code>timbangan</code></td>
<td>tabel (lihat di bawah)</td>
<td>Menggambarkan berbagai faktor skala tubuh</td>
</tr>
Nama
Meja Sub-Aset

Tabel assets adalah array tabel yang berisi kunci berikut yang menggambarkan aset yang saat ini dilengkapi oleh pemain:


<th>Jenis</th>
<th>Deskripsi</th>
</tr>
</thead>
<tr>
<td><code>id</code></td>
<td>angka</td>
<td>ID aset dari aset yang dilengkapi</td>
</tr>
<tr>
<td><code>jenis aset</code></td>
<td>meja</td>
<td>Meja dengan <code>nama</code> dan <code>id</code> bidang, masing-masing menggambarkan jenis aset yang dilengkapi ("Topi", "Wajah", dll.)</td>
</tr>
<tr>
<td><code>nama</code></td>
<td>string</td>
<td>Nama aset yang dilengkapi</td>
</tr>
Nama
Sub-Tabel Skala

Tabel scales memiliki kunci berikut, masing-masing merupakan nomor yang sesuai dengan satu properti skala Humanoid : bodyType , head , height , proportion , depth , width .

Sub-Meja Warna Tubuh

Tabel bodyColors memiliki kunci berikut, masing-masing merupakan nomor yang sesuai dengan nomor BrickColor ID yang dapat digunakan dengan BrickColor.new(id) : leftArmColorId , torsoColorId , rightArmColorId , headColorId , leftLegColorId , rightLegColorId .

Parameter

userId: number

The * iPad dari pemain yang ditentukan.

Nilai Default: ""

Memberikan nilai

Kamus yang berisi informasi tentang penampilan karakter pengguna tertentu.

Contoh Kode

Example Return Character Appearance Dictionary

local result = {
playerAvatarType = "R15",
defaultPantsApplied = false,
defaultShirtApplied = false,
scales = {
bodyType = 0,
head = 1,
height = 1.05,
proportion = 0,
depth = 0.92,
width = 0.85,
},
bodyColors = {
leftArmColorId = 1030,
torsoColorId = 1001,
rightArmColorId = 1030,
headColorId = 1030,
leftLegColorId = 1001,
rightLegColorId = 1001,
},
assets = {
{
id = 1031492,
assetType = {
name = "Hat",
id = 8,
},
name = "Striped Hat",
},
{
id = 13062491,
assetType = {
name = "Face Accessory",
id = 42,
},
name = "Vision Française ",
},
{
id = 16598440,
assetType = {
name = "Neck Accessory",
id = 43,
},
name = "Red Bow Tie",
},
{
id = 28999228,
assetType = {
name = "Face",
id = 18,
},
name = "Joyous Surprise",
},
{
id = 86896488,
assetType = {
name = "Shirt",
id = 11,
},
name = "Expensive Red Tuxedo Jacket",
},
{
id = 86896502,
assetType = {
name = "Pants",
id = 12,
},
name = "Expensive Red Tuxedo Pants",
},
{
id = 376530220,
assetType = {
name = "Left Arm",
id = 29,
},
name = "ROBLOX Boy Left Arm",
},
{
id = 376531012,
assetType = {
name = "Right Arm",
id = 28,
},
name = "ROBLOX Boy Right Arm",
},
{
id = 376531300,
assetType = {
name = "Left Leg",
id = 30,
},
name = "ROBLOX Boy Left Leg",
},
{
id = 376531703,
assetType = {
name = "Right Leg",
id = 31,
},
name = "ROBLOX Boy Right Leg",
},
{
id = 376532000,
assetType = {
name = "Torso",
id = 27,
},
name = "ROBLOX Boy Torso",
},
},
}
print(result)

GetFriendsAsync

Hasil

Fungsi GetFriends Players mengembalikan objek FriendPages yang berisi informasi untuk semua teman pengguna yang diberikan.Item dalam objek FriendPages adalah tabel dengan bidang berikut:


<th>Jenis</th>
<th>Deskripsi</th>
</tr>
</thead>
<tr>
<td>Id</td>
<td>int64</td>
<td>ID Pengguna teman</td>
</tr>
<tr>
<td>Nama pengguna</td>
<td>string</td>
<td>Nama nama penggunateman</td>
</tr>
<tr>
<td>Nama Tampilan</td>
<td>string</td>
<td>Kelas <code>Class.Player.DisplayName|nama tampilan</code> dari teman.</td>
</tr>
Nama

Lihat sampel kode untuk cara mudah untuk mengulangi semua teman pemain.

Parameter

userId: number

ID pengguna pemain yang ditentukan.

Nilai Default: ""

Memberikan nilai

Contoh Kode

Print Roblox Friends

local Players = game:GetService("Players")
local USERNAME = "Cozecant"
local function iterPageItems(pages)
return coroutine.wrap(function()
local pagenum = 1
while true do
for _, item in ipairs(pages:GetCurrentPage()) do
coroutine.yield(item, pagenum)
end
if pages.IsFinished then
break
end
pages:AdvanceToNextPageAsync()
pagenum = pagenum + 1
end
end)
end
-- First, get the user ID of the player
local userId = Players:GetUserIdFromNameAsync(USERNAME)
-- Then, get a FriendPages object for their friends
local friendPages = Players:GetFriendsAsync(userId)
-- Iterate over the items in the pages. For FriendPages, these
-- are tables of information about the friend, including Username.
-- Collect each username in a table
local usernames = {}
for item, _pageNo in iterPageItems(friendPages) do
table.insert(usernames, item.Username)
end
print("Friends of " .. USERNAME .. ": " .. table.concat(usernames, ", "))

GetHumanoidDescriptionFromOutfitId

Hasil

Kembalikan Deskripsi Humanoid untuk ID pakaian yang ditentukan, yang akan ditetapkan dengan bagian/warna/Animasi dari pakaian.Pakaian bisa menjadi satu yang dibuat oleh pengguna, atau bisa menjadi pakaian untuk bundel yang dibuat oleh Roblox.

Parameter

outfitId: number

ID pakaian untuk which HumanoidDescription dicari.

Nilai Default: ""

Memberikan nilai

Deskripsi Humanoid diinisialisasi dengan spesifikasi untuk outfitId yang dikirimkan

Contoh Kode

Get HumanoidDescription From Outfit ID

local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local function getOutfitId(bundleId)
if bundleId <= 0 then
return
end
local info = game.AssetService:GetBundleDetailsAsync(bundleId)
if not info then
return
end
for _, item in pairs(info.Items) do
if item.Type == "UserOutfit" then
return item.Id
end
end
return nil
end
local function getHumanoidDescriptionBundle(bundleId)
local itemId = getOutfitId(bundleId)
if itemId and itemId > 0 then
return Players:GetHumanoidDescriptionFromOutfitId(itemId)
end
return nil
end
local humanoidDescription = getHumanoidDescriptionBundle(799)
local humanoidModel = Players:CreateHumanoidModelFromDescription(humanoidDescription, Enum.HumanoidRigType.R15)
humanoidModel.Parent = Workspace

GetHumanoidDescriptionFromUserId

Hasil

Kembalikan Deskripsi Humanoid yang menentukan semua yang dilengkapi untuk avatar pengguna yang ditentukan oleh userId yang ditransmisikan.Juga termasuk skala dan warna tubuh.

Parameter

userId: number

ID pengguna untuk pengguna Roblox. (ID Pengguna adalah nomor dalam profil pengguna misalnya www.roblox.com/users/1/profile).

Nilai Default: ""

Memberikan nilai

Deskripsi Humanoid diinisialisasi dengan spesifikasi avatar pengguna yang dikirim.

Contoh Kode

Get HumanoidDescription From User ID

game.Players:CreateHumanoidModelFromDescription(
game.Players:GetHumanoidDescriptionFromUserId(1),
Enum.HumanoidRigType.R15
).Parent =
game.Workspace

GetNameFromUserIdAsync

Hasil

Fungsi GetNameFromUserIdAsync Players akan mengirimkan permintaan ke situs Roblox untuk menanyakan apa nama pengguna dari akun dengan UserId yang diberikan.

Metode ini berisi kesalahan jika tidak ada akun dengan UserId yang diberikan.Jika Anda tidak yakin akun seperti itu ada, disarankan untuk melingkapi panggilan ke fungsi ini dengan pcall() .Selain itu, Anda dapat secara manual menyimpan hasil untuk membuat panggilan masa depan dengan UserId yang sama cepat.Lihat sampel kode untuk mempelajari lebih lanjut.

Parameter

userId: number

The Player.UserId dari pemain yang ditentukan.

Nilai Default: ""

Memberikan nilai

Nama pengguna dengan Player.UserId yang ditentukan.

Contoh Kode

Get Name from UserId

local Players = game:GetService("Players")
-- Example Data:
-- UserId: 118271 Name: "RobloxRulez"
-- UserId: 131963979 Name: "docsRule"
local nameOne = Players:GetNameFromUserIdAsync(118271)
local nameTwo = Players:GetNameFromUserIdAsync(131963979)
print(nameOne, nameTwo)
-- prints: "RobloxRulez docsRule"
Get Name from UserId using a cache

local Players = game:GetService("Players")
-- Create a table called 'cache' to store each 'Name' as they are found.
-- If we lookup a 'Name' using the same 'UserId', the 'Name' will come
-- from cache (fast) instead of GetNameFromUserIdAsync() (yields).
local cache = {}
function getNameFromUserId(userId)
-- First, check if the cache contains 'userId'
local nameFromCache = cache[userId]
if nameFromCache then
-- if a value was stored in the cache at key 'userId', then this 'nameFromCache'
-- is the correct Name and we can return it.
return nameFromCache
end
-- If here, 'userId' was not previously looked up and does not exist in the
-- cache. Now we need to use GetNameFromUserIdAsync() to look up the name
local name
local success, _ = pcall(function()
name = Players:GetNameFromUserIdAsync(userId)
end)
if success then
-- if 'success' is true, GetNameFromUserIdAsync() successfully found the
-- name. Store this name in the cache using 'userId' as the key so we
-- never have to look this name up in the future. Then return name.
cache[userId] = name
return name
end
-- If here, 'success' was false, meaning GetNameFromUserIdAsync()
-- was unable to find the 'name' for the 'userId' provided. Warn the user
-- this happened and then return nothing, or nil.
warn("Unable to find Name for UserId:", userId)
return nil
end
-- Example Data:
-- UserId: 118271 Name: "RobloxRulez"
-- UserId: 131963979 Name: "docsRule"
-- The first time a UserId is used, GetNameFromUserIdAsync() will be called
local nameOne = getNameFromUserId(118271)
local nameTwo = getNameFromUserId(131963979)
-- Because 118271 was previously used, get its Name from the cache
local nameOneQuick = getNameFromUserId(118271)
print(nameOne, nameTwo, nameOneQuick)
-- prints: "RobloxRulez docsRule RobloxRulez"

GetUserIdFromNameAsync

Hasil

Fungsi ini akan mengirimkan permintaan ke situs Roblox untuk menanyakan apa Player.UserId adalah akun dengan nama yang diberikan Player.

Metode ini berisi kesalahan jika tidak ada akun dengan nama pengguna yang diberikan.Jika Anda tidak yakin akun seperti itu ada, disarankan untuk melingkapi panggilan ke fungsi ini dengan pcall() .Selain itu, Anda dapat secara manual menyimpan hasil untuk membuat panggilan masa depan dengan nama pengguna yang sama.Lihat sampel kode untuk mempelajari lebih lanjut.

Parameter

userName: string

Nama pengguna pemain yang ditentukan.

Nilai Default: ""

Memberikan nilai

The Player.UserId dari pengguna yang namanya ditentukan.

Contoh Kode

Get UserId from Name

local Players = game:GetService("Players")
-- Example Data:
-- UserId: 118271 Name: "RobloxRulez"
-- UserId: 131963979 Name: "docsRule"
local userIdOne = Players:GetUserIdFromNameAsync("RobloxRulez")
local userIdTwo = Players:GetUserIdFromNameAsync("docsRule")
print(userIdOne, userIdTwo)
-- prints: "118271 131963979"
Get UserId from Name using a cache

local Players = game:GetService("Players")
-- Create a table called 'cache' to store each 'UserId' as they are found.
-- If we lookup a 'UserId' using the same 'Name', the 'UserId' will come
-- from cache (fast) instead of GetUserIdFromNameAsync() (yields).
local cache = {}
function getUserIdFromName(name)
-- First, check if the cache contains 'name'
local userIdFromCache = cache[name]
if userIdFromCache then
-- if a value was stored in the cache at key 'name', then this 'userIdFromCache'
-- is the correct UserId and we can return it.
return userIdFromCache
end
-- If here, 'name' was not previously looked up and does not exist in the
-- cache. Now we need to use GetUserIdFromNameAsync() to look up the userId
local userId
local success, _ = pcall(function()
userId = Players:GetUserIdFromNameAsync(name)
end)
if success then
-- if 'success' is true, GetUserIdFromNameAsync() successfully found the
-- userId. Store this userId in the cache using 'name' as the key so we
-- never have to look this userId up in the future. Then return userId.
cache[name] = userId
return userId
end
-- If here, 'success' was false, meaning GetUserIdFromNameAsync()
-- was unable to find the 'userId' for the 'name' provided. We can warn the
-- user this happened and then return nothing, or nil.
warn("Unable to find UserId for Name:", name)
return nil
end
-- Example Data:
-- UserId: 118271 Name: "RobloxRulez"
-- UserId: 131963979 Name: "docsRule"
-- The first time a Name is used, GetUserIdFromNameAsync() will be called
local userIdOne = getUserIdFromName("RobloxRulez")
local userIdTwo = getUserIdFromName("docsRule")
-- Because "RobloxRulez" was previously used, get its UserId from the cache
local userIdOneQuick = getUserIdFromName("RobloxRulez")
print(userIdOne, userIdTwo, userIdOneQuick)
-- prints: "118271 131963979 118271"

GetUserThumbnailAsync

Hasil

Fungsi ini mengembalikan URL konten dari gambar avatar pemain yang diberikan UserId , ukuran gambar yang diinginkan sebagai enum Enum.ThumbnailSize , dan jenis yang diinginkan sebagai enum Enum.ThumbnailType.Ia juga mengembalikan boolean yang menjelaskan apakah gambar siap digunakan.

Sebagian besar waktu, metode ini digunakan dengan ImageLabel.Image atau Decal.Texture untuk menampilkan gambar avatar pengguna dalam pengalaman.

Parameter

userId: number

The Player.UserId dari pemain yang ditentukan.

Nilai Default: ""
thumbnailType: Enum.ThumbnailType

A Enum.ThumbnailType menjelaskan jenis thumbnail.

Nilai Default: ""
thumbnailSize: Enum.ThumbnailSize

A Enum.ThumbnailSize menentukan ukuran thumbnail.

Nilai Default: ""

Memberikan nilai

Sebuah tuple yang berisi URL konten dari thumbnail pengguna berdasarkan parameter yang ditentukan, dan bool yang menggambarkan apakah gambar siap untuk digunakan atau tidak.

Contoh Kode

Display Player Thumbnail

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local PLACEHOLDER_IMAGE = "rbxassetid://0" -- replace with placeholder image
-- fetch the thumbnail
local userId = player.UserId
local thumbType = Enum.ThumbnailType.HeadShot
local thumbSize = Enum.ThumbnailSize.Size420x420
local content, isReady = Players:GetUserThumbnailAsync(userId, thumbType, thumbSize)
-- set the ImageLabel's content to the user thumbnail
local imageLabel = script.Parent
imageLabel.Image = (isReady and content) or PLACEHOLDER_IMAGE
imageLabel.Size = UDim2.new(0, 420, 0, 420)

UnbanAsync

()
Hasil

Membatalkan pemain yang dilarang dari Players:BanAsync() atau Batasan Pengguna Terbuka API Cloud.Metode ini diaktifkan dan dinonaktifkan oleh properti Players.BanningEnabled, yang dapat Anda aktifkan di Studio.

Seperti Players:BanAsync() , metode ini mengambil kamus config yang akan memungkinkan Anda untuk membatalkan pemblokiran pengguna secara massal.Ini mengkonfigurasi pengguna yang tidak dilarang dan lingkup dari mana mereka dilarang.

Unban hanya akan berlaku pada larangan dengan scope yang sama ApplyToUniverse .Sebagai contoh, unban dengan ApplyToUniverse diatur ke true tidak akan membatalkan larangan sebelumnya dengan ApplyToUniverse diatur ke false .Dengan kata lain, pembatalkan tingkat alam semesta tidak akan membatalkan blokirtingkat tempat.Sebaliknya juga berlaku.

Metode ini memanggil panggilan HTTP ke layanan backend, yang dibatasi dan mungkin gagal.Jika Anda memanggil API ini dengan beberapa UserIds, metode ini akan mencoba membuat panggilan HTTP ini untuk setiap UserId.Kemudian akan mengumpulkan pesan kesalahan dan menggabungkannya sebagai daftar terpisah dengan koma.Sebagai contoh, jika metode ini dipanggil untuk lima UserIds : {1, 2, 3, 4, 5} dan permintaan untuk pengguna 2 dan 4 gagal maka pesan kesalahan berikut muncul: HTTP failure for UserId 2: Timedout, HTTP 504 (Service unavailable) failure for UserId 4: Service exception. Pesan akan selalu mencakup failure for UserId {} jika itu adalah error HTTP.Ini adalah perilaku tidak didefinisikan jika Anda melewati UserIds yang valid dan tidak valid, yaitua UserId yang bukan angka positif, karena beberapa permintaan jaringan mungkin berhasil sebelum semua input diverifikasi.

Karena risiko yang terkait dengan melarang pengguna, metode ini hanya dapat dipanggil di server game backend.Panggilan sisi klien akan menyebabkan kesalahan.Anda dapat menguji API ini di Studio, Pembuatan Tim, dan Tes Tim, tetapi larangan tidak akan berlaku untuk produksi.Panggilan fungsi ini hanya akan mencoba permintaan larangan di server permainan produksi dan tidak di pengujian Studio.Namun, semua langkah validasi input masih akan berfungsi di Studio.

API ini menggunakan Batasan Pengguna Terbuka API Cloud. Anda akan dapat menggunakan API ini untuk mengelola larangan Anda di aplikasi pihak ketiga.

Parameter

config: Dictionary

<th>Jenis</th>
<th>Deskripsi</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>ID Pengguna</code></td>
<td>array</td>
<td>UserIDs yang harus dipaksa masuk ke pengalaman(s). Ukuran maksimum adalah <code>50</code> .</td>
</tr>
<tr>
<td><code>Terapkan ke Universo</code></td>
<td>boolean</td>
<td>Menyebarkan pembatalan banned ke semua tempat dalam alam semesta ini.</td>
</tr>
</tbody>
Nama
Nilai Default: ""

Memberikan nilai

()

Contoh Kode

Unbanning Users

local Players = game:GetService("Players")
if shouldBeUnbanned(player) then
local config: UnbanConfigType = {
UserIds = { player.UserId, 789 },
ApplyToUniverse = false,
}
local success, err = pcall(function()
return Players:UnbanAsync(config)
end)
print(success, err)
end

Acara

PlayerAdded

Acara ini terjadi ketika pemain memasuki game.Ini digunakan untuk menembakkan peristiwa ketika pemain bergabung dengan game, seperti memuat data tersimpan pemain GlobalDataStore.

Ini dapat digunakan bersama dengan acara Players.PlayerRemoving , yang dinyalakan saat pemain akan meninggalkan game.Sebagai kejadian, jika Anda ingin mencetak pesan setiap kali pemain baru bergabung atau meninggalkan game:


local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
print(player.Name .. " joined the game!")
end)
Players.PlayerRemoving:Connect(function(player)
print(player.Name .. " left the game!")
end)

Jika Anda ingin melacak kapan karakter pemain ditambahkan atau dihapus dari game, seperti ketika pemain respawn atau mati, Anda dapat menggunakan fungsi Player.CharacterAdded dan Player.CharacterRemoving.

Perhatikan bahwa acara ini tidak berfungsi seperti yang diharapkan dalam mode Bermain karena pemain dibuat sebelum skrip dijalankan yang terhubung ke PlayerAdded.Untuk menangani kasus ini, serta kasus di mana skrip ditambahkan ke dalam permainan setelah pemain masuk, buat fungsi onPlayerAdded() yang dapat Anda panggil untuk menangani masuknya pemain.

Parameter

player: Player

Instansi pemain yang bergabung dengan game.


Contoh Kode

Players.PlayerAdded

local Players = game:GetService("Players")
local function onPlayerAdded(player)
print("A player has entered: " .. player.Name)
end
Players.PlayerAdded:Connect(onPlayerAdded)

PlayerMembershipChanged

Acara ini terjadi ketika server game mengenali bahwa keanggotaan pemain telah berubah.Perhatikan, bagaimanapun, bahwa server hanya akan mencoba memeriksa dan memperbarui keanggotaan setelah modal Premium telah ditutup.Oleh karena itu, untuk menangani kasus di mana pengguna membeli Premium di luar permainan saat bermain, Anda harus tetap meminta mereka untuk membeli Premium; ini kemudian akan menampilkan pesan yang memberi tahu mereka bahwa mereka sudah ditingkatkan dan, setelah mereka menutup modul, server game akan memperbarui keanggotaan mereka dan memicu peristiwa ini.

Untuk mempelajari lebih lanjut tentang dan mengintegrasikan Premium ke dalam pengalaman Anda dan memonetarisasi dengan sistem pembayaran berbasis keterlibatan, lihat Pembayaran Berbasis Keterlibatan.

Lihat juga:

Parameter

player: Player

Contoh Kode

Handling Premium Membership Changes

local Players = game:GetService("Players")
local function grantPremiumBenefits(player)
-- Grant the player access to Premium-only areas, items, or anything you can imagine!
print("Giving", player, "premium benefits!")
end
local function playerAdded(player)
if player.MembershipType == Enum.MembershipType.Premium then
grantPremiumBenefits(player)
end
end
local function playerMembershipChanged(player)
print("Received event PlayerMembershipChanged. New membership = " .. tostring(player.MembershipType))
if player.MembershipType == Enum.MembershipType.Premium then
grantPremiumBenefits(player)
end
end
Players.PlayerAdded:Connect(playerAdded)
Players.PlayerMembershipChanged:Connect(playerMembershipChanged)

PlayerRemoving

Acara Penghapus Pemain terjadi tepat sebelum Player meninggalkan game.Peristiwa ini terjadi sebelum ChildRemoved melakukan pada Players , dan berperilaku agak mirip dengan Instance.DescendantRemoving .Karena terbakar sebelum pengeluaran sebenarnya dari Player , acara ini berguna untuk menyimpan data pemain menggunakan GlobalDataStore .

Ini dapat digunakan bersama dengan acara Player.PlayerAdded , yang menyala saat pemain bergabung dengan game.Sebagai kejadian, untuk mencetak pesan setiap kali pemain baru bergabung atau meninggalkan game:


local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
print(player.Name .. " joined the game!")
end)
Players.PlayerRemoving:Connect(function(player)
print(player.Name .. " left the game!")
end)

Jika Anda ingin melacak kapan karakter pemain ditambahkan atau dihapus dari game, seperti ketika pemain respawn atau mati, Anda dapat menggunakan fungsi Player.CharacterAdded dan Player.CharacterRemoving.

Parameter

player: Player

Instansi pemain yang meninggalkan game.


Contoh Kode

Players.PlayerRemoving

local Players = game:GetService("Players")
local function onPlayerRemoving(player)
print("A player has left: " .. player.Name)
end
Players.PlayerRemoving:Connect(onPlayerRemoving)

UserSubscriptionStatusChanged

Acara ini terjadi ketika server game mengenali bahwa status pengguna untuk langganan tertentu telah berubah.Perhatikan bahwa server hanya mencoba memeriksa dan memperbarui status setelah modal Pembelian Langganan ditutup.Untuk menghitung kasus di mana pengguna membeli langganan di luar permainan saat bermain, Anda harus tetap meminta mereka untuk membeli langganan; prompt menunjukkan pesan yang memberi tahu pengguna bahwa mereka sudah berlangganan, dan setelah mereka menutup modul, server game memperbarui status langganan mereka dan memicu peristiwa ini.

Perhatikan bahwa hanya skrip server yang menerima acara ini.

Parameter

user: Player

Pengguna yang status langganannya telah berubah.

subscriptionId: string

ID dari langganan dengan perubahan status.