SAMPForge

SAMPForge

SA:MP Resource Hub

Loading community resources...

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.

Plug & Play Workflow Diagram
GET/api/v1/client/sync

Query Parameter

serverKey (string, Wajib)

Key unik Server Instance (contoh: indoroleplay-v1)

Contoh Request

Bash / cURL
curl "https://sampforge.net/api/v1/client/sync?serverKey=indoroleplay-v1"

Contoh Response JSON Manifest (Plug & Play)

JSON
{
  "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# / .NET
// 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);
    }
}