Script FiveM ที่ Server RP ควรมีอะไรบ้าง จัด Server ให้ครบโดยไม่ลง Script เกินจำเป็น
การสร้าง FiveM RP Server ที่ดีไม่ได้หมายถึงการติดตั้ง Scripts ให้มากที่สุด แต่ต้องเลือก ระบบหลักที่ทำงานร่วมกันได้ เสถียร ปลอดภัย และมีหน้าที่ไม่ซ้ำกัน
Server ที่มี 300 Resources ไม่ได้ดีไปกว่า Server ที่มี 100 Resources เสมอไป
สิ่งสำคัญกว่าคือ Architecture
FXServer
↓
Database
↓
Framework
↓
Core Libraries
↓
Inventory / Target / Voice
↓
Character / Jobs / Vehicles
↓
Economy
↓
Phone / Housing / Businesses
↓
Activities
หาก Foundation ด้านล่างไม่เสถียร การเพิ่ม Police, Phone, Housing หรือ Robbery เข้าไปเรื่อย ๆ จะทำให้การ Debug ยากขึ้นมาก
บทความนี้จะแบ่งว่า Script FiveM แบบไหน จำเป็น, แบบไหน ควรมี และอะไร ควรเพิ่มทีหลัง
① FXServer คือฐานแรกของทุกอย่าง
สิ่งแรกไม่ใช่ Framework
แต่คือ
FXServer
ที่ทำงานเสถียร
ควรมี
Current Artifact
OneSync
server.cfg
txAdmin
Resource Management
Permissions
พร้อมก่อน
ถ้า Server Core มีปัญหา Script ด้านบนทั้งหมดก็ได้รับผลตามไปด้วย
② txAdmin ควรมีไหม
ควรใช้สำหรับการบริหาร FXServer
ช่วยในเรื่อง เช่น
Start / Stop Server
Restart Resources
Console
Player Management
Scheduled Restart
Server Monitoring
Recipe Installation
แต่ txAdmin ไม่ใช่ RP Framework
มันเป็น Server Administration Layer
③ OneSync สำคัญแค่ไหน
สำคัญมากสำหรับ Server RP ปัจจุบัน
Resources หลายตัวต้องใช้ OneSync โดยตรง เช่น Voice และระบบ Entity/Player Synchronization หลายประเภท
ดังนั้น Stack ควรเริ่มประมาณ
FXServer
+
OneSync
+
Framework
มากกว่าการพยายามปิด OneSync เพื่อให้ Script เก่าบางตัวทำงาน
④ Database เป็นระบบที่ควรมีตั้งแต่วันแรก
RP Server ต้องเก็บข้อมูลระยะยาว เช่น
Characters
Money
Jobs
Vehicles
Inventory
Businesses
Housing
Phone
ดังนั้นควรมี
MariaDB
+
Database Resource
ตั้งแต่เริ่ม Server
⑤ oxmysql ใช้ทำอะไร
oxmysql เป็นตัวกลางระหว่าง FiveM Scripts กับฐานข้อมูล
Architecture
FiveM Script
↓
oxmysql
↓
MariaDB
ใช้กับ Framework ปัจจุบันจำนวนมาก
ถ้า Database Layer มีปัญหา อาการอาจลามไปถึง Character, Inventory, Vehicles และ Phone พร้อมกัน
⑥ Framework คือ Script สำคัญที่สุดหรือไม่
สำหรับ RP Server ส่วนใหญ่ ถือว่าเป็นหนึ่งในระบบหลักที่สุด
Framework จัดการ
Player
Character
Money
Jobs
Groups
Metadata
Callbacks
Permissions
ตัวเลือกหลักที่พบได้ เช่น
ESX
QBCore
Qbox
ox_core
ไม่ควรลงหลาย Framework พร้อมกันโดยไม่มี Bridge Architecture ที่ออกแบบไว้
⑦ ESX เหมาะกับใคร
เหมาะกับ Existing ESX Ecosystem และ Server ที่มี Scripts เดิมจำนวนมาก
จุดแข็งคือ Resources และความรู้ใน Community มีจำนวนมาก
แต่ Server เก่าควรระวัง
Legacy Scripts
Old SQL
Old Inventory
Old MySQL Libraries
ที่อาจไม่ตรงกับ Stack ปัจจุบัน
⑧ QBCore เหมาะกับใคร
เหมาะกับ Server ที่ต้องการ QB Ecosystem
มี Resources เชื่อมกันจำนวนมาก เช่น
Jobs
Phone
Garage
Housing
Banking
Target
Vehicles
Official QBCore txAdmin Recipe ปัจจุบันยังติดตั้ง Resource ชุดใหญ่และ pma-voice เป็น Voice Foundation
⑨ Qbox เหมาะกับ Server ใหม่ไหม
เหมาะมากสำหรับ Server ที่ต้องการ Stack สมัยใหม่และ OX Integration
Current Qbox Stable Recipe ใช้ระบบ เช่น
qbx_core
qbx_vehicles
qbx_management
qbx_garages
qbx_hud
qbx_spawn
qbx_customs
ร่วมกับ
ox_lib
ox_target
oxmysql
ox_doorlock
ox_inventory
ox_fuel
และมี NPWD สำหรับ Phone
เป็นตัวอย่างที่ดีของการออกแบบ Server เป็น Layers
⑩ อย่าเลือก Framework จากจำนวน Script อย่างเดียว
ควรถามว่า
ทีมเขียน Framework ไหนได้?
Scripts ที่ซื้อมีอะไรแล้ว?
จะใช้ Inventory อะไร?
Phone อะไร?
Target อะไร?
ต้องการ Multi-job หรือไม่?
เพราะเปลี่ยน Framework หลังเปิด Server จริงยากกว่าการเปลี่ยน Job Script หลายเท่า
Script ระดับ Core ที่ควรมี
⑪ Core Library
Framework/Resources สมัยใหม่จำนวนมากมี Shared Library
ตัวอย่าง OX Stack ใช้
ox_lib
สำหรับ Utilities เช่น
Callbacks
Menus
Context
Input Dialog
Zones
Progress
Notifications
Utilities
ไม่ควรมี Libraries หลายตัวที่ทำหน้าที่ซ้ำกันมากเกินไปหากไม่จำเป็น
⑫ Inventory
RP Server เกือบทุกแห่งควรมี Inventory
ต้องรองรับอย่างน้อย
Items
Weight / Slots
Metadata
Stashes
Shops
Vehicle Storage
Weapons
ตัวอย่างระบบคือ
ox_inventory
qb-inventory
Framework-specific Inventory
Custom Inventory
เลือกเพียงระบบหลักเดียวเป็น Source of Truth
⑬ อย่ารัน Inventory สองตัว
ตัวอย่างที่ไม่ควรทำโดยไม่มี Compatibility Layer
qb-inventory
+
ox_inventory
เพราะอาจมี
Items สอง State
Weapons สองระบบ
Stashes สองระบบ
Save สองชุด
สุดท้ายเกิด Item Duplication หรือ Data Loss ได้
⑭ Target System
Target ช่วยให้ Player Interaction กับ
NPC
Player
Vehicle
Object
Zone
โดยไม่ต้องวาง Marker และ Press E เต็มเมือง
ตัวอย่าง
ox_target
qb-target
ถ้าใช้ Qbox + OX Stack ox_target เป็นตัวเลือกที่เข้ากันโดยตรง
⑮ Target จำเป็นทุก Server ไหม
ไม่จำเป็น
Server สามารถใช้
Marker
Text UI
Radial
Interaction Key
แทนได้
แต่ RP Server สมัยใหม่มักใช้ Target เพราะทำให้ Gameplay ดูสะอาดและ Contextual มากขึ้น
⑯ Voice System
RP ที่ไม่มี Voice ที่เสถียรแทบเล่นไม่ได้
ระบบหลักควรรองรับ
Proximity
Voice Modes
Radio
Calls
pma-voice ยังถูกใช้ใน Current Qbox และ QBCore Recipes
จึงเป็น Voice Foundation ที่พบได้มากใน Ecosystem ปัจจุบัน
⑰ Radio Script
pma-voice ไม่ใช่ Radio UI ทั้งระบบ
จึงมักต้องมี Resource เช่น
qbx_radio
qb-radio
หรือ Custom Radio
ที่จัดการ
Frequency
Radio Item
Job Permissions
UI
แล้วใช้ pma-voice ส่งเสียงจริง
⑱ Character System
Server RP ต้องมีระบบสร้าง/เลือก Character
ควรรองรับ
Identity
Firstname
Lastname
DOB
Gender
Character Slots
Character Selection
Framework/Multicharacter Script จะจัดการส่วนนี้
⑲ Spawn System
หลังเลือก Character ต้องรู้ว่าจะ Spawn ที่ไหน
เช่น
Last Location
Apartment
Hospital
Police Station
New Player Spawn
Current Qbox Stable Recipe มี qbx_spawn เป็นระบบ Spawn ของ Stack
⑳ Appearance / Clothing
ควรมีระบบ
Character Appearance
Clothing
Outfits
Barber
Tattoos
Uniforms
เพราะ RP Character Identity ขึ้นกับ Appearance อย่างมาก
ควรเลือก Clothing Script ที่ Framework และ Database Integration ตรงกันตั้งแต่ต้น
ระบบ Vehicle ที่ควรมี
㉑ Vehicle Ownership
Server ต้องรู้ว่า
รถคันไหนเป็นของใคร
อย่างถาวร
ข้อมูลสำคัญ เช่น
Owner
Plate
Model
Mods
Garage
Fuel
State
ควรอยู่ใน Vehicle Persistence Layer
㉒ Garage Script
Garage เป็นระบบพื้นฐานของ Economy RP
ควรรองรับ
Store Vehicle
Take Vehicle
Job Garage
Impound
Garage Transfer
Vehicle State
Current Qbox Stable Recipe มี qbx_garages
㉓ Vehicle Keys
ควรมีระบบ Ownership/Keys สำหรับ
Lock
Unlock
Engine
Give Keys
Temporary Keys
ไม่ควรให้ Player ทุกคนขับรถทุกคันได้โดยอัตโนมัติถ้า Server เน้น RP
㉔ Fuel System
ควรมี Fuel ถ้า Economy/Game Loop ต้องการ
เช่น
Fuel Consumption
Gas Stations
Refueling
Payment
Fuel State Persistence
Current Qbox Stable Stack ยังติดตั้ง ox_fuel
㉕ Vehicle Customs
ระบบแต่งรถควรมีหาก Vehicle เป็น Economy Item สำคัญ
เช่น
Engine
Brakes
Transmission
Suspension
Paint
Wheels
Performance Mods
Current Qbox Stable Recipe ใช้ qbx_customs
㉖ Vehicle Shop
ควรมีถ้า Players ซื้อรถ
ระบบควรรองรับ
Catalogue
Pricing
Ownership
Financing ถ้ามี
Dealer Job
Database Save
ไม่ใช่ Spawn Vehicle แล้วถือว่าเป็นเจ้าของ
Economy Systems
㉗ Banking
ควรมี Banking Layer ที่ชัดเจน
เช่น
Cash
Bank
Transfer
Company Account
Transaction History
Resources อื่นควรใช้ Banking/Framework API แทนการแก้เงินโดย Direct SQL แบบกระจัดกระจาย
㉘ Billing / Invoices
สำคัญสำหรับ Jobs เช่น
Police
Mechanic
Taxi
Businesses
Hospital
ควรมี Server Validation และ Transaction History
ไม่ควรให้ Client กำหนดยอดเงินและผู้รับแบบไม่มีการตรวจ
㉙ Shops
ควรมีระบบ Shops กลาง
เช่น
Convenience Store
Weapon Shop
Job Shop
Food Shop
Special Shop
ระบบ Shop ที่ Integrate Inventory เดียวกันจะดูแลง่ายกว่าทำ Shop Architecture แยกทุก Resource
㉚ Crafting
จำเป็นหรือไม่ขึ้นกับ Gameplay
ใช้สร้าง Loop เช่น
Materials
↓
Craft
↓
Products
↓
Use / Sell
เหมาะกับ
Mechanic
Restaurants
Illegal Activities
Manufacturing
แต่ไม่ควรใส่ Crafting ทุกอย่างจน Economy ไม่มี Money Sink
㉛ Business System
หากต้องการ Player-owned businesses ควรมี
Company Account
Employees
Grades
Boss
Products
Stock
Revenue
Invoices
แยก Organization State ออกจาก Personal Money ให้ชัด
ระบบ Job
㉜ Police Script
สำหรับ RP Server จริง Police มักเป็น Core Job
ควรมีอย่างน้อย
Duty
Cuff
Escort
Search
Vehicle Interaction
Evidence
Armory
Garage
Jail
Fines
Dispatch Integration
แต่ไม่จำเป็นต้องยัดทุก Feature ลง Resource เดียว
㉝ EMS / Ambulance
ควรรองรับ
Death State
Injuries
Revive
Treatment
Hospital
Duty
EMS Garage
Medical Items
Billing
Death System ต้อง Integrate กับ Inventory/Phone/Police ให้ถูก
㉞ Mechanic
Mechanic เป็นทั้ง Job และ Economy Sink ที่ดี
สามารถมี
Repair
Vehicle Diagnostics
Parts
Upgrades
Towing
Crafting
Billing
ช่วยดึงเงินออกจาก Economy แทนให้ Players ซ่อมรถฟรี
㉟ Taxi / Delivery
เหมาะเป็น Public Jobs ให้ผู้เล่นใหม่หาเงิน
ระบบควรเป็น Gameplay Loop เช่น
รับงาน
↓
ทำ Objective
↓
Server ตรวจ
↓
Reward
ไม่ใช่กดปุ่มแล้วแจกเงิน
㊱ Job Management
ควรมีระบบ
Hire
Fire
Promote
Demote
Duty
Grades
Boss Permissions
Current Qbox Stack มี qbx_management
ส่วน Framework อื่นก็มี Management/Society Resource ของตัวเอง
㊲ Multi-job จำเป็นหรือไม่
ไม่จำเป็นทุก Server
ถ้าต้องการให้ Character หนึ่งมี
Police
+
Mechanic
+
Business
หลาย Membership อาจต้องใช้ Multi-job Architecture
แต่ Permission และ Duty จะซับซ้อนขึ้น
จึงควรออกแบบตั้งแต่ก่อนเปิด Server
ระบบ Communication
㊳ Phone
Phone Script ควรมีถ้า Server เน้นชีวิตประจำวัน
ขั้นต่ำ
Calls
Messages
Contacts
Notifications
Phone Number
และสามารถเพิ่ม
Camera
Gallery
Social
Marketplace
Bank
Garage
Business Apps
ตาม Server
㊴ Qbox ใช้ Phone อะไรได้
Current Qbox Stable Recipe ติดตั้ง
NPWD 3.14.3
+
qbx_npwd
พร้อม Database Import และ Integration
ดังนั้นสำหรับ Qbox Server ใหม่ นี่เป็น Stack ที่ควรรู้จัก
㊵ Dispatch
Police/EMS Server ควรมี Dispatch
รองรับ
911 Calls
Crime Alerts
Units
GPS
Blips
Call Assignment
Phone, Police และ Robbery Resources ควรส่ง Alerts เข้า Dispatch กลางแทนสร้าง Notification System ของตัวเองทุก Script
Player Experience
㊶ HUD
HUD ควรแสดงข้อมูลที่จำเป็น เช่น
Health
Armor
Hunger
Thirst
Voice
Vehicle
Fuel
Seatbelt
อย่าใส่ข้อมูลมากเกินจนบดบัง Gameplay
Current Qbox Stable Recipe มี qbx_hud
㊷ Status System
ถ้า Server ใช้
Hunger
Thirst
Stress
ต้องกำหนด Gameplay Consequences ให้ชัด
ไม่ควรมี Bars เพียงเพื่อให้ HUD ดูสวย
ตัวอย่าง Hunger อาจเชื่อมกับ Food Economy
㊸ Notifications
ควรมี Notification System กลาง
เพื่อให้ Scripts ใช้ UX เดียวกัน
เช่น
Success
Error
Information
Warning
ไม่ควรมี Notification UI 5 แบบจาก Scripts คนละชุดถ้าแก้ได้
㊹ Progress Bar
Jobs จำนวนมากใช้
Repairing...
Crafting...
Searching...
Healing...
ควรใช้ระบบ Progress กลาง เช่นจาก Library/Framework เพื่อลด Resource ซ้ำ
㊺ Text UI
ยังจำเป็นสำหรับ Interaction บางจุด
เช่น
[E] Enter
[E] Clock In
แม้ Server จะใช้ Target
ไม่ควรบังคับทุก Interaction ต้องเป็น Target ถ้า Text UI เหมาะกว่า
㊻ Radial Menu
มีประโยชน์สำหรับ Actions ที่ใช้บ่อย
เช่น
Police Actions
Vehicle Actions
Animations
Job Actions
แต่ไม่จำเป็นสำหรับ Server ทุกแบบ
อย่าใส่ Radial Menu เพียงเพราะ Framework Pack มีมาให้
World Systems
㊼ Door Lock
Server RP ควรมี Door Lock สำหรับ
Police
Hospital
Businesses
Houses
Warehouses
Current Qbox Stable Recipe ติดตั้ง ox_doorlock
และสามารถผูก Access กับ Groups/Jobs ได้ตาม Integration
㊽ Weather และ Time Sync
ควรมี Resource กลางควบคุม
Time
Weather
Blackout
Time Scale
เพื่อไม่ให้ Clients เห็นเวลา/อากาศไม่ตรงกัน
ควรมีเพียงระบบหลักหนึ่งตัว
㊾ Population / Density
Server บางแห่งลด
NPC
Traffic
Ambient Peds
Parked Cars
เพื่อควบคุม Gameplay และ Performance
Current Qbox Stable Stack มี Density Resource สำหรับงานลักษณะนี้
㊿ Map / IPL
ต้องมีตามพื้นที่ที่ Server ใช้
เช่น
Police Station
Hospital
Prison
Businesses
Custom MLO
แต่ Maps เป็นหนึ่งในสิ่งที่ทำ Server หนักได้ง่าย
อย่าลง MLO 100 จุดเพียงเพราะ Download ได้
Housing และ Property
51. Housing จำเป็นไหม
ไม่จำเป็นในช่วงเปิด Server แรก ๆ
Housing เพิ่มระบบจำนวนมาก เช่น
Ownership
Keys
Storage
Furniture
Garage
Wardrobe
Shell/MLO
ถ้า Core Economy ยังไม่นิ่ง Housing จะเพิ่มความซับซ้อนเร็วมาก
52. Apartment
Apartment เหมาะกับ New Player Experience
เช่น
Character ใหม่
↓
ได้รับ Apartment
↓
มี Stash
↓
Wardrobe
↓
Spawn Point
แต่ถ้า Server Design ให้ทุกคนเริ่มจาก Motel/Shared Housing ก็ไม่จำเป็นต้องมี Apartment System ใหญ่
Crime Systems
53. Robbery
เช่น
Store Robbery
Bank Robbery
House Robbery
Jewelry
Armored Truck
ควรเพิ่มหลัง Police/Dispatch/Economy เสถียรแล้ว
ไม่ควรเปิด Heist จำนวนมากก่อนมีตำรวจพอ
54. Drugs
ระบบ Drugs มักประกอบด้วย
Gather
Process
Package
Sell
ต้อง Balance กับ
Police
Risk
Time
Economy
Money Laundering
ไม่เช่นนั้นจะกลายเป็น Money Generator ที่ทำลาย Economy
55. Gangs
Gang System ควรแยกจาก Employment Job เมื่อ Framework รองรับ
Player อาจเป็น
Job = mechanic
Gang = ballas
ได้
ไม่ควรใช้ Job Field เดียวเก็บทุก Role ใน Server
56. Prison
ควรมีถ้า Police Gameplay มีการจับและ Jail
Current Qbox Stable Recipe มี Prison Resource อยู่ใน Stack ปัจจุบัน
Prison ควรเชื่อม
Sentence
Inventory
Jobs
Escape
Release
ตามระดับ RP ที่ต้องการ
Administration และ Security
57. Admin Menu
จำเป็นมากสำหรับ Staff
ควรมี
Player Management
Teleport
Spectate
Kick/Ban
Vehicle Tools
Character Tools
Permissions
Current Qbox Stable Recipe มี qbx_adminmenu
QBCore ก็มี Admin Resource ของ Ecosystem
58. ACE Permissions
อย่า Hardcode Staff ด้วยชื่อ Steam/Character ภายใน Scripts จำนวนมาก
ควรใช้
ACE
Framework Permissions
Role/Group
เป็น Layer กลางตาม Architecture ของ Server
59. Logging
ควร Log Actions สำคัญ เช่น
Money
Inventory
Admin
Vehicle
Jobs
Businesses
Bans
High-value Transactions
แต่ Logging ไม่ควรเก็บทุก Event จนสร้าง Noise มหาศาล
เน้นข้อมูลที่ใช้ Investigate ได้จริง
60. Anti-cheat
Server RP ควรมี Security Strategy
แต่ Anti-cheat ไม่สามารถแทน Server-side Validation ได้
สิ่งสำคัญที่สุดยังคือ
Server validates money
Server validates items
Server validates jobs
Server validates position
Server validates rewards
ถ้า Script เชื่อ Client ทุกอย่าง Anti-cheat ตัวเดียวช่วยไม่ได้ทั้งหมด
61. Rate Limit Events
Events ที่แจก
Money
Items
Rewards
Vehicles
ควรมี
Cooldown
State Validation
Rate Limiting
ตาม Use Case
ป้องกันการ Spam Event แม้ Event นั้นถูกเรียกตาม Gameplay ปกติ
62. Backups
ไม่ใช่ Script Gameplay แต่จำเป็นมาก
ควร Backup
Database
server.cfg
Resources Config
Custom Scripts
Permissions
Important Assets
และต้องเคยทดสอบ Restore
Backup ที่ไม่เคย Restore ไม่ควรถูกเชื่อว่าใช้งานได้แน่นอน
Scripts ที่ควรเพิ่มภายหลัง
63. Racing
เพิ่มเมื่อมี Community ต้องการ
อย่าเพิ่ม Racing System ใหญ่หากผู้เล่นแทบไม่มีใครแข่ง
64. Casino
มีผลกับ Economy สูง
ต้องออกแบบ
Bet Limits
Money Source/Sink
Rewards
Abuse Prevention
อย่างรอบคอบ
65. Crafting ขั้นสูง
อย่าเริ่มด้วย Recipe หลายร้อยรายการ
เริ่มจาก Economy Loop สำคัญ แล้วเพิ่มตาม Gameplay
66. Advanced Businesses
เช่น
Restaurants
Nightclubs
Dealerships
Real Estate
Warehouses
Factories
ควรเพิ่มเมื่อ Population Server รองรับ
ร้าน 30 แห่งแต่มี Player 40 คนจะทำให้แต่ละธุรกิจไม่มี Activity
67. Pets และ Cosmetic Systems
ไม่ใช่ Core
เพิ่มเมื่อ
Server เสถียร
Performance เหลือ
Community ต้องการ
อย่าให้ Cosmetic Script แย่งเวลาพัฒนาระบบ Character Save หรือ Economy ที่ยังพัง
สิ่งที่ไม่ควรลงซ้ำ
68. Inventory สองระบบ
ไม่ควรมี Source of Truth สองตัว
69. Voice สองระบบ
อย่าใช้
pma-voice
+
Voice Resource อีกตัว
ควบคุม Voice พร้อมกัน
70. Target สองระบบ
Scripts บางตัวใช้ qb-target บางตัวใช้ ox_target ได้ผ่าน Bridge/Compatibility แต่ Server ควรเลือก Target หลักให้ชัด
71. Notification หลายระบบ
ถ้าแก้ Integration ได้ ควร Standardize
Notification
Progress
Context Menu
Text UI
ให้เหลือชุดหลัก
72. Garage หลายตัว
หาก
Garage A
Garage B
Vehicle Shop C
Impound D
ต่างคนต่างเก็บ Vehicle State อาจเกิดรถซ้ำหรือรถหาย
Vehicle Ownership/Persistence ต้องมี Source of Truth
ตัวอย่าง Minimal RP Server
ถ้าจะเริ่มเล็ก ๆ
FXServer
OneSync
txAdmin
MariaDB
oxmysql
Framework
Core Library
Inventory
Target
Voice
Character
Spawn
Appearance
HUD
Phone
Banking
Shops
Vehicles
Garage
Keys
Fuel
Police
EMS
Mechanic
Admin
Logging
Backups
เพียงเท่านี้ก็สามารถสร้าง RP Server ที่มี Core Loop ได้แล้ว
ไม่จำเป็นต้องเริ่มด้วย Scripts หลายร้อยตัว
ตัวอย่าง Qbox Stack
Current Qbox Stable Recipe เป็นตัวอย่างที่ดี
FXServer + OneSync
oxmysql
ox_lib
qbx_core
pma-voice
qbx_radio
ox_target
ox_inventory
ox_doorlock
ox_fuel
qbx_vehicles
qbx_garages
qbx_customs
qbx_management
qbx_hud
qbx_spawn
qbx_adminmenu
NPWD
qbx_npwd
แล้วจึงเพิ่ม
Police
EMS
Jobs
Housing
Businesses
Crime
ตาม Server Design
สิ่งสำคัญคือ Current Qbox Stable Recipe ตั้งใจใช้เฉพาะ Resources ที่ทีมถือว่า Stable และเอกสารยังเตือนว่าบาง Resources สำคัญที่ยังไม่ถึงระดับ Stable อาจไม่ได้ถูกรวมมา
ดังนั้น Recipe ไม่ใช่รายการว่า “RP Server ต้องมีแค่นี้”
มันคือ Base ที่นำไปสร้างต่อ
ตัวอย่าง QBCore Stack
Current QBCore Recipe มีแนวทาง
FXServer
↓
qb-core
↓
qb resources
↓
standalone resources
↓
voice
และรวม Resources ตัวอย่างมากมาย เช่น
qb-adminmenu
qb-multicharacter
qb-target
qb-vehicleshop
qb-apartments
qb-vehiclekeys
qb-mechanicjob
qb-phone
qb-weapons
qb-towjob
qb-spawn
qb-smallresources
พร้อม
pma-voice
qb-radio
นี่แสดงให้เห็นว่า Framework RP ที่สมบูรณ์ต้องมีหลาย Layer ไม่ใช่ qb-core ตัวเดียว
ควรลงกี่ Scripts
ไม่มีเลขตายตัว
แนวคิดที่ดีกว่าคือ
ทุก Resource ต้องตอบได้ว่า
"มันมีหน้าที่อะไร?"
ถ้าตอบไม่ได้หรือมี Resource อื่นทำงานเดียวกันอยู่แล้ว ควรพิจารณาไม่ติดตั้ง
Server ที่มี
80 Resources
ที่มี Architecture ชัดเจน อาจดูแลง่ายกว่า Server ที่มี
300 Resources
จาก Server Packs หลายแหล่ง
อย่าเริ่มจาก Server Pack ใหญ่โดยไม่รู้แต่ละ Resource
Server Pack อาจมี
Framework เก่า
Library เก่า
Inventory เก่า
Voice เก่า
Custom Fork
Backdoor
Duplicate Resources
การเริ่มจาก Base Recipe ที่รู้แหล่งที่มาแล้วเพิ่มทีละระบบมัก Debug ง่ายกว่า
Install Script ทีละ Layer
Workflow ที่แนะนำคือ
① FXServer
② Database
③ Framework
④ Character
⑤ Inventory
⑥ Target
⑦ Voice
⑧ HUD
⑨ Vehicle
⑩ Economy
⑪ Jobs
⑫ Phone
⑬ Housing
⑭ Crime
⑮ Businesses
แต่ละ Layer ต้อง Test ผ่านก่อนขึ้น Layer ต่อไป
วิธีทดสอบ Server หลังลง Core Scripts
ทดสอบ
สร้าง Character
↓
Reconnect
↓
Character ยังอยู่
รับ Item
↓
Reconnect
↓
Item ยังอยู่
รับเงิน
↓
Reconnect
↓
เงินยังอยู่
ซื้อรถ
↓
เก็บ Garage
↓
Restart
↓
รถยังอยู่
เปลี่ยน Job
↓
Reconnect
↓
Job ยังอยู่
โทรหา Player
↓
เสียง Call ทำงาน
นี่สำคัญกว่าการเดินดูว่า UI สวยหรือไม่
Performance ต้องตรวจทุกครั้งที่เพิ่ม Script
ตรวจอย่างน้อย
Client Resmon
Server Hitch
Database Queries
Memory
Network
NUI
Entity Count
อย่ารอจนลง 200 Scripts แล้วค่อย Optimize
หลังเพิ่ม Resource ใหม่ให้ Benchmark ก่อนและหลัง
อย่าเชื่อคำว่า 0.00 ms อย่างเดียว
Script อาจ
Client Resmon ต่ำ
แต่ทำ
SQL Query หนัก
NUI Memory สูง
Network Event เยอะ
ได้
Performance ต้องวัดหลาย Layer
ทำ Staging Server
Production Server ควรมี
Development
หรือ
Staging
แยก
Flow
Download / Update Script
↓
Staging
↓
Test
↓
Backup
↓
Production
ไม่ควรให้ Production เป็นที่ทดลอง Script ใหม่
Update Dependency ก่อน Resource ลูกหรือไม่
ต้องดู Compatibility
ตัวอย่าง Stack
ox_lib
↓
ox_target
↓
ox_inventory
↓
Jobs
การ Update ox_lib อาจกระทบ Resources จำนวนมาก
จึงไม่ควร Update Core Dependencies แบบสุ่มเพียงเพราะมี Version ใหม่
Pin Version สำคัญ
ควรบันทึก
Framework Version
ox_lib Version
Inventory Version
Voice Commit
Phone Version
Database Schema
ที่ผ่าน Test
เมื่อ Server พังหลัง Update จะรู้ว่าอะไรเปลี่ยน
Script Paid กับ Script Free เลือกอย่างไร
อย่าใช้ราคาเป็นเกณฑ์เดียว
ตรวจ
Framework Support
Source Access
Escrow
Documentation
Support
Updates
Performance
Security
Migration
Free Script ที่เข้ากับ Stack อาจดีกว่า Paid Script ที่ต้อง Rewrite ครึ่งระบบ
Script ที่มี Source เปิดไม่ได้แปลว่าดีกว่าเสมอ
Open Source มีข้อดีเรื่อง
Audit
Customization
Portability
แต่ต้องมี Developer ดูแล
Premium Script อาจประหยัดเวลาได้ถ้า Vendor มี Support และ Integration ตรง
เลือกตามทรัพยากรทีม
Security สำคัญกว่าจำนวน Feature
Job Script ที่มี 100 Features แต่ Event แจกเงินโดยเชื่อ Client เป็นระบบที่ไม่ควรเปิด Production
ทุก High-value Action ต้องผ่าน
Client Request
↓
Server Validation
↓
Framework / Inventory
↓
Database
ไม่ใช่ Client เป็น Authority
Script List ที่แนะนำสำหรับ RP Server
ต้องมีหรือแทบขาดไม่ได้
FXServer / OneSync
Database
oxmysql หรือ DB Adapter
Framework
Character
Spawn
Inventory
Voice
Admin
ควรมีมาก
Target / Interaction
Appearance
HUD
Banking
Shops
Vehicles
Garage
Keys
Fuel
Phone
Radio
Job Management
Police
EMS
Logging
เพิ่มตาม Gameplay
Mechanic
Taxi
Delivery
Housing
Businesses
Crafting
Dispatch
Doorlock
Prison
Robbery
Drugs
Gangs
Racing
Casino
Custom Apps
เพิ่มเมื่อ Core เสถียรแล้ว
Advanced Businesses
Large MLO Packs
Pets
Cosmetics
Complex Minigames
Large Social Systems
ถ้าจะสร้าง Server ใหม่ควรเริ่มกี่ระบบ
เริ่มประมาณ Core Loop เดียวก่อน
ตัวอย่าง
Create Character
↓
หาเงิน
↓
ซื้ออาหาร
↓
ซื้อรถ
↓
ทำงาน
↓
คุยกับ Player
↓
เก็บ Progress
ถ้า Loop นี้ยังไม่เสถียร อย่ารีบเพิ่ม Heist 20 แบบ
สูตรเลือก Script ที่ดีที่สุด
ก่อนลง Resource ให้ถาม 8 ข้อ
① ใช้กับ Framework เราไหม?
② ใช้กับ Inventory เราไหม?
③ ใช้กับ Target เราไหม?
④ ใช้กับ Voice เราไหม?
⑤ Database Schema เป็นอย่างไร?
⑥ มี Public API ไหม?
⑦ Update แล้ว Custom Code จะหายไหม?
⑧ มี Script อื่นทำหน้าที่นี้อยู่แล้วไหม?
ถ้าตอบครบ โอกาสสร้าง Technical Debt จะลดลงมาก
สรุป Script FiveM ที่ Server RP ควรมีอะไรบ้าง
FiveM RP Server ที่ดีควรเริ่มจาก Foundation
FXServer
↓
Database
↓
Framework
↓
Core Libraries
↓
Inventory
↓
Voice
↓
Character
↓
Vehicles
↓
Economy
↓
Jobs
แล้วค่อยเพิ่ม Gameplay Layer เช่น
Phone
Police
EMS
Mechanic
Housing
Businesses
Robberies
Gangs
สิ่งสำคัญที่สุดคือ หนึ่งระบบควรมี Source of Truth ที่ชัดเจน
ตัวอย่าง
Inventory → ตัวเดียว
Voice → ตัวเดียว
Framework → ตัวเดียว
Vehicle Ownership → ระบบหลักตัวเดียว
Banking → API กลาง
ไม่ควรนำ Resources จาก ESX, QBCore, Qbox และ Server Packs หลายชุดมารวมกันเพียงเพราะแต่ละ Script ดูดี แล้วค่อยหวังว่า Bridge จะทำให้ทุกอย่างเข้ากันเอง
Current Qbox Stable Recipe เป็นตัวอย่างของ Stack แบบ Layered ที่ประกอบด้วย Qbox Core, OX resources, Voice, Vehicles, Garage, HUD, Admin, Phone และระบบพื้นฐานต่าง ๆ ขณะที่ Current QBCore Recipe ก็แสดงแนวคิดเดียวกันผ่าน qb-core พร้อม Ecosystem Resources และ pma-voice
แนวทางของ comsiam คือเริ่ม Server ใหม่ด้วย Core Scripts ให้น้อยที่สุดแต่ครบ Gameplay Loop จากนั้นเพิ่ม Resource ทีละตัว พร้อมทดสอบ Character, Inventory, Money, Vehicles และ Persistence ทุกครั้ง วิธีนี้อาจดูช้ากว่าการโยน Server Pack ใหญ่เข้าไปครั้งเดียว แต่แก้ปัญหาระยะยาวง่ายกว่ามาก
สำหรับ Production comsiam แนะนำให้มี Development/Staging Server, Database Backup และรายการ Version ของ Core Resources ทุกตัว ก่อน Update Framework, Inventory, Voice หรือ Phone เพราะ Script หลักเพียงตัวเดียวสามารถกระทบ Resources ลูกได้หลายสิบตัว
สุดท้าย Server RP ที่ดีไม่ได้วัดจากจำนวน Scripts แต่ดูจากว่า ทุกระบบทำงานร่วมกันได้หรือไม่ ผู้เล่นเข้าใจ Gameplay หรือไม่ Economy สมดุลหรือไม่ และ Staff สามารถดูแล Server ได้หรือไม่ เมื่อ Foundation ดี การเพิ่ม Content ในอนาคตจะง่ายกว่ามาก
Comments
Post a Comment