Plug & Play Client Sync API
API ini dirancang khusus untuk launcher client SA:MP untuk mendownload dan menginstall seluruh modpack server secara 1-Click Plug & Play.
Syarat & Ketentuan Penggunaan Plug & Play
1. Wajib Memiliki Custom Launcher Sendiri: SAMPForge menyediakan layanan API Back-End (Manifest JSON). Pemilik server atau pengembang wajib memiliki / membuat aplikasi custom launcher milik sendiri (misalnya aplikasi berbasis C#, C++, Electron, WPF, dsb.) yang sudah diprogram untuk melakukan HTTP Fetching ke endpoint API ini.
2. Pemasangan File di Sisi Client: Custom launcher milik Anda yang bertanggung jawab membaca struktur targetPath (seperti modloader/, cleo/) dari response API ini dan mengunduh serta meletakkan file mod ke folder GTA San Andreas milik pemain secara otomatis.
3. Bebas Malware & Mod Dilarang: Seluruh file mod yang didaftarkan ke Server Instance wajib lulus verifikasi SAMPForge dan tidak boleh berisi program berbahaya.

/api/v1/client/syncQuery Parameter
Key unik Server Instance (contoh: indoroleplay-v1)
Contoh Request
curl "https://sampforge.net/api/v1/client/sync?serverKey=indoroleplay-v1"Contoh Response JSON Manifest (Plug & Play)
{
"status": "success",
"protocolVersion": "1.0",
"server": {
"key": "indoroleplay-v1",
"name": "IndoRoleplay Official Server",
"ip": "127.0.0.1",
"port": 7777,
"sampVersion": "SAMP_037"
},
"plugAndPlay": {
"totalMods": 2,
"mods": [
{
"itemId": "item_123",
"resourceId": "res_456",
"slug": "samp-addon",
"name": "SAMP Addon 2.6",
"category": "PLUGIN",
"targetPath": "root/",
"isRequired": true,
"file": {
"versionId": "ver_789",
"version": "2.6.0",
"fileName": "samp-addon-2.6.zip",
"fileSize": 3524000,
"compatibility": ["SAMP_037"],
"downloadUrl": "https://sampforge.net/storage/resources/samp-addon-2.6.zip"
}
}
]
},
"syncedAt": "2026-07-29T15:50:00.000Z"
}Contoh Logika Launcher Client (C# / .NET)
Berikut adalah snippet contoh bagaimana custom launcher Anda dapat melakukan parsing manifest API ini di C#:
// C# Client Launcher HTTP Sync Example
using System.Net.Http;
using Newtonsoft.Json.Linq;
public async Task SyncServerMods(string serverKey) {
using HttpClient client = new HttpClient();
string apiUrl = $"https://sampforge.net/api/v1/client/sync?serverKey={serverKey}";
string jsonResponse = await client.GetStringAsync(apiUrl);
JObject manifest = JObject.Parse(jsonResponse);
var mods = manifest["plugAndPlay"]["mods"];
foreach (var mod in mods) {
string downloadUrl = mod["file"]["downloadUrl"].ToString();
string targetPath = mod["targetPath"].ToString(); // e.g. "modloader/"
// Custom launcher logic: Download & Extract zip to GTA Directory
await DownloadAndExtractMod(downloadUrl, targetPath);
}
}