X3D Anti-Cheat (กันโปร)
BETA ราคาพิเศษ ร่วมทดสอบได้ · แอนตี้โกงเก็บหลักฐานก่อนแบน: Discord + ภาพหน้าจอ + แบน HWID + ล็อกบัญชี Steam/Discord + กัน event spam ด้วย 2 บรรทัด
ซื้อ / รับฟรีตั้งค่า configการติดตั้ง
1. ฐานข้อมูล
รัน install.sql ที่แถมมาในโฟลเดอร์ กับฐานข้อมูลเดียวกับที่ oxmysql ใช้
mysql -u <user> -p <database> < install.sql
หรือวางทั้งไฟล์ลง HeidiSQL / phpMyAdmin / DBeaver แล้วรัน · รันซ้ำได้ ไม่ทับข้อมูลเดิม resource ไม่สร้างตารางให้เอง ถ้าขาดจะเตือนใน console
2. วางไฟล์
วางโฟลเดอร์ x3d_anticheat ใน resources/ — ห้ามเปลี่ยนชื่อโฟลเดอร์ (resource อื่นอ้างชื่อนี้ตอน include)
3. server.cfg
ensure หลัง oxmysql / es_extended และก่อน resource ที่จะใช้ inject
ensure oxmysql
ensure es_extended
ensure x3d_anticheat
set x3d_license_x3d-anticheat "X3D-XXXXX-XXXXX-XXXXX-XXXXX"
set x3d_anticheat_webhook "https://discord.com/api/webhooks/..."
add_ace group.admin x3d_anticheat.admin allow
add_ace group.admin x3d_anticheat.bypass allow
ใช้ set ไม่ใช่ sets — sets จะส่งค่าไปถึงผู้เล่น
4. เริ่มเซิร์ฟเวอร์ แล้วตรวจว่าทำงาน
console ต้องขึ้น Anti-Cheat system fully initialized และ Captured NNN expected resources
เข้าเกมแล้วพิมพ์ ac status ในคอนโซล ต้องขึ้นจำนวนผู้เล่นที่ติดตามอยู่
ถ้าขึ้นกรอบแดง LICENSE CHECK FAILED = คีย์ยังไม่ผ่าน เซิร์ฟเวอร์ยังรันปกติ ผู้เล่นเข้าได้ แต่ระบบตรวจจับจะอยู่เฉย
5. ป้องกัน resource ของคุณ
2 บรรทัดใน fxmanifest.lua (ต้องเป็นบรรทัดแรกของแต่ละ block) ไม่ต้องแก้โค้ดเดิม
server_scripts { '@x3d_anticheat/core/server/inject.lua', 'server/main.lua' }
client_scripts { '@x3d_anticheat/core/client/inject.lua', 'client/main.lua' }
ตั้งค่า — config/
| ไฟล์ | แก้อะไร |
|---|---|
config.general.lua |
debug · กลุ่มแอดมิน · whitelist ผู้เล่น/resource · heartbeat · ภาพหลักฐาน |
config.detect.lua |
เปิด/ปิดตัวตรวจจับ · Config.Ban.AutoBan · เกณฑ์ความเร็ว/ระยะ · อาวุธต้องห้าม · ระเบิด |
config.connect.lua |
connect guard · บัญชีซ้ำ · Account Lock · คิว · global ban |
config.discord.lua |
ชื่อ/สี embed |
config.license.lua |
คีย์ |
functions/config.functions.server.lua |
hook onReady · onPunished · onAdminAction · onScreenshot |
ค่าเริ่มต้น = evidence-only: ตรวจจับ + เก็บหลักฐาน + แจ้งแอดมิน แต่ auto-ban เฉพาะ spawn รถ/อาวุธ · แก้เงิน · inject · event manipulation · เกราะเกิน เปิดเพิ่มได้ใน Config.Ban.AutoBan หลังดู log จริงแล้ว
Discord
ตั้ง webhook ผ่าน convar เท่านั้น (ผู้เล่นอ่านไม่ได้): x3d_anticheat_webhook หลัก + แยกห้องได้ _playercaptured _localbanned _adminactivities _suspiciousaction _globalbanned
ภาพหลักฐาน: ต้องมี screenshot-basic ค่าเริ่มต้น (Config.Screenshot.Upload = 'discord') แนบรูปเข้า embed ให้เอง ไม่เขียนลงดิสก์ ไม่ต้องเปิดพอร์ต รูปอยู่ใน RAM จนอัปโหลดเสร็จแล้วถูกทิ้ง
อยากเก็บคลังรูปไว้เองใช้ Upload = 'link' จะเขียนลง shots/ เป็นวงแหวน x3d_anticheat_shots_keep ไฟล์ (ค่าเริ่มต้น 500) และต้องตั้ง x3d_anticheat_shots_baseurl ให้เข้าถึงได้จากอินเทอร์เน็ต
ฟีเจอร์เสริม (ปิดไว้ตั้งแต่แรก)
| ฟีเจอร์ | เปิดที่ | ต้องมี |
|---|---|---|
| Account Lock | Config.AccountLock.Enabled |
steam_webApiKey + x3d_anticheat_discord_bottoken |
| บังคับเข้า Discord | Config.AccountLock.Guild.RequireMember |
GuildId + bot token |
| คิวตามยศ | Config.Queue.Enabled |
bot token + RolePoints |
| Global ban | Config.GlobalBan.Enabled |
ApiEndpoint + x3d_anticheat_globalban_apikey |
เฟรมเวิร์กอื่น / standalone — addons/framework/
core ไม่รู้จัก ESX เลย ทุกอย่างผ่าน Framework.* ใน addons/framework/server.lua + client.lua ตัวอย่าง standalone อยู่ท้ายไฟล์ทั้งสอง คัดลอกทับได้เลย ระบบแจ้งเตือนอยู่ที่ addons/notify/
คำสั่ง
/ac help · /ac status · /ac check <id> · /ac violations <id> · /ac ban <id> <days|0> <reason> · /ac unban <identifier> · /ac kick <id> <reason> · /ac banlist · /ac account <discordId|id> · /ac unbind … · /ac queue · /spectate <id>
Export
exports.x3d_anticheat:BanPlayer(src, reason, days, by)
exports.x3d_anticheat:RecordViolation(src, 'MY_TYPE', 'details', 'medium')
exports.x3d_anticheat:CaptureShot(src, 'tag')
exports.x3d_anticheat:GrantTeleportGrace(src, ms) -- ก่อนวาร์ปผู้เล่นโดยชอบ
exports.x3d_anticheat:RegisterVehicle(netId, src) -- / RegisterPed / RegisterObject
exports.x3d_anticheat:RegisterWeapon(src, weaponHash)
-- client
exports.x3d_anticheat:SetGodModeExempt(true) -- เข้า safezone ที่ให้ god mode
แก้ปัญหา
LICENSE CHECK FAILED—LICENSE_INVALIDคีย์ไม่ตรงสินค้า ·NETWORKต่อเซิร์ฟเวอร์ไลเซนส์ไม่ได้ ·LICENSE_IP_MISMATCHIP เปลี่ยน อัปเดตในหน้าบัญชีTable 'x3d_anticheat_xxx' is missing— ยังไม่ได้รันinstall.sql- god mode false positive — safezone ต้องเรียก
SetGodModeExempt(true) - รถ/NPC ของสคริปต์โดนลบ — ใส่ resource ใน
Config.Whitelist.ResourcesหรือRegisterVehicle/RegisterPed - ox_lib callback โดน rate limit —
exports.<res>:InjectSetRateLimit(200, 10000)ใน resource นั้น - Discord ไม่มีรูป — ต้อง
ensure screenshot-basic(โหมดlinkต้องมี baseurl ที่เข้าถึงจากภายนอกได้ด้วย)