學習
引擎類別
Players
無法建立
服務

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡


概要
方法
BanAsync(config: Dictionary):()
Chat(message: string):()
getPlayers():{Player}
已棄用
playerFromCharacter(character: Model):Player
已棄用
players():{Player}
已棄用
TeamChat(message: string):()
繼承成員

API 參考
屬性
BanningEnabled
無法建立指令碼
平行讀取
功能: Players
Players.BanningEnabled:boolean

BubbleChat
唯讀
未複製
平行讀取
功能: Chat, Players
Players.BubbleChat:boolean

CharacterAutoLoads
未複製
平行讀取
功能: Players
Players.CharacterAutoLoads:boolean
範例程式碼
玩家重生計時器
local Players = game:GetService("Players")
-- 設定 CharacterAutoLoads 為 false
Players.CharacterAutoLoads = false
-- 在玩家死亡時從工作空間移除玩家的角色
Players.PlayerAdded:Connect(function(player)
while true do
local char = player.CharacterAdded:Wait()
char.Humanoid.Died:Connect(function()
char:Destroy()
end)
end
end)
-- 每 10 秒重生所有死亡的玩家
while true do
local players = Players:GetChildren()
-- 檢查每個玩家是否死亡,透過檢查他們是否有角色,如果死亡則加載該玩家的角色
for _, player in pairs(players) do
if not workspace:FindFirstChild(player.Name) then
player:LoadCharacterAsync()
end
end
-- 等待 10 秒直到下一次重生檢查
task.wait(10)
end

ClassicChat
唯讀
未複製
平行讀取
功能: Chat, Players
Players.ClassicChat:boolean

LocalPlayer
唯讀
未複製
平行讀取
功能: Players
Players.LocalPlayer:Player

localPlayer
已棄用

MaxPlayers
唯讀
未複製
平行讀取
功能: Players
Players.MaxPlayers:number

NumPlayers
已棄用

numPlayers
已棄用

PreferredPlayers
唯讀
未複製
平行讀取
功能: Players
Players.PreferredPlayers:number

RespawnTime
平行讀取
功能: Players
Players.RespawnTime:number

UseStrafingAnimations
無法建立指令碼
平行讀取
功能: Players
Players.UseStrafingAnimations:boolean

方法
BanAsync
暫停
功能: Players, Consequences
Players:BanAsync(config:Dictionary):()
參數
config:Dictionary
返回
()
範例程式碼
禁止用戶
local Players = game:GetService("Players")
if shouldBeBanned(player) then
local banHistoryPages = Players:GetBanHistoryAsync(player.UserId)
local duration = 86400 -- 24 小時的秒數。建議:根據用戶的 BanHistory 使用您自己的邏輯
local config: BanConfigType = {
UserIds = { player.UserId },
Duration = duration,
DisplayReason = "您違反了社區準則 #5",
PrivateReason = "在這裡放入用戶不應該知道但對您的記錄有幫助的任何內容",
ExcludeAltAccounts = false,
ApplyToUniverse = true,
}
local success, err = pcall(function()
return Players:BanAsync(config)
end)
print(success, err)
end

Chat
外掛程式安全性
功能: Players
Players:Chat(message:string):()
參數
message:string
返回
()
範例程式碼
玩家:聊天
-- 命令列
game:GetService("Players"):Chat("Hello, world!") --結果為 'Hello, world!' 在你的玩家名稱下出現在聊天紀錄中。
-- 腳本
local Players = game:GetService("Players")
Players:Chat("Hello, world!") --出錯

CreateHumanoidModelFromDescription
已棄用

CreateHumanoidModelFromDescriptionAsync
暫停
功能: AvatarAppearance, Players
Players:CreateHumanoidModelFromDescriptionAsync(
description:HumanoidDescription, rigType:Enum.HumanoidRigType, assetTypeVerification:Enum.AssetTypeVerification
參數
assetTypeVerification:Enum.AssetTypeVerification
預設值:"Default"
返回
範例程式碼
從描述創建人形模型
game.Players:CreateHumanoidModelFromDescriptionAsync(Instance.new("HumanoidDescription"), Enum.HumanoidRigType.R15).Parent =
game.Workspace

CreateHumanoidModelFromUserId
已棄用

CreateHumanoidModelFromUserIdAsync
暫停
功能: Players
Players:CreateHumanoidModelFromUserIdAsync(userId:User):Model
參數
userId:User
返回
範例程式碼
從用戶 ID 創建人形模型
game.Players:CreateHumanoidModelFromUserIdAsync(1).Parent = game.Workspace

GetBanHistoryAsync
暫停
功能: Players, Consequences
Players:GetBanHistoryAsync(userId:User):BanHistoryPages
參數
userId:User

GetCharacterAppearanceAsync
已棄用

GetCharacterAppearanceInfoAsync
暫停
功能: Players
Players:GetCharacterAppearanceInfoAsync(userId:User):Dictionary
參數
userId:User
範例程式碼
範例返回角色外觀字典
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 = "條紋帽",
},
{
id = 13062491,
assetType = {
name = "Face Accessory",
id = 42,
},
name = "法式視覺",
},
{
id = 16598440,
assetType = {
name = "Neck Accessory",
id = 43,
},
name = "紅色蝴蝶結",
},
{
id = 28999228,
assetType = {
name = "Face",
id = 18,
},
name = "喜悅驚訝",
},
{
id = 86896488,
assetType = {
name = "Shirt",
id = 11,
},
name = "昂貴的紅色晚禮服外套",
},
{
id = 86896502,
assetType = {
name = "Pants",
id = 12,
},
name = "昂貴的紅色晚禮服褲子",
},
{
id = 376530220,
assetType = {
name = "Left Arm",
id = 29,
},
name = "ROBLOX 男孩左臂",
},
{
id = 376531012,
assetType = {
name = "Right Arm",
id = 28,
},
name = "ROBLOX 男孩右臂",
},
{
id = 376531300,
assetType = {
name = "Left Leg",
id = 30,
},
name = "ROBLOX 男孩左腿",
},
{
id = 376531703,
assetType = {
name = "Right Leg",
id = 31,
},
name = "ROBLOX 男孩右腿",
},
{
id = 376532000,
assetType = {
name = "Torso",
id = 27,
},
name = "ROBLOX 男孩軀幹",
},
},
}
print(result)

GetFriendsAsync
暫停
功能: Players, Social
Players:GetFriendsAsync(userId:User):FriendPages
參數
userId:User
範例程式碼
列印 Roblox 朋友
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
-- 首先,獲取玩家的使用者 ID
local userId = Players:GetUserIdFromNameAsync(USERNAME)
-- 然後,為他們的朋友獲取一個 FriendPages 對象
local friendPages = Players:GetFriendsAsync(userId)
-- 遍歷頁面中的項目。對於 FriendPages,這些
-- 是有關朋友的資訊表,包括使用者名稱。
-- 在一個表中收集每個使用者名稱
local usernames = {}
for item, _pageNo in iterPageItems(friendPages) do
table.insert(usernames, item.Username)
end
print("連線的 " .. USERNAME .. ": " .. table.concat(usernames, ", "))

GetHumanoidDescriptionFromOutfitId
已棄用

GetHumanoidDescriptionFromOutfitIdAsync
暫停
功能: AvatarAppearance, Players
Players:GetHumanoidDescriptionFromOutfitIdAsync(outfitId:number):HumanoidDescription
參數
outfitId:number
範例程式碼
從服裝 ID 獲取 HumanoidDescription
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:GetHumanoidDescriptionFromOutfitIdAsync(itemId)
end
return nil
end
local humanoidDescription = getHumanoidDescriptionBundle(799)
local humanoidModel = Players:CreateHumanoidModelFromDescriptionAsync(humanoidDescription, Enum.HumanoidRigType.R15)
humanoidModel.Parent = Workspace

GetHumanoidDescriptionFromUserId
已棄用

GetHumanoidDescriptionFromUserIdAsync
暫停
功能: AvatarAppearance, Players
Players:GetHumanoidDescriptionFromUserIdAsync(userId:User):HumanoidDescription
參數
userId:User
範例程式碼
從使用者ID獲取HumanoidDescription
game.Players:CreateHumanoidModelFromDescriptionAsync(
game.Players:GetHumanoidDescriptionFromUserIdAsync(1),
Enum.HumanoidRigType.R15
).Parent =
game.Workspace

GetNameFromUserIdAsync
暫停
功能: Players
Players:GetNameFromUserIdAsync(userId:User):string
參數
userId:User
返回
範例程式碼
從 UserId 獲取名稱
local Players = game:GetService("Players")
-- 範例資料:
-- UserId: 118271 名稱: "RobloxRulez"
-- UserId: 131963979 名稱: "docsRule"
local nameOne = Players:GetNameFromUserIdAsync(118271)
local nameTwo = Players:GetNameFromUserIdAsync(131963979)
print(nameOne, nameTwo)
-- 輸出: "RobloxRulez docsRule"
從 UserId 獲取名稱(使用快取)
local Players = game:GetService("Players")
-- 創建一個名為 'cache' 的表格,
-- 用於存儲每個 'Name' 當它們被找到時。
-- 如果我們使用相同的 'UserId' 查找 'Name',
-- 'Name' 將來自快取(快速),而不是 GetNameFromUserIdAsync()
-- (會產生)。
local cache = {}
function getNameFromUserId(userId)
-- 首先,檢查快取是否包含 'userId'
local nameFromCache = cache[userId]
if nameFromCache then
-- 如果在快取中以 'userId' 為鍵存儲了一個值,
-- 則此 'nameFromCache' 是正確的名稱,我們可以返回它。
return nameFromCache
end
-- 如果到這裡,則 'userId' 之前未查找過,
-- 並且不在快取中。現在我們需要使用 GetNameFromUserIdAsync()
-- 來查找名稱
local name
local success, _ = pcall(function()
name = Players:GetNameFromUserIdAsync(userId)
end)
if success then
-- 如果 'success' 為真,則 GetNameFromUserIdAsync() 成功找到了
-- 名稱。使用 'userId' 作為鍵將此名稱存儲到快取中,
-- 這樣我們未來就不必再查找此名稱。然後返回名稱。
cache[userId] = name
return name
end
-- 如果到這裡,'success' 為假,這意味著 GetNameFromUserIdAsync()
-- 無法為提供的 'userId' 找到 'name'。提醒用戶
-- 發生了此情況,然後返回空或 nil。
warn("無法找到 UserId 的名稱:", userId)
return nil
end
-- 示例數據:
-- UserId: 118271 名稱: "RobloxRulez"
-- UserId: 131963979 名稱: "docsRule"
-- 當首次使用 UserId 時,將調用 GetNameFromUserIdAsync()
local nameOne = getNameFromUserId(118271)
local nameTwo = getNameFromUserId(131963979)
-- 因為 118271 之前被使用,所以從快取中獲取其名稱
local nameOneQuick = getNameFromUserId(118271)
print(nameOne, nameTwo, nameOneQuick)
-- 輸出: "RobloxRulez docsRule RobloxRulez"

GetPlayerByUserId
平行寫入
功能: Players
Players:GetPlayerByUserId(userId:User):Player
參數
userId:User
返回
範例程式碼
玩家:通過使用者ID獲取玩家
local Players = game:GetService("Players")
local player = Players:GetPlayerByUserId(1)
if player then
print("使用者ID 1 的玩家在這個伺服器中!他們的名字是:" .. player.Name)
else
print("使用者ID 1 的玩家不在這個伺服器中!")
end

GetPlayerFromCharacter
功能: Players
模擬存取權
Players:GetPlayerFromCharacter(character:Model):Player
參數
character:Model
返回
範例程式碼
玩家: 從角色獲取玩家
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.Name} ({player.UserId}) 在遊戲中`)
else
print(`玩家 {PLAYER_NAME} 不在遊戲中!`)
end

GetPlayers
平行寫入
功能: Players
Players:GetPlayers():{Player}
返回
範例程式碼
給予每個人閃爍特效
local Players = game:GetService("Players")
local function onCharacterAdded(character)
-- 如果他們的頭上還沒有閃爍特效,就給他們閃爍特效
if not character:FindFirstChild("Sparkles") then
local sparkles = Instance.new("Sparkles")
sparkles.Parent = character:WaitForChild("Head")
end
end
local function onPlayerAdded(player)
-- 檢查他們是否已經生成了
if player.Character then
onCharacterAdded(player.Character)
end
-- 監聽玩家(重新)生成的事件
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)

getPlayers
已棄用

GetUserIdFromNameAsync
暫停
功能: Players
Players:GetUserIdFromNameAsync(userName:string):number
參數
userName:string
返回
範例程式碼
從名稱獲取使用者ID
local Players = game:GetService("Players")
-- 範例資料:
-- 使用者ID: 118271 名稱: "RobloxRulez"
-- 使用者ID: 131963979 名稱: "docsRule"
local userIdOne = Players:GetUserIdFromNameAsync("RobloxRulez")
local userIdTwo = Players:GetUserIdFromNameAsync("docsRule")
print(userIdOne, userIdTwo)
-- 輸出: "118271 131963979"
使用快取從名稱獲取用戶ID
local Players = game:GetService("Players")
-- 創建一個名為 'cache' 的表來儲存每個 'UserId'。
-- 如果我們使用相同的 'Name' 查找 'UserId','UserId' 會來
-- 自 cache(快速)而不是 GetUserIdFromNameAsync()(產生暫停)。
local cache = {}
function getUserIdFromName(name)
-- 首先,檢查 cache 是否包含 'name'
local userIdFromCache = cache[name]
if userIdFromCache then
-- 如果在 cache 的 'name' 鍵中有儲存的值,
-- 則這個 'userIdFromCache'
-- 是正確的 UserId,我們可以返回它。
return userIdFromCache
end
-- 如果到這裡,'name' 之前未被查找且不在
-- cache 中。現在我們需要使用 GetUserIdFromNameAsync()
-- 查找 userId
local userId
local success, _ = pcall(function()
userId = Players:GetUserIdFromNameAsync(name)
end)
if success then
-- 如果 'success' 為 true,GetUserIdFromNameAsync() 成功找到了
-- userId。使用 'name' 作為鍵儲存這個 userId 到 cache,以便我們
-- 將來不必再次查找這個 userId。然後返回 userId。
cache[name] = userId
return userId
end
-- 如果到這裡,'success' 為 false,
-- 意味著 GetUserIdFromNameAsync()
-- 無法為提供的 'name' 找到 'userId'。我們可以警告
-- 用戶發生了這種情況,然後返回 nothing,或 nil。
warn("無法找到名稱的 UserId:", name)
return nil
end
-- 示例數據:
-- UserId: 118271 名稱: "RobloxRulez"
-- UserId: 131963979 名稱: "docsRule"
-- 首次使用名稱時,將調用 GetUserIdFromNameAsync()
local userIdOne = getUserIdFromName("RobloxRulez")
local userIdTwo = getUserIdFromName("docsRule")
-- 因為 "RobloxRulez" 之前已被使用,從 cache 獲取其 UserId
local userIdOneQuick = getUserIdFromName("RobloxRulez")
print(userIdOne, userIdTwo, userIdOneQuick)
-- 輸出: "118271 131963979 118271"

GetUserThumbnailAsync
暫停
功能: Players
Players:GetUserThumbnailAsync(
userId:User, thumbnailType:Enum.ThumbnailType, thumbnailSize:Enum.ThumbnailSize
參數
userId:User
thumbnailType:Enum.ThumbnailType
thumbnailSize:Enum.ThumbnailSize
返回
範例程式碼
顯示玩家縮圖
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local PLACEHOLDER_IMAGE = "rbxassetid://0" -- 替換為佔位符圖像
-- 獲取縮圖
local userId = player.UserId
local thumbType = Enum.ThumbnailType.HeadShot
local thumbSize = Enum.ThumbnailSize.Size420x420
local content, isReady = Players:GetUserThumbnailAsync(userId, thumbType, thumbSize)
-- 將 ImageLabel 的內容設為用戶縮圖
local imageLabel = script.Parent
imageLabel.Image = (isReady and content) or PLACEHOLDER_IMAGE
imageLabel.Size = UDim2.new(0, 420, 0, 420)

playerFromCharacter
已棄用

players
已棄用

SetChatStyle
外掛程式安全性
功能: Players
Players:SetChatStyle(style:Enum.ChatStyle):()
參數
預設值:"Classic"
返回
()
範例程式碼
設置玩家的聊天風格
-- 命令欄
game.Players:SetChatStyle(Enum.ChatStyle.Classic) -- 將聊天風格設置為經典
-- LocalScript
local Players = game:GetService("Players")
Players:SetChatStyle(Enum.ChatStyle.Classic) -- 發生錯誤

TeamChat
外掛程式安全性
功能: Players
Players:TeamChat(message:string):()
參數
message:string
返回
()
範例程式碼
發送隊伍聊天
-- 命令列
game.Players:TeamChat("Hello World") -- 將 "Hello World" 訊息發送給所有玩家 在本地玩家的隊伍上
-- LocalScript
local Players = game:GetService("Players")
Players:TeamChat("Hello World") -- 錯誤

UnbanAsync
暫停
功能: Players, Consequences
Players:UnbanAsync(config:Dictionary):()
參數
config:Dictionary
返回
()
範例程式碼
解除用戶禁用
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

活動
PlayerAdded
功能: Players
Players.PlayerAdded(player:Player):RBXScriptSignal
參數
player:Player
範例程式碼
玩家.PlayerAdded
local Players = game:GetService("Players")
local function onPlayerAdded(player)
print("一個玩家已進入: " .. player.Name)
end
Players.PlayerAdded:Connect(onPlayerAdded)

PlayerMembershipChanged
功能: Players
Players.PlayerMembershipChanged(player:Player):RBXScriptSignal
參數
player:Player
範例程式碼
處理高級會員變更
local Players = game:GetService("Players")
local function grantPremiumBenefits(player)
-- 授予玩家訪問僅限高級的區域、物品或任何你可以想像的東西!
print("給予", player, "高級福利!")
end
local function playerAdded(player)
if player.MembershipType == Enum.MembershipType.Premium then
grantPremiumBenefits(player)
end
end
local function playerMembershipChanged(player)
print("收到事件 PlayerMembershipChanged。新會員資格 = " .. tostring(player.MembershipType))
if player.MembershipType == Enum.MembershipType.Premium then
grantPremiumBenefits(player)
end
end
Players.PlayerAdded:Connect(playerAdded)
Players.PlayerMembershipChanged:Connect(playerMembershipChanged)

PlayerRemoving
功能: Players
Players.PlayerRemoving(
參數
player:Player
範例程式碼
玩家.PlayerRemoving
local Players = game:GetService("Players")
local function onPlayerRemoving(player)
print("一個玩家已離開: " .. player.Name)
end
Players.PlayerRemoving:Connect(onPlayerRemoving)

UserSubscriptionStatusChanged
功能: Players, Monetization
Players.UserSubscriptionStatusChanged(
user:Player, subscriptionId:string
參數
user:Player
subscriptionId:string

©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。