Plugin ini menanamkan (embed) Lua interpreter ke dalam server open.mp, supaya
kamu bisa menulis logika server dalam Lua (scripts/main.lua) tanpa player
perlu memasang mod apapun — semua kode Lua dijalankan di server, bukan di
klien.
✅ Build sukses via GitHub Actions CI. Lihat tab Actions repo ini untuk
hasil build terbaru, atau tab Releases untuk file .so siap pakai.
Riwayat perbaikan ada di CHANGELOG.md.
- Server open.mp (dan SA-MP) berjalan sebagai binary x86_64 di Linux —
bukan ARM/Android. Kalau kamu build langsung di Termux (arm64), hasilnya
tidak bisa dipakai di server x86_64. Cara paling praktis dan yang
dipakai proyek ini adalah build otomatis lewat GitHub Actions
(
ubuntu-latest, sudah x86_64) — lihat.github/workflows/build.yml. Termux di sini hanya dipakai untuk edit source code & push, bukan untuk kompilasi final. - open.mp SDK (
open.mp-sdk) adalah SDK komponen C++ modern (interfaceIComponent) — jauh lebih berat dibanding SDK plugin SA-MP lama (samp-plugin-sdkberbasis AMX). SDK ini butuh C++17 dan beberapa submodule Git:lib/glm,lib/span-lite,lib/robin-hood-hashing,lib/string-view-lite. - Penting: pada versi SDK yang dipakai proyek ini,
ICore,IPlayer, dkk berada di global namespace — bukanomp::. Kalau kamu clone ulang SDK dan dapat versi berbeda, cek ulang header diexternal/open.mp-sdk/include/sebelum build, karena nama/namespace/ signature method bisa berubah antar versi.
Opsi 1 — paling gampang, langsung download:
Buka tab Actions repo ini → pilih run terbaru yang ✅ sukses → download
artifact LuaScriptComponent. Atau cek tab Releases kalau sudah ada
rilis resmi.
Opsi 2 — build sendiri via CI:
Push perubahan ke branch main, workflow otomatis jalan dan hasil .so
muncul sebagai artifact di run tersebut.
Opsi 3 — build manual di Linux x86_64 sendiri:
git clone --recursive https://github.com/openmultiplayer/open.mp-sdk external/open.mp-sdk
mkdir -p external/lua
cd external/lua
wget https://www.lua.org/ftp/lua-5.4.7.tar.gz
tar -xzf lua-5.4.7.tar.gz
mv lua-5.4.7/src src
cd ../..
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j$(nproc)Hasil LuaScriptComponent.so ada di folder build/.
cp LuaScriptComponent.so /path/ke/server/open.mp/components/
mkdir -p /path/ke/server/open.mp/scripts
cp scripts/main.lua /path/ke/server/open.mp/scripts/Jalankan server open.mp seperti biasa (./omp-server). Cek log server —
harus muncul baris [LuaScriptComponent] Lua engine siap..
Pola untuk menambah fungsi baru di src/LuaBindings.cpp:
- Tulis fungsi
int Lua_NamaFungsi(lua_State* L) { ... }yang mengambil argumen dari stack Lua (luaL_checkinteger,luaL_checkstring, dst). - Panggil API
core->...yang sesuai (ingat:ICore*, bukanomp::ICore*). lua_push...hasilnya,returnjumlah nilai yang dikembalikan ke Lua.- Daftarkan di array
kSampFunctions[].
Contoh pemakaian di main.lua setelah menambah fungsi baru:
SetPlayerHealth(playerid, 100.0)Lihat CHANGELOG.md untuk daftar lengkap perbaikan build
dan kompatibilitas API SDK.