Players

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Nicht erstellbar
Dienst

Die Players -Dienstleistung enthält Player -Objekte für angeschlossene Clients zu einem Roblox-Server. Sie enthält auch Informationen über die Konfiguration eines Ortes. Sie kann Informationen über nicht an den Server verbundene Spieler, wie Charakteranzeigen, Freunde und Miniaturansicht, abrufen.

Zusammenfassung

Eigenschaften

  • Nicht repliziert
    Nicht skriptfähig
    Parallel lesen

    Aktiviert oder deaktiviert die drei Players -M Methoden ( BanAsync() , UnbanAsync() und 1> Class.Players:GetBanHistoryAsync()|GetBanHistoryAsync()1> ) die die Ban-API bilden. Diese Eigenschaft ist nicht skript

  • Schreibgeschützt
    Nicht repliziert
    Parallel lesen

    Zeigt an, ob der Blasenchat aktiviert ist oder nicht. Es wird mit der Methode Players:SetChatStyle() gesetzt.

  • Nicht repliziert
    Parallel lesen

    Zeigt an, ob Class.Character|Characters automatisch respawnen wird.

  • Schreibgeschützt
    Nicht repliziert
    Parallel lesen

    Zeigt an, ob der klassische Chat aktiviert ist oder nicht; wird durch die Methode Players:SetChatStyle() festgelegt.

  • Schreibgeschützt
    Nicht repliziert
    Parallel lesen

    Das Player, für das die LocalScript läuft.

  • Schreibgeschützt
    Nicht repliziert
    Parallel lesen

    Die maximale Anzahl von Spielern, die in einem Server sein können.

  • Schreibgeschützt
    Nicht repliziert
    Parallel lesen

    Die bevorzugte Anzahl von Spielern für einen Server.

  • Parallel lesen

    Steuert die Zeit, die ein Spieler-Charakter zum Respawn benötigt.

  • Nicht skriptfähig
    Parallel lesen

Methoden

Ereignisse

Eigenschaften

BanningEnabled

Nicht repliziert
Nicht skriptfähig
Parallel lesen

Aktiviert oder deaktiviert die drei Players -M Methoden ( BanAsync() , UnbanAsync() und 1> Class.Players:GetBanHistoryAsync()|GetBanHistoryAsync()1> ) die die Ban-API bilden. Diese Eigenschaft ist nicht skript

BubbleChat

Schreibgeschützt
Nicht repliziert
Parallel lesen

Die BubbleChat-Eigenschaft zeigt an, ob der Bubble-Chat aktiviert ist oder nicht. Sie wird mit der Class.Players:SetChatStyle() -Methode gesetzt, die die Enums.ChatStyle -Enum verwendet.

Wenn dieser Chat-Modus aktiviert ist, werden die Spieler-Chats in der Chat-Benutzeroberfläche oben links auf dem Bildschirm angezeigt.

Es gibt zwei andere Chat-Modi, Players.ClassicChat und einen Chat-Modus, in dem sowohl klassischer als auch Blasen-Chat aktiviert sind.

CharacterAutoLoads

Nicht repliziert
Parallel lesen

Die CharacterAutoLoads-Eigenschaft zeigt an, ob Class.Character|Characters automatisch respawnen wird. Der Standardwert ist true.

Wenn diese Eigenschaft deaktiviert ist ( false), wird der Spieler Class.Character|Characters nicht spawnen, bis die Funktion Player:LoadCharacter() für jeden Player aufgerufen wird, einschließlich der Zeit, in der Spieler der Erlebnisbeitreten.

Dies kann in Erfahrungen nützlich sein, in denen Spielerfinite Lifes haben, wie kompetitive Spiele, in denen Spieler nicht respawnen, bis eine Spielrunde endet.

Code-Beispiele

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

Schreibgeschützt
Nicht repliziert
Parallel lesen

Zeigt an, ob der klassische Chat aktiviert ist oder nicht. Dieses Eigenschaft wird durch die Class.Players:SetChatStyle() -Methode mit dem еньClass.ChatStyle -Erum gesetzt.

Wenn dieser Chat-Modus aktiviert ist, werden die Spieler-Chats in Blasen über dem Kopf des Senders angezeigt.

Es gibt zwei andere Chat-Modi, Players.BubbleChat und einen Chat-Modus, in dem sowohl klassischer als auch Bubble-Chat aktiviert sind.

LocalPlayer

Schreibgeschützt
Nicht repliziert
Parallel lesen

LocalPlayer ist eine nur zu lesende Eigenschaft, die auf den Client des Player verweist, der die Erlebnisausführt.

Dieses Eigenschaft wird nur für LocalScripts und ModuleScripts von ihnen definiert, da sie auf dem Client ausgeführt werden. Für den Server, auf dem Script Objekte ihren Codesausführen, ist diese Eigenschaft 1> nil1> .

MaxPlayers

Schreibgeschützt
Nicht repliziert
Parallel lesen

Die MaxPlayers -Eigenschaft bestimmt die maximale Anzahl von Spielern, die auf einem Server sein können. Diese Eigenschaft kann nur durch die Einstellungen eines bestimmten Ortes im Creator-Dashboard oder durch die Spieleinstellungen festgelegt werden.

PreferredPlayers

Schreibgeschützt
Nicht repliziert
Parallel lesen

Die PreferredPlayers-Eigenschaft zeigt die Anzahl der Spieler an, zu denen der Roblox-Matchmaker-Server füllen wird. Diese Zahl wird weniger sein als die maximale Anzahl an Spielern ( Players.MaxPlayers ) unterstützt durch die Erlebnis.

RespawnTime

Parallel lesen

Die RespawnTime -Eigenschaftsteuert die Zeit, in Sekunden, die ein Spieler braucht, um zu respawnen, wenn Players.CharacterAutoLoads wahr ist. Standardmäßig beträgt sie 5.0 Sekunden.

Dies ist nützlich, wenn Sie möchten, wie lange es dauert, bis Sie wiederbelebt werden, basierend auf der Art Ihres Erlebnisses, aber nicht möchten, Spieler individuell wiederzubeleben.

Obwohl diese Eigenschaft von innerhalb eines Script festgelegt werden kann, können Sie sie einfacher über das Players-Objekt in Studio's Explorer-Fenster festlegen.

UseStrafingAnimations

Nicht skriptfähig
Parallel lesen

Methoden

Chat

void
Plugin-Sicherheit

Diese Funktion macht den lokalen Spieler den gegebenen Nachricht. Da dieses Item geschützt ist, wird ein Versuch, es in einem Script oder LocalScript zu verwenden, ein Fehler verursachen.

Stattdessen, wenn Sie ein benutzerdefiniertes Chat-System erstellen oder ein System, das Zugriff auf den Chat benötigt, verwenden Sie stattdessen die Chat -Funktion der Class.Chat:Chat() -Dienste.

Parameter

message: string

Die Nachricht chatt.


Rückgaben

void

Code-Beispiele

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

Parallel schreiben

Diese Funktion sucht jeden player in Players für einen, dessen Player.UserId der angegebene UserId entspricht. Wenn ein solcher Spieler nicht existiert, gibt er einfach 1> nil1> zurück. Es ist gleichbedeutlich mit der folgenden Funktion:


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

Diese Methode ist nützlich, um den Käufer eines Entwicklerprodukts mit MarketplaceService.ProcessReceipt zu finden, der eine Tabelle bietet, die den Käufer-User-ID enthält und nicht eine Verweisung auf das Player-Objekt selbst. Die meisten Spielen erfordern eine Verweisung auf den Spieler, um Produkte zu gewähren.

Parameter

userId: number

Der Player.UserId des Spielers, der angegeben wird.


Rückgaben

Code-Beispiele

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

Diese Funktion gibt die Player zurück, die mit dem angegebenen Player.Character oder nil verbunden ist, oder 2>nil2> ist, wenn einer nicht gefunden werden kann. Es ist gleichbedeutend mit der folgenden Funktion:


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

Diese Methode wird oft verwendet, wenn einige Ereignisse in dem Charakter eines Spieler:infeuern (z. B. ihre Humanoid ) dying ). Solche Ereignisse können nicht direkt auf das Spieler-Objekt beziehen, aber diese Methode bietet einfachen Zugriff. Der Gegensatz dieser Funktion kann als Erhalt des Charakters eines Spielers beschrieben werden. Um dies zu tun, klic

Parameter

character: Model

Eine Charakterinstanz, von der du den Spieler bekommen möchtest.


Rückgaben

Code-Beispiele

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
Parallel schreiben

Diese Methode gibt eine Tabelle zurück, in der alle derzeit verbundenen Player-Objekte aufgeführt sind. Sie funktioniert auf die gleiche Weise, Instance:GetChildren() , mit der Ausnahme, dass sie nur Objekte Player findet, die unter 1> Class.Players1> . Wenn sie mit


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

Skripte, die sich mit Players.PlayerAdded verbinden, versuchen oft, jeden Spieler zu verarbeiten, der sich dem Spiel anschließt. Diese Methode ist nützlich, um über bereits verbundene Spieler zu wiederholen, die nicht feuern PlayerAdded. Wenn Sie diese Methode verwenden, werden keine Spieler übersäte!


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)

Rückgaben

Instances

Eine Tabelle, die alle Spieler im Server enthält.

Code-Beispiele

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
Plugin-Sicherheit

Diese Funktion setzt fest, ob BubbleChat und ClassicChat verwendet werden, und sagt TeamChat und Chat, was zu tun ist, verwenden Sie das Enum.ChatStyle-열열. Da dieses Item geschützt ist, wird ein Versuch, es in einem Script oder LocalScript zu verwenden, einen Fehler verursachen.

Diese Funktion wird intern verwendet, wenn der Chat-Modus durch das Spiel festgelegt wird.

Parameter

Der angegebene Chat-Stil wird festlegen.

Standardwert: "Classic"

Rückgaben

void

Code-Beispiele

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
Plugin-Sicherheit

Diese Funktion macht den Players.LocalPlayer Chat, der die gegebene Nachricht anzeigt, die nur Benutzer im selben Team anzeigen können. Da dieses Item geschützt ist, wird das Versuchen, es in einem Script oder LocalScript zu verwenden, zu einem Fehler führen.

Diese Funktion wird intern verwendet, wenn der Players.LocalPlayer eine Nachricht an sein Team sendet.

Parameter

message: string

Die Nachricht wird chattet.


Rückgaben

void

Code-Beispiele

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
Angehalten

Die Methode Players:BanAsync() ermöglicht es Ihnen, Benutzer, die gegen die Richtlinien Ihres Erlebnisses verstoßen, leicht zu verbieten. Sie können die Verbotsdauer, die Ban-Anpassung an verdächtige Konten aktivieren und dem Benutzer eine Nachricht nach den N

Bannen und Messaging

Verbotene Benutzer werden sofort vertrieben und können nicht wieder an Ihren Erlebnissen teilnehmen. Sie werden mit einem Fehler-Modus präsentiert, der die Zeit auf ihrem Ban und Ihrem DisplayReason anzeigt. Roblox's Backend-Systeme können Spieler auf allen Servern, die Sie angeben, aus dem Ort(s) entfernen. DisplayReason

Orte und Universum

Standardmäßig gelten Verbote für jeden Ort innerhalb dieses Universums. Um den Ban nur auf den Ort zu beschränken, von dem diese API aufgerufen wird, konfigurieren Sie ApplyToUniverse auf false . Wenn ein Benutzer jedoch im Startort des Universums gebannt wird, wird der Benutzer effektiv aus dem gesamten Universum ausgeschlossen, unabhängig davon, ob ein universeller Ban aktiviert ist oder nicht.

Alternative Konten

Benutzer spielen oft unter mehreren verschiedenen Konten, die als alternative Konten oder Alt-Konten bekannt sind, die manchmal verwendet werden, um Benutzer-Verbote zu umgehen. Um Ihnen zu helfen, Benutzer auszuschließen, wird das Standardverhalten dieser API alle Verbote vom Quellkonto, den Sie gesperrt haben, auf jeden Ihrer verdächtigen Alt-Konten ausbreiten. Sie können die Verbreitung von Bans auf Alt-Konten deaktivieren,

Sperrdauer

Nicht alle Übertreten sind gleich, so dass nicht alle Verbote die gleiche Länge

Fehler und Throttling

Diese Methode ruft einen HTTP-Anruf bei Backend-Services auf, die unter Beschleunigung und möglicherweise Fehlern unterliegen. Wenn Sie diese API mit mehr als einem UserId aufrufen, versucht diese Methode, den HTTP-Anruf für jede ID auszuführen. Es wird dann alle Fehler-Nachrichten zusammenführen

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

Die Nachricht enthält immer failure for UserId {} , wenn es sich um einen HTTP-Fehler handelt.

Kunden-seitige Anforderung

Aufgrund der Risiken, die mit dem Verbot von Benutzern verbunden sind, kann diese Methode nur auf der Backend-Erlebnisse-Server (client-seitige Anrufe ergeben einen Fehler) aufgerufen werden. Sie können diese API in Studio, während der kooperativen Schöpfungoder in einem Team-Test testen, aber die Verbote werden nicht auf die Produktion angewendet.

Diese API verwendet die Benutzer-Einschränkungen Open Cloud-API. Sie können diese APIs verwenden, um Ihre Verbote in Drittsoftware-Anwendungen zu verwalten.

Parameter

config: Dictionary
  • UserIds (benötigt; Array) — Array von UserIds von Spielern, die gebannt werden sollen. Maximale Größe ist 50.

  • ApplyToUniverse (optional;Boolean) — Ob der Ban-Status auf alle Orte im Erlebnis-Universum ausbreitet. Standard ist true.

  • Duration (erforderlich; ganzzahlig) — Dauer des sperren, in Sekunden. Permanente Bans sollten einen Wert von -1 haben. 0 und alle anderen negativen Werte sind ungültig.

  • DisplayReason (erforderlich;String) — Die Nachricht, die Benutzern angezeigt wird, wenn sie versuchen, einem Erlebnis beizutreten und zu scheitern. Die maximale Zeichenlänge beträgt 400.

  • PrivateReason (benötigt;String) — Internes Messaging, das beim Abrufen der Benutzer-Sperrgeschichte zurückgegeben wird. Die maximale Zeichenlänge beträgt 1000.

  • ExcludeAltAccounts (optional;Boolean) — Wenn true , Roblox versucht nicht, alternative Konten zu bannen. Standard ist false.


Rückgaben

void

Code-Beispiele

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

Angehalten

Rüstet ein Charaktermodell aus, das mit allen im Menschlichen Beschreibung angegebenen Dingen ausgerüstet ist, und ist R6 oder R15, wie in der RigType angegeben.

Parameter

description: HumanoidDescription

Gibt die Aussehen des zurückgegebenen Charakters an.

Gibt an, ob der zurückgegebene Charakter R6 oder R15 sein wird.

assetTypeVerification: Enum.AssetTypeVerification

Die Überprüfung des Asset-Typs bestimmt, ob diese Funktion Modelle laden wird, oder nicht (Sie sollten dies auf „Immer“ einstellen, wenn Sie keine nicht-katalogischen Assets laden möchten).

Standardwert: "Default"

Rückgaben

Ein Humanoid-Charakter-Modell.

Code-Beispiele

Create Humanoid Model From Description

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

CreateHumanoidModelFromUserId

Angehalten

Gibt ein Charakter-Modell-Set mit allem aus, was mit dem Avatar des Benutzers übereinstimmt, der von der Pass-ID angegeben wurde. Dies beinhaltet, ob dieser Charakter derzeit R6 oder R15 ist.

Parameter

userId: number

Die Nutzer-ID für einen Roblox-Benutzer. (Die Nutzer-ID ist die Zahl im Profil des Benutzers z. B. www.roblox.com/users/1/profile).


Rückgaben

Ein Humanoid-Charakter-Modell.

Code-Beispiele

Create Humanoid Model From A User ID

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

GetBanHistoryAsync

Angehalten

Ruft die Ban- und Unban-Historie eines Benutzers innerhalb des Universumwieder ab. Dieser Methoden gibt eine BanHistoryPages Instanz zurück, die von Pages erbt. Dieser Methoden ist durch die Class.Players.BanningEnabled Eigenschaften, die Sie in Studio umschalten können, aktiviert und deaktiviert.

Diese Funktionsaufruf wird nur auf Produktions-Spiel-Servern erfolgreich sein, nicht auf Client-Geräten oder in Studio.

Diese API verwendet die Benutzer-Einschränkungen Open Cloud-API. Sie können diese APIs verwenden, um Ihre Verbote in Drittsoftware-Anwendungen zu verwalten.

Parameter

userId: number

Rückgaben

Siehe BanHistoryPages für Rückschlags.

GetCharacterAppearanceInfoAsync

Angehalten

Diese Funktion gibt Informationen über den Avatar eines Spieler:in(ohne Ausrüstung) auf der Roblox-Website in Form eines Dictionaries zurück. Sie sollte nicht mit GetCharacterAppearanceAsync verwechselt werden, die die Assets, die von dieser Methode beschriebenen Assets, wirklich laden. Sie können Class.InsertService:LoadAsset() verwenden,


<tr>
<td><code>assets</code></td>
<td>table (siehe unten)</td>
<td>Beschreibt die ausgerüsteten Assets (Hüte, Körperteile usw.)</td>
</tr>
<tr>
<td><code>KörperFarben</code></td>
<td>table (siehe unten)</td>
<td>Beschreibt die BrickColor-werte für jedes Glied</td>
</tr>
<tr>
<td><code>KörperFarbe3s</code></td>
<td>table (siehe unten)</td>
<td>Beschreibt die Color3-Instanz für jedes Glied, das möglicherweise nicht mit bodyColors perfekt übereinstimmt</td>
</tr>
<tr>
<td><code>defaultPantsApplied</code></td>
<td>boolean</td>
<td>Beschreibt, ob Standardhose angewendet wird</td>
</tr>
<tr>
<td><code>Standardhemd angewendet</code></td>
<td>boolean</td>
<td>Beschreibt, ob die Standard-Hemd angewendet wird</td>
</tr>
<tr>
<td><code>emotes</code></td>
<td>table (siehe unten)</td>
<td>Beschreibt die ausgerüsteten Emote-Animationen</td>
</tr>
<tr>
<td><code>Spieler-Avatar-Typ</code></td>
<td>string</td>
<td>Entweder "R15" oder "R6"</td>
</tr>
<tr>
<td><code>skaliert</code></td>
<td>table (siehe unten)</td>
<td>Beschreibt verschiedene Körperskalierungsfaktoren</td>
</tr>
NameTypBeschreibung
Assets Unter-Table

Die assets Tabelle ist ein Array von Tabellen, die die folgenden Schlüssel enthält, die die Assets beschreiben, die der Spieler:inderzeit ausgerüstet hat:


<tr>
<td><code>id</code></td>
<td>nummer</td>
<td>Die Asset-ID des ausgerüsteten Objekt</td>
</tr>
<tr>
<td><code>Asset-Typ</code></td>
<td>tabelle</td>
<td>Eine Tabelle mit <code>Namen</code> und <code>id</code> Feldern, die jedes Mal beschreiben, welche Art von Asset ausgerüstet ist ("Hut", "Gesicht", usw.)</td>
</tr>
<tr>
<td><code>name</code></td>
<td>string</td>
<td>Der Name der ausgerüsteten Objekt</td>
</tr>
NameTypBeschreibung
Skaliert Sub-Table

Die scales Tabelle hat die folgenden Schlüssel, jedes ein Class.HumanoidEigenschaften: bodyType, 1> head1>, 4> height4>, 7> proportion7>, 9> depth9>, 0> width

Körperfarben-Untertabelle

Die bodyColors Tabelle hat die folgenden Schlüssel, jedes eine Zahl, die entspricht einer BrickColor ID-Nummer, die mit BrickColor.new(id) :

Parameter

userId: number

Die * Benutzer-ID des angegebenen Spieler:in.


Rückgaben

Ein Wörterbuch, das Informationen über das Aussehen eines bestimmten Benutzers enthält.

Code-Beispiele

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

Angehalten

Die GetFriends-Funktion Players gibt ein FriendPages -Objekt zurück, das Informationen für alle Freunde des Benutzers enthält. Die Elemente innerhalb des FriendPages -Objekts sind Tabellen mit den folgenden Feldern:


<tr>
<td>Identifizieren</td>
<td>int64</td>
<td>Die Benutzer-ID des Freund:in</td>
</tr>
<tr>
<td>Benutzername</td>
<td>string</td>
<td>Der Benutzernamedes Freund:in</td>
</tr>
<tr>
<td>Anzeigename</td>
<td>string</td>
<td>Der <code>Class.Player.DisplayName|Name des Freundes</code> ist der Freund:in.</td>
</tr>
NameTypBeschreibung

Siehe die Code-Beispiele für einen einfachen Weg, über alle Freunde eines Spieler:inzu wiederholen.

Parameter

userId: number

Die Benutzer-ID des Spielers, der angegeben wird.


Rückgaben

Code-Beispiele

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

Angehalten

Gibt die HumanoidDescription für eine bestimmte Outfit-ID zurück, die mit den Teilen/Farben/Animationen usw. des Outfits festgelegt wird. Ein Outfit kann von einem Benutzer erstellt sein, oder es kann das Outfit für ein Bündel erstellt haben, das von Roblox erstellt wurde.

Parameter

outfitId: number

Die ID des Outfits, für das die HumanoidDescription gesucht wird.


Rückgaben

HumanoidDescription mit der Spezifikation für das패스 in outfitId.

Code-Beispiele

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

Angehalten

Gibt eine HumanoidDescription zurück, die alles beschreibt, was für den Avatar des Benutzers angepasst ist, der von der Pass-ID angegeben wurde. Enthält auch Schuppen und Körperfarben.

Parameter

userId: number

Die Nutzer-ID für einen Roblox-Benutzer. (Die Nutzer-ID ist die Zahl im Profil des Benutzers z. B. www.roblox.com/users/1/profile).


Rückgaben

HumanoidDescription mit der in der Benutzeroberfläche des Benutzers angegebenen Spezifikation initialisiert.

Code-Beispiele

Get HumanoidDescription From User ID

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

GetNameFromUserIdAsync

Angehalten

Die GetNameFromUserIdAsync Players Funktion sendet eine Anfrage an die Roblox-Website, um zu fragen, welcher Benutzername des Kontos mit dem angegebenen UserId ist.

Diese Methode fehleret, wenn kein Konto mit dem angegebenen UserId existiert. Wenn Sie sicher sind, dass ein solches Konto existiert, ist es empfohlen, Anrufe mit dieser Funktion mit pcall zu wrappen. Darüber hinaus können Sie Ergebnisse manuell zwischen Anrufen mit dem gleichen UserId schnell zwischenspeichern. Siehe die Code-Beispiele, um mehr zu erfahren.

Parameter

userId: number

Der Player.UserId des Spielers, der angegeben wird.


Rückgaben

Der Name eines Benutzers mit der angegebenen Player.UserId .

Code-Beispiele

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

Angehalten

Diese Funktion sendet eine Anfrage an die Roblox-Website, um zu fragen, welche der Player.UserId des Kontos mit dem angegebenen Player-Namen ist.

Diese Methode fehleret, wenn kein Konto mit dem angegebenen Benutzernamen existiert. Wenn Sie sicher sind, dass ein solches Konto existiert, wird empfohlen, Anrufe mit pcall zu verschicken. Darüber hinaus können Sie Ergebnisse manuell zwischen Anrufen mit dem gleichen Benutzernamen schnell wieder abrufen. Siehe die Code-Beispiele, um mehr zu erfahren.

Parameter

userName: string

Der Benutzername des Spielers, der angegeben wird.


Rückgaben

Der Player.UserId eines Benutzers, dessen Name angegeben ist.

Code-Beispiele

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

Angehalten

Diese Funktion gibt die Inhalts-URL eines Spieler:invon einem Avatar zurück, der seine UserId hat, die gewünschte Bildgröße als Enum.ThumbnailSize Ensemble und den gewünschten Typ als Enum.ThumbnailType Ensemble. Sie gibt auch einenBoolean zurück, der beschreibt, ob das Bild bereit zum Verwenden ist.

In der Regel wird diese Methode mit ImageLabel.Image oder Decal.Texture verwendet, um Benutzer-Avatar-Bilder in einem Erlebnis anzuzeigen.

Parameter

userId: number

Der Player.UserId des Spielers, der angegeben wird.

thumbnailType: Enum.ThumbnailType

Ein Enum.ThumbnailType , der die Art der Miniaturansicht beschreibt.

thumbnailSize: Enum.ThumbnailSize

Ein Enum.ThumbnailSize mit der Angabe der Größe des Miniaturbildes.


Rückgaben

Ein Array, das die Inhalts-URL eines Benutzertunnels basierend auf den angegebenen Parametern enthält, und einBoolean, der angibt, ob das Bild bereit zum Gebrauch ist oder nicht.

Code-Beispiele

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
Angehalten

Spieler, die von Players:BanAsync() oder der Benutzer-Einschränkungen-Open-Cloud-API gebannt sind, werden nicht erlaubt, wenn dieses Methodo aktiviert und deaktiviert wird. Dieser Methode wird durch die Class.Players.BanningEnabledEigenschaftenaktiviert und deaktiviert, die Sie in Studio verwalten können.

Like Players:BanAsync() , diese Methode nimmt ein config-Wörterbuch auf, mit dem Sie Benutzer unbannt und die zu denen Sie unbannt sind. Dies konfiguriert die Benutzer, die nicht unbannt sind und den Umfang, von dem sie unbannt werden.

Unbans gelten nur für Bans mit demselben ApplyToUniverse -Umfang. Zum Beispiel gilt ein Unban mit ApplyToUniverse Set auf true nicht als Ungültigkeit eines früheren sperrenmit 1> ApplyToUniverse1> Set auf 4> force4> .

Diese Methode ruft eine HTTP-Anfrage an Backend-Dienste aus, die gedrosselt und möglicherweise fehlgeschlagen sind. Wenn Sie diese API mit mehreren UserIDs aufrufen, versucht diese Methode, diese HTTP-Anfrage

Aufgrund der Risiken, die mit dem Verbot von Benutzern verbunden sind, kann diese Methode nur auf dem Serveraufgerufen werden. Client-seitige Anrufe ergeben sich aus einem Fehler. Sie können diese API in Studio, Team Createund Team-Test aufrufen, aber die Verbote werden nicht auf Produktionsservern angewendet. Diese Funktionsaufruf wird nur versuchen, Anfragen für das Bannen auf Produktionsspielservern und nicht in Studio-Test zu überprüfen.

Diese API verwendet die Benutzer-Einschränkungen Open Cloud-API. Sie können diese APIs verwenden, um Ihre Verbote in Drittsoftware-Anwendungen zu verwalten.

Parameter

config: Dictionary

<tbody>
<tr>
<td><code>Benutzer-IDs</code></td>
<td>array</td>
<td>UserIDs in die Erlebnis(en) zu erlauben. Die maximale Größe beträgt <code>50</code> .</td>
</tr>
<tr>
<td><code>ApplyToUniverse anwenden</code></td>
<td>boolean</td>
<td>Verbreitet den Unban auf alle Orte in diesem Universum.</td>
</tr>
</tbody>
NameTypBeschreibung

Rückgaben

void

Code-Beispiele

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

Ereignisse

PlayerAdded

Das Ereignis PlayerAdded wird ausgelöst, wenn ein Spieler das Spiel betritt. Dies wird verwendet, um ein Ereignis abzufeuern, wenn ein Spieler einem Spiel beitritt, z. B. das Laden der gespeicherten GlobalDataStore -Daten des Spieler:in.

Dies kann neben dem Players.PlayerRemoving -Ereignis verwendet werden, das abgefeuert wird, wenn ein Spieler das Spiel verlassen möchte. Zum Instanz, wenn Sie eine Nachricht drucken möchten, wenn ein neuer Spieler dem Spiel beitritt oder es verlässt:


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)

Wenn Sie verfolgen möchten, wann ein Charakter eines Spieler:inhinzugefügt oder entfernt wird, wie z. B. wenn ein Spieler respawns oder stirbt, können Sie die Funktionen Player.CharacterAdded und Player.CharacterRemoving verwenden.

Beachten Sie, dass dieses Ereignis im Spiel -Modus nicht wie erwartet funktioniert, da der Spieler vor Skripts geschaffen wird, die sich mit PlayerAdded verbinden. Um diesen Fall zu behandeln, sowie Fälle, in denen der Skript nach dem Betreten des Spiels hinzugefügt wird, erstellen Sie eine onPlayerAdded() -Funktion, die Sie aufrufen können, um die Eintrittsweise eines Spieler:inzu behandeln.

Parameter

player: Player

Eine Instanz des Spielers, der dem Spiel beigetreten ist.


Code-Beispiele

Players.PlayerAdded

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

PlayerMembershipChanged

Dieses Ereignis wird ausgelöst, wenn der Spielserver erkennt, dass die Mitgliedschaft eines Spieler:ingeändert wurde. Beachten Sie jedoch, dass der Server nur versucht, die Mitgliedschaft nach dem Schließen des Premium-Modals zu überprüfen und zu aktualisieren. Daher müssen Sie für Fälle, in denen der Benutzer Premium außerhalb des Spiels

Um mehr darüber zu erfahren, wie und mit dem Engagement-basierten Zahlungssystem zu monetarisieren, siehe Engagement-basierte Zahlungen.

Siehe auch:

Parameter

player: Player

Code-Beispiele

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

Das PlayerRemoving-Ereignis feuert direkt vor einem Player das Spiel verlässt. Dieses Ereignis feuert vor ChildRemoved auf Players und verhält sich etwas ähn

Dies kann neben dem Player.PlayerAdded -Ereignis verwendet werden, das jedes Mal ausgeführt wird, wenn ein Spieler dem Spiel beitritt oder verlässt. Zum Instanz, um eine Nachricht jedes Mal zu drucken, wenn ein neuer Spieler beitritt oder das Spiel verlässt:


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)

Wenn Sie verfolgen möchten, wann ein Charakter eines Spieler:inhinzugefügt oder entfernt wird, wie z. B. wenn ein Spieler respawns oder stirbt, können Sie die Funktionen Player.CharacterAdded und Player.CharacterRemoving verwenden.

Parameter

player: Player

Eine Instanz des Spielers, der das Spiel verlässt.


Code-Beispiele

Players.PlayerRemoving

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

UserSubscriptionStatusChanged

Dieses Ereignis wird ausgelöst, wenn der Spielserver erkennt, dass der Status des Benutzers für einen bestimmten Benutzerstatus geändert sich. Beachten Sie, dass der Server nur versucht, den Status nach dem Schließen des Abonnement-Kauf-Modals zu überprüfen und zu aktualisieren. Um Fälle zu berücksichtigen, in denen der Benutzer den Ab

Beachten Sie, dass nur Server-Skripte dieses Ereignis erhalten.

Parameter

user: Player

Benutzer, dessen Abonnement status geändert wurde.

subscriptionId: string

Die ID des Abonnements mit einem Statuswechsel.