3. Jalankan GameServer utama
Setelah menyiapkan modul Leaderboard dan PlayerData di ServerStorage, sekarang saatnya membuat skrip server utama: GameServer. Skrip ini bertugas memuat data awal setiap kali pemain masuk ke game dan langsung menampilkannya di papan skor.
Yang akan kamu pelajari
Section titled “Yang akan kamu pelajari”Di akhir materi ini, kamu akan bisa:
- Menghubungkan modul dari
ServerStoragemenggunakan fungsirequire(). - Membaca data awal pemain dari modul
PlayerData. - Mendaftarkan statistik pemain (
Coins,Jump,Stage) ke modulLeaderboard. - Menjalankan server game dan memverifikasi papan skor di layar.
Sebelum mulai
Section titled “Sebelum mulai”- Selesaikan materi Kelola data dan leaderboard.
- Pastikan modul
LeaderboarddanPlayerDatasudah ada di dalamServerStorage. - Buka panel Explorer dan Output.
1. Buat Skrip GameServer
Section titled “1. Buat Skrip GameServer”- Di jendela Explorer, arahkan kursor ke
ServerScriptService, lalu klik tanda +. - Pilih objek
Scriptdan ubah namanya menjadiGameServer. - Buka skrip tersebut dan isi dengan kode berikut:
flowchart LR classDef trigger fill:#0369a1,stroke:#38bdf8,stroke-width:2px,color:#ffffff; classDef condition fill:#b45309,stroke:#f59e0b,stroke-width:2px,color:#ffffff; classDef action fill:#047857,stroke:#10b981,stroke-width:2px,color:#ffffff; classDef finish fill:#334155,stroke:#94a3b8,stroke-width:2px,color:#ffffff;
Start(["<b>Server Aktif</b><br/>Require modul data"]):::trigger Event["<b>Pemain Masuk</b><br/>Players.PlayerAdded"]:::trigger Fetch["<b>Ambil Data</b><br/>Coins, Jump, Stage"]:::action InitBoard["<b>Pasang Papan Skor</b><br/>Leaderboard.setStat"]:::action Ready(["<b>Game Siap</b><br/>Pemain mulai bermain"]):::finish
Start --> Event --> Fetch --> InitBoard --> Ready- Baris 1-7: Mengambil services dan memuat modul
LeaderboardsertaPlayerDatadariServerStoragemenggunakan fungsirequire(). - Baris 9: Menampilkan pesan status
Server Coin Adventure dimulai!ke panel Output untuk memastikan skrip server berjalan lancar. - Baris 11-19: Fungsi
onPlayerAddedmengambil nilai default pemain dariPlayerData(Coins: 0, Jump: 0, Stage: 1) lalu mendaftarkannya ke papan skorleaderstatsviaLeaderboard.setStat. - Baris 21-25: Menghubungkan fungsi ke event
Players.PlayerAddeddan memastikan pemain yang sudah ada di server juga langsung diinisialisasi.
local Players = game:GetService("Players")local ServerStorage = game:GetService("ServerStorage")
-- Moduleslocal Leaderboard = require(ServerStorage:WaitForChild("Leaderboard"))local PlayerData = require(ServerStorage:WaitForChild("PlayerData"))
print("Server Coin Adventure dimulai!")
local function onPlayerAdded(player) local coins = PlayerData.getValue(player, PlayerData.COIN_KEY_NAME) local jump = PlayerData.getValue(player, PlayerData.JUMP_KEY_NAME) local stage = PlayerData.getValue(player, PlayerData.STAGE_KEY_NAME)
Leaderboard.setStat(player, PlayerData.COIN_KEY_NAME, coins) Leaderboard.setStat(player, PlayerData.JUMP_KEY_NAME, jump) Leaderboard.setStat(player, PlayerData.STAGE_KEY_NAME, stage)end
Players.PlayerAdded:Connect(onPlayerAdded)
for _, player in Players:GetPlayers() do onPlayerAdded(player)endSalin prompt berikut ke chat AI di Visual Studio Code (dengan Roblox Studio MCP aktif):
Buatkan Script bernama "GameServer" di ServerScriptService:- Saat pemain masuk, ambil data dari PlayerData lalu daftarkan ke Leaderboard.- Cetak "Server Coin Adventure dimulai!" di Output saat server aktif.2. Struktur Akhir di Explorer
Section titled “2. Struktur Akhir di Explorer”Explorer proyekmu sekarang akan terlihat rapi dan terstruktur seperti ini:
ServerStorage├── Leaderboard (ModuleScript)└── PlayerData (ModuleScript)
ServerScriptService├── WelcomeScript (Script)└── GameServer (Script)3. Jalankan dan Baca Hasilnya
Section titled “3. Jalankan dan Baca Hasilnya”- Tekan tombol Play (F5).
- Buka panel Output dan pastikan pesan
Server Coin Adventure dimulai!muncul. - Perhatikan pojok kanan atas layar game: papan skor (
leaderstats) otomatis menampilkan kolom Coins, Jump, dan Stage. - Tekan Stop (Shift + F5).
Checkpoint
Section titled “Checkpoint”Pelajaran ini selesai jika:
GameServerberada di dalamServerScriptServicesebagaiScript;- pesan
Server Coin Adventure dimulai!muncul di panel Output; - tabel papan skor di pojok kanan atas menampilkan
Coins,Jump, danStagedengan nilai awal yang benar; - tidak ada pesan error merah di jendela Output.