วิธี Restart Resource ผ่าน txAdmin FiveM โดยไม่ต้อง Restart ทั้ง Server

การ Restart Resource ผ่าน txAdmin เป็นวิธีที่ช่วยให้ผู้ดูแล FiveM Server รีโหลด Script, Map, Job, UI หรือระบบบางส่วนได้โดยไม่ต้อง Restart FXServer ทั้งเครื่องและไม่จำเป็นต้องทำให้ผู้เล่นทั้งหมดหลุดออกจาก Server

FiveM มีคำสั่งจัดการ Resource โดยตรง ได้แก่

start
stop
ensure
restart
refresh

และ txAdmin รองรับการ Start/Stop Resource รวมถึงการใช้ Console Commands โดย Admin ที่มี Permission เหมาะสม

ถ้าต้องการ Restart Resource ชื่อ my_resource สามารถใช้คำสั่ง

restart my_resource

ใน Server Console ได้

แต่ก่อน Restart Resource บน Production Server ต้องเข้าใจก่อนว่า Resource นั้นเป็นระบบทั่วไปหรือเป็น Core Resource เพราะการ Restart Framework, Inventory, Database Library หรือ Resource ที่มี State สำคัญขณะผู้เล่นออนไลน์อาจทำให้ระบบผิดปกติได้

① FiveM Resource คืออะไร

Resource คือชุดไฟล์ที่ FiveM Server สามารถ

  • Start

  • Stop

  • Restart

แยกออกจาก Server ทั้งระบบได้

Resource อาจประกอบด้วย

Client Scripts
Server Scripts
NUI
Config
Maps
Vehicles
Streaming Assets

และโดยทั่วไป Resource จะอยู่ใน Folder

resources/

ของ Server Data

Cfx.re ระบุว่า Resource สามารถ Start, Stop และ Restart ได้ระหว่างที่ Server ทำงานอยู่

② Restart Resource คืออะไร

Restart Resource หมายถึง

Stop Resource
↓
Start Resource ใหม่

โดยไม่ได้ Restart FXServer ทั้ง Process

ตัวอย่าง

restart policejob

จะ Restart Resource policejob

ขณะที่ Resource อื่นยังทำงานต่อ

③ Restart Resource ต่างจาก Restart Server อย่างไร

Restart Resource

กระทบเฉพาะ Resource ที่เลือกและ Dependency ที่เกี่ยวข้องตามพฤติกรรมของระบบ

Restart Server

กระทบ

FXServer
+
Resources ทั้งหมด
+
Players ทั้งหมด

ผู้เล่นจะหลุดและต้องเชื่อมต่อใหม่

ดังนั้นถ้าปัญหาอยู่ที่ Script ตัวเดียว การ Restart Resource มักเหมาะกว่าการ Restart ทั้ง Server

④ txAdmin Restart Resource ได้ไหม

ได้

txAdmin มีความสามารถจัดการ Server Resources และ Cfx.re ระบุว่า Feature หลักของ txAdmin รวมถึงการ Start/Stop/Restart Server Instance หรือ Resources

Admin สามารถจัดการผ่านหน้า txAdmin หรือผ่าน Server Console ตาม Permission ที่ได้รับ

⑤ ต้องมี Permission อะไร

Permission สำคัญสำหรับการจัดการ Resources คือ

commands.resources

Cfx.re ระบุ Permission นี้สำหรับ

Start/Stop Resources

ส่วนถ้าจะพิมพ์ Console Commands โดยตรง ต้องมี

console.write

ด้วยตามรูปแบบการจัดการที่ใช้

⑥ console.view กับ console.write ต่างกันอย่างไร

console.view

ดู Console

console.write

ส่ง Command เข้า Console

ดังนั้น Admin ที่เห็น Console ได้แต่พิมพ์

restart resource_name

ไม่ได้ อาจมีเพียง console.view

ให้ตรวจ Permission ก่อนคิดว่า txAdmin เสีย

⑦ เข้า txAdmin ก่อน Restart Resource

ถ้าเปิดจากเครื่อง Server เดียวกัน ใช้

http://localhost:40120

ตามค่า Default ของ txAdmin

จากนั้น Login ด้วย Admin Account ที่มี Permission เหมาะสม

ไม่ควรใช้ Account Root ร่วมกันทั้งทีมเพียงเพื่อ Restart Script

⑧ วิธี Restart Resource ผ่าน txAdmin Console

เข้า

Live Console

แล้วพิมพ์

restart RESOURCE_NAME

ตัวอย่าง

restart policejob

จากนั้นกด Enter

Cfx.re ระบุว่า restart [resourceName] จะ Restart Resource หาก Resource นั้นกำลังทำงานอยู่

⑨ ตัวอย่าง Restart Resource

สมมุติ Resource ชื่อ

my_garage

ใช้

restart my_garage

Console ควรแสดงข้อมูลเกี่ยวกับการ Stop และ Start Resource

จากนั้นตรวจว่ามี Error ใหม่หรือไม่

⑩ ensure ต่างจาก restart อย่างไร

คำสั่ง

ensure resource_name

มีพฤติกรรมว่า

  • ถ้า Resource กำลัง Running → Restart

  • ถ้า Resource หยุดอยู่ → Start

ส่วน

restart resource_name

จะ Restart Resource หาก Resource นั้นกำลัง Started อยู่

Cfx.re อธิบายความแตกต่างนี้ไว้ใน Server Commands โดยตรง

⑪ ใช้ ensure หรือ restart ดีกว่า

ถ้าต้องการแน่ใจว่า Resource ต้อง Running หลังคำสั่ง ใช้

ensure resource_name

สะดวกกว่าในหลายกรณี

แต่ถ้าต้องการสั่ง Restart Resource ที่รู้ว่ากำลังเปิดอยู่ ใช้

restart resource_name

จะสื่อ Intent ชัดกว่า

⑫ start ใช้ทำอะไร

คำสั่ง

start resource_name

ใช้ Start Resource ที่หยุดอยู่

ตัวอย่าง

start my_garage

ถ้า Resource Running อยู่แล้ว ไม่จำเป็นต้องใช้ Start ซ้ำเพื่อหวังให้ Reload

ให้ใช้ restart หรือ ensure ตามกรณีแทน

⑬ stop ใช้ทำอะไร

คำสั่ง

stop resource_name

ใช้หยุด Resource

ตัวอย่าง

stop my_garage

เหมาะเมื่อต้องการปิด Script ชั่วคราวเพื่อ Debug

แต่ Production Server ต้องคิดถึง Player State ก่อน Stop ระบบสำคัญ

⑭ refresh คืออะไร

หากเพิ่งเพิ่ม Resource Folder ใหม่ขณะที่ Server กำลัง Running สามารถใช้

refresh

เพื่อให้ FXServer Scan resources/ ใหม่และโหลด Resource Manifest ที่เพิ่มมา

จากนั้นจึงใช้

ensure new_resource

หรือ

start new_resource

เพื่อเปิด Resource ใหม่ได้

⑮ เพิ่ม Resource ใหม่ต้อง Restart Server ไหม

ไม่จำเป็นเสมอไป

กรณี Resource ปกติสามารถใช้

refresh
ensure resource_name

โดยไม่ต้อง Restart FXServer ทั้ง Server

นี่เป็นหนึ่งในข้อดีของ Resource Architecture ของ FiveM

⑯ Resource Name ต้องพิมพ์ตรงไหม

ต้องใช้ชื่อ Resource ที่ FXServer รู้จัก

ตัวอย่าง Folder

resources/[jobs]/policejob

ชื่อ Resource คือ

policejob

ดังนั้นใช้

restart policejob

ไม่ใช่ Full Path

⑰ Folder แบบ [category] คืออะไร

FiveM รองรับ Category Folder เช่น

resources/
└── [jobs]/
    ├── policejob/
    ├── ambulance/
    └── mechanic/

Cfx.re ระบุว่าสามารถ Start Category ได้ด้วยชื่อ Folder ในวงเล็บได้เช่นกัน

แต่ Production Server ควรระวังการ Restart Resource หลายตัวพร้อมกัน

⑱ Restart Category ได้ไหม

Server Commands รองรับ Category Names กับ Resource Commands เช่น restart

ดังนั้นใน Environment ที่จัด Folder เป็น Category สามารถจัดการเป็นกลุ่มได้ตาม Resource Structure

อย่างไรก็ตาม อย่า Restart Framework Group ทั้งชุดกลางเมืองโดยไม่ทดสอบ

⑲ Restart Resource แล้ว Player หลุดไหม

โดยทั่วไปการ Restart Resource ไม่ได้ Restart FXServer จึงไม่ทำให้ Player ทุกคน Disconnect แบบ Restart Server

แต่ Resource ที่ Restart อาจมีผลต่อ Player เช่น

  • UI หาย

  • Job State Reset

  • Vehicle System เปลี่ยน

  • Inventory Refresh

  • Script Event หยุด

  • Entity ถูกสร้างใหม่

ขึ้นอยู่กับ Code ของ Resource

⑳ Restart Resource แล้วข้อมูล Player หายไหม

ไม่ควรสรุปว่าไม่หายทุกกรณี

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

หาก Resource เก็บ State ไว้เฉพาะ Memory เช่น

Current Mission
Temporary Inventory State
Active Job State
Cached Player Data

Restart สามารถทำให้ State เหล่านั้นหายได้

จึงต้องอ่าน Documentation ของ Resource ก่อน Restart Production

㉑ Resource ที่ใช้ Database Restart ได้ไหม

ได้ทางเทคนิค แต่ต้องดูว่า Resource

  • Save Data ก่อน Stop หรือไม่

  • Reload Cache อย่างไร

  • เชื่อม Database ใหม่หรือไม่

  • มี Active Transactions หรือไม่

Resource ที่เกี่ยวกับ Economy ควร Restart ในช่วงที่ควบคุมได้

㉒ Inventory ควร Restart กลางเมืองไหม

ควรหลีกเลี่ยงถ้าไม่แน่ใจ

Inventory มักเกี่ยวข้องกับ

  • Player Items

  • Storage

  • Shops

  • Drops

  • Database

  • UI

การ Restart ตอน Player เปิด Inventory หรือกำลังทำ Transaction อาจสร้าง State ที่ไม่คาดคิด

Maintenance Window ปลอดภัยกว่า

㉓ Framework Core Restart ได้ไหม

Resource เช่น Core Framework เป็น Dependency ของ Resources จำนวนมาก

ตัวอย่างแนวคิด

Framework Core
↓
Jobs
↓
Inventory
↓
Garage
↓
Phone

หาก Restart Core Resource เพียงตัวเดียว Resources ที่พึ่งพามันอาจไม่ Reinitialize อย่างถูกต้อง

กรณีนี้ Restart Server ทั้งระบบอาจเหมาะสมกว่า

㉔ Database Library Restart ได้ไหม

ต้องระวังมาก

Resource ที่ทำหน้าที่เป็น Database Adapter หรือ Library อาจถูก Resources จำนวนมากใช้งาน

หาก Restart กลาง Production สามารถกระทบ Query และ Connection ของระบบอื่น

ควรตรวจ Dependency ก่อนทุกครั้ง

㉕ Voice Resource Restart ได้ไหม

ทำได้ในหลายระบบ แต่ผู้เล่นอาจพบ

  • เสียงหายชั่วคราว

  • Channel Reset

  • Radio Reset

  • Voice State Reload

หลัง Restart ควรให้ Staff ทดสอบ Voice จริง

㉖ Map Resource Restart ได้ไหม

Resource ที่ Stream Map/MLO สามารถ Restart ได้ แต่ Client ที่อยู่ในพื้นที่อาจเห็น

  • Object หาย

  • Map Reload

  • Collision เปลี่ยน

  • Player ตก

  • Interior หายชั่วคราว

จึงควรให้ผู้เล่นออกจากพื้นที่ก่อน Restart Map ขนาดใหญ่

㉗ Vehicle Resource Restart ได้ไหม

ถ้าเป็น Resource ที่ Stream Vehicle Models การ Restart อาจส่งผลต่อ Entities ที่ Spawn อยู่

ไม่ควร Restart Pack รถขนาดใหญ่ระหว่างมี Player ใช้งานโดยไม่ทดสอบ

สำหรับ Development Serverทำได้สะดวกกว่า Production

㉘ HUD Resource Restart ได้ไหม

HUD หรือ UI มัก Restart ได้ง่ายกว่า Core System

ตัวอย่าง

restart my_hud

หลัง Restart ให้ตรวจ

  • HUD กลับมาหรือไม่

  • NUI โหลดใหม่หรือไม่

  • Player Data ถูกส่งกลับไป UI หรือไม่

บาง HUD ต้อง Trigger Player Loaded Event ใหม่

㉙ Script แก้ไฟล์แล้ว Restart ได้เลยไหม

สำหรับ Server/Client Scripts หลายประเภทสามารถ Save Code แล้ว

restart resource_name

เพื่อ Reload Resource ได้

เหมาะมากกับ Development

แต่ถ้าเปลี่ยน Resource Manifest หรือเพิ่ม Resource ใหม่ อาจต้องใช้ refresh ตามกรณี

㉚ fxmanifest.lua เปลี่ยนแล้วทำอย่างไร

ถ้าแก้ Resource เดิมที่ FXServer รู้จักอยู่แล้ว ลอง Restart Resource ได้

แต่ถ้าเพิ่ม Resource Folder ใหม่ ให้ใช้

refresh

ก่อน

FiveM จะ Rescan Resource Manifests และทำให้ Resource ใหม่พร้อม Start

㉛ onResourceStop คืออะไร

FiveM มี Server Event

onResourceStop

ที่ถูก Trigger เมื่อ Resource กำลังหยุด

Developer สามารถใช้ Event นี้จัดการ Cleanup ก่อน Resource Stop ได้

ตัวอย่าง Concept

Resource Stop
↓
Cleanup
↓
Resource Start ใหม่

㉜ onResourceStart คืออะไร

หลัง Resource Start จะมี Event

onResourceStart

ให้ Resource สามารถทำ Initial Setup เมื่อเริ่มทำงานได้

เช่น

  • Initialize Data

  • Register Systems

  • Load Config

  • Print Status

㉝ onResourceStarting คืออะไร

FiveM ยังมี

onResourceStarting

ซึ่งเกิดก่อน Resource Start และสามารถถูก Cancel เพื่อป้องกัน Resource จากการ Start ได้

ถ้า Restart แล้ว Resource ไม่ Start ควรตรวจ Event และ Code ที่เกี่ยวข้องด้วย

㉞ Restart แล้วขึ้น Couldn't find resource

แสดงว่า FXServer หา Resource ไม่เจอ

ตรวจ

  • Folder Name

  • Resource Path

  • resources/

  • Category Folder

  • Manifest

  • พิมพ์ชื่อผิด

หากเพิ่งเพิ่มใหม่ ให้ลอง

refresh

ก่อน

㉟ Restart แล้ว Resource Failed to Start

ดู Console หา Error เช่น

  • Missing fxmanifest.lua

  • Syntax Error

  • Missing Dependency

  • Artifact Build ต่ำเกินไป

  • Config Error

  • Database Error

อย่า Restart ซ้ำหลายสิบครั้งโดยไม่อ่าน Error

㊱ Dependency คืออะไร

Resource หนึ่งสามารถพึ่ง Resource อื่น

ตัวอย่าง

garage
↓
ต้องใช้ framework
↓
ต้องใช้ database library

ถ้า Restart Dependency ผิดลำดับ Resource ด้านบนอาจทำงานไม่ได้

จึงควรรู้ Dependency Tree ของ Server

㊲ Restart Dependency ต้อง Restart Resource ลูกด้วยไหม

ขึ้นอยู่กับการออกแบบ Resource

บาง Resource สามารถ Reconnect กับ Dependency ได้เอง

บาง Resource ต้อง Restart ตาม

ตัวอย่างแนวคิด

restart database_library
↓
restart framework
↓
restart dependent_resources

แต่สำหรับระบบ Core ใหญ่ ๆ การ Restart Server อาจสะอาดกว่า

㊳ ensure ใน server.cfg คืออะไร

ใน server.cfg มักใช้

ensure resource_name

เพื่อให้ Resource ถูก Start ตอน Server Startup

ถ้า Resource Running อยู่แล้ว ensure สามารถ Restart Resource ได้ตามพฤติกรรม Server Command

㊴ restart ใน server.cfg ควรใช้ไหม

สำหรับ Startup Configuration ปกติควรใช้

ensure

มากกว่า เพราะเป้าหมายคือทำให้ Resource Running หลัง Server Start

restart เหมาะกับการควบคุม Resource ที่กำลังทำงานอยู่ใน Console มากกว่า

㊵ Restart Resource ผ่าน Console ปลอดภัยไหม

ปลอดภัยในแง่ที่เป็น Command ทางการของ FXServer

แต่ผลต่อ Game State ขึ้นอยู่กับ Resource ที่ Restart

จึงต้องแยก

Command ปลอดภัย
≠
Resource State ปลอดภัยทุกกรณี

ก่อนใช้บน Production ต้องรู้ Resource Behavior

㊶ ต้องประกาศให้ Player รู้ไหม

ถ้า Restart Resource ที่ Player ใช้อยู่ ควรแจ้ง

ตัวอย่าง

กำลัง Restart ระบบ Garage
กรุณางดนำรถเข้า-ออกชั่วคราว

ช่วยลด Transaction ที่เกิดขึ้นระหว่าง Restart

ไม่จำเป็นต้องประกาศทุกครั้งสำหรับ Resource Backend เล็ก ๆ ที่ไม่กระทบ Player แต่ต้องใช้ดุลยพินิจ

㊷ ควร Restart ตอนผู้เล่นน้อยไหม

สำหรับ Resource สำคัญควรทำในช่วง Player น้อย หรือ Maintenance Window

โดยเฉพาะ

  • Framework

  • Inventory

  • Garage

  • Housing

  • Banking

  • Database Resources

ลดผลกระทบและ Debug ง่ายกว่า

㊸ Restart แล้วต้องตรวจ Console ไหม

ต้อง

หลังใช้

restart resource_name

ให้ดู Console ว่ามี

  • Started

  • Error

  • Warning

  • Dependency Failure

  • Database Failure

หรือไม่

อย่าดูเพียงว่า Command ถูกส่งสำเร็จ

㊹ ตรวจว่า Resource Started แล้วอย่างไร

Console จะมีข้อมูล Startup ของ Resource และ FiveM มี Event onResourceStart เมื่อ Resource เริ่มทำงาน

จากนั้นควรทดสอบ Feature จริงด้วย

เช่น Restart Garage แล้วลอง

  • เปิด Garage

  • Spawn Vehicle

  • Store Vehicle

㊺ Restart Resource แล้ว CPU สูง

หลัง Restart Resource บางตัวอาจทำ Initialization เช่น

  • Load Data

  • Scan Entities

  • Query Database

  • Build Cache

ทำให้ CPU เพิ่มชั่วคราวได้

ถ้าสูงต่อเนื่องให้ตรวจ Script Performance และ Console

㊻ Restart Resource แล้ว Error Spam

ถ้า Error เริ่มทันทีหลัง Restart ให้หยุดและอ่าน Error แรก

อาจเป็น

Missing Dependency
Nil Value
Database Not Ready
Config Missing
Export Not Found

Error Spam หลายร้อยบรรทัดมักเป็นผลต่อเนื่องจาก Error หลักข้อแรก

㊼ เมื่อไรควร Restart Server แทน Resource

พิจารณา Restart Server ถ้า

  • เปลี่ยน Artifact

  • Update Core Framework ใหญ่

  • Update Resources จำนวนมาก

  • Dependency Tree ซับซ้อน

  • เปลี่ยน Server Config หลัก

  • Resource State เสียหลายระบบ

  • Restart Resource แล้วระบบไม่กลับปกติ

ไม่ควรฝืน Restart Resource ทีละตัวถ้าระบบทั้งเมืองเกี่ยวข้องกัน

㊽ Checklist ก่อน Restart Resource

ตรวจตามนี้

ชื่อ Resource ถูกต้อง
Resource กำลัง Running
รู้ Dependency
ไม่มี Transaction สำคัญ
มี Backup ถ้าแก้ Code/Config ใหญ่
Admin มี Permission
แจ้ง Player หากจำเป็น
เปิด Live Console
Restart Resource
ตรวจ Error
ทดสอบ Feature
Monitor Server

ช่วยลดความเสี่ยงบน Production

㊾ วิธี Restart Resource แบบสั้นที่สุด

ถ้า Resource ชื่อ

my_resource

เข้า txAdmin Live Console แล้วพิมพ์

restart my_resource

หากต้องการให้ Resource Running ไม่ว่าก่อนหน้านั้นจะหยุดหรือเปิดอยู่ ใช้

ensure my_resource

ถ้าเพิ่งเพิ่ม Resource ใหม่ ให้ใช้

refresh
ensure my_resource

นี่คือ Workflow พื้นฐานที่ควรจำ

㊿ สรุปวิธี Restart Resource ผ่าน txAdmin

การ Restart Resource ผ่าน txAdmin ช่วยแก้หรือ Reload ระบบบางส่วนโดยไม่ต้องทำให้ FiveM Server ทั้งหมด Restart

คำสั่งหลักคือ

restart resource_name

และ FiveM ยังมี

start resource_name
stop resource_name
ensure resource_name
refresh

สำหรับจัดการ Resources ตามสถานการณ์

จำความแตกต่างสำคัญนี้

restart
= Restart Resource ที่กำลังทำงาน

ensure
= ถ้าทำงานอยู่ให้ Restart
  ถ้าหยุดอยู่ให้ Start

refresh
= Scan Resource Folder ใหม่

txAdmin รองรับ Resource Management และ Permission ที่เกี่ยวข้องคือ commands.resources ส่วน Admin ที่ส่งคำสั่งผ่าน Live Console ต้องมีสิทธิ์ Console ที่เหมาะสมด้วย

สำหรับ Development Server การ Restart Resource เป็นเครื่องมือที่ใช้บ่อยมาก เพราะช่วย Reload Script ได้รวดเร็วโดยไม่ต้อง Restart เมืองทุกครั้ง

แต่สำหรับ Production Server comsiam แนะนำให้ระวังเป็นพิเศษกับ Core Framework, Inventory, Database Library, Banking, Housing และ Resource ที่เก็บ Player State เพราะการ Restart กลาง Transaction อาจทำให้ State ของระบบไม่สอดคล้องกัน

แนวทางที่ดีที่สุดคือ

แก้ Resource
↓
ตรวจ Dependency
↓
แจ้ง Player ถ้าจำเป็น
↓
Restart
↓
ดู Console
↓
ทดสอบ Feature
↓
Monitor

เมื่อเข้าใจความแตกต่างระหว่าง restart, ensure, start, stop และ refresh แล้ว ผู้ดูแล FiveM Server ของ comsiam จะสามารถแก้ไขและทดสอบ Resource ได้เร็วขึ้น โดยไม่จำเป็นต้อง Restart FXServer ทั้งเมืองทุกครั้ง

Comments

Popular posts from this blog

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

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

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