00_setup.lua — เริ่มตรงนี้#

lua
Config.General = {
    Debug = false,
    Locale = 'th',
    Jobs = { OnDuty = 'police', OffDuty = 'offpolice' },
    AdminGroups = { admin = true, superadmin = true, dev = true }
}

Config.Features = {
    Overview = true,
    Dispatch = true,
    Search = true,
    Cases = true,
    Jail = true,
    Statistics = true
}

General ที่ตั้งได้#

ค่าตั้งอะไรผลลัพธ์
Debugเปิดข้อมูลช่วยตรวจปัญหาใช้ตอน DEV/Support; Production แนะนำ false
Localeภาษาของ resourceข้อความจะใช้ Locale ที่มีใน config/locales/
Jobs.OnDuty / OffDutyชื่อ ESX Job ตอนเข้าเวรและออกเวรสถานะตำรวจและเงื่อนไข On-duty/Off-duty จะอิงชื่อนี้
AdminGroupsESX group ที่เป็น Admin ของ nX Policeใช้กับ POLICE+, Admin Economy, Statistics Reset และส่วน Admin ที่คู่มือระบุ

Features — เปิด/ปิดระบบ#

Feature เป็นสวิตช์หลักของระบบและหน้าที่เกี่ยวข้อง ให้เปิดเฉพาะส่วนที่เซิร์ฟเวอร์ใช้งานจริง

กลุ่มFeatureผลเมื่อเปิด
ภาคสนามOverview, Dispatch, Search, QuickMenu, Countdown, Curfew, Squad, HelicopterCameraเปิด Dashboard, แจ้งเหตุ, ค้นตัว, เมนูด่วน, Countdown, Curfew, Squad และกล้องเฮลิคอปเตอร์ตามลำดับ
คดี/คุกCases, Jail, JailCard, JailEscape, JailAnnouncement, CaseScreenshotเปิดแฟ้มคดี, คุมขัง, บัตรลดเวลา, ระบบหลบหนี, ประกาศคุก และรูปคดี
จัดการManagement, Personnel, Ranks, Charges, JailLocations, EquipmentManagementเปิดหน้าจัดการ บุคลากร ยศ ข้อหา สถานที่คุมขัง และการจัดการอุปกรณ์
การเงินBank, Paycheck, Safe, AgencyShop, OnlineRewardsเปิดธนาคาร เงินเดือน ตู้หน่วยงาน ร้านค้า และรางวัลตามเวลาเข้าเวร
เสริมPlaypass, Statisticsเปิด Playpass integration และ Statistics/Ranking
Duty ไม่ใช่ Feature flag
ระบบเข้า/ออกเวรตั้งที่ Config.Duty ใน config/customer/01_police.lua จึงไม่ต้องสร้าง Config.Features.Duty เพิ่ม

config/customer — Gameplay / Policy#

ไฟล์ใช้ตั้งค่า
00_setup.luaGeneral / Features
01_police.luaDuty / Search / Cuff / Quick Menu / Countdown
02_dispatch.luaDispatch / Curfew / Squad / Helicopter Camera
03_cases_jail.luaCase policy / Jail / Escape / Jail Card / Screenshot
04_management.luaMailbox / Rank Permissions / Equipment Management
05_economy.luaBank / Welfare / Paycheck / Safe / Shop policy / Reward policy
06_services.luaReports / Announcements / Playpass / Statistics
07_ui.luaNotification / UI
08_integrations.luaAdvanced Integrations

Config.Cuff — กุญแจมือ / Item ปลด#

lua
Config.Cuff = {
    AutoUncuffOnDeath = true,
    Whitelist = {
        0, 1, 2, 20, 30, 31, 32, 33, 34, 35, 249,
        -- 'F6',
        -- 'T',
        -- 'ALT+K',
    },
    UnlockItem = {
        Enabled = false,
        Item = 'handcuff_key',
        Amount = 1,
        ConsumeOnUse = false,
        AllowSelfUse = true,
        RequireForPoliceUncuff = false
    }
}
ค่าความหมาย
AutoUncuffOnDeathtrue = เมื่อตายระบบปลดกุญแจมืออัตโนมัติ; false = ตายแล้วยังคงสถานะกุญแจมือ
Whitelistรายการปุ่มที่ยังกดได้ตอนถูกล็อคมือ: ใส่ FiveM Control ID เป็นตัวเลข หรือ Key Mapping เช่น F6/T/ALT+K เป็นข้อความในรายการเดียวกัน; UI ที่เชื่อมกับปุ่มนั้นสามารถใช้สิทธิ์จากปุ่มเดียวกันได้
UnlockItem.Enabledเปิด/ปิดไอเทมปลดกุญแจมือ
Item / Amountชื่อและจำนวน item ที่ต้องมี
ConsumeOnUsetrue = ใช้สำเร็จแล้วหักของ; false = ต้องมีของแต่ไม่หัก
AllowSelfUseอนุญาตผู้ที่กำลังถูก cuff ใช้ item ปลดตัวเอง
RequireForPoliceUncuffถ้า true ตำรวจต้องมี Unlock Item ก่อนใช้คำสั่งถอดกุญแจมือ

ค่าเริ่มต้น UnlockItem.Enabled=false และ RequireForPoliceUncuff=false จึงไม่เปลี่ยนการถอดกุญแจมือเดิมจนกว่าจะเปิดเอง

GPS Cutter — ConsumeOnUse#

lua
Config.Jail.Escape.GpsCutter = {
    Enabled = true,
    Item = 'gps_cutter',
    Amount = 1,
    ConsumeOnUse = true
}

ConsumeOnUse=true = ใช้ GPS Cutter สำเร็จแล้วหัก item ส่วน false = ต้องมี item ตามจำนวนที่กำหนดแต่ใช้แล้วไม่หัก

Inventory และชื่อ Item
nX Police ไม่สร้าง item definition ให้อัตโนมัติ ต้องมี handcuff_key/gps_cutter หรือชื่อที่ตั้งไว้ใน Inventory จริงก่อนเปิดใช้ และ UnlockItem.Item ห้ามเป็นชื่อเดียวกับ GpsCutter.Item; Validator จะรายงาน error เมื่อเริ่ม resource

config/data — รายการที่แก้บ่อย#

ranks.luaยศ เงินเดือน และระดับ permission
charges.luaหมวดข้อหา + ข้อหา + evidenceItems
jail_locations.luaสถานที่คุมขัง / จุดตาย / จุดออก
shop_items.luaรายการสินค้าร้านหน่วยงาน
rewards.luaรางวัลตามเวลาเข้าเวร

Field หลักของไฟล์ Data#

ไฟล์ตั้งอะไรได้ผลลัพธ์
ranks.luagrade, name, label, salary, permissionกำหนดยศ ชื่อที่แสดง เงินเดือน และชุดสิทธิ์ของแต่ละยศ
charges.luaหมวดสี/คดีแดง และข้อหา fine, jail, ตัวคูณ, เพดาน, evidenceItems, jailLocationกำหนดค่าปรับ เวลาเจล Auto Charge และสถานที่คุมขังเริ่มต้นของข้อหา
jail_locations.luakey, name, coords, death, exit, radius, isDefaultกำหนดพื้นที่คุมขัง จุดกลับเมื่อเสียชีวิต จุดออก และคุกเริ่มต้น
shop_items.luaชื่อ/รายละเอียด/รูป/ราคา/จำนวนสูงสุดต่อครั้ง/น้ำหนักกำหนดสินค้าที่ซื้อได้ในร้านหน่วยงาน
rewards.luaminutes, item, label, amount, imageกำหนดรางวัลที่รับได้เมื่อเวลาเข้าเวรสะสมถึงที่กำหนด

UI ที่ลูกค้าตั้งได้#

ค่าหน้าตา/การแจ้งเตือนอยู่ที่ config/customer/07_ui.lua:

  • AllowWhileDead — true = ตายแล้วยังเปิด UI ที่เชื่อมกับ nX Police ได้; false = บล็อกการเปิดและปิด UI ของ nX Police ที่เปิดค้างเมื่อผู้เล่นตาย
  • Display.EnableAnimations — เปิด/ปิด Animation ของ Police Command
  • DispatchCases — อนุญาตตัวกรองประเภทเหตุและเปิด/ปิดเสียง; AlertSound เลือกเสียง GTA หรือไฟล์เสียงใน web/dist/assets/ พร้อมตั้ง Volume
  • Settings.MinFontScale / MaxFontScale / DefaultFontScale — กำหนดช่วงและขนาดตัวอักษรเริ่มต้น
  • JailHud.Position / OffsetX / OffsetY — เลือกตำแหน่ง HUD เจลและขยับเพิ่มเติม
  • JailHud.Custom — กำหนดตำแหน่ง CSS เองเมื่อต้องการจัดละเอียด
  • JailHud.AvoidOverlap — เปิดการหลบพื้นที่ UI ที่กำหนดและปรับระยะชดเชยที่เปิดให้ตั้ง

config/locales/th.lua — ข้อความ#

ข้อความภาษาไทยที่ลูกค้าปรับได้อยู่ใน config/locales/th.lua ให้แก้เฉพาะข้อความที่ต้องการแสดงผลตาม key ที่มีอยู่

Notification Provider#

เลือก internal หรือ external ที่ config/customer/07_ui.lua:

lua
Config.Notification = {
    Enabled = true,
    Provider = 'internal', -- internal / external
    Duration = 4500,
    External = { Resource = '', FallbackToInternal = true }
}

ถ้าใช้ external ให้เชื่อม Adapter ที่หน้า Integrations → External Notification เพื่อไม่ให้วิธีเชื่อมซ้ำอยู่ในหน้า Config

config/functions — Customer Hooks#

config/functions/client.lua และ config/functions/server.lua เป็นจุดสำหรับเชื่อม resource ภายนอกหรือ override พฤติกรรมที่เปิดให้ลูกค้าแก้ รายละเอียด signature และตัวอย่างอยู่ที่หน้า Integrations

ค่าที่ไม่อยู่ใน Customer Config#

ค่าที่ไม่ปรากฏใน Customer Config ไม่ต้องสร้างเพิ่มหรือย้ายกลับจาก Version เก่า ให้ใช้เฉพาะค่าที่คู่มือของ Version ปัจจุบันระบุ

ห้ามเก็บ Secret ใน Customer Config
ห้ามใส่ Webhook URL, Token, Password หรือ Secret ใน config/customer, config/data หรือ config/locales ให้ใช้ server.cfg หรือ Server Config ตามที่คู่มือระบุ