エンジンクラス
Players
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
概要
プロパティ
方法
イベント
PlayerAdded(player: Player):RBXScriptSignal |
PlayerMembershipChanged(player: Player):RBXScriptSignal |
PlayerRemoving(player: Player,reason: Enum.PlayerExitReason):RBXScriptSignal |
UserSubscriptionStatusChanged(user: Player,subscriptionId: string):RBXScriptSignal |
APIリファレンス
プロパティ
CharacterAutoLoads
コードサンプル
プレイヤーリスポーンタイマー
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)
endlocalPlayer
NumPlayers
numPlayers
方法
BanAsync
パラメータ
戻り値
()
コードサンプル
ユーザーの禁止
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)
endChat
CreateHumanoidModelFromDescription
CreateHumanoidModelFromDescriptionAsync
Players:CreateHumanoidModelFromDescriptionAsync(
description:HumanoidDescription, rigType:Enum.HumanoidRigType, assetTypeVerification:Enum.AssetTypeVerification
パラメータ
| 既定値: "Default" |
戻り値
コードサンプル
説明からヒューマノイドモデルを作成
game.Players:CreateHumanoidModelFromDescriptionAsync(Instance.new("HumanoidDescription"), Enum.HumanoidRigType.R15).Parent =
game.WorkspaceCreateHumanoidModelFromUserId
CreateHumanoidModelFromUserIdAsync
GetBanHistoryAsync
GetCharacterAppearanceAsync
GetCharacterAppearanceInfoAsync
パラメータ
戻り値
コードサンプル
返却されたキャラクター外観辞書の例
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 = "Vision Française ",
},
{
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
パラメータ
戻り値
コードサンプル
ロブロックスの友達を表示
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
パラメータ
コードサンプル
アウトフィット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 = WorkspaceGetHumanoidDescriptionFromUserId
GetHumanoidDescriptionFromUserIdAsync
パラメータ
コードサンプル
ユーザーIDからHumanoidDescriptionを取得
game.Players:CreateHumanoidModelFromDescriptionAsync(
game.Players:GetHumanoidDescriptionFromUserIdAsync(1),
Enum.HumanoidRigType.R15
).Parent =
game.WorkspaceGetNameFromUserIdAsync
パラメータ
戻り値
コードサンプル
ユーザー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"ユーザーIDからキャッシュを使用して名前を取得
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' の 'name' を見つけることができませんでした。ユーザーに
-- これが発生したことを警告し、その後何も返さないか、nil を返します。
warn("UserId に対する名前が見つかりませんでした:", userId)
return nil
end
-- 例データ:
-- UserId: 118271 Name: "RobloxRulez"
-- UserId: 131963979 Name: "docsRule"
-- UserId が最初に使用されるとき、GetNameFromUserIdAsync() が呼び出されます。
local nameOne = getNameFromUserId(118271)
local nameTwo = getNameFromUserId(131963979)
-- 118271 は以前に使用されたため、キャッシュからその名前を取得します。
local nameOneQuick = getNameFromUserId(118271)
print(nameOne, nameTwo, nameOneQuick)
-- prints: "RobloxRulez docsRule RobloxRulez"GetPlayerByUserId
パラメータ
戻り値
コードサンプル
Players:GetPlayerByUserId
local Players = game:GetService("Players")
local player = Players:GetPlayerByUserId(1)
if player then
print("ユーザーID 1 のプレイヤーがこのサーバーにいます! 彼らの名前は: " .. player.Name)
else
print("ユーザーID 1 のプレイヤーはこのサーバーにいません!")
endGetPlayerFromCharacter
パラメータ
戻り値
コードサンプル
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.Name} ({player.UserId}) はゲームに参加しています`)
else
print(`プレイヤー {PLAYER_NAME} はゲームに参加していません!`)
endGetPlayers
戻り値
{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
GetProfileConfigurationFromUserIdAsync
GetUserIdFromNameAsync
パラメータ
戻り値
コードサンプル
名前から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'を見つけたときに格納するための'table'を'cache'と呼びます。
-- 同じ'Name'を使って'UserId'を検索すると、'UserId'はキャッシュから取得されます(速い)
-- GetUserIdFromNameAsync()からではなく(yieldします)。
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を再度検索する必要がないようにします。次に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)
-- prints: "118271 131963979 118271"GetUserThumbnailAsync
Players:GetUserThumbnailAsync(
パラメータ
戻り値
コードサンプル
プレイヤーサムネイルの表示
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
パラメータ
| 既定値: "Classic" |
戻り値
()
コードサンプル
プレイヤーのチャットスタイルの設定
-- コマンドバー
game.Players:SetChatStyle(Enum.ChatStyle.Classic) -- チャットスタイルをクラシックに設定
-- LocalScript
local Players = game:GetService("Players")
Players:SetChatStyle(Enum.ChatStyle.Classic) -- エラーTeamChat
UnbanAsync
パラメータ
戻り値
()
コードサンプル
ユーザーの禁止解除
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.PlayerAdded
local Players = game:GetService("Players")
local function onPlayerAdded(player)
print("プレイヤーが参加しました: " .. player.Name)
end
Players.PlayerAdded:Connect(onPlayerAdded)PlayerMembershipChanged
パラメータ
コードサンプル
プレミアムメンバーシップの変更の処理
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.PlayerRemoving
local Players = game:GetService("Players")
local function onPlayerRemoving(player)
print("プレイヤーが退出しました: " .. player.Name)
end
Players.PlayerRemoving:Connect(onPlayerRemoving)UserSubscriptionStatusChanged