Tutorials & Guides
บทช่วยสอนและคำแนะนำที่เกี่ยวข้องกับทรัพยากร azael_playpass
Installation
บทช่วยสอนและคำแนะนำที่เกี่ยวกับการติดตั้ง (⚠️ เฉพาะเซิร์ฟเวอร์ที่ใช้งานบัญชี Discord และ Steam เป็น ตัวระบุหลัก หรือ ตัวระบุที่ผูก)
- ดำเนินการตามขั้นตอน ติดตั้งและใช้งาน ก่อน
- สร้างแอปพลิเคชันและบอท และ เพิ่มบอทไปยังเซิร์ฟเวอร์ ให้เรียบร้อย
- ไปทีไฟล์
server.cfgและเพิ่มรหัสด้านล่างนี้
set discord_guildId "your_guild_id"
set discord_botToken "your_bot_token"
- นำ ID ของเซิร์ฟเวอร์ ไปแทนที่
your_guild_id - นำ โทเค็นของบอท ไปแทนที่
your_bot_token - นำ ID ของบทบาท ที่อนุญาตให้เข้าร่วมเซิร์ฟเวอร์ได้ ไปกำหนดที่ allowedRoleIds ไฟล์
config/external_api.lua - ไปทีไฟล์
server.cfgและเพิ่มรหัสด้านล่างนี้ (หากมีอยู่แล้วให้ข้ามไปยังหัวข้อที่ 9)
set steam_webApiKey "your_api_key"
- ดำเนินการ ลงทะเบียนรับรหัส Steam Web API และนำรหัสไปแทนที่
your_api_key - เสร็จแล้ว! เริ่มต้นเซิร์ฟเวอร์ของคุณ และลองเชื่อมต่อกับเซิร์ฟเวอร์เพื่อทดสอบ
การกำหนดค่าในส่วนอื่นๆ ถูกตั้งค่าไว้เป็นค่าเริ่มต้นที่พร้อมใช้งานแล้ว อย่างไรก็ตาม แนะนำให้ศึกษารายละเอียดเพิ่มเติมเพื่อปรับแต่งให้เหมาะสมกับการใช้งานในแต่ละเซิร์ฟเวอร์
Discord Client
บทช่วยสอนและคำแนะนำเกี่ยวกับการใช้งานแอป Discord
เปิดใช้งานโหมดผู้พัฒนา
ขั้นตอนการเปิดใช้งานโหมดผู้พัฒนา ซึ่งจะแสดงรายการเมนูเฉพาะกับบุคคลที่ต้องการเขียนแอปโดยใช้ Discord API
- เปิดแอปพลิเคชัน Discord หรือเข้าใช้งานผ่านเว็บไซต์ Discord
- คลิกที่ไอคอน ฟันเฟือง () ที่มุมล่างซ้ายข้างชื่อผู้ใช้ เพื่อเข้าสู่ ตั้งค่าผู้ใช้ (User Settings)
- ในแถบด้านซ้ายให้เลื่อนลงไปที่หมวดหมู่ การตั้งค่าแอป (App Settings) แล้วคลิกที่เมนู ขั้นสูง (Advanced)
- ดำเนินการเปิดสวิตช์ โหมดผู้พัฒนา (Developer Mode)
- เสร็จแล้ว! ตอนนี้คุณสามารถคลิกขวาที่ ข้อความ, เซิร์ฟเวอร์, หรือ ช่องแชท เพื่อดูและ คัดลอก ID ได้

รับ ID ของเซิร์ฟเวอร์ (Guild ID)
ขั้นตอนการรับ ID ของเซิร์ฟเวอร์บน Discord หรือที่เรียกว่า (Guild ID)
- เปิดแอปพลิเคชัน Discord หรือเข้าใช้งานผ่านเว็บไซต์ Discord
- ที่แถบด้านซ้ายในรายการเซิร์ฟเวอร์ ให้ คลิกขวาที่ชื่อเซิร์ฟเวอร์ ที่คุณต้องการ
- เลือกเมนู “คัดลอก ID เซิร์ฟเวอร์” (Copy Server ID) เพื่อคัดลอกรหัสไปยังคลิปบอร์ด
คุณจำเป็นต้อง เปิดใช้งานโหมดผู้พัฒนา ก่อน จึงจะเห็นเมนู “คัดลอก ID เซิร์ฟเวอร์” (Copy Server ID)

รับ ID ของบทบาท (Role ID)
ขั้นตอนการรับ ID ของบทบาทบน Discord หรือที่เรียกว่า (Role ID)
- เปิดแอปพลิเคชัน Discord หรือเข้าใช้งานผ่านเว็บไซต์ Discord
- ที่แถบด้านซ้ายในรายการเซิร์ฟเวอร์ ให้ เลือกเซิร์ฟเวอร์ ที่คุณต้องการรับ ID ของบทบาท
- คลิกที่ชื่อเซิร์ฟเวอร์ด้านบนซ้ายเพื่อเปิดเมนู แล้วเลือก ตั้งค่าเซิร์ฟเวอร์ (Server Settings)
- ในแถบด้านซ้ายให้เลื่อนลงไปที่หมวดหมู่ บุคคล (People) แล้วคลิกที่เมนู บทบาท (Roles)
- จากรายการบทบาททั้งหมด ให้คลิกขวาที่บทบาทที่คุณต้องการรับ ID
- เลือกเมนู “คัดลอก ID บทบาท” (Copy Role ID) เพื่อคัดลอกรหัสไปยังคลิปบอร์ด
คุณจำเป็นต้อง เปิดใช้งานโหมดผู้พัฒนา ก่อน จึงจะเห็นเมนู “คัดลอก ID บทบาท” (Copy Role ID)

Discord Developer
บทช่วยสอนและคำแนะนำเกี่ยวกับ Discord สำหรับนักพัฒนา
สร้างแอปพลิเคชันและบอท
ขั้นตอนการสร้างแอปพลิเคชันและบอท เพื่อใช้งาน Discord API
- เข้าใช้งานเว็บไซต์ Discord Developer Portal และเข้าสู่ระบบด้วยบัญชี Discord ของคุณ
- คลิกปุ่ม “New Application” จะมีหน้าต่างป๊อปอัปชื่อ Create an application ปรากฏขึ้น
- กรอกชื่อแอปพลิเคชันและเลือกทีม (หากมี) จากนั้นคลิกเพือยอมรับ Terms of Service and Developer Policy
- คลิกปุ่ม “Create” เพื่อยืนยันการสร้างแอปพลิเคชันและบอท
คุณสามารถแก้ไข ชื่อ, คำอธิบาย และ อวาตาร์ ของแอปพลิเคชันได้ที่นี่เมื่อคุณสร้างเสร็จแล้ว

เพิ่มบอทไปยังเซิร์ฟเวอร์
ขั้นตอนการเพิ่มบอทไปยังเซิร์ฟเวอร์ของคุณ
- ลิงค์เชิญบอท
- โครงสร้างลิงก์
https://discord.com/oauth2/authorize?client_id=<APPLICATION_ID>&scope=bot%20applications.commands&permissions=1099511627780
https://discord.com/oauth2/authorize- เป็นโครงสร้างมาตรฐานของ Discord สำหรับการอนุญาตให้แอปพลิเคชัน OAuth2 (เช่น แอปพลิเคชันบอทของคุณ) เข้าสู่เซิร์ฟเวอร์ Discord
client_id=<APPLICATION_ID>- คือการระบุแอปพลิเคชันที่คุณต้องการอนุญาต คุณจะต้องแทนที่
<APPLICATION_ID>ด้วย ID ของแอปพลิเคชันเพื่อสร้างลิงก์คำเชิญที่ถูกต้อง
- คือการระบุแอปพลิเคชันที่คุณต้องการอนุญาต คุณจะต้องแทนที่
scope=bot%20applications.commands- ระบุว่าคุณต้องการเพิ่มแอปพลิเคชันนี้เป็นบอทพร้อมความสามารถในการสร้างคำสั่ง
permissions=1099511627780- บอทของคุณจะมีสิทธ์อนุญาตอะไรบ้างบนเซิร์ฟเวอร์ที่คุณกำลังเพิ่มเข้าไป โดยค่าเริ่มต้นจะมีสิทธิ์ดังต่อไปนี้
- Ban Members:
4 - Moderate Members:
1099511627776
- Ban Members:
- บอทของคุณจะมีสิทธ์อนุญาตอะไรบ้างบนเซิร์ฟเวอร์ที่คุณกำลังเพิ่มเข้าไป โดยค่าเริ่มต้นจะมีสิทธิ์ดังต่อไปนี้
- คัดลอก ลิงก์เชิญบอท จากแท็บด้านบน แล้ววางลิงก์ในแถบ URL ของเบราว์เซอร์
- ⚠️ อย่ากด Enter ทันที เนื่องจากคุณต้องแก้ไข
<APPLICATION_ID>ให้ถูกต้องก่อน
- ⚠️ อย่ากด Enter ทันที เนื่องจากคุณต้องแก้ไข
- เข้าใช้งานเว็บไซต์ Discord Developer Portal และเข้าสู่ระบบด้วยบัญชี Discord ของคุณ
- เลือก แอปพลิเคชัน ที่คุณได้ สร้างแอปพลิเคชันและบอท ไว้ก่อนหน้านี้
- ค้นหาหัวข้อ Application ID และคลิกปุ่ม “Copy” เพื่อคัดลอก ID ไปยังคลิปบอร์ด
- กลับไปยังลิงก์เชิญบอท แล้วแทนที่
<APPLICATION_ID>ด้วย ID ที่คุณคัดลอกมา จากนั้นกด Enter เพื่อเปิดหน้าการเชิญบอท - ในหน้าต่างที่เปิดขึ้น จะพบหัวข้อ เพิ่มไปยังเซิร์ฟเวอร์ ให้คุณ “เลือกเซิร์ฟเวอร์” ที่คุณต้องการเพิ่มบอทเข้าไป
- คลิกที่ปุ่ม ไปต่อ และจากนั้นคลิก อนุญาต เพื่อยืนยันการเพิ่มบอทเข้าสู่เซิร์ฟเวอร์ของคุณ
หากคุณไม่พบเซิร์ฟเวอร์ของคุณในเมนู "เพิ่มไปยังเซิร์ฟเวอร์" อาจเป็นเพราะคุณไม่มีสิทธิ์ "Manage Server" ภายในเซิร์ฟเวอร์นั้น

รับโทเค็นของบอท
ขั้นตอนการรับโทเค็นของบอทเพื่อใช้อ้างอิงสิทธิ์การใช้งาน Discord API
- เข้าใช้งานเว็บไซต์ Discord Developer Portal และเข้าสู่ระบบด้วยบัญชี Discord ของคุณ
- เลือก แอปพลิเคชัน ที่คุณต้องการใช้งานร่วมกับบอท
- ในแถบด้านซ้าย ให้คลิกที่เมนู “Bot” แล้วเลื่อนไปยังหัวข้อ Token
- คลิกที่ปุ่ม “Reset Token” จะมีหน้าต่างป๊อปอัปชื่อ Reset Bot's Token? ปรากฏขึ้น
- คลิกที่ปุ่ม “Yes, do it!” เพื่อยอมรับคำเตือนที่ป๊อปอัปชื่อแสดง “บอทของคุณจะไม่สามารถทำงานได้จนกว่าคุณจะอัปเดตโทเค็นใหม่ในโค้ดของบอท”
- คลิกที่ปุ่ม “Copy” เพื่อคัดลอกโทเค็นไปยังคลิปบอร์ด
- หากคุณดำเนินการ “Reset Token” บอทจะไม่สามารถทำงานได้ จนกว่าจะอัปเดตโทเค็นใหม่ในโครงการที่กำลังใช้งาน
- หากโทเค็นของบอทถูกเปิดเผยหรือมีความเสี่ยง ให้กลับมาที่หน้านี้และกด “Reset Token” เพื่อเพิกถอนโทเค็นเดิมทั้งหมด แล้วอย่าลืมอัปเดตโทเค็นใหม่ในโครงการของคุณ

เปิดใช้งานบอทส่วนตัว
ขั้นตอนการเปิดใช้งานบอทส่วนตัว เพื่อป้องกันไม่ให้บุคคลอื่นสามารถใช้งานหรือเพิ่มบอทของคุณไปยังเซิร์ฟเวอร์อื่นได้โดยไม่ได้รับอนุญาต
- เข้าใช้งานเว็บไซต์ Discord Developer Portal และเข้าสู่ระบบด้วยบัญชี Discord ของคุณ
- เลือก แอปพลิเคชัน ที่คุณได้ สร้างแอปพลิเคชันและบอท ไว้ก่อนหน้านี้
- ในแถบด้านซ้าย คลิกที่เมนู “Bot”
- ภายใต้หัวข้อ Public Bot ให้ปิดสวิตช์เพื่อปิดการใช้งาน บอทสาธารณะ
- คลิกที่ปุ่ม “Save Changes” จากป๊อปอัปที่แสดง เพื่อบันทึกการกำหนดค่า
จำเป็นที่จะต้องกำหนด Install Link ที่หน้า Installation เป็น None ก่อน จึงจะสามารถเปิดใช้งานบอทส่วนตัวได้
เมื่อปิดใช้งาน บอทสาธารณะ แล้ว บุคคลอื่นจะไม่สามารถใช้งานหรือเพิ่มบอทของคุณไปยังเซิร์ฟเวอร์ของตนเองได้

Ban Players
บทช่วยสอนและคำแนะนำเกี่ยวกับการ แบน, ยกเลิกแบน หรือตรวจสอบการแบนของผู้เล่น
ยกเลิกการแบน HWIDs (Player Tokens)
ในบางครั้ง การแบนด้วย HWIDs อาจส่งผลกระทบกับบัญชีอื่นที่เชื่อมโยงกันโดยไม่ตั้งใจ เช่น บัญชีที่ใช้คอมพิวเตอร์เครื่องเดียวกันหรือมี HWID Tokens ซ้ำกัน ระบบจะมองว่าบัญชีเหล่านั้นเกี่ยวข้องกับการกระทำผิด และทำการแบนพ่วงโดยอัตโนมัติ
HWIDs (Player Tokens) คืออะไร?
Player Tokens หรือที่นิยมเรียกกันว่า HWIDs คือรหัสเฉพาะที่ FXServer สร้างขึ้นจากข้อมูลฝั่งเครื่องของผู้เล่น (Client-side). อย่างไรก็ตาม แหล่งข้อมูลที่ใช้สร้าง Token ไม่ได้ถูกระบุไว้อย่างชัดเจนในเอกสารสาธารณะ จึงไม่ควรตีความโดยตรงว่าเป็น “ข้อมูลฮาร์ดแวร์” เสมอไป — HWIDs ถูกออกแบบมาเพื่อบ่งชี้ความเชื่อมโยงหรือความเป็นไปได้ที่ไคลเอนต์เดียวกันถูกใช้งาน มากกว่าจะเป็นการระบุฮาร์ดแวร์จริงโดยตรง
Player Tokens จะมีความเฉพาะเจาะจงกับแต่ละเซิร์ฟเวอร์เท่านั้น จึงไม่สามารถนำไปใช้ตรวจสอบหรือบังคับใช้การแบนแบบ Global ได้โดยตรง
ตัวอย่างสถานการณ์
- บัญชี A (
443334508020891658) ถูกแบนด้วยเหตุผลการใช้งานผิดกฎ → HWID Tokens ของบัญชีนี้ถูกบันทึกไว้ - บัญชี B (
845951838691393546) เชื่อมต่อเข้ามา และพบว่า HWID Tokens ตรงกับบัญชี A ตามจำนวนขั้นต่ำที่เซิร์ฟเวอร์กำหนด → จึงถูกแบนพ่วง
ขั้นตอนการยกเลิกแบน
- ตรวจสอบรายละเอียด HWIDs และการแบน เพื่อดูรายการ HWIDs ที่เกี่ยวข้องและเหตุผลการแบนของทั้งสองบัญชี
app baninfo 443334508020891658
app baninfo 845951838691393546
คำสั่ง app baninfo รองรับทั้ง <identifier> และ <banRefId> คุณสามารถใช้ตัวใดตัวหนึ่งเพื่อดึงข้อมูลรายละเอียดการแบนได้
- รีเซ็ต HWIDs ของบัญชีต้นทาง (บัญชี A) โดยระบบจะลบ HWID Tokens ที่ผูกกับบัญชี A ออกจากฐานข้อมูลการแบน
app resethwids 443334508020891658
- ยกเลิกการแบนบัญชี B เพื่อให้สามารถเชื่อมต่อเซิร์ฟเวอร์ได้ตามปกติ
app unbanuser 845951838691393546
ตรวจสอบการเชื่อมโยงบัญชีที่ถูกแบน (Ban Chain)
คุณสามารถตรวจสอบว่า identifier ของผู้เล่นถูกแบนและเชื่อมโยงกับบัญชีอื่น ๆ ที่ถูกแบนในฐานข้อมูลของเซิร์ฟเวอร์หรือไม่ ระบบจะตรวจสอบต่อเนื่องสูงสุด 20 ระดับ ผลลัพธ์จะแสดงรายการบัญชีที่ถูกแบนทั้งหมดจากผู้เล่นคนเดียวกัน
ตัวอย่างคำสั่ง SQL
- MySQL:
8.0.4ขึ้นไป - MariaDB:
10.6.4ขึ้นไป
SET @identifier_input = 'discord:443334508020891658';
WITH RECURSIVE ban_chain AS (
SELECT
p.identifier,
JSON_UNQUOTE(JSON_EXTRACT(p.ban_details, '$.associated_id')) AS associated_id,
p.bound_id,
p.ban_details,
p.last_hwids,
0 AS level
FROM azael_playpass p
WHERE p.status = 'banned'
AND (p.identifier = @identifier_input
OR JSON_UNQUOTE(JSON_EXTRACT(p.ban_details, '$.associated_id')) = @identifier_input)
UNION ALL
SELECT
p.identifier,
JSON_UNQUOTE(JSON_EXTRACT(p.ban_details, '$.associated_id')) AS associated_id,
p.bound_id,
p.ban_details,
p.last_hwids,
bc.level + 1 AS level
FROM azael_playpass p
INNER JOIN ban_chain bc
ON p.identifier = bc.associated_id
OR JSON_UNQUOTE(JSON_EXTRACT(p.ban_details, '$.associated_id')) = bc.identifier
WHERE p.status = 'banned'
AND bc.level < 20
)
SELECT DISTINCT
bc.identifier,
bc.associated_id,
bc.bound_id,
JSON_UNQUOTE(JSON_EXTRACT(bc.ban_details, '$.banned_by')) AS banned_by,
JSON_UNQUOTE(JSON_EXTRACT(bc.ban_details, '$.type')) AS ban_type,
JSON_UNQUOTE(JSON_EXTRACT(bc.ban_details, '$.reason')) AS ban_reason,
JSON_UNQUOTE(JSON_EXTRACT(bc.ban_details, '$.start_datetime')) AS ban_start,
JSON_UNQUOTE(JSON_EXTRACT(bc.ban_details, '$.end_datetime')) AS ban_end,
bc.last_hwids AS ban_hwids,
COALESCE(m.matching_hwids_count, 0) AS ban_hwid_tokens
FROM ban_chain bc
LEFT JOIN (
SELECT
bc.identifier AS id,
bc.associated_id AS assoc_id,
COUNT(DISTINCT j1.hw1) AS matching_hwids_count
FROM ban_chain bc
JOIN azael_playpass assoc
ON assoc.identifier = bc.associated_id
JOIN JSON_TABLE(bc.last_hwids, '$[*]' COLUMNS(hw1 VARCHAR(255) PATH '$')) AS j1
JOIN JSON_TABLE(assoc.last_hwids, '$[*]' COLUMNS(hw2 VARCHAR(255) PATH '$')) AS j2
ON j1.hw1 = j2.hw2
GROUP BY bc.identifier, bc.associated_id
) AS m
ON bc.identifier = m.id AND bc.associated_id = m.assoc_id
ORDER BY ban_start ASC;
คำอธิบายฟิลด์ผลลัพธ์
| ฟิลด์ | ความหมาย |
|---|---|
identifier | บัญชีหลักที่ถูกแบน |
associated_id | บัญชีที่ทำให้เกิดการแบนพ่วง |
bound_id | บัญชีที่ผูกกับบัญชี identifier |
banned_by | ผู้แบน |
ban_type | ประเภทการแบน |
ban_reason | เหตุผลการแบน |
ban_start | วันที่เริ่มแบน |
ban_end | วันที่สิ้นสุดการแบน (ถ้ามี) |
ban_hwids | รายการ HWID / Player Tokens ของบัญชีที่ถูกแบน |
ban_hwid_tokens | จำนวน HWID / Player Tokens ที่ถูกแบนและตรงกับบัญชีใน associated_id |
หมายเหตุ
- คำสั่งนี้ใช้ฟังก์ชัน JSON (
JSON_EXTRACT,JSON_UNQUOTE,JSON_TABLE) ดังนั้นต้องใช้ MySQL 8.0.4+ หรือ MariaDB 10.6.4+ - ความลึกสูงสุด
20สามารถปรับเปลี่ยนได้ตามความต้องการ associated_idคือบัญชีที่ทำให้เกิดการแบนพ่วงbound_idคืบัญชีที่ผูกเอาไว้กับบัญชีidentifierban_hwid_tokensใช้ระบุจำนวน HWID / Player Tokens ที่ตรงกับบัญชีในassociated_id