LibreAuth

Subscriptions & Features

แพ็ก Full vs Lite ต่อคีย์ — เซิร์ฟส่ง level + features หลัง login/license/check · SDK HasFeature ใช้ grant นี้โดยตรง

INFO
ไม่ต้องเทียบชื่อแพ็กใน loader — อย่า if (name == "Premium") ให้ถาม HasFeature("inject") หรืออ่าน info.all_features

โมเดล

Response shape

หลัง login / license (v1 และ v2) และหลัง check เมื่อ session ผ่าน:

JSON
{
  "info": {
    "username": "player1",
    "level": 2,
    "features": ["loader", "menu"],
    "all_features": false,
    "subscriptions": [
      {
        "subscription": "Lite",
        "expiry": "2026-12-01 00:00:00",
        "level": 1,
        "features": ["loader"],
        "all": false
      }
    ]
  },
  "level": 2,
  "features": ["loader", "menu"],
  "all_features": false
}

check ใส่ level / features / all_features ทั้งใน info และ top-level — SDK อ่านได้ทั้งสองที่

HasFeature ใน SDK

  1. ถ้าชื่ออยู่ใน app entitlements จาก init/check (var, ops, …) → ใช้ boolean นั้น
  2. ไม่เช่นนั้นถ้า all_features → true
  3. ไม่เช่นนั้นถ้าชื่ออยู่ใน features (lowercase) → true
  4. นอกนั้น → false
C++
if (!la_auth::HasFeature("inject")) return;
int lv = la_auth::LicenseLevel();
C#
if (!Authority.HasFeature("inject")) return;
int lv = Authority.LicenseLevel();
PHP
if (!Authority::HasFeature('inject')) return;
$lv = Authority::LicenseLevel();

Login/license ของ Protocol v2 เรียก ApplySubGrant อัตโนมัติ · heartbeat check อัปเดต grant ซ้ำ

HasFeature ของชื่อแพ็กคืน false จนกว่า SessionGate.MarkLicensed — กันข้ามหน้า login แล้วยังเรียก inject ได้

type=feature (Protocol v2)

เมื่อ session มี user_id เซิร์ฟตรวจ SubCore::HasFeature ก่อน — ไม่ผ่านได้ HTTP 403 Feature not entitled จากนั้นถึงคิว app entitlement ถ้ามีคีย์นั้นในแผนแอป

หลัง license เรียก SessionGate.RequireFeatureOrDie(client, "inject") — SDK ขอ type=feature แล้วเก็บ feature_token (TTL 60s). เปิด Panel Require Feature Ack แล้วเรียก FeatureAck เมื่อใช้สิทธิ์แล้ว

Panel

แอป → Subscriptions · คอลัมน์ Features · Add/Edit: ชิป loader inject spoof menu premium files chat หรือพิมพ์ชื่อเอง · ติ๊ก All functions = Full

ผูกคีย์กับแพ็กตอนสร้างคีย์ (ไม่ใช่แก้สตริงใน loader)

Seller API

รายละเอียดพารามิเตอร์: addsub · fetchsubs