FiveM Asset Escrow คืออะไร Script เข้ารหัสทำงานอย่างไร

 FiveM Asset Escrow คือระบบของ Cfx.re สำหรับ ปกป้อง Source Code และ Asset บางประเภทของ Resource เพื่อให้ผู้พัฒนาสามารถแจกหรือขาย Script โดยไม่จำเป็นต้องเปิดไฟล์สำคัญทั้งหมดให้ผู้ใช้งานอ่านหรือแก้ไขโดยตรง

Resource ที่ใช้ Asset Escrow จึงมักถูกเรียกกันว่า

Escrow Script
Encrypted Script
Locked Script
Protected Resource

เมื่อซื้อ Script ประเภทนี้ เจ้าของ Server อาจเห็นโครงสร้างประมาณ

my-script/
├── fxmanifest.lua
├── config.lua
├── client/
│   └── main.lua
├── server/
│   └── main.lua
└── locales/
    └── en.lua

แต่ไฟล์ Code บางส่วนอาจได้รับการปกป้องด้วย Asset Escrow ขณะที่ไฟล์อย่าง

config.lua
locales/

อาจถูกเปิดให้แก้ไขได้ตามที่ Developer กำหนดผ่าน escrow_ignore

ดังนั้น Asset Escrow ไม่ได้หมายความว่า Resource ทั้ง Folder ต้องถูกล็อกทุกไฟล์เสมอไป

① FiveM Asset Escrow คืออะไร

Asset Escrow เป็นระบบ Protection ที่ Cfx.re จัดเตรียมให้ Resource Developer

จุดประสงค์หลักคือ

Developer เขียน Resource
↓
เลือกไฟล์ที่ต้องการปกป้อง
↓
นำ Resource เข้าระบบ Asset Escrow
↓
แจกจ่ายให้ผู้ซื้อ
↓
ผู้ซื้อใช้งาน Resource
แต่ไม่สามารถเข้าถึง/แก้ไข Code ที่ถูกปกป้องแบบปกติ

ช่วยลดปัญหา Source Code ถูก Copy หรือแก้ไขโดยไม่ได้รับอนุญาต

โดยเฉพาะ Paid Resources ที่ Developer ต้องการขายให้ Server หลายแห่ง

② Asset Escrow คือการเข้ารหัส Script หรือไม่

ในภาษาที่คนทำ FiveM Server ใช้กัน มักเรียกว่า

Script เข้ารหัส

หรือ

Encrypted Script

แต่การมองให้ถูกคือ Asset Escrow เป็น ระบบ Protection และ Entitlement ของ Cfx.re

Cfx.re เป็นผู้ประมวลผล Resource สำหรับ Asset Escrow และปกป้องไฟล์ที่ระบบรองรับ

ดังนั้นเจ้าของ Server ไม่จำเป็นต้องมี Source Code แบบเปิดของไฟล์ที่ถูก Protect เพื่อให้ Resource ทำงาน

ระบบ FiveM จะจัดการ Resource ตามสิทธิ์ที่บัญชีมี

③ Asset Escrow ปกป้องไฟล์อะไรได้บ้าง

เอกสาร Cfx.re ปัจจุบันระบุว่า Asset Escrow รองรับไฟล์หลัก เช่น

.lua
.yft
.ydd
.ydr

จึงสามารถใช้ปกป้องได้ทั้ง

Lua Scripts

Client Code
Server Code
Shared Code

3D Assets บางประเภท

เช่น

YFT
YDD
YDR

จึงไม่ได้ใช้กับ Script Lua อย่างเดียว

ผู้สร้างรถ, Map หรือ Asset บางประเภทก็สามารถใช้ Asset Escrow ป้องกันผลงานได้เช่นกัน

④ Asset Escrow รองรับ NUI หรือไม่

ตามเอกสาร Asset Escrow ปัจจุบัน NUI ยังไม่ได้รับการรองรับโดยระบบ Escrow โดยตรง

ตัวอย่าง NUI มักประกอบด้วย

HTML
CSS
JavaScript
Images

ดังนั้นไม่ควรสรุปว่า

ซื้อ Escrow Script แล้วทุกไฟล์ใน HTML UI จะถูกเข้ารหัสเหมือน Lua

ต้องดู Resource จริงว่าผู้พัฒนาป้องกันส่วนใดและเปิดส่วนใดให้แก้

⑤ Asset Escrow ทำงานอย่างไรสำหรับผู้ซื้อ

ภาพรวมคือ

Developer
↓
สร้าง Resource
↓
นำ Resource เข้า Asset Escrow
↓
แจกจ่ายผ่านระบบที่รองรับ
↓
ผู้ซื้อได้รับสิทธิ์
↓
ดาวน์โหลด Resource
↓
นำเข้า FiveM Server
↓
FXServer ตรวจ Entitlement
↓
Resource ทำงาน

ดังนั้น Resource ประเภท Escrow ไม่ได้ตรวจเฉพาะว่าไฟล์อยู่ใน resources หรือไม่

ยังมีเรื่อง

Entitlement

หรือสิทธิ์ในการใช้งาน Asset เข้ามาเกี่ยวข้องด้วย

⑥ Entitlement คืออะไร

Entitlement สามารถเข้าใจง่าย ๆ ว่าเป็น สิทธิ์ของบัญชีในการใช้งาน Asset นั้น

ตัวอย่าง

Account A
↓
ซื้อ Resource
↓
ได้รับ Entitlement
↓
สามารถใช้งาน Resource ตามระบบที่กำหนด

ถ้า Server พยายามใช้ Resource โดยบัญชีไม่มีสิทธิ์ อาจพบ Error

You lack the required entitlement

ซึ่งไม่ได้หมายความว่า Script Lua เขียนผิด

แต่เกี่ยวข้องกับสิทธิ์การใช้งาน Asset

รายละเอียดการแก้ Error นี้ควรแยกตรวจเรื่อง Account, Entitlement และ Server License โดยตรง

⑦ Script Escrow ติดตั้งเหมือน Script ปกติไหม

ในหลายกรณีใช่

หลังดาวน์โหลด Resource แล้วอาจติดตั้งแบบ

resources/
└── my-script/
    └── fxmanifest.lua

จากนั้นเพิ่ม

ensure my-script

ใน server.cfg

หรือถ้า Server เปิดอยู่

refresh
ensure my-script

แต่ Resource อาจมี Dependency เพิ่มเติม เช่น

ox_lib
oxmysql
Framework
Inventory
Target

Asset Escrow ไม่ได้ติดตั้ง Dependency เหล่านี้ให้อัตโนมัติ

ต้องทำตาม Installation Guide ของ Developer เช่นเดียวกับ Script ปกติ

⑧ Script เข้ารหัสยังมี fxmanifest.lua หรือไม่

มี

Escrow Resource ยังคงเป็น FiveM Resource

จึงยังต้องใช้ Resource Manifest เช่น

fxmanifest.lua

ตัวอย่าง

fx_version 'cerulean'
game 'gta5'

shared_script 'config.lua'

client_scripts {
    'client/*.lua'
}

server_scripts {
    'server/*.lua'
}

นอกจากนี้ Manifest ยังสามารถกำหนด

escrow_ignore {
    'config.lua'
}

เพื่อบอก Asset Escrow ว่าไฟล์ใดไม่ต้องถูก Protect

⑨ escrow_ignore คืออะไร

escrow_ignore เป็น Directive ใน fxmanifest.lua สำหรับบอก Asset Escrow ว่า ไฟล์ใดให้ละเว้นจากการปกป้อง

ตัวอย่าง

escrow_ignore {
    'config.lua'
}

หมายความว่า Developer ต้องการเปิด

config.lua

ไว้ให้ผู้ใช้งานเข้าถึงหรือแก้ไข

ขณะที่ Code ส่วนอื่นสามารถถูก Escrow Protect

นี่เป็นวิธีที่ Paid Script มักใช้เพื่อให้เจ้าของ Serverปรับค่าระบบได้โดยไม่เปิด Source หลักทั้งหมด

⑩ escrow_ignore หลายไฟล์เขียนอย่างไร

ตัวอย่าง

escrow_ignore {
    'config.lua',
    'shared/config.lua',
    'locales/*.lua'
}

Developer สามารถเลือกเปิดเฉพาะ

Configuration
Locale
Integration Files

ให้แก้ไขได้

ขณะที่ Core Logic ยังคงถูก Protect

จึงเกิด Architecture แบบ

Editable
├── config.lua
├── locales/
└── bridge/

Protected
├── client/core.lua
└── server/core.lua

ขึ้นอยู่กับการออกแบบของผู้พัฒนา

⑪ escrow_ignore รองรับ Wildcard หรือไม่

รองรับ Pattern ตามรูปแบบที่เอกสารกำหนด

ตัวอย่างจากแนวทาง Asset Escrow

escrow_ignore {
    'script/code.lua',
    'stream/tuner.ydr',
    'stream/*.yft',
    'stream/**/*.yft'
}

จึงสามารถ Ignore

ไฟล์เดียว
หลายไฟล์
ไฟล์ทั้ง Pattern
ไฟล์ใน Subfolder

ได้

สำหรับเจ้าของ Server ทั่วไปไม่ควรแก้รายการนี้โดยพลการ หากไม่ได้เป็นผู้สร้าง Resource

⑫ config.lua ของ Escrow Script แก้ได้ไหม

ถ้า Developer ใส่

escrow_ignore {
    'config.lua'
}

โดยทั่วไปไฟล์ Config นั้นถูกตั้งใจให้เปิดแก้ไขได้

ตัวอย่าง

Config = {}

Config.Locale = 'th'
Config.Framework = 'qbox'
Config.Debug = false

เจ้าของ Server สามารถปรับตาม Documentation

แต่ไม่ควรสมมติว่าไฟล์ทุกไฟล์ที่เห็นจะสามารถแก้ไขได้

ต้องดูว่า Developerเปิดไฟล์ไหนไว้

⑬ Bridge ของ Script Escrow แก้ได้ไหม

Script เชิงพาณิชย์ที่ออกแบบดีอาจเปิด

bridge/

หรือ

custom/

ไว้ให้เจ้าของ Server เชื่อมระบบของตัวเอง

ตัวอย่าง

bridge/
├── framework.lua
├── inventory.lua
└── notification.lua

จากนั้น Core Script ถูก Protect

core/
└── protected

Architecture แบบนี้มีข้อดีมาก เพราะ Developer สามารถป้องกัน Core Logic แต่ยังให้ Server Owner ปรับ Integration ได้

ก่อนซื้อ Script จึงควรตรวจว่า

มี Bridge หรือ Editable Files เพียงพอกับ Server หรือไม่?

⑭ ซื้อ Escrow Script แล้วแก้ Code หลักได้ไหม

หากไฟล์นั้นถูก Asset Escrow Protect ก็ไม่ได้ถูกออกแบบมาให้แก้ไข Source Code โดยตรงแบบ Resource Open Source

สิ่งที่ควรแก้คือไฟล์ที่ Developer เปิดไว้ เช่น

Config
Locale
Bridge
Editable Functions

ถ้าต้องการแก้ Feature ที่อยู่ใน Protected Core ต้องติดต่อ Developerเพื่อขอ

  • Config Option

  • Hook

  • Export

  • Event

  • Bridge

  • Update

  • Custom Version

ไม่ควรพยายามทำลายหรือข้ามระบบ Protection

⑮ Asset Escrow กับ Open Source ต่างกันอย่างไร

Open Source Resource

สามารถเปิด Code เช่น

RegisterNetEvent(...)
exports(...)
CreateThread(...)

และแก้ได้โดยตรงตาม License ของ Project

Escrow Resource

Code บางส่วนถูก Protect

เจ้าของ Serverจึงปรับได้เฉพาะส่วนที่ Developer เปิดไว้

ดังนั้นก่อนซื้อควรถามตัวเองว่า

ต้อง Custom Script เยอะหรือไม่?

ถ้าต้องแก้ Core Logic จำนวนมาก Open Source หรือ Source-available Resource อาจเหมาะกว่า

⑯ Asset Escrow มีข้อดีสำหรับ Developer อย่างไร

ข้อดีหลักคือปกป้องทรัพย์สินทางปัญญา

เช่น

Core Algorithms
Game Logic
System Architecture
Commercial Code
3D Assets

ทำให้ Developer สามารถขาย Resource ได้โดยลดความเสี่ยงจากการนำ Source ไปแจกต่อโดยตรง

และไม่จำเป็นต้องพึ่ง Obfuscation แบบเดิมทั้งหมด

Cfx.re ระบุว่า Asset Escrow และ Encryption System ทำให้การ Obfuscate Code เพิ่มเติมไม่จำเป็นสำหรับ Escrowed Resources ตามระบบของตน

⑰ Asset Escrow มีข้อดีสำหรับผู้ซื้อไหม

แม้ผู้ซื้อจะเปิด Code ได้น้อยลง แต่ก็มีข้อดี

ระบบสิทธิ์ชัดเจน

Resource เชื่อมกับ Entitlement

ได้ Package จากระบบ Distribution ที่กำหนด

ลดความสับสนในการรับไฟล์

Developer สามารถเปิด Config เฉพาะส่วนได้

ผ่าน escrow_ignore

ลดโอกาส Source ถูกแก้โดยไม่ตั้งใจ

เจ้าของ Server ไม่สามารถเผลอแก้ Core Code บางส่วนจน Script พังได้ง่ายเหมือน Open Source

แต่ข้อดีเหล่านี้ต้องแลกกับความสามารถในการ Custom ที่ลดลง

⑱ ข้อเสียของ Escrow Script คืออะไร

ข้อเสียสำคัญคือ

Debug ยากกว่า

ถ้า Error อยู่ใน Protected Core ผู้ใช้แก้เองได้จำกัด

Custom จำกัด

ไม่สามารถแก้ Function ทุกตัวตามใจได้

พึ่ง Developer มากขึ้น

Bug ใน Protected Code อาจต้องรอ Update

Integration ต้องดู Editable Files

ถ้า Developer ไม่เปิด Bridge เพียงพอ อาจเชื่อมกับ Server ยาก

Migration ยากในบางกรณี

เปลี่ยน Framework หรือ Inventory แล้ว Core ไม่รองรับ อาจแก้เองไม่ได้

จึงต้องพิจารณาคุณภาพ Support ก่อนซื้อด้วย

⑲ Escrow Script Error ดูได้ไหม

ถึง Source บางส่วนถูก Protect แต่ Server Console และ F8 ยังสามารถแสดง Error ที่เกี่ยวข้องกับ Resource ได้ตามสถานการณ์

เช่น

Missing dependency
No such export
Couldn't find resource
You lack the required entitlement

หรือ Error จาก Editable Integration

สิ่งที่ควรทำคือเก็บ

Error เต็ม
Resource Version
Server Artifact
Framework Version
Dependency Version
Config

ก่อนติดต่อ Developer

จะช่วยให้ Support วิเคราะห์ปัญหาได้เร็วขึ้น

⑳ Escrow Script ไม่ทำงานควรตรวจอะไรก่อน

อย่ารีบสรุปว่า

Script เข้ารหัสเสีย

ให้ตรวจตามลำดับ

Resource ถูก Folder?
↓
fxmanifest.lua มี?
↓
Dependency ครบ?
↓
Start Order ถูก?
↓
Entitlement ถูก?
↓
Server Console มี Error?
↓
Config ถูก?
↓
Framework/Inventory ตรง Version?

Escrow เป็นเพียง Protection Layer

Resource ยังสามารถพังจาก Dependency หรือ Configuration เหมือน Script ปกติได้

㉑ Missing Dependency ยังเกิดกับ Escrow Script ได้ไหม

ได้

ตัวอย่าง

Escrow Job Script
↓
ต้องใช้ ox_lib

ถ้าไม่มี ox_lib

Script ก็ยังเกิด

Missing dependency

ได้

Asset Escrow ไม่ได้รวม Dependency ทุกอย่างไว้ให้โดยอัตโนมัติ

ต้องติดตั้ง Requirements ตาม Developer Guide

㉒ No Such Export ยังเกิดได้ไหม

ได้

สมมติ Protected Script เรียก API

Inventory Export

แต่ Server ใช้ Inventory Version ที่ไม่มี Export นั้น

ก็อาจเกิด

No such export

ได้

กรณีนี้ปัญหาอาจอยู่ที่ Compatibility ระหว่าง

Escrow Script Version
↕
Dependency Version

ไม่ใช่ Asset Escrow เอง

㉓ Script Escrow ใช้ผิด Framework จะเกิดอะไร

สมมติ Script รองรับ

QBCore

แต่ Server ใช้ ESX

Resource อาจ

  • Start ไม่ได้

  • หา Export ไม่เจอ

  • Player Data เป็น nil

  • Job ไม่ทำงาน

  • Inventory ไม่ทำงาน

ก่อนซื้อควรตรวจ

ESX?
QBCore?
Qbox?
Standalone?

และ Version ที่รองรับ

เพราะ Protected Core ทำให้การดัดแปลง Framework Compatibility ด้วยตัวเองอาจทำได้จำกัดกว่า Open Source

㉔ Script Escrow กับ Qbox ต้องตรวจอะไร

ถ้าจะใช้กับ Qbox ควรตรวจว่า Developer ระบุอย่างชัดเจนว่า

Qbox Supported

หรือใช้ Bridge ที่รองรับ Qbox

อย่าคิดว่า

QBCore Supported

เท่ากับ

Qbox Supported 100%

แม้ระบบบางส่วนจะมี Compatibility กัน แต่ Script แต่ละตัวอาจใช้ APIs หรือ Assumptions ต่างกัน

㉕ Escrow Script เปลี่ยน Inventory ได้ไหม

ขึ้นอยู่กับ Developer

Script ที่ออกแบบดีอาจมี

Config.Inventory = 'ox_inventory'

และ Bridge เช่น

bridge/inventory/

ทำให้เปลี่ยน Inventory ได้

แต่ถ้า Core Script ผูกกับ Inventory หนึ่งแบบโดยตรงและถูก Protect ผู้ใช้ไม่สามารถเข้าไป Rewrite Core Integration ได้ง่าย

ดังนั้น Inventory Support เป็นคำถามสำคัญก่อนซื้อ

㉖ Escrow Script เปลี่ยน Target ได้ไหม

หลักเดียวกัน

ควรดูว่า Script รองรับ

ox_target
qb-target
Custom Target

หรือไม่

ถ้ามี Bridge/Config ก็เปลี่ยนได้ง่าย

ถ้า Target Integration อยู่ใน Protected Core และไม่มี Option ก็อาจต้องขอ Developer เพิ่ม Support

㉗ Escrow Script ใช้ Database ได้ไหม

ได้

Resource ที่ถูก Protect ยังสามารถมี Server Logic เชื่อม Database ตามปกติ

ตัวอย่าง

Escrow Resource
↓
oxmysql
↓
MySQL/MariaDB

ผู้ซื้ออาจต้อง Import

install.sql

ตามคู่มือ

Asset Escrow ไม่ได้ Import Database Schema ให้โดยอัตโนมัติ

ถ้าลืม Import SQL ก็ยังสามารถเจอ

Table doesn't exist
Unknown column
SQL Error

ได้

㉘ Editable SQL File ถูก Protect ไหม

SQL Installation File ไม่ใช่สิ่งที่ควรถูกมองเหมือน Lua Core Code โดยอัตโนมัติ

โดยทั่วไป Developer ต้องจัด Package ให้ผู้ใช้สามารถ Import Database Schema ที่จำเป็นได้

ก่อนติดตั้งควรมองหา

install.sql
database.sql
migration.sql

หรือ Installation Documentation

ถ้า Script ต้องใช้ Database แต่ไม่มีข้อมูล SQL ที่จำเป็น ควรสอบถาม Developer แทนการเดา Schema เอง

㉙ Update Escrow Script ทำอย่างไร

สำหรับผู้สร้าง Asset เอกสาร Cfx.re รองรับการ Re-upload Asset เวอร์ชันใหม่ผ่าน Portal

สำหรับผู้ใช้งาน Resource วิธี Update จริงขึ้นกับช่องทาง Distribution และ Developer

หลักทั่วไปคือ

Backup
↓
อ่าน Changelog
↓
Download Version ใหม่
↓
ตรวจ Config Changes
↓
ตรวจ SQL Migration
↓
ตรวจ Dependencies
↓
Update Resource
↓
Test

อย่านำ Config เก่าทับเวอร์ชันใหม่ทันทีโดยไม่เปรียบเทียบ เพราะ Developer อาจเพิ่ม Option ใหม่

㉚ Update Escrow Script แล้ว Config หายทำอย่างไร

ก่อน Update ควร Backup

config.lua
locales/
bridge/
custom/

ที่แก้เอง

จากนั้นเปรียบเทียบ Config รุ่นใหม่กับรุ่นเก่า

ไม่ควร Copy config.lua เก่าทับไฟล์ใหม่แบบอัตโนมัติ

เพราะอาจเกิด

Config ใหม่มี 20 ค่า
Config เก่ามี 15 ค่า
↓
ทับด้วย Config เก่า
↓
5 ค่าใหม่หาย
↓
Script Error

ควร Merge เฉพาะค่าที่ Custom

㉛ Resource Escrow ใช้บนหลาย Server ได้ไหม

ตามเอกสาร Cfx.re Asset ที่เจ้าของดาวน์โหลดสามารถใช้กับ Server ที่ตนเองเป็นเจ้าของได้ภายใต้ระบบ Entitlement ที่เกี่ยวข้อง

แต่เรื่อง License ของ Resource ยังอาจมีเงื่อนไขจาก Developer หรือ Package เพิ่มเติม

ดังนั้นควรตรวจ

Seller Terms
Package Terms
Subscription
Cfx Entitlement

ก่อนนำไปใช้หลาย Server

อย่าสรุปสิทธิ์เชิงพาณิชย์จากการที่ Resource technically Start ได้เพียงอย่างเดียว

㉜ Asset Escrow สามารถขายแบบ Subscription ได้ไหม

ตามเอกสาร Cfx.re รองรับ Resource ที่ใช้ Subscription

แนวคิดคือ

Subscription Active
↓
มีสิทธิ์ใช้งาน

Subscription Expired
↓
Asset ถูกนำออกจากสิทธิ์ของผู้ใช้
↓
Resource ไม่สามารถ Start ต่อได้ตามระบบ

ดังนั้นหาก Script ที่เคยใช้ได้หยุดทำงานหลัง Subscription หมด ต้องตรวจสถานะการสมัครก่อนแก้ Code

㉝ Transfer Asset ไปบัญชีอื่นได้ไหม

สำหรับ Asset ที่ Developer สร้างใน Asset Escrow เอกสาร Cfx.re ระบุว่า ไม่รองรับการ Transfer Created Asset ไปยังบัญชีอื่น

การ Distribution ของ Escrowed Asset ใช้ระบบที่ Cfx.re รองรับ เช่น Package ผ่าน Tebex ตามขั้นตอนของระบบ

ดังนั้นการ Copy Folder จาก Server หนึ่งไปให้บัญชีอื่นไม่ได้แปลว่าจะมี Entitlement ใช้งาน Resource นั้น

㉞ ทำไม Copy Escrow Script จากเพื่อนมาแล้วเปิดไม่ได้

เพราะ Asset Escrow มีระบบ Entitlement

ถึงมีไฟล์ Resource ครบ

fxmanifest.lua
client/
server/
config.lua

แต่บัญชีหรือ Server Environment ที่ใช้งานไม่มีสิทธิ์ Asset Resource ก็อาจไม่ Start

ดังนั้น

มีไฟล์
≠
มีสิทธิ์ใช้

นี่เป็นความแตกต่างสำคัญระหว่าง Escrow Resource กับ Open Source Resource ทั่วไป

㉟ You lack the required entitlement คืออะไร

ถ้า Server ไม่มีสิทธิ์ที่จำเป็น อาจขึ้น

You lack the required entitlement

Cfx.re ระบุว่า Resource ที่พยายามรันบน Server ที่ไม่ได้รับอนุญาตจะไม่ Start และแสดง Error นี้

กรณีนี้ไม่ควร

  • แก้ Source

  • ลบ Escrow Files

  • เปลี่ยนชื่อไฟล์เพื่อหลบระบบ

  • หาเครื่องมือถอด Protection

ต้องแก้เรื่องสิทธิ์ของ Asset, Account หรือการซื้อ Resource ให้ถูกต้อง

หัวข้อถัดไปจะเจาะ Error นี้โดยเฉพาะ

㊱ เปลี่ยนชื่อ Escrow Resource ได้ไหม

ควรระวังมาก

นอกจากเรื่อง Escrow แล้ว Resource อาจถูกอ้างด้วย

dependencies
exports
events
@resource/file

ตัวอย่าง

dependency 'my_resource'

ถ้า Rename เป็น

my_resource_new

Integration อื่นอาจพัง

Paid Script หลายตัวกำหนดให้ใช้ Resource Name เดิม

ดังนั้นอย่า Rename Escrow Resource จนกว่าจะตรวจ Documentation

㊲ แก้ fxmanifest.lua ของ Escrow Script ได้ไหม

ต้องทำด้วยความระมัดระวัง

fxmanifest.lua มีข้อมูลสำคัญ เช่น

Scripts
Files
Dependencies
escrow_ignore

การเปลี่ยน

client_scripts
server_scripts
dependencies

แบบสุ่มอาจทำให้ Resource ไม่ทำงาน

โดยเฉพาะอย่า Comment Dependency เพียงเพื่อทำให้ Resource Start

เช่น

-- dependency 'ox_lib'

ถ้า Core Code ยังต้องใช้ ox_lib

สุดท้ายก็จะ Error ที่ Runtime

㊳ ลบ escrow_ignore ได้ไหม

สำหรับเจ้าของ Server ไม่ควรปรับ escrow_ignore โดยไม่มีเหตุผลและความเข้าใจ เพราะ Directive นี้เป็นส่วนหนึ่งของการกำหนดไฟล์ที่ Developer ตั้งใจไม่ให้ Escrow Protect

การเปลี่ยนรายการไม่ได้เป็นวิธี “ปลดล็อก” Protected Files ที่ได้รับการประมวลผลไปแล้ว

ถ้าต้องการแก้ไฟล์ที่ถูก Protect ต้องสอบถาม Developer ว่ามี

Editable Hook
Bridge
Config
API
Export

รองรับหรือไม่

㊴ Asset Escrow กับ Obfuscation เหมือนกันไหม

ไม่เหมือนกันทั้งหมด

Obfuscation

คือการทำ Source Code ให้อ่านหรือทำความเข้าใจยาก

Asset Escrow

เป็นระบบ Protection/Entitlement ของ Cfx.re สำหรับ Resource ที่รองรับ

Cfx.re ระบุว่าเมื่อใช้ Asset Escrow แล้ว ไม่จำเป็นต้อง Obfuscate Code ซ้ำเพื่อการปกป้องตามระบบ Escrow

ดังนั้น Developer ไม่ควรเพิ่มความซับซ้อนโดยไม่มีเหตุผลเพียงเพราะต้องการป้องกัน Source หลายชั้น

㊵ Escrow Script ทำ Server ช้ากว่า Open Source ไหม

ไม่ควรสรุปจากคำว่า Escrow เพียงอย่างเดียว

Performance ขึ้นกับ

Code Design
Loops
Database Queries
Network Events
Entity Handling
Framework Integration
NUI

มากกว่า

Script Escrow ที่ Optimize ดีอาจใช้ทรัพยากรต่ำกว่า Open Source Script ที่เขียนไม่ดี

เวลาวัดให้ใช้

resmon
Server Profiler
Database Profiling

แทนการเดาจากประเภท License/Protection

㊶ ซื้อ Escrow Script ควรดู Performance อย่างไร

ก่อนซื้อควรหา

  • Resmon Test

  • Server-side Performance

  • จำนวนผู้เล่นในการทดสอบ

  • Database Queries

  • Idle Usage

  • Usage Under Load

  • Community Feedback

ถ้ามี Demo Server ควรทดลอง Feature จริง

อย่าดู Screenshot ของ

0.00 ms

เพียงอย่างเดียวโดยไม่รู้ว่ากำลัง Idle หรือใช้งานจริง

㊷ ซื้อ Escrow Script ต้องดูอะไรบ้าง

ก่อนจ่ายเงินควรตรวจอย่างน้อย

Framework

ESX
QBCore
Qbox
Standalone

Dependencies

ox_lib
oxmysql
Inventory
Target
Voice

Editable Files

Config
Bridge
Locale
Functions

Protection

ไฟล์ไหน Escrow
ไฟล์ไหนแก้ได้

Database

SQL
Migration
Schema

Support

Bug Fix
Updates
Documentation
Response Channel

License

Subscription?
One-time?
ใช้กี่ Server?

สิ่งเหล่านี้สำคัญกว่าดู Feature List อย่างเดียว

㊸ Script ถูก Escrow มากเกินไปมีผลเสียอย่างไร

ถ้า Developer Protect แม้แต่ Integration ที่ Server Owner ต้องปรับบ่อย อาจเกิดปัญหา

เช่น

Inventory Integration
Notification
Framework Bridge
Target Integration

ถูกล็อกทั้งหมด

เมื่อ Server ใช้ระบบ Custom ก็แก้ไม่ได้

Resource เชิงพาณิชย์ที่ยืดหยุ่นจึงมักเปิดส่วนเหล่านี้ผ่าน

Config
Bridge
Hooks
Exports
Events

และ Protect เฉพาะ Core Logic

㊹ Open Source ดีกว่า Escrow เสมอไหม

ไม่

Open Source เหมาะเมื่อ

  • ต้อง Custom หนัก

  • มี Developer ดูแลเอง

  • ต้อง Audit Code

  • ต้อง Integration แบบพิเศษ

Escrow เหมาะเมื่อ

  • ต้องการ Resource สำเร็จรูป

  • Developer Support ดี

  • Config ครอบคลุม

  • Integration ที่ต้องการมีแล้ว

  • ไม่จำเป็นต้องแก้ Core

ควรเลือกตามความต้องการของ Server ไม่ใช่ตัดสินว่ารูปแบบหนึ่งดีกว่าเสมอ

㊺ Escrow Script เหมาะกับ Production Server ไหม

เหมาะได้ ถ้า Resource มีคุณภาพและ Support ดี

สิ่งที่ควรตรวจคือ

Stability
Update History
Compatibility
Support
Editable Integrations
Performance
Entitlement Model

ความเสี่ยงหลักคือ ถ้าเกิด Bug ใน Protected Core คุณต้องพึ่ง Developer มากกว่า Open Source Resource

ดังนั้น Vendor Quality มีความสำคัญมาก

㊻ อย่าพยายามถอดหรือ Bypass Asset Escrow

ถ้าต้องแก้ Feature ที่ถูก Protect แนวทางที่ถูกต้องคือ

ตรวจ Config
↓
ตรวจ Bridge
↓
ตรวจ Exports/Events
↓
อ่าน Documentation
↓
ติดต่อ Developer

ไม่ควรใช้เครื่องมือหรือวิธี Bypass Protection

นอกจากเรื่องสิทธิ์ของผู้พัฒนาแล้ว การแก้ไฟล์ Protected แบบไม่รองรับยังอาจทำให้ Resource เสียและไม่สามารถรับ Support ได้

㊼ วิธี Debug Escrow Script แบบเป็นระบบ

ใช้ Workflow นี้

ขั้นที่ 1

ตรวจ Resource Start

ensure my-script

ขั้นที่ 2

อ่าน Server Console

ขั้นที่ 3

ตรวจ F8

ขั้นที่ 4

ตรวจ Dependency

ขั้นที่ 5

ตรวจ Framework/Inventory/Target Version

ขั้นที่ 6

ตรวจ Config และ Bridge ที่แก้ได้

ขั้นที่ 7

ตรวจ Entitlement หากมี Error เรื่องสิทธิ์

ขั้นที่ 8

รวบรวม Error แล้วติดต่อ Developer หากปัญหาอยู่ใน Protected Core

วิธีนี้มีประสิทธิภาพกว่าการแก้ไฟล์แบบสุ่ม

㊽ ข้อมูลอะไรควรส่งให้ Developer เมื่อขอ Support

เตรียม

Resource Version
Server Artifact Version
Framework + Version
Inventory
Target
Dependencies
Error เต็มจาก Console
F8 Error
ขั้นตอนที่ทำให้ Error เกิด
Config ที่เกี่ยวข้อง

อย่าส่งเพียง

Script ใช้ไม่ได้

เพราะ Developer จะวิเคราะห์ Root Cause ได้ยาก

ถ้ามี Log ที่แสดง Error ตรง ๆ ให้ส่งข้อความนั้นด้วย

㊾ Checklist FiveM Asset Escrow

ก่อนซื้อ

  • Developer น่าเชื่อถือ

  • Framework รองรับ

  • Inventory รองรับ

  • Target รองรับ

  • Dependencies ชัดเจน

  • Editable Files เพียงพอ

  • Update/Support ชัดเจน

  • License/Subscription ชัดเจน

หลังดาวน์โหลด

  • Resource Folder ถูก

  • fxmanifest.lua มี

  • Dependencies ครบ

  • SQL Import แล้ว

  • Config ถูก

  • Resource Name ไม่ถูกเปลี่ยนมั่ว

ถ้า Error

  • ดู Server Console

  • ดู F8

  • ตรวจ Dependency

  • ตรวจ Version Compatibility

  • ตรวจ Entitlement

  • ตรวจ Editable Bridge

  • ติดต่อ Developer หาก Error อยู่ Protected Core

ตอน Update

  • Backup Config

  • อ่าน Changelog

  • ตรวจ SQL Migration

  • ตรวจ Dependency Changes

  • Merge Config

  • ทดสอบก่อน Production

㊿ วิธีเลือก Escrow Script ที่ดี

Resource ที่น่าใช้ไม่ควรมีเพียง Feature เยอะ

ควรมอง Architecture ด้วย

ตัวอย่าง Resource ที่ดูแลระยะยาวง่ายมักมี

Protected Core
+
Editable Config
+
Framework Bridge
+
Inventory Bridge
+
Target Bridge
+
Documented Exports/Events

ทำให้ผู้พัฒนายังสามารถปกป้อง Core Code ได้ ขณะที่ Server Owner มีพื้นที่ Custom ที่เพียงพอ

ถ้า Resource ล็อกทุกอย่างและไม่มี Config หรือ Integration Hooks การนำไปใช้กับ Server ที่ Custom สูงจะยากมาก

สรุป FiveM Asset Escrow คืออะไร Script เข้ารหัสทำงานอย่างไร

FiveM Asset Escrow คือระบบของ Cfx.re สำหรับ ปกป้อง Code และ Asset บางประเภทของ Resource พร้อมควบคุมสิทธิ์ในการใช้งานผ่าน Entitlement

ไฟล์ที่ระบบปัจจุบันรองรับสำหรับ Asset Escrow รวมถึง

Lua
YFT
YDD
YDR

และ Developer สามารถกำหนดไฟล์ที่ไม่ต้องถูก Protect ด้วย

escrow_ignore {
    'config.lua',
    'locales/*.lua'
}

จึงสามารถสร้าง Resource แบบ

Core Code
→ Protected

Config / Locale / Bridge
→ Editable

ได้

เจ้าของ Server ควรเข้าใจว่า Escrow Script ยังมี Dependency, Framework, Database, Start Order และ Configuration เหมือน Resource ปกติ ดังนั้น Script ไม่ทำงานไม่ได้แปลว่า Encryption เสียเสมอไป

ถ้าพบ

You lack the required entitlement

ให้ตรวจสิทธิ์ของ Asset และ Account ก่อน เพราะ Cfx.re ระบุว่า Server ที่ไม่มี Entitlement จะไม่สามารถ Start Resource นั้นได้

แนวทางของ comsiam คือก่อนซื้อ Paid Script ให้ตรวจให้ชัดว่าไฟล์ใดเปิดแก้ได้ โดยเฉพาะ Framework, Inventory, Target และ Notification Bridges เพราะจุดเหล่านี้มีผลต่อความสามารถในการ Custom Server ในอนาคตมากกว่าจำนวน Feature เพียงอย่างเดียว

สำหรับ Production Server comsiam แนะนำให้เลือก Escrow Resource จาก Developer ที่มี Documentation, Changelog และ Support ชัดเจน เพราะหาก Bug อยู่ใน Protected Core เจ้าของ Server จะไม่สามารถเข้าไปแก้ Source ได้เหมือน Open Source Resource และต้องพึ่งการแก้ไขจากผู้พัฒนาเป็นหลัก

Comments

Popular posts from this blog

FiveM ยังน่าเล่นไหม? Enhanced เปลี่ยน FiveM แค่ไหน

FiveM คืออะไร เล่นอย่างไร สำหรับมือใหม่ เริ่มต้นตั้งแต่ศูนย์

วิธีตั้ง Admin Permission ด้วย add_ace และ add_principal FiveM แบบละเอียด