Webhook ทั้งหมดอยู่ฝั่ง Server และถูกส่งผ่าน Queue เพื่อไม่ให้ HTTP request บล็อก Gameplay Thread

ตั้งค่า#

แก้เฉพาะไฟล์ config/server/discord_logs.lua

lua
Config.DiscordLogs.Enabled = true
Config.DiscordLogs.Webhooks.bank = 'https://discord.com/api/webhooks/...'
Config.DiscordLogs.Webhooks.jail = 'https://discord.com/api/webhooks/...'
Config.DiscordLogs.Webhooks.cases = 'https://discord.com/api/webhooks/...'
ห้ามย้าย Webhook ไป Shared Config
config/shared/* ถูก Client อ่านได้ แต่ config/server/discord_logs.lua โหลดเฉพาะ Server

Events ที่เชื่อมไว้#

bank_transferwelfare_transferwelfare_batchpersonnel_rankpersonnel_dismisscase_createdinmate_releasedmailbox_claimpolice_reportdev_reportagency_shop_purchaserollback_failure

Server API#

lua
exports['ks_police']:DiscordLog({
    event = 'police_report',
    source = source,
    title = 'Custom server log',
    description = 'รายละเอียด',
    fields = {
        { name = 'Action', value = 'Example', inline = true }
    }
})

Screenshot#

Event ที่เปิด Screenshot = true จะใช้ screenshot-basic ผ่าน Server bridge หาก Screenshot ล้มเหลวระบบยังส่งข้อความ Log ต่อโดยไม่บล็อก Gameplay

Queue / Retry#

  • Discord 429 เคารพ Retry-After
  • 5xx / Network failure ใช้ Exponential Retry
  • มี per-webhook pacing
  • Queue เต็มจะลด Priority งานที่ไม่สำคัญก่อน