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

The Data Model (dikenal luas sebagai game setelah variabel global yang digunakan untuk mengaksesnya) adalah akar dari hierarki orang tua Roblox. Anak-anak langsungnya adalah layanan, seperti Class.Workspace dan 1> Class.Lighting >, yang bertindak sebagai komponen dasar dari permainan Rob

Contoh Kode

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 itu.

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

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

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Menggambarkan ID pengalaman yang dijalankan di server.

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel
    Tidak digunakan lagi

    Tidak fungsional. Secara historis, menjelaskan Enum.Genre dari tempat itu sebagai diatur di situs web Roblox.

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Pengenal unik untuk server game berjalan.

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Menggambarkan ID tempat yang dijalankan di server.

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Menggambarkan versi tempat server dijalankan.

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

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

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

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

  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Sebuah referensi ke layanan Workspace .

Metode

  • BindToClose(function : function):void

    Ikat fungsi untuk dipanggil sebelum server dihentikan.

  • Keamanan Plugin

    Mengembalikan tabel yang berisi informasi dasar tentang pekerjaan yang dilakukan oleh jadwal pekerjaan.

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

    Mengembalikan Instances array yang terkait dengan URL konten yang diberikan.

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

  • SetPlaceId(placeId : number):void
    Keamanan Plugin

    Tetapkan DataModel.PlaceId dari instansi game saat ini ke tempatId yang diberikan.

  • SetUniverseId(universeId : number):void
    Keamanan Plugin

    Tetapkan DataModel.GameId dari instansi game saat ini ke universeId yang diberikan.

Metode diwarisi dari ServiceProvider
  • Tulis Paralel

    Mengembalikan layanan yang ditentukan oleh nama panggilan yang diberikan jika sudah dibuat, kesalahan untuk nama yang tidak valid.

  • Mengembalikan 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 dari pemilik tempat. Jika properti <

Contoh Kode

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

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

Jika Enum.CreatorType adalah 'Pengguna' , maka kepemilikan DataModel.CreatorId dari account yang memiliki game akan dijelaskan. Jika jenis 1> Class.CreatorType1> adalah 4>Grup</4>, maka itu akan menggambarkan ID grup.

Contoh Kode

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

Hanya Baca
Tidak Direplikasi
Baca Paralel

Item ini menggambarkan ID pengalaman yang dijalankan di server.

ID ini dapat ditemukan di sudut kanan atas dari Manajer Aset di Roblox Studio. Saat menggunakan Roblox Studio, jika tempat itu belum diterbitkan ke Roblox maka GameId akan sesuai dengan templat yang digunakan.

Lihat juga:

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

Properti ini rusak dan tidak boleh digunakan.

Item ini secara historis menggambarkan Enum.Genre dari tempat itu sebagai yang ditetapkan di situs web Roblox.

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

JobId

Hanya Baca
Tidak Direplikasi
Baca Paralel

Item ini adalah identitas unik untuk server game kejadian. Ini adalah identitas unik universal (UUID), yang berarti bahwa tidak ada dua server, kuno atau saat ini, akan pernah memiliki ID yang sama.

Mengembalikan ke string kosong di Studio.

Lihat Juga

PlaceId

Hanya Baca
Tidak Direplikasi
Baca Paralel

Item ini menggambarkan ID tempat yang dijalankan di server.

Jika tempat itu telah dipublikasikan ke Roblox, ID ini dapat ditemukan di Manajer Aset Studio dengan menyetel ulang tombol kanan di tempat itu dalam folder Places dan memilih Copy ID ke Clipboard .

Jika tempat ini belum diterbitkan ke Roblox, ID ini akan sesuai dengan template yang digunakan.

Lihat Juga

  • DataModel.GameId , yang menggambarkan ID dari pengalaman yang saat ini berlokasi
  • DataModel.JobId , yang merupakan identifikator unik untuk server game instance yang berjalan
  • TeleportService , yang merupakan layanan yang dapat digunakan untuk mengangkat Players di antara lokasi

PlaceVersion

Hanya Baca
Tidak Direplikasi
Baca Paralel

Item ini menggambarkan versi tempat server dijalankan.

Versi nomor ini sesuai dengan nomor versi yang ditunjukkan di bagian Sejarah Versi dari pengaturan tempat. Ini bukan versi saat ini dari klien Roblox. Propinsi ini adalah 0 untuk semua pengalaman yang belum diterbitkan.

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

Elemen ini dapat digunakan untuk menampilkan ScreenGui yang menunjukkan versi saat ini dari game ke Players untuk menunjukkan perbaatan.

Contoh Kode

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

Item ini menggambarkan ID server pribadi, jika server adalah server pribadi.

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

Server pribadi

Server pribadi mengacu pada mengikuti:

PrivateServerId vs JobId

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

Server pribadi (server pribadi atau server cadangan) dapat memiliki lebih dari satu instans server yang terkait dengan mereka dalam waktu game. Ini karena, meskipun hanya satu server instance yang dapat dijalankan pada satu waktu untuk server pribadi, baru server instance dapat dibuka dan ditutup saat para pemain bergabung dan meninggalk

Lihat juga:

Contoh Kode

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 Class.Player.UserId|UserId dari Class.Player yang memiliki Class.Player server pribadi jika servernya privat.

Jika server adalah server standar atau yang disimpan maka property ini akan diatur menjadi 0 .

Elemen 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 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

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 Workspace mengacu pada layanan Workspace.

Properti ini akan selalu menunjuk ke Workspace dan tidak akan pernah menjadi nol .

Class.Workspace juga dapat diakses menggunakan variabel global workspace dan fungsi ServiceProvider:GetService(). Misalnya:


workspace -- variabel global
game.Workspace -- properti dari DataModel (game)
game:GetService("Workspace") -- workspace is a service

Metode

BindToClose

void

Ikat fungsi untuk dipanggil sebelum server dihentikan. Jika fungsi yang dibind menerima parameter, itu menyebarkan Enum.CloseReason spesifikasi alasan server dihentikan.

Anda dapat menyambungkan banyak fungsi dengan menelepon BindToClose() berulang kali. Fungsi batas dikenal secara bersamaan dan dijalankan pada saat yang sama.

Server pengalaman menunggu 30 detik untuk semua fungsi yang terikat berhenti berjalan sebelum itu mati. Setelah 30 detik, server mati bahkan jika fungsi masih berjalan.

Untuk memverifikasi bahwa sesi saat ini tidak dalam Roblox Studio, gunakan RunService:IsStudio() . Ini mencegah fungsi yang bersambung dari menyelesaikan sesi mereka dalam sesi pengujian offline.

Ketika Anda menggunakan DataStoreService, Anda juga harus menggunakan BindToClose untuk menyambungkan fungsi menyimpan semua data yang belum disimpan ke DataStores . Ini mencegah kerugian data jika server dihentikan secara tak terduga.

Lihat juga:

Parameter

function: function

Fungsi yang disebut sebelum server pengalaman dihentikan. Jika fungsi yang dibind menerima parameter, itu menyebarkan Enum.CloseReason menyebutkan alasan server dihentikan.


Memberikan nilai

void

Contoh Kode

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

Keamanan Plugin

Mengembalikan tabel yang berisi informasi dasar tentang pekerjaan yang dilakukan oleh jadwal pekerjaan.

Dalam komputasi, jadwal pekerjaan adalah sistem yang bertanggung jawab atas eksekusi tugas kunci pada interval yang sesuai.

Anda juga dapat menemukan statistik pengatur jadwal tugas hidup di jendela Scheduled Tasks di Roblox Studio.

Pertama entri dalam tabel dikembalikan adalah典引用 中包含统计 (atau judul) yang tersedia. Ini dalam format berikut:


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

Entri berikutnya dalam tabel dikembalikan adalah kamus mengandung statistik di atas untuk pekerjaan dilakukan oleh jadwal pengerjaan tugas. Misalnya:


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

Lihat juga:


Memberikan nilai

Tabel yang berisi informasi tentang pekerjaan yang dilakukan oleh jadwal pekerjaan, lihat di atas untuk format.

Contoh Kode

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 matriks 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 ter

Tidak seperti InsertService:LoadAsset() , DataModel:GetObjects() tidak memerlukan sumber daya untuk dipercaya, yang berarti bahwa sumber daya tidak perlu dimiliki oleh pengguna yang masuk, atau dibuat oleh Roblox, untuk ditambahkan. Namun, jika sumber daya tidak dimiliki oleh pengguna yang masuk, itu harus tersedia sec

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

Parameter

url: ContentId

URL konten yang diberikan.


Memberikan nilai

Instances

Sebuah matriksi dari Instances yang terkait dengan URL konten.

Contoh Kode

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

Fungsi ini kembali benar jika klien telah selesai memuat permainan untuk pertama kalinya.

Ketika semua awal Instances dalam permainan telah selesai bereplikasi ke klien, fungsi ini akan mengembalikan true.

Kecuali mereka dianggap sebagai anak Class.ReplicatedFirst , LocalScripts tidak akan berjalan saat game belum dimuat. Snippet berikut, dijalankan dari Class.LocalScript di LocalScript akan menghasilkan sampai game 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

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

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

Mengatur kedua DataModel.PlaceId dan DataModel.GameId diperlukan untuk mengakses DataStoreService ketika tempat tidak diterbitkan,


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

Parameter

placeId: number

ID untuk menetapkan DataModel.PlaceId ke.


Memberikan nilai

void

SetUniverseId

void
Keamanan Plugin

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

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

Parameter

universeId: number

ID untuk menetapkan DataModel.GameId ke.


Memberikan nilai

void

Acara

GraphicsQualityChangeRequest

Mengaktifkan ketika pengguna menekan peningkatan atau penurunan dalam kualitas grafik menggunakan tombol pintas.

Acara ini menyebabkan terbakar di bawah kondisi berikut:

  • Jika pengguna menekan F10, acara ini diaktifkan dengan argumen betterQuality dari true.
  • Jika pengguna menekan ShiftF10, acara ini diaktifkan dengan argumen betterQuality dari 0> false0> .

Acara ini tidak menyediakan tingkat kualitas grafis saat ini atau menutup semua update ke kualitas grafis. Misalnya, perubahan yang dilakukan di menu escape GUI utama tidak terdaftar.

Anda dapat mengambil kembali Class.UserGameSettings sebuah pengguna dengan menggunakan Class.UserGameSettings dengan snippet berikut:


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

Jika pengaturan grafis pengguna di set ke otomatis maka Enum.SavedQualitySetting akan menjadi Automatic. Saat ini tidak ada cara bagi pengembang untuk mendapatkan tingkat kualitas grafis saat ini dari mesin pengguna dengan cara yang dapat diandalkan.

Parameter

betterQuality: bool

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

Acara ini diaktifkan ketika permainan selesai dimuat untuk pertama kalinya.

Acara Dihosting terbakal ketika semua Instances pertama dalam permainan telah selesai bereplikasi ke klien.

Kecuali mereka dianggap sebagai anak Class.ReplicatedFirst , LocalScripts tidak akan berjalan sebelum acara ini berakhir. Snippet berikut, dijalankan dari Class.LocalScript di LocalScript , akan menghasilkan sampai game telah dimuat:


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

Lihat juga: