Mod JavaScript
Sistem JS di CampAPI dibuat supaya modding terasa praktis: satu manifest, satu entry file, lalu file tambahan kalau memang perlu.
Struktur folder
text
{Akar Folder Data CampAPI}/scripts/
ExampleMod/
manifest.json
scripts/
index.js
utils.jsField yang dibaca dari manifest
Loader membaca field berikut dari manifest.json:
name— nama mod yang tampilauthor— nama pembuat modversion— string versinamespace— namespace buat import@namespace/...export— menandai mod supaya bisa diimport lewat namespaceentryataumain— file entry di dalamscripts/
Contoh:
json
{
"name": "Example Mod",
"author": "Alvin",
"version": "1.0.0",
"namespace": "example",
"export": true,
"entry": "index.js"
}Fitur yang langsung tersedia di JS
Runtime kasih beberapa tool siap pakai:
console.log,console.info,console.warn,console.error,console.debugstddanos- helper gaya Node seperti
node:process,node:timers,node:events,node:path,node:util,node:buffer,node:fs, dannode:os internal:moduntuk cari info modinternal:networkuntukfetchinternal:moddinguntuk signature scan
Contoh entry file
js
import { getModInfoByName } from 'internal:mod'
import { sigscan } from 'internal:modding'
import { fetch } from 'internal:network'
console.log('mod info:', getModInfoByName('Example Mod'))
const addr = sigscan('libminecraftpe.so', '48 8B ?? ??')
console.log('sigscan:', addr)
const response = fetch('https://example.com/api/version', {
method: 'GET',
timeout: 2
})
console.log(response.status, response.ok)
console.log(response.text())Import file dari mod lain yang diexport
Kalau mod diberi label export, mod lain bisa import file-nya pakai @namespace/path.
js
import { helper } from '@example/utils.js'Ini cocok buat utility bersama, konstanta, atau bootstrap yang dipakai ulang.
Catatan praktis
- Entry file harus ada di folder
scripts/. entryakan fallback kemain.- Kalau dua-duanya tidak ada, loader pakai
index.js.