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

Menunjukkan penggunaan game , instans akar dari DataModel , untuk mendapatkan layanan seperti Workspace dan Lighting .

Dapatkan Layanan()

local Workspace = game:GetService("Workspace")
local Lighting = game:GetService("Lighting")
-- Contoh modifikasi properti layanan ini
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 dan DataModel.PrivateServerOwnerId dapat digunakan untuk mendeteksi apakah instans server saat ini adalah server standar, server VIP atau server cadangan.

Mendeteksi Server Pribadi

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 dan DataModel.PrivateServerOwnerId dapat digunakan untuk mendeteksi apakah instans server saat ini adalah server standar, server VIP atau server cadangan.

Mendeteksi Server Pribadi

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)

ID konten dari Decal di situs web Roblox terkait dengan ID konten Decal``Instance bukan ID konten aktual dari tekstur.

Kode di bawah ini akan menggunakan DataModel:GetObjects() untuk menyisipkan Decal objek ke tempat dan membaca properti Decal.Texture mereka untuk mendapatkan ID konten gambar.

Untuk menggunakan sampel kode ini, masukkan URL web dari stiker yang ingin Anda konversi ke array bernama GAMBAR (sebagai string).Kamus dengan teks yang dikonversi akan dihasilkan.

Mengonversi ID decal batch

local IMAGES = {
-- Sisipkan URL situs web decal di array di sini (sebagai string)
}
-- buka kamus
local outputString = "textures = {"
-- fungsi utilitas untuk menambahkan entri baru ke kamus (sebagai string)
local function addEntryToDictionary(original, new)
outputString = outputString
.. "\n" -- baris baru
.. " " -- indentasi
.. '["'
.. original
.. '"]' -- kunci
.. ' = "'
.. new
.. '",' -- harga
end
print("Starting conversion")
for _, webURL in pairs(IMAGES) do
-- dapatkan URL konten
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")
-- tutup kamus
outputString = outputString .. "\n}"
-- cetak kamus
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

Sampel ini menunjukkan layar pemuatan khusus dengan dasar TextLabel.Kode harus ditempatkan dalam LocalScript dalam ReplicatedFirst .Untuk memperluas sampel ini dengan animasi layar pemuatan, lihat artikel Custom Loading Screens .

Layar Pemuatan Kustom

local Players = game:GetService("Players")
local ReplicatedFirst = game:GetService("ReplicatedFirst")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
-- Buat layar pemuatan dasar
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
-- GUI seluruh layar orang tua ke GUI pemain
screenGui.Parent = playerGui
-- Hapus layar pemuatan default
ReplicatedFirst:RemoveDefaultLoadingScreen()
--tunggu(3) -- Opsional memaksa layar muncul selama jumlah minimum detik
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: