Skip to content

Apa yang bisa dilakukan

Halaman ini isinya peta singkat fitur utama CampAPI, dilihat dari sisi orang yang bikin mod.

Hook event

CampAPI punya hook untuk momen-momen di sekitar client game:

  • lifecycle client instance
  • event input
  • render layar
  • ganti splash text
  • pembuatan resource-pack manager

Biasanya hook ini dipakai untuk:

  • memblokir layar tertentu supaya tidak ikut render
  • merespons tombol atau sentuhan pemain
  • ganti splash text saat startup
  • menjalankan setup saat client instance sudah siap

Helper native

Sisi native punya helper yang berguna buat kerja berbasis alamat:

  • getLibBase() untuk mencari base address library yang sedang termuat
  • slideAddress() untuk mengubah offset jadi address asli
  • findVtable() untuk mengambil vtable pointer class
  • getVtableClass() untuk mengambil address method dari slot vtable
  • macro ekspor dan visibility khusus Android di Macro.h

Biasanya dipakai untuk:

  • cari function pointer buat hook
  • mengikat kode native ke image library tertentu
  • menjaga kode yang khusus Android tetap rapi

Mod JavaScript

Sistem script dibuat supaya mod bisa cepat dibongkar pasang dan enak dipecah.

Fitur yang tersedia:

  • load module dari folder scripts/
  • metadata lewat manifest.json
  • pilih entry file lewat entry atau main
  • import namespace dengan format @namespace/...
  • logging dari JS
  • fetch
  • sigscan
  • helper lookup info mod

Biasanya dipakai untuk:

  • bikin automation gameplay di JS
  • memecah mod jadi beberapa file kecil
  • berbagi utility antar mod
  • ambil konfigurasi atau data versi dari server

Logging dan debug

Layer JS menulis output console ke log Android dan file log mod.

Ini berguna buat:

  • cek perilaku startup
  • print metadata mod
  • lihat hasil fetch dan hasil sigscan

Contoh kecil

js
import { getModInfoByNamespace } from 'internal:mod'
import { fetch } from 'internal:network'

console.log(getModInfoByNamespace('example'))
const res = fetch('https://example.com/api/status')
console.log(res.status)