DataModel

Veraltete anzeigen

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

Nicht erstellbar

Die Datenmodell (gewöhnlich als game nach der globalen Variable, die darauf zugreift) ist die Wurzel der Roblox-Eltern- und Kinderserie. Seine direkten Kinder sind Dienste, wie Workspace und 2>Class.Lighting2>, die als grundlegende Komponenten eines Roblox-Spiels agieren.

Code-Beispiele

GetService()

local Workspace = game:GetService("Workspace")
local Lighting = game:GetService("Lighting")
-- Examples of modifying properties of these services
Workspace.Gravity = 20
Lighting.ClockTime = 4

Zusammenfassung

Eigenschaften

  • Schreibgeschützt
    Nicht repliziert
    Parallel lesen

    Beschreibt die ID des Benutzers oder der Gruppe, die den Ort besitzt.

  • Schreibgeschützt
    Nicht repliziert
    Parallel lesen

    Beschreibt die Enum.CreatorType des Ortes, ob der Ort von einem Benutzer oder einer Gruppe besessen ist.

  • Schreibgeschützt
    Nicht repliziert
    Parallel lesen

    Beschreibt die ID der Erfahrung, zu der der Ort, auf dem der Server läuft, gehört.

  • Schreibgeschützt
    Nicht repliziert
    Parallel lesen
    Veraltet

    Funktioniert nicht. Hat historisch beschrieben, dass die Enum.Genre des Ortes auf der Roblox-Website als festgelegt eingestellt.

  • Schreibgeschützt
    Nicht repliziert
    Parallel lesen

    Eine eindeutige Kennung für den laufenden Spielserver-Instanz.

  • Schreibgeschützt
    Nicht repliziert
    Parallel lesen

    Beschreibt die ID des auf dem Server ausgeführten Ortes.

  • Schreibgeschützt
    Nicht repliziert
    Parallel lesen

    Beschreibt die Version des Ortes, auf dem der Server ausgeführt wird.

  • Schreibgeschützt
    Nicht repliziert
    Parallel lesen

    Beschreibt die private Server-ID des Servers, wenn der Server ein privater Server ist oder ein reserved server .

  • Schreibgeschützt
    Nicht repliziert
    Parallel lesen

    Beschreibt die UserId des Player, der den privaten Server besitzt, wenn der Server privater Serverist.

  • Schreibgeschützt
    Nicht repliziert
    Parallel lesen

    Eine Verweisung auf den Workspace Dienst.

Methoden

  • BindToClose(function : function):void

    Bindet eine Funktion, die vor dem Server-Shutdown aufgerufen werden soll.

  • Plugin-Sicherheit

    Kehre eine Tabelle zurück, die grundlegende Informationen über die Jobs zurückgibt, die von der Aufgabenplaner-Task durchgeführt werden.

  • GetObjects(url : ContentId):Instances
    Plugin-Sicherheit
    Veraltet

    Gibt eine Liste von Instances mit der mit der angegebenen Inhalts-URL verbundenen Arrays zurück.

  • Kehrt wahr zurück, wenn der Client das Spiel zum ersten Mal geladen hat.

  • SetPlaceId(placeId : number):void
    Plugin-Sicherheit

    Setzt die DataModel.PlaceId der aktuellen Spielinstanz auf den angegebenen placeId.

  • SetUniverseId(universeId : number):void
    Plugin-Sicherheit

    Setzt die DataModel.GameId der aktuellen Spielinstanz auf die angegebene universeId.

Methoden von ServiceProvider übernommen
  • Parallel schreiben

    Gibt den angegebenen Namen zurück, wenn er bereits erstellt wurde, Fehler für einen ungültigen Namen.

  • Gibt den Dienst mit dem angeforderten Klassen-Namen zurück, der ihn erstellt, wenn er nicht existiert.

Ereignisse

Ereignisse von ServiceProvider übernommen

Eigenschaften

CreatorId

Schreibgeschützt
Nicht repliziert
Parallel lesen

Dieses Eigenschaft beschreibt die ID des Benutzers oder der Gruppe, die den Ort besitzt. Wenn die Eigenschaft DataModel.CreatorType ist, wird CreatorId der Class.Player.UserId des Platzes's Eigentümersein. Wenn die Eigenschaft Player.UserId ist, wird CreatorId die

Code-Beispiele

Detect when the place owner joins the game

local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
if game.CreatorType == Enum.CreatorType.User then
if player.UserId == game.CreatorId then
print("The place owner has joined the game!")
end
elseif game.CreatorType == Enum.CreatorType.Group then
if player:IsInGroup(game.CreatorId) then
print("A member of the group that owns the place has joined the game!")
end
end
end)

CreatorType

Schreibgeschützt
Nicht repliziert
Parallel lesen

Dieses Eigenschaft beschreibt die Enum.CreatorType des Ortes, ob der Ort von einem Benutzer oder einer Gruppe besessen wird.

Wenn der Enum.CreatorType der Eigenschaft Class.Player.UserId|userId der Konto, das das Spiel besitzt, beschreibt die Eigenschaft DataModel.CreatorId die Gruppe, die den Spielbesitzern zuordnet. Wenn der CreatorType 2>Group'2> ist, wird die Gruppen-ID beschrieben.

Code-Beispiele

Detect when the place owner joins the game

local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
if game.CreatorType == Enum.CreatorType.User then
if player.UserId == game.CreatorId then
print("The place owner has joined the game!")
end
elseif game.CreatorType == Enum.CreatorType.Group then
if player:IsInGroup(game.CreatorId) then
print("A member of the group that owns the place has joined the game!")
end
end
end)

GameId

Schreibgeschützt
Nicht repliziert
Parallel lesen

Dieses Eigenschaft beschreibt die ID des Erlebnisses, zu dem der Ort, auf dem der Server läuft, gehört.

Diese ID kann in der oberen rechten Ecke des Asset-Managers in Roblox Studio gefunden werden. Wenn Sie Roblox Studio verwenden, wenn der Ort nicht veröffentlicht wurde, dann wird die GameId mit dem verwendeten Vorlage übereinstimmen.

Siehe auch:

  • DataModel.PlaceId , die die ID des Ortes beschreibt, der auf dem Server ausgeführt wird
  • DataModel.JobId , die eine eindeutige Kennung für die Server-Spielinstanz ist, die ausgeführt wird
  • TeleportService , der ein Service ist, der Players zwischen Spielen transportieren kann
Schreibgeschützt
Nicht repliziert
Parallel lesen

Diese Eigenschaft ist kaputt und sollte nicht verwendet werden.

Diese Eigenschaft beschrieb historisch die Enum.Genre des Ortes als auf der Roblox-Website festgelegt.

Diese Eigenschaften, zusammen mit DataModel.GearGenreSetting , funktioniert nicht mehr richtig, da Genres, die auf der Roblox-Website vorhanden sind, die nicht in der Enum.Genre -Liste reflektiert werden. Ergebniskann das Versuchen, diese Eigenschaft zu lesen, einen Fehler anzeigen.

JobId

Schreibgeschützt
Nicht repliziert
Parallel lesen

Diese Eigenschaft ist eine eindeutige Kennung für den laufenden Spielserver-Instanz. Es ist ein universell einzigartiger Identifikator (UUID), was bedeutet, dass keine zwei Server, von der Vergangenheit oder der Gegenwart, jemals die gleiche ID haben.

Standard für eine leere Zeichenkette in Studio.

Siehe auch

PlaceId

Schreibgeschützt
Nicht repliziert
Parallel lesen

Dieses Eigenschaft beschreibt die ID des Ortes, der auf dem Server ausgeführt wird.

Wenn der Ort in Roblox veröffentlicht wurde, kann diese ID im Asset-Manager von Studio durch Klicken mit der rechten Maustaste auf den Ort innerhalb der Orte-Ordner und Auswahl ID kopieren in Zwischenablage gefunden werden.

Wenn der Ort nicht in Roblox veröffentlicht wurde, wird diese ID mit dem verwendeten Vorlage übereinstimmen.

Siehe auch

  • DataModel.GameId , die die ID der Erfahrung beschreibt, zu der der aktuelle Ort gehört
  • DataModel.JobId , die eine eindeutige Kennung für die Server-Spielinstanz ist, die ausgeführt wird
  • TeleportService , der ein Service ist, der verwendet werden kann, um Players zwischen Orten zu transportieren

PlaceVersion

Schreibgeschützt
Nicht repliziert
Parallel lesen

Dieses Eigenschaft beschreibt die Version des Ortes, auf dem der Server ausgeführt wird.

Diese Versionennummer entspricht der Versionennummer, die unter der Versionsgeschichte -Sektion der Einstellungen des Ortes angezeigt wird. Es ist nicht die aktuelle Version des Roblox-Clients. Diese Eigenschaft ist 0 für alle nicht veröffentlichten Erlebnisse.

Wenn eine Server-Instanz für einen Ort erstellt wird, verwendet sie die aktuelle Version des Ortes. Wenn der Ort später aktualisiert wird, während dieses Servers läuft, wird der Server in seiner aktuellen Version bleiben.

Dieses Eigenschaft kann verwendet werden, um ein ScreenGui anzuzeigen, das die aktuelle Version des Spiels an Players anzeigt, um mit dem Debugging zu helfen.

Code-Beispiele

Server version number GUI

local StarterGui = game:GetService("StarterGui")
local versionGui = Instance.new("ScreenGui")
local textLabel = Instance.new("TextLabel")
textLabel.Position = UDim2.new(1, -10, 1, 0)
textLabel.AnchorPoint = Vector2.new(1, 1)
textLabel.Size = UDim2.new(0, 150, 0, 40)
textLabel.BackgroundTransparency = 1
textLabel.TextColor3 = Color3.new(1, 1, 1)
textLabel.TextStrokeTransparency = 0
textLabel.TextXAlignment = Enum.TextXAlignment.Right
textLabel.TextScaled = true
local placeVersion = game.PlaceVersion
textLabel.Text = string.format("Server version: %s", placeVersion)
textLabel.Parent = versionGui
versionGui.Parent = StarterGui

PrivateServerId

Schreibgeschützt
Nicht repliziert
Parallel lesen

Diese Eigenschaft beschreibt die private Server-ID des Servers, wenn der Server ein privater Server ist.

Wenn der Server kein privater Server ist, dann ist diese Eigenschaft eine leere String.

Private Server

Private Server beziehen sich auf das gefolgte Profile:

PrivateServerId vs JobId

Die PrivateServerId eines Servers ist von der DataModel.JobId . Die JobId ist die eindeutige Kennung der aktuellen Server-Instanz.

Private Server (private oder reservierte Server) können mehrere Server-Instanzen haben, die mit ihnen im Laufe der Zeit verbunden sind. Dies ist, da ein nur ein Server-Instanz gleichzeitig für einen privaten Server ausgeführt werden kann, aber neue Server-Instanzen öffnen und schließen, wenn Spieler dem Spiel beitreten und verlassen. Zum Beispiel ist keine Server-Instanz ausgewählt, wenn niemand auf dem Server spielt. Die PrivateServerId ist für jeden dieser Server ein

Siehe auch:

Code-Beispiele

Detecting Private Servers

local function getServerType()
if game.PrivateServerId ~= "" then
if game.PrivateServerOwnerId ~= 0 then
return "VIPServer"
else
return "ReservedServer"
end
else
return "StandardServer"
end
end
print(getServerType())

PrivateServerOwnerId

Schreibgeschützt
Nicht repliziert
Parallel lesen

Dieses Eigenschaftsbeschreibung des UserId des Player , der den privaten Server besitzt, wenn der Server privater Serverist.

Wenn der Server ein Standard- oder Reserver-Server ist, wird diese Eigenschaft auf 0 gesetzt.

Diese Eigenschaft könnte verwendet werden, um zu identifizieren, ob ein Player der Besitzer des privaten Servers ist, z. B.:


local Players = game:GetService("Players")
-- ist das ein privater server?
if game.PrivateServerId ~= "" and game.PrivateServerOwnerId ~= 0 then
-- neue spieler hinzugefügt
Players.PlayerAdded:Connect(function(player)
-- überprüfen, ob der spieler der eigentümerist
if player.UserId == game.PrivateServerOwnerId then
print("The private server owner has joined the game")
end
end)
end

Siehe auch:

Code-Beispiele

Detecting Private Servers

local function getServerType()
if game.PrivateServerId ~= "" then
if game.PrivateServerOwnerId ~= 0 then
return "VIPServer"
else
return "ReservedServer"
end
else
return "StandardServer"
end
end
print(getServerType())

Workspace

Schreibgeschützt
Nicht repliziert
Parallel lesen

Die Workspace-Eigenschaft ist eine Verweisung auf den Workspace -Dienst.

Diese Eigenschaft wird immer auf das Workspace zeigen und wird nie Null sein.

Der Workspace kann auch über die globale Variable workspace und die Funktion ServiceProvider:GetService() aufgerufen werden. Zum Beispiel:


workspace -- eine globale variable
game.Workspace -- eine Eigenschaft des DataModel (Spiel)
game:GetService("Workspace") -- workspace is a service

Methoden

BindToClose

void

Bindet eine Funktion, die vor dem Server-Shutdown aufgerufen werden soll. Wenn die gebundene Funktion ein Parameter annehmen kann, übermittelt sie Enum.CloseReason, der den Grund für den Server-Shutdown angibt.

Sie können mehrere Funktionen binden, indem Sie BindToClose() mehrmals aufrufen. Bound-Funktionen werden parallel aufgerufen und laufen gleichzeitig.

Der Erlebnisse-Server wartet 30 Sekunden, bevor alle gebundenen Funktionen aufhören zu laufen, bevor er heruntergefahren wird. Nach 30 Sekunden schaltet der Server auch ab, wenn die Funktionen immer noch ausgeführt werden.

Um zu überprüfen, dass die aktuelle Sitzung nicht in Roblox Studio ist, verwenden Sie RunService:IsStudio() . Dies verhindert, dass gebundene Funktionen in offline-Test-Sitzungen abgeschlossen werden.

Wenn Sie DataStoreService verwenden, sollten Sie auch BindToClose verwenden, um eine Funktion zu binden, die alle nicht gespeicherten Daten in DataStores speichert. Dies verhindert die Datenverlust, wenn der Server unerwartet heruntergefahren wird.

Siehe auch:

Parameter

function: function

Eine Funktion, die vor dem Erlebnissерver-Shutdown aufgerufen wird. Wenn die gebundene Funktion ein Parameter annehmen kann, übermittelt sie Enum.CloseReason , der den Grund für den Server-Shutdown angibt.


Rückgaben

void

Code-Beispiele

Saving player data before shutting down

local DataStoreService = game:GetService("DataStoreService")
local RunService = game:GetService("RunService")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
local allPlayerSessionDataCache = {}
local function savePlayerDataAsync(userId, data)
return playerDataStore:UpdateAsync(userId, function(oldData)
return data
end)
end
local function onServerShutdown(closeReason)
if RunService:IsStudio() then
-- Avoid writing studio data to production and stalling test session closing
return
end
-- Reference for yielding and resuming later
local mainThread = coroutine.running()
-- Counts up for each new thread, down when the thread finishes. When 0 is reached,
-- the individual thread knows it's the last thread to finish and should resume the main thread
local numThreadsRunning = 0
-- Calling this function later starts on a new thread because of coroutine.wrap
local startSaveThread = coroutine.wrap(function(userId, sessionData)
-- Perform the save operation
local success, result = pcall(savePlayerDataAsync, userId, sessionData)
if not success then
-- Could implement a retry
warn(string.format("Failed to save %d's data: %s", userId, result))
end
-- Thread finished, decrement counter
numThreadsRunning -= 1
if numThreadsRunning == 0 then
-- This was the last thread to finish, resume main thread
coroutine.resume(mainThread)
end
end)
-- This assumes playerData gets cleared from the data table during a final save on PlayerRemoving,
-- so this is iterating over all the data of players still in the game that hasn't been saved
for userId, sessionData in pairs(allPlayerSessionDataCache) do
numThreadsRunning += 1
-- This loop finishes running and counting numThreadsRunning before any of
-- the save threads start because coroutine.wrap has built-in deferral on start
startSaveThread(userId, sessionData)
end
if numThreadsRunning > 0 then
-- Stall shutdown until save threads finish. Resumed by the last save thread when it finishes
coroutine.yield()
end
end
game:BindToClose(onServerShutdown)
Binding to and Handling Game Shutdown

game:BindToClose(function(closeReason)
print(`Closing with reason {closeReason}`)
task.wait(3)
print("Done")
end)

GetJobsInfo

Plugin-Sicherheit

Kehre eine Tabelle zurück, die grundlegende Informationen über die Jobs zurückgibt, die von der Aufgabenplaner-Task durchgeführt werden.

In der Computierung ist ein Aufgabenplaner ein System, das die entsprechenden Zeitpläne für die Ausführung von Schlüsselaufgaben festlegt.

Sie können auch live task scheduler statistiken in dem task scheduled window in Roblox Studiofinden.

Die erste Eintrag in der Tabelle, die zurückgegeben wird, ist ein Referenzbuch mit den verfügbaren Statistiken (oder Üerschriften). Es ist in der folgenden格式:


{
["name"] = "name",
["averageDutyCycle"] = "averageDutyCycle",
["averageStepsPerSecond"] = "averageStepsPerSecond",
["averageStepTime"] = "averageStepTime",
["averageError"] = "averageError",
["isRunning"] = "isRunning",
}

Die folgenden Einreichungen in der Tabelle, die zurückgegeben werden, sind Diktionen, die die oben genannten Statistiken für Jobs enthalten, die von der Aufgabenplaner ausgeführt werden. Zum Beispiel:


{
["name"] = "Heartbeat",
["averageDutyCycle"] = 0,
["averageStepsPerSecond"] = 0,
["averageStepTime"] = 0,
["averageError"] = 0,
["isRunning"] = false,
}

Siehe auch:


Rückgaben

Eine Tabelle, die Informationen über die Jobs enthält, die von der Aufgabenplaner erledigt werden, siehe oben für das Format.

Code-Beispiele

Getting Jobs Info

local jobInfo = game:GetJobsInfo()
local jobTitles = jobInfo[1]
table.remove(jobInfo, 1)
local divider = string.rep("-", 120)
print(divider)
warn("JOB INFO:")
print(divider)
for _, job in pairs(jobInfo) do
for jobIndex, jobValue in pairs(job) do
local jobTitle = jobTitles[jobIndex]
warn(jobTitle, "=", jobValue)
end
print(divider)
end

GetObjects

Instances
Plugin-Sicherheit

Diese Methode gibt ein Array von Instances mit der mit der angegebenen Inhalts-URL verbundenen zurück. Es kann verwendet werden, um Inhalte aus der Roblox-Bibliothek einzufügen. Es ist nicht möglich, Inhalte mit diesem Methode einzufügen, da sie keine Sounds mit ihnen haben und nur eine Inhalts-URL haben.

Anders als InsertService:LoadAsset() , DataModel:GetObjects() erfordert keine Asset, die "vertrauenswürdig" ist, was bedeutet, dass ein Asset nicht vom anmeldebenutzereigen sein muss, oder von Roblox erstellt werden muss, um eingefügt zu werden. Wenn das Asset jedoch nicht vom anmeldebenutzer erworben wurde, muss es frei verfügbar sein.

Aufgrund des Sicherheitskontextes dieser Funktion kann sie nur von Plugins oder der Kommandoleiste verwendet werden. Für eine alternative, die in Scripts und LocalScripts verwendet werden kann, siehe InsertService:LoadAsset().

Parameter

url: ContentId

Die angegebene Content-URL.


Rückgaben

Instances

Ein Array von Instances mit der Inhalts-URL.

Code-Beispiele

View a plugin's source code

local Selection = game:GetService("Selection")
local WEB_URL = "plugin URL here"
local function downloadPlugin(webURL)
-- get the content URL
local contentID = string.match(webURL, "%d+")
local contentURL = "rbxassetid://" .. contentID
-- download the objects
local objects = game:GetObjects(contentURL)
-- decide where to parent them
local selection = Selection:Get()
local parent = #selection == 1 and selection[1] or workspace
-- parent the objects
for _, object in pairs(objects) do
object.Parent = parent
end
end
downloadPlugin(WEB_URL)
Batch convert decal IDs

local IMAGES = {
-- Insert Decal web URLs in an array here (as strings)
}
-- open the dictionary
local outputString = "textures = {"
-- utility function to add a new entry to the dictionary (as a string)
local function addEntryToDictionary(original, new)
outputString = outputString
.. "\n" -- new line
.. " " -- indent
.. '["'
.. original
.. '"]' -- key
.. ' = "'
.. new
.. '",' -- value
end
print("Starting conversion")
for _, webURL in pairs(IMAGES) do
-- get the content URL
local contentID = string.match(webURL, "%d+")
local contentURL = "rbxassetid://" .. contentID
local success, result = pcall(function()
local objects = game:GetObjects(contentURL)
return objects[1].Texture
end)
if success then
addEntryToDictionary(webURL, result)
else
addEntryToDictionary(webURL, "Error downloading decal")
end
task.wait()
end
print("Conversion complete")
-- close the dictionary
outputString = outputString .. "\n}"
-- print the dictionary
print(outputString)

IsLoaded

Diese Funktion kehrt wahr zurück, wenn der Client das Spiel zum ersten Mal geladen hat.

Wenn alle ursprünglichen Instances im Spiel fertiggestellt sind, hat diese Funktion wahrheits wie zurückgegeben.

Es sei denn, sie sind mit ReplicatedFirst verbunden, LocalScripts wird nicht ausgeführt, während das Spiel nicht geladen ist. Das folgende Snippet, ausgeführt von einem LocalScript in 1>Class.ReplicatedFirst1>, wird ausgeführt, bis das Spiel geladen ist:


if not game:IsLoaded() then
game.Loaded:Wait()
end

Siehe auch:


Rückgaben

Ob der Client das Spiel zum ersten Mal geladen hat.

Code-Beispiele

Custom Loading Screen

local Players = game:GetService("Players")
local ReplicatedFirst = game:GetService("ReplicatedFirst")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
-- Create a basic loading screen
local screenGui = Instance.new("ScreenGui")
screenGui.IgnoreGuiInset = true
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.BackgroundColor3 = Color3.fromRGB(0, 20, 40)
textLabel.Font = Enum.Font.GothamMedium
textLabel.TextColor3 = Color3.new(0.8, 0.8, 0.8)
textLabel.Text = "Loading"
textLabel.TextSize = 28
textLabel.Parent = screenGui
-- Parent entire screen GUI to player GUI
screenGui.Parent = playerGui
-- Remove the default loading screen
ReplicatedFirst:RemoveDefaultLoadingScreen()
--wait(3) -- Optionally force screen to appear for a minimum number of seconds
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()

SetPlaceId

void
Plugin-Sicherheit

Diese Funktion setzt die DataModel.PlaceId der Spielinstanz auf den angegebenen PlatzId fest.

Um Zugriff auf DataModel.PlaceId zu erhalten, wenn der Ort nicht veröffentlicht wird, müssen beide DataModel.GameId und DataStoreService Zugriff auf den Z


local DataStoreService = game:GetService("DataStoreService")
-- Zugriff auf Datenspeicher "Daten" durch Festlegung von PlaceId auf placeId und GameId auf universeId.
game:SetPlaceId(placeId)
game:SetUniverseId(universeId)
local dataStore = DataStoreService:GetDataStore("Data")

Parameter

placeId: number

Die ID, um das DataModel.PlaceId zu setzen.


Rückgaben

void

SetUniverseId

void
Plugin-Sicherheit

Diese Funktion setzt die DataModel.GameId der aktuellen Spielinstanz auf die angegebene universeId fest. Dies ist nützlich, wenn Sie lokale .rbxl-Dateien testen, die nicht veröffentlicht wurden, um Roblox.

Um auf einen nicht veröffentlichten Ort auf den Zugriff auf den DataStoreService zuzugreifen, müssen sowohl Class.DataModel:SetUniverseId() als auch Class.DataModel:SetPlaceId() festlegensein.

Parameter

universeId: number

Die ID, um das DataModel.GameId zu setzen.


Rückgaben

void

Ereignisse

GraphicsQualityChangeRequest

Feuert, wenn der Benutzer eine Erhöhung oder einen Rückgang der Grafikqualität mit den Hotkeys anordnet.

Dieses Ereignis wird unter den folgenden Bedingungen ausgelöst:

  • Wenn der Benutzer auf F10 drückt, wird dieses Ereignis mit einem betterQuality -Argument von true ausgelöst.
  • Wenn der Benutzer ShiftF10 drückt, wird dieses Ereignis mit einem betterQuality-Argument von 0> false0> ausgelöst.

Dieses Ereignis bietet nicht die aktuelle Grafikqualitätsstufe oder bedeckt nicht alle Updates zur Grafikqualität. Zum Beispiel werden Änderungen, die im Kern-GUI-Entkommen-Menü vorgenommen wurden, nicht registriert.

Du kannst die Enum.SavedQualitySetting eines Benutzers mit dem folgenden Snippet abrufen:


UserSettings():GetService("UserGameSettings").SavedQualityLevel

Wenn die Grafikseinstellungen des Benutzers auf automatisch eingestellt sind, dann ist die Enum.SavedQualitySetting der Automatic . Es gibt derzeit keine Möglichkeit für Entwickler, die aktuelle Grafikqualitätstufe eines Benutzers zuverlässig zu erhalten.

Parameter

betterQuality: bool

Ob der Benutzer eine Erhöhung ( wahr ) oder eine Verringerung ( falsch ) in der Grafikqualität angegeben hat.


Code-Beispiele

Handling User Changes in Graphics Quality

game.GraphicsQualityChangeRequest:Connect(function(betterQuality)
if betterQuality then
print("The user has requested an increase in graphics quality!")
else
print("The user has requested a decrease in graphics quality!")
end
end)

Loaded

Dieses Ereignis wird auf dem Client ausgelöst, wenn das Spiel zum ersten Mal geladen wird.

Das Loaded-Ereignis wird ausgelöst, wenn alle ursprünglichen Instances im Spiel fertiggestellt haben, die Replikation auf den Client abgeschlossen haben.

Es sei denn, sie sind mit ReplicatedFirst verbunden, LocalScripts wird nicht ausgeführt, bevor dieses Ereignis feuert. Das folgende Snippet, das von einem LocalScript in 1>Class.ReplicatedFirst1> ausgeführt wird, wird bis zum Laden des Spiels ausgeführt:


if not game:IsLoaded() then
game.Loaded:Wait()
end

Siehe auch: