Players

사용되지 않는 항목 표시

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

만들 수 없음
서비스

현재 클라이언트에 연결된 Roblox 서버에 대해 Players 개체를 포함하는 Player 서비스입니다. 또한 플레이스구성에 대한 정보를 포함합니다. 서버에 연결되지 않은 플레이어, 예를 들어 캐릭터 모습, 친구 및 아바타 썸네일을 가져오기도 합니다.

요약

속성

  • 읽기 전용
    복제되지 않음
    병렬 읽기

    버블 채팅이 활성화되었는지 여부를 나타냅니다. Players:SetChatStyle() 메서드로 설정됩니다.

  • 복제되지 않음
    병렬 읽기

    Class.Character|Characters 이 자동으로 리스폰할지 여부를 나타냅니다.

  • 읽기 전용
    복제되지 않음
    병렬 읽기

    클래식 채팅이 활성화되었는지 여부를 나타냅니다. Players:SetChatStyle() 메서드에 의해 설정됩니다.

  • 읽기 전용
    복제되지 않음
    병렬 읽기

    Class.LocalScript가 실행되는 LocalScript 입니다.

  • 읽기 전용
    복제되지 않음
    병렬 읽기

    서버에 있을 수 있는 최대 플레이어 수입니다.

  • 읽기 전용
    복제되지 않음
    병렬 읽기

    서버에 대한 플레이어의 권장 수입니다.

  • 병렬 읽기

    플레이어 캐릭터가 리스폰하는 데 걸리는 시간의 양을 제어합니다.

  • 스크립팅할 수 없음
    병렬 읽기

메서드

이벤트

속성

BubbleChat

읽기 전용
복제되지 않음
병렬 읽기

BubbleChat 속성은 버블 채팅이 활성화되었는지 여부를 나타냅니다. 이 메서드는 Players:SetChatStyle() 메서드를 사용하여 Enum.ChatStyle 열거형을 사용하여 설정됩니다.

이 채팅 모드가 활성화되면 게임은 화면 왼쪽 상단의 채팅 사용자 인터페이스에 채팅을 표시합니다.

다른 두 가지 채팅 모드가 있습니다, Players.ClassicChat 및 클래식 및 버블 채팅이 모두 활성화된 채팅 모드.

CharacterAutoLoads

복제되지 않음
병렬 읽기

CharacterAutoLoads 속성은 Class.Character|Characters가 자동으로 재생성되는지 여부를 나타냅니다. 기본값은 true입니다.

이 속성이 비활성화된 경우 ( false ) player Class.Character|Characters 는 플레이어가 경험에 참여할 때까지 Player:LoadCharacter() 함수가 호출될 때까지 생성되지 않습니다.

이 기능은 플레이어가 게임 라운드가 끝날 때까지 다시 생성되지 않는 경쟁적인 게임과 같은 플레이어가 끝없는 삶을 살고 있는 체험에서 유용할 수 있습니다.

코드 샘플

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

읽기 전용
복제되지 않음
병렬 읽기

클래식 채팅이 활성화되었는지 여부를 나타냅니다. 이 속성은 Players:SetChatStyle() 메서드를 사용하여 Enum.ChatStyle 열거형을 설정하는 메서드를 사용하여 설정됩니다.

이 채팅 모드가 활성화되면 게임은 발신자의 머리 위에 버블로 채팅을 표시합니다.

다른 두 가지 채팅 모드가 있습니다, Players.BubbleChat 및 클래식 및 버블 채팅을 모두 활성화한 채팅 모드.

LocalPlayer

읽기 전용
복제되지 않음
병렬 읽기

LocalPlayer 는 경험을 실행하는 클라이언트가 Player 인 고유한 속성입니다.

이 속성은 클라이언트에서 실행되므로 필요한 경우에만 정의됩니다 LocalScriptsModuleScripts 필요에 따라, since they run on the client. For the 서버, on which Script objects run their 코드, this property is 1> nil1> .

MaxPlayers

읽기 전용
복제되지 않음
병렬 읽기

최대 플레이어 수는 서버에 있을 수 있는 플레이어의 최대 수를 결정합니다. 이 속성은 크리에이터 대시보드의 특정 플레이스설정 또는 게임 설정을 통해만 설정할 수 있습니다.

PreferredPlayers

읽기 전용
복제되지 않음
병렬 읽기

PreferredPlayers 속성은 Roblox의 매치메이커가 서버를 채울 플레이어의 수를 나타냅니다. 이 수는 경험에 지원된 최대 플레이어 수( Players.MaxPlayers )보다 작을 수 있습니다.

RespawnTime

병렬 읽기

이 속성의 하위 항목인 RespawnTime은 플레이어가 Players.CharacterAutoLoads가 진행되는 동안 소비하는 시간을 제어합니다. 기본적으로 5.0초입니다.

이 기능은 경험 유형에 따라 다시 생성하는 데 걸리는 시간을 변경하려는 경우에 유용합니다. 하지만 개별적으로 플레이어를 처리하기를 원하지 않습니다.

이 속성은 Script 내에서 설정할 수 있지만, 스튜디오의 Players 창에서 Players 개체에 직접 설정할 수 있습니다.

UseStrafingAnimations

스크립팅할 수 없음
병렬 읽기

메서드

Chat

void
플러그인 보안

이 함수는 로컬 플레이어가 지정된 메시지를 채팅합니다. 이 항목이 보호되므로 Script 또는 LocalScript 에서 사용하려는 경우 오류가 발생합니다.

대신, 사용자 정의 채팅 시스템 또는 채팅에 액세스해야 하는 시스템을 생성할 때 Chat 서비스의 Chat:Chat() 함수를 대신 사용할 수 있습니다.

매개 변수

message: string

메시지 채팅.


반환

void

코드 샘플

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

병렬 쓰기

이 함수는 player 을 각 Players 에서 검색하여 주어진 사용자 ID와 일치하는 플레이어를 찾습니다. 플레이어가 존재하지 않는 경우, 그냥 Player.UserId 을 반환합니다. 다음 함수와 동일합니다:


local Players = game:GetService("Players")
local function getPlayerByUserId(userId)
for _, player in Players:GetPlayers() do
if player.UserId == userId then
return player
end
end
end

이 메서드는 MarketplaceService.ProcessReceipt 를 사용하여 개발자 제품 구매자를 찾는 데 유용합니다. 이는 참조 하는 플레이어 개체가 아닌 사용자 아이디를 포함 하는 테이블을 제공 합니다. 대부분의 게임은 제품을 부여 하려면 플레이어에 대 한 참조를 필요로 합니다.

매개 변수

userId: number

지정된 플레이어의 Player.UserId입니다.


반환

코드 샘플

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
ProcessReceipt Callback

local MarketplaceService = game:GetService("MarketplaceService")
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
-- Data store for tracking purchases that were successfully processed
local purchaseHistoryStore = DataStoreService:GetDataStore("PurchaseHistory")
-- Table setup containing product IDs and functions for handling purchases
local productFunctions = {}
-- ProductId 123123 for a full heal
productFunctions[123123] = function(_receipt, player)
-- Logic/code for player buying a full heal (may vary)
if player.Character and player.Character:FindFirstChild("Humanoid") then
-- Heal the player to full health
player.Character.Humanoid.Health = player.Character.Humanoid.MaxHealth
-- Indicate a successful purchase
return true
end
end
-- ProductId 456456 for 100 gold
productFunctions[456456] = function(_receipt, player)
-- Logic/code for player buying 100 gold (may vary)
local stats = player:FindFirstChild("leaderstats")
local gold = stats and stats:FindFirstChild("Gold")
if gold then
gold.Value = gold.Value + 100
-- Indicate a successful purchase
return true
end
end
-- The core 'ProcessReceipt' callback function
local function processReceipt(receiptInfo)
-- Determine if the product was already granted by checking the data store
local playerProductKey = receiptInfo.PlayerId .. "_" .. receiptInfo.PurchaseId
local purchased = false
local success, result, errorMessage
success, errorMessage = pcall(function()
purchased = purchaseHistoryStore:GetAsync(playerProductKey)
end)
-- If purchase was recorded, the product was already granted
if success and purchased then
return Enum.ProductPurchaseDecision.PurchaseGranted
elseif not success then
error("Data store error:" .. errorMessage)
end
-- Determine if the product was already granted by checking the data store
local playerProductKey = receiptInfo.PlayerId .. "_" .. receiptInfo.PurchaseId
local success, isPurchaseRecorded = pcall(function()
return purchaseHistoryStore:UpdateAsync(playerProductKey, function(alreadyPurchased)
if alreadyPurchased then
return true
end
-- Find the player who made the purchase in the server
local player = Players:GetPlayerByUserId(receiptInfo.PlayerId)
if not player then
-- The player probably left the game
-- If they come back, the callback will be called again
return nil
end
local handler = productFunctions[receiptInfo.ProductId]
local success, result = pcall(handler, receiptInfo, player)
-- If granting the product failed, do NOT record the purchase in datastores.
if not success or not result then
error("Failed to process a product purchase for ProductId: " .. tostring(receiptInfo.ProductId) .. " Player: " .. tostring(player) .. " Error: " .. tostring(result))
return nil
end
-- Record the transaction in purchaseHistoryStore.
return true
end)
end)
if not success then
error("Failed to process receipt due to data store error.")
return Enum.ProductPurchaseDecision.NotProcessedYet
elseif isPurchaseRecorded == nil then
-- Didn't update the value in data store.
return Enum.ProductPurchaseDecision.NotProcessedYet
else
-- IMPORTANT: Tell Roblox that the game successfully handled the purchase
return Enum.ProductPurchaseDecision.PurchaseGranted
end
end
-- Set the callback; this can only be done once by one script on the server!
MarketplaceService.ProcessReceipt = processReceipt

GetPlayerFromCharacter

이 함수는 지정된 Player 와 연관된 Player.Character 를 반환하거나, nil 이 없는 경우 2>Class.Player2> 을 찾을 수 없습니다. 다음 함수와 동일합니다.


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

이 메서드는 플레이어 캐릭터의 이벤트(예: 플레이어의 Class.Humanoid``Class.Humanoid.Died|dying )가 발생했을 때 종종 사용됩니다. 이러한 이벤트는 플레이어 개체에 직접 참조하지 않지만 이 메서드는 쉬운 액세스를 제공합니다

매개 변수

character: Model

플레이어를 가져오려는 캐릭터 인스턴스입니다.


반환

코드 샘플

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
병렬 쓰기

이 메서드는 현재 연결된 모든 Player 개체의 테이블을 반환합니다. 이 메서드는 Instance:GetChildren()와 동일하게 작동하지만, 그것은 단지 Player 개체를 찾는 것에 대해 반환하는 것이 아니


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

스크립트는 종종 Players.PlayerAdded 에 연결하는 모든 플레이어를 처리하려고 시도합니다. 이 메서드는 이미 연결된 게임처리하는 데 유용합니다. 이 메서드는 PlayerAdded 을 반복하는 것을 피하는 데 유용합니다!


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)

반환

Instances

서버에 있는 모든 플레이어를 포함하는 테이블.

코드 샘플

Give Sparkles to Everyone

local Players = game:GetService("Players")
local function onCharacterAdded(character)
-- Give them sparkles on their head if they don't have them yet
if not character:FindFirstChild("Sparkles") then
local sparkles = Instance.new("Sparkles")
sparkles.Parent = character:WaitForChild("Head")
end
end
local function onPlayerAdded(player)
-- Check if they already spawned in
if player.Character then
onCharacterAdded(player.Character)
end
-- Listen for the player (re)spawning
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)

SetChatStyle

void
플러그인 보안

이 함수는 BubbleChat 및 ClassicChat가 사용되는지 여부를 설정하고 팀 채팅 및 채팅에게 Enum.ChatStyle 열거형을 사용하도록 합니다. 이 항목은 보호되므로 Script 또는 LocalScript 에서 사용하려면 오류가 발생합니다.

이 함수는 게임이 채팅 모드를 설정할 때 내부적으로 사용됩니다.

매개 변수

지정된 채팅 스타일이 설정됩니다.

기본값: "Classic"

반환

void

코드 샘플

Setting a Player's Chat Style

-- Command bar
game.Players:SetChatStyle(Enum.ChatStyle.Classic) -- Set's chat style to Classic
-- LocalScript
local Players = game:GetService("Players")
Players:SetChatStyle(Enum.ChatStyle.Classic) -- Errors

TeamChat

void
플러그인 보안

이 함수는 Players.LocalPlayer 채팅을 지정한 메시지로 변경하므로, 동일한 팀의 사용자만 볼 수 있습니다. 이 항목이 보호되어 있기 때문에 Script 또는 LocalScript에서 사용하려면 오류가 발생합니다.

이 함수는 Players.LocalPlayer 가 팀에 메시지를 보낼 때 내부적으로 사용됩니다.

매개 변수

message: string

메시지가 채팅됩니다.


반환

void

코드 샘플

Sending Team Chat

-- Command bar
game.Players:TeamChat("Hello World") -- Sends a "Hello World" message to all players on the local player's team
-- LocalScript
local Players = game:GetService("Players")
Players:TeamChat("Hello World") -- Errors

BanAsync

void
생성

Class.Players:BanAsync() 메서드를 사용하면 경험 가이드라인을 위반하는 사용자를 쉽게 차단할 수 있습니다. 차단 기간, 차단을 의심스러운 계정으로 확산하도록 활성화 및 차단 사용자에게 메시지를 표시하는 방법을 지정할 수 있습니다. 또

차단 및 메시징

차단된 사용자는 즉시 퇴거당하고 경험에 다시 참여할 수 없습니다. 그들은 자신의 밴에 남은 시간을 표시하는 오류 모달 필터보게 될 것입니다. Roblox의 백엔드 시스템은 지정한 장소

장소 및 유니버스

기본적으로 밴은 해당 우주의 어느 장소든 확장됩니다. 이 API가 호출되는 장소에 대한 제한을 제한하려면 ApplyToUniversefalse 로 구성하십시오. 그러나 사용자가 시작 장소의 우주에 밴이 있으면 이 경우 사

대체 계정

사용자는 종종 여러 개의 다른 계정에서 플레이하며, 다른 계정이나 alt 계정이라고도 하며, 때로는 계정 제한을 우회하기 위해 사용됩니다. 사용자를 보호하기 위해 이 API의 기본 행동은 모든 금지된 사용자를 원본 계정에서 모든 의심스러운 alt

이용 제한 기간

모든 위반은 동일하지 않으므로 모든 �

오류 및 스로틀링

이 메서드는 서버에서 속도를 조정하기 위해 백엔드 서비스에 대한 HTTP 호출을 호출하지만 실패할 수 있습니다. 이 API를 두 개 이상의 UserId 와 함께 호출하는 경우 이 메서

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

메시지에는 항상 failure for UserId {} 이 포함되어 있습니다. 이 경우 오류가 HTTP 오류인 경우.

클라이언트 사이드 요구 사항

사용자 차단과 관련된 위험 때문에 이 메서드는 백엔드 경험 서버(클라이언트 측 호출은 오류로 결과됨)에서만 호출할 수 있습니다(협업 작품테스트하는 경우 클라이언트 측 호출은 오류로 결과됩니다). 이 API를 Studio에서 테스트하거나 팀 테스트에서 테스트하지만 프로

이 API는 사용자 제한 오픈 클라우드 API를 사용합니다. 이 API를 사용하면 제한을 제3자 응용 프로그램에서 관리할 수 있습니다.

매개 변수

config: Dictionary
  • UserIds (필수; 배열) — 플레이어 이름의 배열입니다. 최대 크기는 UserIds입니다.

  • ApplyToUniverse (옵션; 부울) — 경로가 경험 내 모든 장소에 확산되는지 여부. 기본값은 true입니다.

  • Duration (필수; 정수) — 일시 정지지속 시간, 초 단위입니다. 영구 금지는 -1 값을 가져야 합니다. 0 및 모든 다른 음수 값이 유효하지 않은.

  • DisplayReason (필수; 문자열) — 사용자가 경험에 참여하려고 시도하면 표시되는 메시지입니다. 최대 문자열 길이는 400 입니다.

  • PrivateReason (필수; 문자열) — 사용자의 밴 기록을 검색할 때 반환되는 내부 메시지. 최대 문자열 길이는 1000입니다.

  • ExcludeAltAccounts (옵션; 부울) — true 일 때 Roblox는 다른 계정을 차단하지 않습니다. 기본값은 false 입니다.


반환

void

코드 샘플

Banning Users

local Players = game:GetService("Players")
if shouldBeBanned(player: 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

생성

HumanoidDescription에 지정된 모든 것을 장착한 캐릭터 모델을 반환하고 리그 유형에 따라 R6 또는 R15로 지정됩니다.

매개 변수

description: HumanoidDescription

반환된 문자의 모양을 지정합니다.

반환된 캐릭터가 R6 또는 R15인지 지정합니다.

assetTypeVerification: Enum.AssetTypeVerification

자산 유형 검사는 이 함수가 모델을 로드할지 여부를 결정합니다(캐탈로그 자산이 아닌 자산을 로드하려면 항상으로 설정하세요)。

기본값: "Default"

반환

인간형 캐릭터 모델.

코드 샘플

Create Humanoid Model From Description

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

CreateHumanoidModelFromUserId

생성

지정된 사용자의 아바타와 일치하도록 설정된 모든 것을 포함하는 캐릭터 모델 세트를 반환합니다. 여기에는 해당 캐릭터가 R6 또는 R15인지 여부가 포함됩니다.

매개 변수

userId: number

Roblox 사용자의 ID(사용자 프로필의 번호는 www.roblox.com/ users/1 / profile).


반환

인간형 캐릭터 모델.

코드 샘플

Create Humanoid Model From A User ID

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

GetBanHistoryAsync

생성

경험의 유니버스 내의 모든 사용자의 이전 및 현재 밴 및 해제 기록을 검색합니다. 이 메서드는 BanHistoryPages 인스턴스를 반환하며, Pages에서 상속된 것입니다.

이 함수 호출은 클라이언트 장치나 Studio에서 작동하는 프로덕션 게임 서버에서만 성공합니다.

이 API는 사용자 제한 오픈 클라우드 API를 사용합니다. 이 API를 사용하면 제한을 제3자 응용 프로그램에서 관리할 수 있습니다.

매개 변수

userId: number

반환

Class.BanHistoryPages 참조를 위해 돌아가십시오.

GetCharacterAppearanceInfoAsync

생성

이 함수는 Roblox 웹사이트의 사전 형식으로 플레이어의 아바타에 대한 정보(장비 무시)를 반환합니다. 이 메서드와 GetCharacterAppearanceAsync 의 구조는 장비 무시를 구현하는 것이 아니


<tr>
<td><code>자산)</code></td>
<td>테이블(아래 참조)</td>
<td>장착된 자산(모자, 바디 부품 등)에 대해 설명합니다.</td>
</tr>
<tr>
<td><code>bodyColors</code></td>
<td>테이블(아래 참조)</td>
<td>각 팔다리에 대한 BrickColor 값을 설명합니다.</td>
</tr>
<tr>
<td><code>bodyColor3s</code></td>
<td>테이블(아래 참조)</td>
<td>BodyColors와 일치하지 않는 각 손가락에 대한 Color3 인스턴스를 설명합니다.</td>
</tr>
<tr>
<td><code>기본 바지 적용</code></td>
<td>부울</td>
<td>기본 바지를 적용하는지 여부를 설명합니다.</td>
</tr>
<tr>
<td><code>기본 ShirtApplied</code></td>
<td>부울</td>
<td>기본 셔츠를 적용하는지 여부를 설명합니다.</td>
</tr>
<tr>
<td><code>이모티콘</code></td>
<td>테이블(아래 참조)</td>
<td>장착된 이모티콘 애니메이션을 설명합니다.</td>
</tr>
<tr>
<td><code>playerAvatarType</code></td>
<td>문자열</td>
<td>R15 또는 R6</td>
</tr>
<tr>
<td><code>크기 조정자</code></td>
<td>테이블(아래 참조)</td>
<td>다양한 바디 크기 조정 요소에 대해 설명합니다.</td>
</tr>
이름유형설명
자산 하위 테이블

assets 테이블은 플레이어가 현재 장착한 자산에 대한 다음 키를 포함하는 배열의 테이블입니다.


<tr>
<td><code>id)</code></td>
<td>숫자</td>
<td>장착된 자산의 자산 ID</td>
</tr>
<tr>
<td><code>자산 유형</code></td>
<td>테이블</td>
<td>이름과 아이디 필드가 있는 테이블, 각각 장착된 자산 유형을 설명합니다 ("모자", "얼굴", 등등")</td>
</tr>
<tr>
<td><code>이름</code></td>
<td>문자열</td>
<td>장착된 자산의 이름</td>
</tr>
이름유형설명
하위 테이블 크기 조정

scales 테이블에는 각 Humanoid 크기 조정 속성에 해당하는 숫자가 있습니다. bodyType, 1>head1>, 4>height4>, 7>proportion7>, 9>depth9>, scales0>입

바디 색상 하위 테이블

bodyColors 테이블에는 다음과 같은 키가 있습니다. 각 BrickColor ID 번호는 BrickColor.new(id) : <

매개 변수

userId: number

지정된 플레이어의 * 사용자 식별 번호입니다.


반환

지정된 사용자의 캐릭터 모양에 대한 정보가 포함된 사전입니다.

코드 샘플

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

생성

GetFriends Players 함수는 모든 사용자 친구의 정보를 포함하는 FriendPages 개체를 반환합니다. FriendPages 개체 내의 항목은 다음과 같은 필드를 포함하는 테이블입니다.


<tr>
<td>아이디</td>
<td>int64</td>
<td>친구의 UserId</td>
</tr>
<tr>
<td>사용자 이름</td>
<td>문자열</td>
<td>친구의 사용자 이름</td>
</tr>
<tr>
<td>표시 이름</td>
<td>문자열</td>
<td>친구의 <code>Class.Player.DisplayName|display name</code>입니다.</td>
</tr>
이름유형설명

모든 플레이어의 친구를 반복하는 쉬운 방법에 대한 코드 샘플을 참조하십시오.

매개 변수

userId: number

지정된 플레이어의 사용자 ID.


반환

코드 샘플

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

생성

지정된 의상 ID에 대해 인간 설명을 반환하고, 의상의 부품/색상/애니메이션 등을 포함하여 의상을 설정합니다. 사용자가 만든 의상은 의상/색상/애니메이션 등을 포함하여 하나의 의상을 만들 수 있습니다. 또는 Roblox가 만든 의상 번들을 위해 의상을 만들 수 있습니다.

매개 변수

outfitId: number

HumanoidDescription이 검색된 의상의 ID.


반환

패스된 의상Id에 대한 사양으로 인간형 설명을 초기화했습니다.

코드 샘플

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

생성

지정된 사용자의 아바타를 위해 장착된 모든 것을 지칭하는 HumanoidDescription을 반환합니다. 또한 크기 조정 및 바디 색상을 포함합니다.

매개 변수

userId: number

Roblox 사용자의 ID(사용자 프로필의 번호는 www.roblox.com/ users/1 / profile).


반환

사용자의 아바타 사양에 따라 인간형 설명을 초기화합니다.

코드 샘플

Get HumanoidDescription From User ID

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

GetNameFromUserIdAsync

생성

GetNameFromUserIdAsync Players 함수는 Roblox 웹 사이트에 쿼리를 보내어 지정된 UserId 의 계정의 사용자 이름을 알려줍니다.

이 메서드는 사용자 아이디가 지정된 경우 계정이 없는 경우 오류가 발생합니다. 이 계정이 존재하는지 확신하지 않으면 pcall 으로 호출을 감싼다는 것이 좋습니다. 또한 미리 정의된 결과를 사용하여 나중에 동일한 사용자 아이디로 더 빠르게 호출할 수 있습니다. 코드

매개 변수

userId: number

지정된 플레이어의 Player.UserId입니다.


반환

지정된 Player.UserId 사용자의 이름.

코드 샘플

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

생성

이 함수는 Roblox 웹 사이트에 쿼리를 보내어 지정된 Player.UserId 이름의 계정에 대해 무엇인지 알려줍니다.

이 메서드는 제공된 사용자 이름과 계정이 없는 경우 오류가 발생합니다. 이런 계정이 존재하지 않는 경우 pcall 으로 호출을 감싸는 것이 좋습니다. 또한, 미래에 동일한 사용자 이름으로 호출을 작성하려면 결과를 수동으로 캐시하는 것이 좋습니다. 코드 샘플을 참조

매개 변수

userName: string

지정된 플레이어의 사용자 이름입니다.


반환

지정된 사용자의 이름입니다. Player.UserId 의.

코드 샘플

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

생성

이 함수는 플레이어의 아바타의 이미지에 대한 플레이어의 UserId 에 대한 콘텐츠 URL을 반환하고, 원하는 이미지 크기를 Enum.ThumbnailSize 열거형, 사용할 수 있는 유형을 Enum.ThumbnailType 열거형으로

대부분의 경우, 이 메서드는 ImageLabel.Image 또는 Decal.Texture 를 사용하여 경험에서 사용자 아바타 사진을 표시합니다.

매개 변수

userId: number

지정된 플레이어의 Player.UserId입니다.

thumbnailType: Enum.ThumbnailType

Enum.ThumbnailType 썸네일의 유형을 설명합니다.

thumbnailSize: Enum.ThumbnailSize

Enum.섬네일 썸네일의 크기를 지정합니다.


반환

사용자 썸네일의 콘텐츠 URL을 지정한 매개 변수에 따라 포함하는 튜플, 이미지를 사용할 준비가 되었는지 여부를 설명하는 부울입니다.

코드 샘플

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

void
생성

Class.Players:BanAsync() 또는 사용자 제한 클라우드 API에서 차단된 플레이어를 해제하십시오.

Like Players:BanAsync() ,이 메서드는 사용자를 대량으로 해제하는 데 사용되는 config 사전을 가져옵니다. 이 사전은 해제된 사용자와 해제되지 않은 사용자 모두에 대해 구성됩니다.

Unbans는 동일한 ApplyToUniverse 범위의 밴에만 적용됩니다. 예를 들어, ApplyToUniversetrue 로 설정한 경우 이전 밴을 1> ApplyToUniverse1> 로 유

이 메서드는 백엔드 서비스에 HTTP 호출을 호출하지만, 속도가 제한되어 실패할 수 있습니다. 여러 사용자 ID를 가진 경우 이 메서드는 각

사용자 차단과 관련된 위험 때문에 이 메서드는 백엔드 게임 서버에서만 호출할 수 있습니다. 클라이언트 측 호출은 오류가 발생할 수 있습니다. 이 API를 Studio, 팀 생성 및 팀 테스트에서 테스트할 수 있지만 생산 게임 서버에는 적용되지 않습니다. 이 함

이 API는 사용자 제한 오픈 클라우드 API를 사용합니다. 이 API를 사용하면 제한을 제3자 응용 프로그램에서 관리할 수 있습니다.

매개 변수

config: Dictionary

<tbody>
<tr>
<td><code>UserIds</code></td>
<td>배열</td>
<td>사용자 ID는 경험에 강제로 허용되어야 합니다. 최대 크기는 <code>50</code>입니다.</td>
</tr>
<tr>
<td><code>ApplyToUniverse</code></td>
<td>부울</td>
<td>이 우주의 모든 장소에 대한 이용 제한 해제를 확대합니다.</td>
</tr>
</tbody>
이름유형설명

반환

void

코드 샘플

Unbanning Users

local Players = game:GetService("Players")
if shouldBeUnbanned(player: 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

플레이어가 게임에 들어갈 때 PlayerAdded 이벤트가 발생합니다. 이 이벤트는 플레이어가 게임에 참여할 때 발생하는 이벤트입니다. 예를 들어, 플레이어의 저장된 GlobalDataStore 데이터를 로드하는 것과 같이 플레이어가 게임에 참여할 때 발생합니다.

이 기능은 Players.PlayerRemoving 이벤트와 함께 사용할 수 있습니다. 이 이벤트는 플레이어가 게임을 떠나려고 할 때 발생합니다. 예를 인스턴스, 새로운 플레이어가 게임에 참여하거나 떠날 때마다 메시지를 프린트하려면:


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)

플레이어의 캐릭터가 게임에서 추가되거나 제거된 경우, 예를 들어 플레이어가 재생성하거나 죽을 때, Player.CharacterAddedPlayer.CharacterRemoving 함수를 사용하면 됩니다.

이 이벤트는 플레이어가 플레이 모드에서 생성되기 때문에 스크립트가 연결된 PlayerAdded 에 대해 작동하지 않습니다. 이 경우, 플레이어가 게임에 추가된 후 스크립트가 호출되는 경우를 처리하기 위해 onPlayerAdded() 함수를 생성하십시

매개 변수

player: Player

게임에 참여한 플레이어의 인스턴스.


코드 샘플

Players.PlayerAdded

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

PlayerMembershipChanged

이 이벤트는 게임 서버가 플레이어의 멤버십이 변경된 것을 인식할 때 발생합니다. 그러나 서버는 프리미엄 모달을 닫은 후에만 멤버십을 확인하고 업데이트할 수 있습니다. 따라서 게임

Premium을 경험에 통합하고 수익을 창출하는 방법에 대해서는 영입 기반 수익 시스템 보기를 참조하십시오. 영입 기반 수익 시스템.

또한 참조하십시오.

매개 변수

player: Player

코드 샘플

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

PlayerRemoving 이벤트는 Player 가 게임을 떠나기 직전에 발생합니다. 이 이벤트는 ChildRemoved 가 게임에 나타나기 전에 발생

이 기능은 Player.PlayerAdded 이벤트와 함께 사용할 수 있으며, 플레이어가 게임에 참여할 때 발생합니다. 예를 인스턴스, 새로운 플레이어가 게임에 참여할 때마다 메시지를 표시하려면:


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)

플레이어의 캐릭터가 게임에서 추가되거나 제거된 경우, 예를 들어 플레이어가 재생성하거나 죽을 때, Player.CharacterAddedPlayer.CharacterRemoving 함수를 사용하면 됩니다.

매개 변수

player: Player

게임을 떠나는 플레이어의 인스턴스입니다.


코드 샘플

Players.PlayerRemoving

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

UserSubscriptionStatusChanged

이 이벤트는 게임 서버가 특정 구독의 사용자 상태를 변경하면 발생합니다. 서버는 구독 구매 모달을 닫을 때만 상태를 검사하고 업데이트합니다. 게임 서버가 플레이어가 구독을 구매하도록 게임

서버 스크립트만 이 이벤트를 수신합니다.

매개 변수

user: Player

구독 상태가 변경된 사용자입니다.

subscriptionId: string

상태 변경을 사용하는 구독의 ID입니다.