DataModel

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Tidak Dapat Dibuat

Model data (biasanya dikenal sebagai setelah variabel global yang digunakan untuk mengaksesnya) adalah akar dari hierarki orangtua-anak Roblox.Anak-anak langsungnya adalah layanan, seperti Workspace dan Lighting , yang bertindak sebagai komponen dasar dari gameRoblox.

Contoh Kode

Demonstrates using game, the root instance of DataModel, to get services such as Workspace and Lighting.

GetService()

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

Rangkuman

Properti

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Menggambarkan ID pengguna atau kelompok yang memiliki tempat.

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Menggambarkan Enum.CreatorType tempat, apakah tempat itu dimiliki oleh pengguna atau grup.

  • Hanya Baca
    Tidak Direplikasi
    Keamanan Skrip Roblox
    Baca Paralel
  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Menggambarkan ID pengalaman yang tempat berjalan di server milik.

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel
    Tidak digunakan lagi

    Tidak berfungsi. Secara historis menggambarkan Enum.Genre tempat sebagai yang ditetapkan di situs web Roblox.

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Pengenal unik untuk instans server permainan yang berjalan.

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Mewakili bagaimana pemain di server ditangani oleh pencocokan.

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Menggambarkan ID tempat yang berjalan di server.

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Menggambarkan versi tempat di mana server berjalan.

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Menggambarkan ID server pribadi dari server, jika server adalah server pribadi atau reserved server .

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Menggambarkan UserId dari Player yang memiliki server pribadi jika server privat.

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Referensi ke layanan Workspace .

Metode

  • BindToClose(function : function):()

    Mengikat fungsi untuk dipanggil sebelum server dimatikan.

  • Keamanan Plugin

    Kembalikan tabel yang berisi informasi dasar tentang pekerjaan yang dilakukan oleh jadwal tugas.

  • GetObjects(url : ContentId):Instances
    Keamanan Plugin
    Tidak digunakan lagi

    Kembalikan array dari Instances yang terkait dengan URL konten yang diberikan.

  • Kembali benar jika klien telah selesai memuat permainan untuk pertama kalinya.

  • SetPlaceId(placeId : number):()
    Keamanan Plugin

    Tetapkan DataModel.PlaceId dari instansi permainan saat ini ke placeId yang diberikan.

  • SetUniverseId(universeId : number):()
    Keamanan Plugin

    Atur DataModel.GameId dari instansi permainan saat ini ke universeId yang diberikan.

Metode diwarisi dari ServiceProvider
  • Tulis Paralel

    Kembalikan layanan yang ditentukan oleh kelas yang diberikan jika sudah dibuat, kesalahan untuk nama yang tidak valid.

  • Kembalikan layanan dengan nama kelas yang diminta, membuatnya jika tidak ada.

Acara

Acara diwarisi dari ServiceProvider

Properti

CreatorId

Hanya Baca
Tidak Direplikasi
Baca Paralel

Properti ini menggambarkan ID pengguna atau kelompok yang memiliki tempat.Jika properti DataModel.CreatorType adalah 'Pengguna' maka CreatorId akan menjadi Player.UserId pemilik tempat.Jika DataModel.CreatorType adalah 'Kelompok' maka CreatorId akan menjadi ID kelompok yang memiliki tempat itu.

Contoh Kode

This code sample will print an output when the user that owns the game, or a member of the group that owns the game joins the server.

To run this script, place it inside a Script in ServerScriptService

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

Hanya Baca
Tidak Direplikasi
Baca Paralel

Properti ini menggambarkan Enum.CreatorType tempat, apakah tempat itu dimiliki oleh pengguna atau grup.

Jika Enum.CreatorType adalah 'Pengguna' , maka properti DataModel.CreatorId akan menggambarkan UserId akun yang memiliki game.Jika CreatorType adalah 'Grup' , maka akan menjelaskan ID grup.

Contoh Kode

This code sample will print an output when the user that owns the game, or a member of the group that owns the game joins the server.

To run this script, place it inside a Script in ServerScriptService

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)

Environment

Hanya Baca
Tidak Direplikasi
Keamanan Skrip Roblox
Baca Paralel

GameId

Hanya Baca
Tidak Direplikasi
Baca Paralel

Properti ini menggambarkan ID pengalaman yang tempat berjalan di server milik.

Lihat Juga

  • DataModel.PlaceId , yang menggambarkan ID tempat yang dijalankan di server
  • DataModel.JobId , yang merupakan identifikasi unik untuk instans permainan server yang berjalan
  • TeleportService , yang merupakan layanan yang dapat digunakan untuk mengangkut Players di antara game
Hanya Baca
Tidak Direplikasi
Baca Paralel

Properti ini rusak dan tidak boleh digunakan.

Properti ini secara historis menggambarkan Enum.Genre tempat sebagai yang ditetapkan di situs web Roblox.

Properti ini, bersama dengan DataModel.GearGenreSetting , tidak lagi berfungsi dengan benar karena genre yang ada di situs Roblox yang tidak tercermin dalam Enum.Genre enum.Sebagai hasilnya, mencoba membaca properti ini dapat menyebabkan kesalahan.

JobId

Hanya Baca
Tidak Direplikasi
Baca Paralel

Properti ini adalah identifikator unik untuk kejadianserver permainan yang berjalan.Ini adalah identifikasi unik secara universal (UUID), artinya tidak ada dua server, masa lalu atau sekarang, yang akan pernah memiliki ID yang sama.

Biasanya ke string kosong di Studio.

Lihat Juga

MatchmakingType

Hanya Baca
Tidak Direplikasi
Baca Paralel

Properti ini mewakili bagaimana pemain di server ditangani oleh pencocokan.Pemain dengan berbeda MatchmakingTypes tidak dapat berada di atau berteleportasi ke server yang sama.

Perhatikan bahwa properti ini hanya valid di server DataModel dan itu akan menjadi nilai Enum.MatchmakingType.Default untuk semua klien, jadi hanya merujukkan properti ini di dalam sisi server Script.

PlaceId

Hanya Baca
Tidak Direplikasi
Baca Paralel

Properti ini menggambarkan ID tempat yang berjalan di server.

Jika tempat tersebut belum dipublikasikan ke Roblox, ID ini akan sesuai dengan templat yang digunakan.

Lihat Juga

  • DataModel.GameId , yang menggambarkan ID pengalaman yang tempat saat ini terkait
  • DataModel.JobId , yang merupakan identifikasi unik untuk instans permainan server yang berjalan
  • TeleportService , yang merupakan layanan yang dapat digunakan untuk mengangkut Players antara tempat

PlaceVersion

Hanya Baca
Tidak Direplikasi
Baca Paralel

Properti ini menggambarkan versi tempat di mana server berjalan.

Angka versi ini sesuai dengan nomor versi yang ditampilkan di bawah bagian Histori Versi dari pengaturan tempat.Ini bukan versi saat ini dari klien Roblox.Properti ini adalah 0 untuk semua pengalaman yang belum dipublikasikan.

Ketika instansi server dibuat untuk tempat, ia menggunakan versi saat ini dari tempat itu.Jika tempat itu nanti diperbarui saat server ini berjalan, server akan tetap pada versi saat ini.

Properti ini dapat digunakan untuk menampilkan ScreenGui versi game saat ini ke Players untuk membantu debugging.

Contoh Kode

This code sample will place a simple GUI in the StarterGui showing the place version the server is running at.

To use this sample, place it inside a Script in ServerScriptService.

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

Hanya Baca
Tidak Direplikasi
Baca Paralel

Properti ini menjelaskan ID server pribadi dari server, jika server adalah server pribadi.

Jika server bukan server pribadi, maka properti ini akan menjadi string kosong.

Server pribadi

Server pribadi merujuk pada hal mengikuti:

PrivateServerId vs JobId

PrivateServerId dari server berbeda dari DataModel.JobId. The JobId adalah identifikator unik dari kejadianserver saat ini.

Server pribadi (server pribadi atau reservasi) dapat memiliki beberapa instans server yang terkait dengan mereka seiring waktu.Ini karena, meskipun hanya satu instansi server yang dapat berjalan sekaligus untuk server pribadi, instans server baru dapat dibuka dan ditutup saat pemain bergabung dan meninggalkan game.Sebagai contoh, tidak ada instansi server yang berjalan saat tidak ada yang bermain di server.PrivateServerId akan konsisten di semua instans server ini, dan DataModel.JobId akan unik untuk masing-masing.

Lihat juga:

Contoh Kode

DataModel.PrivateServerId and DataModel.PrivateServerOwnerId can be used to detect if the current server instance is a standard server, a VIP server or a reserved server.

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

Hanya Baca
Tidak Direplikasi
Baca Paralel

Properti ini menggambarkan UserId dari Player yang memiliki server pribadi jika server privat.

Jika server adalah server standar atau tersimpan maka properti ini akan ditetapkan ke 0.

Properti ini dapat digunakan untuk mengidentifikasi apakah Player adalah pemilik server pribadi, misalnya:


local Players = game:GetService("Players")
-- apakah ini server pribadi?
if game.PrivateServerId ~= "" and game.PrivateServerOwnerId ~= 0 then
-- dengarkan pemain baru yang ditambahkan
Players.PlayerAdded:Connect(function(player)
-- periksa apakah pemain adalah pemilik server
if player.UserId == game.PrivateServerOwnerId then
print("The private server owner has joined the game")
end
end)
end

Lihat juga:

Contoh Kode

DataModel.PrivateServerId and DataModel.PrivateServerOwnerId can be used to detect if the current server instance is a standard server, a VIP server or a reserved server.

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

Hanya Baca
Tidak Direplikasi
Baca Paralel

Properti ini adalah referensi ke layanan Workspace . Itu selalu menunjuk ke Workspace dan tidak akan pernah menjadi nil .

Metode

BindToClose

()

Mengikat fungsi untuk dipanggil sebelum server dimatikan.Jika fungsi terikat menerima parameter, ia mengirimkan Enum.CloseReason menyebutkan alasan penutupan server.

Anda dapat mengikat beberapa fungsi dengan memanggil BindToClose() berulang kali. Fungsi yang terikat dipanggil secara paralel dan dijalankan pada saat yang sama.

Server pengalaman menunggu 30 detik untuk semua fungsi terikat berhenti berjalan sebelum ditutup.Setelah 30 detik, server dimatikan bahkan jika fungsi masih berjalan.

Untuk memverifikasi bahwa sesi saat ini tidak ada di Roblox Studio, gunakan RunService:IsStudio() .Ini mencegah fungsi terikat menyelesaikan eksekusi mereka di sesi pengujian offline.

Ketika Anda menggunakan DataStoreService , Anda juga harus menggunakan BindToClose untuk mengikat fungsi yang menyimpan semua data yang belum disimpan ke DataStores .Ini mencegah kerusakan data jika server dimatikan secara tidak terduga.

Lihat juga:

Parameter

function: function

Fungsi yang dipanggil sebelum server pengalaman ditutup.Jika fungsi terikat menerima parameter, ia mengirimkan Enum.CloseReason menyebutkan alasan penutupan server.

Nilai Default: ""

Memberikan nilai

()

Contoh Kode

The following code sample is an example of how DataModel:BindToClose() can be used to save player data in the event of a server shutdown. In this example, player data is stored in a dictionary named playerData with UserIds as keys.

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)

The following example prints the close reason to the output. It prints Done after three seconds, and then allows Roblox to shut down the experience server.

The close reason matches one of the values in Enum.CloseReason.

Binding to and Handling Game Shutdown

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

GetJobsInfo

Keamanan Plugin

Kembalikan tabel yang berisi informasi dasar tentang pekerjaan yang dilakukan oleh jadwal tugas.

Dalam komputasi, penjadwal tugas adalah sistem yang bertanggung jawab untuk mengeksekusi tugas kunci pada interval yang tepat.

Anda juga dapat menemukan statistik penjadwal tugas langsung di jendela Jadwal Tugas di Roblox Studio.

Entri pertama di tabel yang dikembalikan adalah kamus referensi yang berisi statistik (atau judul) yang tersedia. Ini dalam format berikut:


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

Entri berikutnya di tabel yang dikembalikan adalah kamus yang berisi statistik di atas untuk pekerjaan yang dilakukan oleh penjadwal tugas. Misalnya:


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

Lihat juga:


Memberikan nilai

Meja yang berisi informasi tentang pekerjaan yang dilakukan oleh penjadwal tugas, lihat di atas untuk formatnya.

Contoh Kode

Here is an example of iterating over the job info.

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

Metode ini mengembalikan array Instances yang terkait dengan URL konten yang diberikan.Ini dapat digunakan untuk menyisipkan konten dari perpustakaan Roblox.Tidak mungkin untuk menyisipkan Sounds menggunakan metode ini karena mereka tidak memiliki Instance yang terkait dengan mereka dan hanya memiliki URL konten.

Tidak seperti InsertService:LoadAsset() , DataModel:GetObjects() tidak memerlukan aset untuk "dipercaya," yang berarti bahwa aset tidak perlu dimiliki oleh pengguna yang masuk, atau dibuat oleh Roblox, untuk dimasukkan.Namun, jika aset tidak dimiliki oleh pengguna yang masuk, itu harus tersedia secara gratis.

Karena konteks keamanan fungsi ini hanya dapat digunakan oleh plugin atau bilah perintah.Untuk alternatif yang dapat digunakan di Scripts dan LocalScripts , lihat InsertService:LoadAsset() .

Parameter

url: ContentId

URL konten yang diberikan.

Nilai Default: ""

Memberikan nilai

Instances

Sebuah array dari Instances terkait dengan URL konten.

Contoh Kode

If you want to view a plugin's source code without installing it, you can use DataModel:GetObjects() to download the plugin. The code sample below includes a function that will take a plugin's website URL and insert the plugin into the currently selected Instance or the Workspace.

Due to GetObjects' security context, this function can only be used in the command line or in a plugin.

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)

The content ID of a Decal on the Roblox website is associated with a Decal Instance rather than the actual content ID of the texture.

The code below, will use DataModel:GetObjects() to insert Decal objects into place and read their Decal.Texture property to obtain the image content IDs.

To use this code sample, enter the web URLs of the decals you'd like to convert into the array named IMAGES (as strings). A dictionary with the converted textures will be outputted.

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

Ketika semua awal Instances di dalam permainan telah selesai mereplikasi ke klien, fungsi ini akan kembali benar.

Kecuali mereka diparentkan ke ReplicatedFirst , LocalScripts tidak dijalankan sampai game dimuat.Potongan berikut, dijalankan dari LocalScript di ReplicatedFirst menghasilkan sampai permainan dimuat:


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

Lihat juga:


Memberikan nilai

Apakah klien telah selesai memuat permainan untuk pertama kalinya.

Contoh Kode

This sample demonstrates a custom loading screen with a basic TextLabel. The code should be placed in a LocalScript within ReplicatedFirst. To expand on this sample with loading screen animations, see the Custom Loading Screens article.

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

()
Keamanan Plugin

Fungsi ini menetapkan DataModel.PlaceId dari instansi permainan ke tempatId yang diberikan.

Mengatur kedua DataModel.PlaceId dan DataModel.GameId diperlukan untuk mengakses DataStoreService ketika tempat tidak dipublikasikan, misalnya file lokal .rbxl.Lihat di bawah ini untuk contoh.Perhatikan bahwa mendapatkan akses DataStoreService dari Studio memerlukan pengaturan Aktifkan Akses Studio ke Layanan API dari panel Keamanan di Pengaturan Permainan.


local DataStoreService = game:GetService("DataStoreService")
-- akses DataStore 'Data' dengan menetapkan PlaceId ke placeId dan GameId ke universeId.
game:SetPlaceId(placeId)
game:SetUniverseId(universeId)
local dataStore = DataStoreService:GetDataStore("Data")

Parameter

placeId: number

ID untuk mengatur DataModel.PlaceId untuk.

Nilai Default: ""

Memberikan nilai

()

SetUniverseId

()
Keamanan Plugin

Fungsi ini menetapkan DataModel.GameId dari instansi permainan saat ini ke universeId yang diberikan.Ini berguna saat menguji file lokal .rbxl yang belum dipublikasikan ke Roblox.

Untuk mengakses DataStoreService di tempat yang belum dipublikasikan, kedua DataModel:SetUniverseId() dan DataModel:SetPlaceId() harus diatur.

Parameter

universeId: number

ID untuk mengatur DataModel.GameId untuk.

Nilai Default: ""

Memberikan nilai

()

Acara

GraphicsQualityChangeRequest

Melepaskan api saat pengguna meminta peningkatan atau penurunan kualitas grafis menggunakan tombol pintas.

Acara ini terjadi di bawah kondisi berikut:

  • Jika pengguna menekan F10 , acara ini terbakar dengan argumen betterQuality dari true.
  • Jika pengguna menekan ShiftF10 , acara ini terbakar dengan argumen betterQuality``false .

Acara ini tidak menyediakan tingkat kualitas grafis saat ini atau menutupi semua pembaruan kualitas grafis.Sebagai contoh, perubahan yang dibuat di menu pelarian GUI inti tidak terdaftar.

Anda dapat memulihkan Enum.SavedQualitySetting pengguna menggunakan UserGameSettings dengan potongan berikut:


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

Jika pengaturan grafis pengguna diatur ke otomatis maka Enum.SavedQualitySetting akan menjadi Automatic .Tidak ada cara saat ini bagi pengembang untuk mendapatkan dengan andal tingkat kualitas grafis saat ini dari mesin pengguna.

Parameter

betterQuality: boolean

Apakah pengguna telah meminta peningkatan ( benar ) atau penurunan ( palsu ) dalam kualitas grafis.


Contoh Kode

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

Peristiwa ini terjadi pada klien saat semua awal Instances dalam permainan telah selesai mereplikasi ke klien.

Kecuali mereka diparentkan ke ReplicatedFirst , LocalScripts tidak dijalankan sampai game dimuat.Potongan berikut, dijalankan dari LocalScript di ReplicatedFirst menghasilkan sampai permainan dimuat:


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

Lihat juga: