QBCore vs ESX vs Qbox: Framework FiveM Mana yang Cocok?
Perbandingan jujur QBCore, ESX Legacy, dan Qbox untuk server roleplay FiveM: ekosistem script, kurva belajar, contoh kode, dan panduan memilih sesuai tim dan tujuan servermu.
Memilih framework adalah keputusan teknis paling penting saat membangun server roleplay FiveM. Framework menentukan cara data pemain disimpan, script apa yang bisa kamu pakai, dan seberapa mudah servermu dikembangkan dua tahun dari sekarang. Ganti framework setelah server ramai hampir selalu berarti migrasi data dan menulis ulang banyak script.
Artikel ini membandingkan tiga framework yang paling banyak dipakai di komunitas FiveM Indonesia: QBCore, ESX Legacy, dan Qbox. Sebagai keterbukaan: server kami sendiri, Noctis Roleplay, berjalan di atas QBCore yang kami kembangkan in-house. Kami tetap berusaha membahas ketiganya secara adil, karena pilihan terbaik bergantung pada tim dan tujuanmu.
Apa itu framework FiveM?
FiveM sendiri hanya menyediakan platform: koneksi pemain, sinkronisasi dunia, dan API scripting. Konsep seperti uang, pekerjaan, inventory, atau karakter tidak ada secara bawaan. Framework mengisi kekosongan itu dengan menyediakan:
- Objek pemain beserta data karakter, uang, job, dan gang.
- Penyimpanan data ke database MySQL/MariaDB.
- Callback dan event standar yang dipakai resource lain.
- Kumpulan resource dasar seperti multicharacter, garasi, toko, dan pekerjaan.
Karena hampir semua resource roleplay bergantung pada API framework, script yang ditulis untuk ESX tidak otomatis berjalan di QBCore, dan sebaliknya.
Sekilas tentang masing-masing framework
ESX Legacy
ESX adalah salah satu framework roleplay tertua di FiveM. Versi yang dirawat saat ini adalah ESX Legacy (repository esx_core). Karena umurnya panjang, banyak script lama dan tutorial di internet ditulis untuk ESX. Dokumentasi resmi tersedia di docs.esx-framework.org.
QBCore
QBCore muncul belakangan dan cepat populer karena struktur resource yang konsisten dan ekosistem script yang sangat besar, baik gratis maupun berbayar. Banyak server roleplay Indonesia memakai QBCore atau turunannya. Dokumentasi ada di docs.qbcore.org.
Qbox
Qbox (qbx_core) adalah proyek yang berangkat dari QBCore, lalu ditulis ulang dengan fokus pada kualitas kode, keamanan, dan pemanfaatan library Overextended seperti ox_lib, ox_inventory, dan oxmysql. Qbox menyediakan lapisan kompatibilitas (bridge) sehingga banyak resource QBCore tetap bisa berjalan. Dokumentasi ada di docs.qbox.re.
Perbandingan QBCore vs ESX vs Qbox
| Aspek | ESX Legacy | QBCore | Qbox |
|---|---|---|---|
| Kematangan | Paling lama, sangat mapan | Mapan, ekosistem terbesar saat ini | Lebih baru, berkembang aktif |
| Ketersediaan script | Banyak, termasuk script lama | Sangat banyak, gratis dan berbayar | Script khusus Qbox ditambah banyak script QBCore lewat bridge |
| Ketergantungan library | Fleksibel | Resource qb-* sendiri, bisa dipadukan dengan ox_* | Wajib ox_lib, ox_inventory, oxmysql |
| Kurva belajar | Sedang, banyak tutorial | Ramah pemula, banyak tutorial | Butuh pemahaman ox_lib dan pola kode modern |
| Kualitas kode bawaan | Membaik di versi Legacy | Bervariasi antar resource | Fokus utama proyek |
| Recipe txAdmin | Tersedia | Tersedia | Tersedia (cek docs Qbox) |
Satu catatan penting: kami sengaja tidak mencantumkan angka performa. Performa server dalam praktik jauh lebih ditentukan oleh kualitas resource yang kamu pasang (loop, query database, jumlah entity) daripada oleh framework intinya. Server QBCore yang dirawat baik bisa lebih ringan daripada server Qbox yang diisi script asal-asalan, dan sebaliknya. Cara mengukurnya sendiri dibahas di Cara Menggunakan Resmon dan Profiler FiveM.
Perbedaan cara menulis kode
Supaya terasa bedanya, berikut contoh sederhana mengambil data pemain dan menambah uang di sisi server.
ESX Legacy
local ESX = exports['es_extended']:getSharedObject()
RegisterNetEvent('contoh:bayar', function()
local xPlayer = ESX.GetPlayerFromId(source)
if not xPlayer then return end
xPlayer.addMoney(500)
end)QBCore
local QBCore = exports['qb-core']:GetCoreObject()
RegisterNetEvent('contoh:bayar', function()
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
Player.Functions.AddMoney('cash', 500, 'contoh-bayar')
end)Qbox
RegisterNetEvent('contoh:bayar', function()
local player = exports.qbx_core:GetPlayer(source)
if not player then return end
player.Functions.AddMoney('cash', 500, 'contoh-bayar')
end)Terlihat bahwa Qbox masih mirip QBCore, sehingga developer QBCore biasanya bisa beradaptasi cukup cepat. Perpindahan dari ESX ke salah satu keduanya membutuhkan penyesuaian lebih besar.
Penting: contoh di atas hanya untuk menunjukkan perbedaan API. Di server sungguhan, jangan pernah membuat event yang memberi uang tanpa validasi di sisi server, karena event jaringan bisa dipicu oleh cheater. Prinsip ini dibahas di Belajar Lua FiveM dari Nol.
Kapan memilih ESX Legacy?
- Timmu sudah berpengalaman dengan ESX dan punya banyak script ESX yang dirawat sendiri.
- Kamu membeli atau mewarisi paket script yang hanya mendukung ESX.
- Kamu memigrasikan server ESX lama dan belum siap menulis ulang semuanya.
Kapan memilih QBCore?
- Kamu pemula dan ingin tutorial serta contoh sebanyak mungkin.
- Kamu berencana memakai banyak script dari marketplace, karena mayoritas mendukung QBCore.
- Kamu ingin cepat meluncurkan server lalu mengembangkan resource sendiri secara bertahap. Inilah alasan kami memilih QBCore untuk Noctis Roleplay, lalu memperluasnya dengan sistem buatan sendiri.
Kapan memilih Qbox?
- Kamu membangun server baru dari nol dan ingin fondasi kode yang lebih modern.
- Timmu nyaman dengan ox_lib dan ingin standar yang konsisten di seluruh resource.
- Kamu ingin tetap bisa memakai banyak resource QBCore tanpa terikat pada kode lama QBCore.
Pertanyaan yang sebaiknya kamu jawab dulu
- Siapa yang akan merawat kode? Kalau tidak ada developer tetap, pilih framework dengan komunitas dan tutorial terbanyak.
- Script apa yang wajib ada? Cek dulu framework apa yang didukung oleh script penting yang ingin kamu beli atau pakai.
- Berapa lama server akan berjalan? Untuk proyek jangka panjang, kualitas kode dan dokumentasi lebih penting daripada kecepatan setup.
- Apakah kamu migrasi atau mulai baru? Migrasi data karakter antar framework butuh script konversi khusus dan pengujian matang.
Bagaimana kalau ingin migrasi framework?
Migrasi bukan sekadar mengganti folder core. Ada tiga lapisan yang harus dipindahkan:
- Data. Struktur tabel pemain, kendaraan, dan inventory berbeda antar framework. ESX dan QBCore menyimpan data karakter dengan skema yang tidak sama, sehingga kamu perlu script konversi yang memetakan kolom satu per satu. Qbox lebih dekat ke QBCore, tapi tetap ada perbedaan, terutama kalau kamu juga berpindah ke ox_inventory.
- Script. Setiap resource yang memanggil API framework harus diubah atau diganti. Inventaris dulu semua resource, tandai mana yang punya versi untuk framework tujuan, dan mana yang harus ditulis ulang.
- Kebiasaan pemain dan staf. Command admin, menu, dan alur pekerjaan bisa berubah. Siapkan pengumuman dan dokumentasi untuk komunitasmu.
Lakukan migrasi di server staging terpisah, gunakan salinan database produksi, dan uji alur penting seperti login karakter, transaksi uang, garasi, dan pekerjaan sebelum hari peralihan. Selalu ambil backup penuh sebelum mulai. Caranya ada di Cara Backup dan Restore Database Server FiveM.
FAQ singkat
Apakah script QBCore bisa dipakai di Qbox?
Banyak yang bisa berkat bridge kompatibilitas Qbox, tapi tidak semua. Script yang mengandalkan detail internal QBCore atau inventory qb-inventory mungkin perlu disesuaikan. Cek daftar kompatibilitas dan catatan di dokumentasi Qbox.
Apakah bisa membuat server roleplay tanpa framework?
Bisa, tapi kamu harus membangun sendiri sistem karakter, uang, inventory, dan penyimpanan data. Ini masuk akal untuk tim berpengalaman dengan konsep yang sangat berbeda, tapi jarang efisien untuk server roleplay pada umumnya.
Framework mana yang paling ringan?
Kami tidak punya data benchmark yang adil untuk menjawabnya, dan perbandingan semacam itu sangat dipengaruhi resource tambahan. Ukur servermu sendiri dengan resmon dan profiler, lalu optimalkan resource yang paling berat. Panduannya ada di Cara Optimasi Server FiveM Agar Tidak Lag.
Kesimpulan
Tidak ada framework yang paling benar untuk semua orang. Secara umum:
- ESX Legacy masuk akal untuk tim yang sudah punya investasi besar di ekosistem ESX.
- QBCore adalah pilihan paling aman untuk pemula dan server yang bergantung pada script marketplace.
- Qbox menarik untuk server baru yang mengutamakan kualitas kode dan siap memakai ekosistem Overextended.
Sudah menentukan pilihan? Lanjutkan ke Cara Install QBCore FiveM Menggunakan txAdmin, pasang ox_inventory dan ox_lib di QBCore, atau kembali ke panduan utama Cara Membuat Server FiveM Sendiri dari Nol.
Butuh server untuk menjalankan framework pilihanmu?
QBCore, Qbox, maupun ESX berjalan baik di Hosting FiveM Noctis. Kamu mendapat vDedicated dengan core AMD Ryzen khusus, DDR5, NVMe, root penuh, dan anti-DDoS di jaringan Noctis sendiri di Singapore. VDS Mini (2 vCPU, 4 GB RAM) cocok untuk development dan staging, VDS Lite (2 vCPU, 8 GB RAM) untuk sebagian besar server yang sudah diluncurkan, dan VDS Medium (4 vCPU, 16 GB RAM) untuk server dengan banyak script dan asset streaming. Lihat detailnya di Noctis Cloud atau diskusikan kebutuhanmu di Discord Noctis.