배우기
엔진 클래스
Players
만들 수 없음
서비스

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.


요약
메서드
BanAsync(config: Dictionary):()
Chat(message: string):()
CreateHumanoidModelFromDescription(description: HumanoidDescription,rigType: Enum.HumanoidRigType,assetTypeVerification: Enum.AssetTypeVerification):Model
사용되지 않음
CreateHumanoidModelFromUserId(userId: User):Model
사용되지 않음
GetCharacterAppearanceAsync(userId: User):Model
사용되지 않음
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("안녕하세요, 세계!") --결과: '안녕하세요, 세계!'가 플레이어 이름 아래의 채팅 로그에 나타납니다.
-- 스크립트
local Players = game:GetService("Players")
Players:Chat("안녕하세요, 세계!") --오류

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 = "모자",
id = 8,
},
name = "줄무늬 모자",
},
{
id = 13062491,
assetType = {
name = "얼굴 액세서리",
id = 42,
},
name = "비전 프랑세즈",
},
{
id = 16598440,
assetType = {
name = "목 액세서리",
id = 43,
},
name = "빨간 나비 넥타이",
},
{
id = 28999228,
assetType = {
name = "얼굴",
id = 18,
},
name = "즐거운 놀라움",
},
{
id = 86896488,
assetType = {
name = "셔츠",
id = 11,
},
name = "비싼 빨간 턱시도 재킷",
},
{
id = 86896502,
assetType = {
name = "바지",
id = 12,
},
name = "비싼 빨간 턱시도 바지",
},
{
id = 376530220,
assetType = {
name = "왼쪽 팔",
id = 29,
},
name = "ROBLOX 소년 왼쪽 팔",
},
{
id = 376531012,
assetType = {
name = "오른쪽 팔",
id = 28,
},
name = "ROBLOX 소년 오른쪽 팔",
},
{
id = 376531300,
assetType = {
name = "왼쪽 다리",
id = 30,
},
name = "ROBLOX 소년 왼쪽 다리",
},
{
id = 376531703,
assetType = {
name = "오른쪽 다리",
id = 31,
},
name = "ROBLOX 소년 오른쪽 다리",
},
{
id = 376532000,
assetType = {
name = "상체",
id = 27,
},
name = "ROBLOX 소년 상체",
},
},
}
print(result)

GetFriendsAsync
생성
기능: Players, Social
Players:GetFriendsAsync(userId:User):FriendPages
매개 변수
userId:User
코드 샘플
로블록스 친구 출력
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
반환
코드 샘플
사용자 ID로부터 이름 가져오기
local Players = game:GetService("Players")
-- 예제 데이터:
-- 사용자 ID: 118271 이름: "RobloxRulez"
-- 사용자 ID: 131963979 이름: "docsRule"
local nameOne = Players:GetNameFromUserIdAsync(118271)
local nameTwo = Players:GetNameFromUserIdAsync(131963979)
print(nameOne, nameTwo)
-- 출력: "RobloxRulez docsRule"
캐시를 사용하여 UserId에서 이름 가져오기
local Players = game:GetService("Players")
-- 발견될 때마다 각 'Name'을 저장할 'cache'라는 테이블을 만듭니다.
-- 동일한 'UserId'를 사용하여 'Name'을 조회하면 'Name'은
-- 캐시(빠름)에서 가져오고 GetNameFromUserIdAsync() (yield)에서 가져오지 않습니다.
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'가 true이면, GetNameFromUserIdAsync()가 성공적으로
-- 이름을 찾았습니다. 이 이름을 'userId'를 키로 하여
-- 캐시에 저장하므로 앞으로는 이 이름을 다시 조회할 필요가 없습니다. 그런 다음 이름을 반환합니다.
cache[userId] = name
return name
end
-- 여기까지 오면 'success'가 false였다는 뜻으로,
-- GetNameFromUserIdAsync()가 제공된 'userId'에 대한 이름을 찾지 못했습니다.
-- 사용자에게 경고하고 아무것도 반환하지 않거나 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
반환
코드 샘플
이름으로 UserId 가져오기
local Players = game:GetService("Players")
-- 예시 데이터:
-- UserId: 118271 이름: "RobloxRulez"
-- UserId: 131963979 이름: "docsRule"
local userIdOne = Players:GetUserIdFromNameAsync("RobloxRulez")
local userIdTwo = Players:GetUserIdFromNameAsync("docsRule")
print(userIdOne, userIdTwo)
-- 출력: "118271 131963979"
캐시를 사용하여 이름에서 UserId 가져오기
local Players = game:GetService("Players")
-- 각각의 'UserId'를 찾을 때마다 저장하기 위해 'cache'라는 테이블을 만듭니다.
-- 같은 'Name'을 사용하여 'UserId'를 조회하면, 'UserId'는
-- GetUserIdFromNameAsync() (yields) 대신 캐시에서 가져옵니다 (빠름).
local cache = {}
function getUserIdFromName(name)
-- 먼저, 캐시에서 'name'이 포함되어 있는지 확인합니다.
local userIdFromCache = cache[name]
if userIdFromCache then
-- 'name' 키에 캐시에 저장된 값이 있다면, 이 'userIdFromCache'가
-- 올바른 UserId이며 이를 반환할 수 있습니다.
return userIdFromCache
end
-- 여기까지 오면, 'name'이 이전에 조회되지 않았고
-- 캐시에 존재하지 않습니다. 이제 GetUserIdFromNameAsync()를 사용하여
-- userId를 조회해야 합니다.
local userId
local success, _ = pcall(function()
userId = Players:GetUserIdFromNameAsync(name)
end)
if success then
-- 'success'가 true라면, GetUserIdFromNameAsync()가 userId를
-- 성공적으로 찾았습니다. 이 userId를 캐시에 'name'을 키로 사용하여
-- 저장하여 향후 이 userId를 다시 조회할 필요가 없도록 합니다.
cache[name] = userId
return userId
end
-- 여기까지 오면, 'success'가 false였으며, 즉 GetUserIdFromNameAsync()
--가 제공된 'name'에 대한 'userId'를 찾지 못했습니다. 이를 사용자에게
-- 경고하고 아무것도 반환하지 않거나 nil을 반환할 수 있습니다.
warn("이름에 대한 UserId를 찾을 수 없습니다:", name)
return nil
end
-- 예제 데이터:
-- UserId: 118271 이름: "RobloxRulez"
-- UserId: 131963979 이름: "docsRule"
-- 이름이 처음 사용될 때, GetUserIdFromNameAsync()가 호출됩니다.
local userIdOne = getUserIdFromName("RobloxRulez")
local userIdTwo = getUserIdFromName("docsRule")
-- "RobloxRulez"가 이전에 사용되었기 때문에 캐시에서 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) -- 채팅 스타일을 Classic으로 설정
-- LocalScript
local Players = game:GetService("Players")
Players:SetChatStyle(Enum.ChatStyle.Classic) -- 오류 발생

TeamChat
플러그인 보안
기능: Players
Players:TeamChat(message:string):()
매개 변수
message:string
반환
()
코드 샘플
팀 채팅 전송
-- 명령어 바
game.Players:TeamChat("안녕, 세상") -- 로컬 플레이어의 팀에 있는 모든 플레이어에게 "안녕, 세상" 메시지를 보냅니다.
-- LocalScript
local Players = game:GetService("Players")
Players:TeamChat("안녕, 세상") -- 오류 발생

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
코드 샘플
플레이어.플레이어추가됨
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("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
기능: 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'은 미국 및 기타 국가 내 당사의 등록 및 미등록 상표입니다.