FiveM Minimap คืออะไร ต่างจาก Radar, Blip และ Map อย่างไร

FiveM Minimap คือแผนที่ขนาดเล็กที่แสดงบริเวณรอบตัวผู้เล่นระหว่างเล่น GTA V/FiveM โดยมักอยู่บริเวณมุมล่างซ้ายของหน้าจอ ใช้ดูถนน ทิศทาง ตำแหน่งผู้เล่น Blip จุดหมาย และเส้นทาง GPS โดย FiveM สามารถควบคุมการแสดง Radar/Minimap ผ่าน Native DISPLAY_RADAR.

สิ่งที่ทำให้หลายคนสับสนคือคำว่า Minimap, Radar, Map, GPS และ Blip ถูกพูดรวมกันบ่อย แต่จริง ๆ มีหน้าที่ต่างกัน

บทความนี้จาก comsiam จะอธิบายตั้งแต่ Minimap พื้นฐาน การเปิด–ปิด Radar, Zoom, Big Map, Blip, GPS Route ไปจนถึงการปรับตำแหน่งและแก้ปัญหา Minimap หายหรือผิดตำแหน่ง

① FiveM Minimap คืออะไร

Minimap คือแผนที่ขนาดเล็กที่ผู้เล่นเห็นระหว่าง Gameplay

ตัวอย่างข้อมูลที่ปรากฏได้ เช่น

ตำแหน่งผู้เล่น
ถนน
ทิศทาง
Blip
GPS Route
จุดหมาย
สถานที่สำคัญ
ผู้เล่น/NPC บางประเภท

FiveM ใช้ระบบ HUD/Map ของ GTA V และเปิดให้ Scripts ควบคุมหลายส่วนผ่าน Natives.

② Minimap กับ Radar เหมือนกันไหม

ในบริบท FiveM คำว่า

Minimap
Radar

มักถูกใช้เรียกองค์ประกอบเดียวกันหรือส่วนที่เกี่ยวข้องกันอย่างใกล้ชิด

Native ที่ใช้เปิดหรือปิด Minimap มีชื่อว่า

DisplayRadar(true)

Cfx.re เองใช้ DisplayRadar(false) ใน Tutorial เพื่อสาธิตการปิด Minimap.

ดังนั้นเวลาเจอคำว่า “Radar หาย” ใน FiveM หลายครั้งกำลังพูดถึง Minimap ที่หาย

③ Minimap ต่างจาก Main Map อย่างไร

จำง่าย ๆ

Minimap
= แผนที่เล็กระหว่างเล่น

Main Map
= แผนที่เต็มใน Pause Menu

Minimap เน้นพื้นที่ใกล้ผู้เล่น

Main Map ใช้ดูพื้นที่เมืองขนาดใหญ่กว่าและเลือกจุดหมายได้สะดวกกว่า

④ Minimap ต่างจาก HUD อย่างไร

HUD เป็นคำกว้างกว่า

HUD
├── Health
├── Armor
├── Money
├── Voice
├── Speedometer
└── Minimap

Minimap จึงถือเป็นองค์ประกอบหนึ่งของ Interface ขณะเล่นเกม ไม่ใช่ HUD ทั้งระบบ

⑤ Minimap ต่างจาก Blip อย่างไร

Minimap คือแผนที่

ส่วน Blip คือ Marker ที่วางบน Map/Minimap

เช่น

Minimap
└── Hospital Blip
└── Police Blip
└── Garage Blip
└── Bank Blip

FiveM มีรายการ Blip Sprites และ Native สำหรับสร้าง Blip ที่ Coordinates โดยตรง.

⑥ Blip คืออะไร

Blip คือ Marker หรือ Icon ที่แสดงตำแหน่งบน Map

เช่น

โรงพยาบาล
สถานีตำรวจ
อู่รถ
ธนาคาร
ร้านค้า
งาน
ผู้เล่น
รถ
NPC

FiveM มี ADD_BLIP_FOR_COORD สำหรับสร้าง Blip ที่พิกัด และสามารถปรับคุณสมบัติด้วยตระกูล SET_BLIP_*.

⑦ ตัวอย่างสร้าง Blip

local blip = AddBlipForCoord(
200.0,
200.0,
30.0
)

จากนั้นจึงตั้งค่า Icon, สี, Scale, Display หรือ Route ตามที่ Resource ต้องการ

ADD_BLIP_FOR_COORD ถูกออกแบบสำหรับสร้าง Blip ณ Coordinates ที่กำหนด.

⑧ Blip แสดงบนทั้ง Map และ Minimap ได้ไหม

ได้

SET_BLIP_DISPLAY มีค่าที่กำหนดว่า Blip จะแสดงใน Main Map, Minimap หรือทั้งสองอย่าง โดยเอกสาร Cfx.re ระบุว่าค่า 2 ใช้แสดงทั้ง Main Map และ Minimap.

ดังนั้น Blip ที่ไม่เห็นบน Minimapไม่ได้หมายความว่า Blip ไม่มีเสมอไป

อาจเป็น Display Mode

⑨ Blip เห็นบน Map แต่ไม่เห็นบน Minimap

ตรวจ

SET_BLIP_DISPLAY
SET_BLIP_AS_SHORT_RANGE
Distance

ก่อน

เพราะ Blip สามารถถูกตั้งให้แสดงเฉพาะบางบริบทได้.

⑩ SET_BLIP_AS_SHORT_RANGE คืออะไร

FiveM มี

SET_BLIP_AS_SHORT_RANGE

สำหรับกำหนดว่า Blip จะแสดงแบบ Short Range หรือไม่.

เหมาะกับจุดที่ไม่จำเป็นต้องเห็นจากระยะไกล เช่นร้านย่อยหรือจุด Interaction เฉพาะพื้นที่

⑪ Minimap เปิดหรือปิดด้วยอะไร

ใช้

DisplayRadar(true)

หรือ

DisplayRadar(false)

Tutorial อย่างเป็นทางการของ FiveM ใช้ DisplayRadar(false) เพื่อปิด Minimap.

⑫ ตัวอย่างเปิด Minimap

DisplayRadar(true)

เหมาะเมื่อ Server ต้องการให้ Radar แสดงตลอดเวลา

⑬ ตัวอย่างปิด Minimap

DisplayRadar(false)

สามารถใช้กับ Server ที่ต้องการ Gameplay แบบ

ไม่มี Minimap ตอนเดิน

หรือซ่อนระหว่าง Character Selection/Cinematic

Native นี้เป็นวิธีที่ Cfx.re ใช้ใน Scripting Tutorial โดยตรง.

⑭ ทำไม Server บางแห่งเปิด Minimap เฉพาะตอนขับรถ

เป็น Design ที่พบได้บ่อย

แนวคิดคือ

เดิน
→ Minimap OFF

ขึ้นรถ
→ Minimap ON

ตัวอย่าง Logic

local ped = PlayerPedId()

if IsPedInAnyVehicle(ped, false) then
DisplayRadar(true)
else
DisplayRadar(false)
end

การเปิด–ปิด Minimap ใช้ DISPLAY_RADAR.

⑮ Minimap เปิดตลอดได้ไหม

ได้

ถ้า Server ต้องการ

DisplayRadar(true)

ก็สามารถแสดง Minimap ระหว่าง Gameplay ได้

แต่ต้องตรวจว่าไม่มี Resource อื่นเรียก DisplayRadar(false) แข่งกัน

⑯ Minimap หายเกิดจากอะไรบ่อยที่สุด

เริ่มตรวจ

DisplayRadar(false)
Resource HUD
Minimap Resource
Vehicle HUD
Character Selection
Death Screen
Cinematic Script

ก่อน

โดยเฉพาะถ้า Map ใน Pause Menu ยังใช้งานได้ตามปกติ

⑰ ค้นหา DisplayRadar ใน Resources

ถ้า Minimap หายโดยไม่ทราบสาเหตุ ให้ค้นหา

DisplayRadar(

ใน Resources ที่เกี่ยวข้อง

เช่น

hud
speedometer
minimap
cinematic
multicharacter
deathscreen

Resource ตัวหนึ่งอาจปิด Radar หลัง Resource อื่นเพิ่งเปิด

⑱ Minimap หายตอนเดินแต่ขึ้นตอนขับรถ

นี่อาจเป็น Design ไม่ใช่ Bug

ตรวจ Code ว่ามี Logic

IsPedInAnyVehicle

ควบคุม DisplayRadar

ถ้ามี ก็เป็นระบบ Vehicle-only Minimap

⑲ Minimap หายตอนขึ้นรถแต่ตอนเดินมี

นี่มีแนวโน้มเป็น State Logic ผิด

เช่น

Enter Vehicle
→ DisplayRadar(false)

ทั้งที่ควรเป็น true

หรือมี Vehicle HUD Resource ตัวอื่นเข้ามาควบคุม Radar

⑳ Minimap หายหลังลงรถ

ตัวอย่าง Bug

ขึ้นรถ
→ Radar ON

ลงรถ
→ Radar OFF

แต่ Server ต้องการ Radar ON ตลอด

กรณีนี้แก้ Vehicle State Logic ไม่ใช่ติดตั้ง Map ใหม่

㉑ Minimap หายหลัง Respawn

ตรวจ Flow

Death
→ Radar OFF

Respawn
→ Radar ON

ถ้าขั้นสุดท้ายไม่ทำงาน Minimap จะถูกปิดค้าง

㉒ Minimap หายหลังเลือก Character

Multicharacter Resource อาจซ่อน HUD/Radar ระหว่างหน้าเลือกตัวละคร

หลัง Spawn ต้อง Restore Minimap ตาม Server Design

หากไม่ Restore ผู้เล่นจะคิดว่า Minimap พังทั้งที่ Radar ถูก Script ปิดไว้

㉓ Minimap หายหลัง Restart HUD Resource

ให้ตรวจ Initial State

ถ้า HUD Resource Start แล้ว Default เป็น

radar = false

และกำลังรอ Vehicle Event เพื่อเปิด Radar

ผู้เล่นที่อยู่ใน State อื่นอาจไม่เห็น Minimap จน Event นั้นเกิด

㉔ Minimap ค้างต้องแยกอะไรบ้าง

คำว่า “ค้าง” อาจหมายถึง

Map ไม่หมุน
Player Marker ไม่ขยับ
GPS Route ไม่เปลี่ยน
Zoom ไม่เปลี่ยน
Big Map ไม่ปิด
Blip ไม่อัปเดต

แต่ละอาการเป็นคนละ Layer

㉕ Radar Zoom คืออะไร

FiveM มี

SET_RADAR_ZOOM

สำหรับปรับระดับ Zoom ของ Radar และเอกสาร Cfx.re ระบุช่วง zoomLevel ตั้งแต่ 0 ถึง 200.

ตัวอย่าง

SetRadarZoom(100)

㉖ Zoom มากหรือน้อยหมายความว่าอย่างไร

ไม่ควรเดาพฤติกรรม Visual จากตัวเลขเพียงอย่างเดียว

ควรทดสอบ

0
50
100
150
200

ในเกมจริง

สิ่งที่ Documentation ยืนยันคือ Parameter มีช่วง 0–200.

㉗ Minimap Zoom เปลี่ยนตามรถได้ไหม

ได้ในเชิง Script Design

ตัวอย่าง

เดิน
→ Zoom A

รถช้า
→ Zoom B

รถเร็ว
→ Zoom C

โดยเรียก SET_RADAR_ZOOM ตาม State ที่ต้องการ.

แต่ไม่ควรเปลี่ยน Zoom ทุก Tick หากค่าไม่ได้เปลี่ยน

㉘ Big Minimap คืออะไร

FiveM มี Native

SET_BIGMAP_ACTIVE

สำหรับ Toggle สถานะ Big Minimap คล้ายพฤติกรรมใน GTA Online.

นี่ทำให้ Minimap ขยายใหญ่กว่าปกติ

㉙ ตัวอย่างเปิด Big Map

SetBigmapActive(true, false)

Native รับ Parameters สำหรับ

toggleBigMap
showFullMap

ตาม Cfx.re Reference.

㉚ ปิด Big Map อย่างไร

SetBigmapActive(false, false)

ใช้คืน Minimap กลับสู่ State ปกติตาม Logic ของ Resource

㉛ ตรวจว่า Big Map เปิดอยู่ได้ไหม

ได้

FiveM มี

IS_BIGMAP_ACTIVE

และเอกสารระบุว่าจะคืน true เมื่อ Minimap อยู่ในสถานะ Expanded.

จึงไม่จำเป็นต้องเก็บ Boolean เองเสมอไปหากต้องการตรวจ Engine State

㉜ Big Map ค้างหลังปล่อยปุ่มเกิดจากอะไร

ตรวจ

Input release
SetBigmapActive(false, ...)
Resource State

ถ้า Resource เรียกเปิดแต่ไม่ได้เรียกปิด Minimap สามารถค้างอยู่ใน Expanded State

㉝ Full Map ใน Minimap คืออะไร

SET_BIGMAP_ACTIVE มี Parameter showFullMap

เอกสาร Cfx.re ระบุว่าสามารถใช้ร่วมกับ Big Map State เพื่อควบคุมการเปิดเผยแผนที่เต็มใน Minimap.

ควรทดสอบ Combination ตาม UI ที่ Server ต้องการ

㉞ Minimap แบบสี่เหลี่ยมทำได้ไหม

FiveM มี

SET_MINIMAP_CLIP_TYPE

ซึ่ง Cfx.re ระบุว่าใช้เปลี่ยนรูปแบบ Clipping ของ Minimap ระหว่างลักษณะ Rectangular กับ Rounded.

จึงเป็น Native ที่เกี่ยวข้องกับ Custom Minimap Shape

㉟ Circular Minimap กับ Square Minimap ต่างกันอย่างไร

ต่างกันด้าน Presentation

Rounded/Circular
→ สไตล์ GTA-like

Rectangular/Square
→ ใช้พื้นที่ Map มากขึ้นในบาง HUD

แต่ต้องจัด Mask, Border และตำแหน่งองค์ประกอบที่เกี่ยวข้องให้ตรงกัน

㊱ SET_MINIMAP_COMPONENT_POSITION คืออะไร

FiveM มี Native

SET_MINIMAP_COMPONENT_POSITION

สำหรับ Override ข้อมูลตำแหน่งของ Minimap Components ที่ปกติอ้างจาก ui/frontend.xml.

สามารถกำหนด

Alignment
Position X
Position Y
Size X
Size Y

ของ Component ที่ระบุได้

㊲ Minimap ย้ายตำแหน่งได้ไหม

ได้

โดยใช้ SET_MINIMAP_COMPONENT_POSITION ตามองค์ประกอบที่ต้องการปรับ.

แต่ Custom Minimap มักมีหลาย Components จึงไม่ควรปรับเพียง Main Mask แล้วปล่อย Border/Blur อยู่ตำแหน่งเดิม

㊳ Minimap Border ไม่ตรงกับ Map เกิดจากอะไร

หากปรับ

minimap

แต่ไม่ได้ปรับ Component อื่นที่เกี่ยวข้อง

อาจเกิด

Map อยู่ซ้าย
Border อยู่ขวา
Mask ไม่ตรง
Blur เหลื่อม

ดังนั้น Custom Position ต้องตรวจทุก Component ที่ HUD ใช้

㊴ Aspect Ratio มีผลกับ Minimap ไหม

มีผลกับการจัดตำแหน่ง Custom UI

Cfx.re มี Cookbook สำหรับคำนวณตำแหน่งมุมซ้ายบนของ Minimap ใน Screen Coordinates และระบุว่าแนวทางนี้ใช้ช่วย Alignment กับ NUI/Screen-space Draws รวมถึงหลาย Aspect Ratios.

นี่สำคัญเมื่อวาง Custom HUD รอบ Minimap

㊵ ทำไม HUD รอบ Minimap เบี้ยวบน Ultrawide

ถ้า UI ใช้ Pixel Hard-code เช่น

left: 20px;
bottom: 180px;

โดยไม่คำนวณตาม Safe Zone/Aspect Ratio

ตำแหน่งอาจไม่ตรงกับ Minimap จริงบนจอกว้าง

Cfx.re มีตัวอย่างการคำนวณ Screen Coordinates ของ Minimap โดยอิง Aspect Ratio และ Safe Zone.

㊶ Custom Minimap กับ NUI ใช้ร่วมกันได้ไหม

ได้

เช่น

GTA Minimap
+
NUI Border
+
Custom Street Name
+
Compass

จึงต้อง Align NUI กับตำแหน่ง Minimap จริง

Cookbook ของ Cfx.re ถูกเผยแพร่โดยเฉพาะเพื่อช่วยหา Minimap Screen Position สำหรับการ Align กับ NUI หรือ Screen-space Elements.

㊷ Blip Route คืออะไร

Blip สามารถถูกกำหนดให้มี Route ไปยังจุดหมายได้ผ่าน

SET_BLIP_ROUTE

Cfx.re ระบุว่า Native นี้ใช้เปิดหรือปิดการแสดง Route สำหรับ Blip ที่กำหนด.

นี่คือเส้นทางนำทางที่ผู้เล่นมักเห็นบน Minimap

㊸ ตัวอย่างเปิด Route ไปยัง Blip

SetBlipRoute(blip, true)

จะเปิด Route สำหรับ Blip นั้นตาม Native.

㊹ ปิด Route อย่างไร

SetBlipRoute(blip, false)

ใช้เมื่อผู้เล่นถึงจุดหมายหรือยกเลิกงาน

㊺ ClearAllBlipRoutes คืออะไร

FiveM มี

CLEAR_ALL_BLIP_ROUTES

สำหรับล้าง Routes ที่ถูกตั้งผ่าน SET_BLIP_ROUTE.

มีประโยชน์หาก Mission/Job ต้อง Reset Navigation

㊻ GPS กับ Blip เหมือนกันไหม

ไม่

จำแบบนี้

Blip
= จุด Marker

Route
= เส้นทางไป Marker

Minimap
= พื้นที่ที่ใช้แสดงทั้งสองอย่าง

Blip สามารถมีหรือไม่มี Route ก็ได้.

㊼ Custom GPS Route ทำได้ไหม

FiveM มี Map Natives สำหรับ Custom GPS Routes เช่น ADD_POINT_TO_GPS_CUSTOM_ROUTE ซึ่งเป็นส่วนหนึ่งของชุด GPS/Map APIs.

เหมาะกับระบบที่ต้องการเส้นทางหลาย Points มากกว่า Route ไป Blip จุดเดียว

㊽ Minimap แสดง Police Blip ได้ไหม

ได้ หาก Resource สร้าง Blip สำหรับ Ped/Vehicle/Coordinate ที่ต้องการ

FiveM มี ADD_BLIP_FOR_ENTITY ซึ่งรองรับ Entities อย่าง Objects, Vehicles และ Peds.

จากนั้นสามารถกำหนด Visibility, Sprite หรือ Property อื่นผ่าน Blip Natives

㊾ Player Blip ควร Update Coordinates ทุก Tick ไหม

หาก Blip ถูก Attach กับ Entity ผ่าน

ADD_BLIP_FOR_ENTITY

ก็ไม่จำเป็นต้องสร้าง Blip Coordinates ใหม่ทุก Frameเพียงเพื่อให้ Marker ตาม Entity เพราะ Blip ถูกผูกกับ Entity อยู่แล้ว.

เลือก Blip Type ให้ตรงกับงานช่วยลด Script Logic ได้

㊿ Static Location ควรใช้ Blip แบบไหน

ถ้าเป็น

Hospital
Bank
Garage
Police Station

ใช้

ADD_BLIP_FOR_COORD

เหมาะกว่า เพราะตำแหน่งไม่ได้ผูกกับ Entity ที่เคลื่อนที่.

51. Moving Vehicle ควรใช้ Blip แบบไหน

ถ้าต้องการ Marker ติด Vehicle

ADD_BLIP_FOR_ENTITY

เป็นตัวเลือกที่ตรงกว่า เพราะรองรับ Vehicle Entity โดยตรง.

52. Radius Blip คืออะไร

FiveM มี

ADD_BLIP_FOR_RADIUS

สำหรับสร้างพื้นที่วงรัศมีรอบ Coordinates และเอกสารระบุว่า Radius Blip ไม่ได้สร้าง Sprite Icon เอง หากต้องการ Icon ต้องสร้าง Blip อีกตัวเพิ่ม.

เหมาะกับ Zone เช่น

Search Area
Gang Zone
Mission Area
Danger Zone

53. ทำไมมีวงกลมแต่ไม่มี Icon

ถ้าใช้เฉพาะ

ADD_BLIP_FOR_RADIUS

นี่อาจเป็น Behavior ตาม Design

Cfx.re ระบุว่า Radius Blip ไม่ได้สร้าง Blip Sprite จึงต้องเพิ่ม Coordinate Blip หากต้องการ Icon ด้วย.

54. SET_BLIP_ALPHA ใช้ทำอะไร

FiveM มี SET_BLIP_ALPHA สำหรับปรับ Alpha Channel ของสี Blip.

ใช้ทำ Blip โปร่งบางลงได้ เช่น Zone Background

55. Blip จางจนเหมือนหาย

ตรวจ Alpha

หากถูกตั้งใกล้โปร่งใส

Marker อาจมีอยู่แต่แทบมองไม่เห็น

จึงไม่ควรสร้าง Blip ซ้ำก่อนตรวจ Display/Alpha

56. Minimap Blip เยอะเกินไปควรทำอย่างไร

อย่าแสดงทุกอย่างตลอดเวลาโดยไม่จำเป็น

ใช้

Short Range
Category
Display Mode
Job/Permission
Distance

เพื่อควบคุมข้อมูล

FiveM มี SET_BLIP_AS_SHORT_RANGE, SET_BLIP_CATEGORY และ SET_BLIP_DISPLAY สำหรับควบคุมลักษณะการแสดง Blip.

57. Blip Category คืออะไร

FiveM มี

SET_BLIP_CATEGORY

เพื่อกำหนด Category Index ของ Blip และบาง Categories จะแสดงในรายการ Legend ของ Map ตามการตั้งค่า.

มีประโยชน์กับ Server ที่มี Blip จำนวนมาก

58. Custom Minimap ทำให้ FPS ตกได้ไหม

มีโอกาส แต่ต้องหาสาเหตุจริง

อาจมาจาก

HUD Loop
Position Update
Custom NUI
Compass
Street Name
Blip Update

มากกว่า GTA Minimap เพียงตัวเดียว

อย่าโทษ Radar ก่อนตรวจ Resource ที่กำลังทำงานร่วมกัน

59. Blip หลายร้อยตัวทำให้หนักไหม

จำนวน Entity/UI State ที่เพิ่มขึ้นย่อมเพิ่มสิ่งที่เกมและ Scripts ต้องจัดการ แต่ผลจริงขึ้นกับว่า Resource สร้าง/อัปเดตอย่างไร

ข้อผิดพลาดที่ชัดกว่าคือสร้าง Blip เดิมซ้ำทุก Tick แทนสร้างครั้งเดียวแล้วเก็บ Handle

60. อย่าสร้าง Static Blip ทุก Frame

ไม่ควรทำ

while true do
Wait(0)
AddBlipForCoord(...)
end

เพราะจะพยายามสร้าง Blips ใหม่ต่อเนื่อง

Static Blip ควรถูกสร้างครั้งเดียวตาม Resource Lifecycle แล้วเก็บ Handle

61. Blip ซ้ำหลัง Restart Resource เกิดจากอะไร

ตรวจ

Creation
Cleanup
Resource Start
Resource Stop

หาก Resource สร้าง Blip ใหม่ทุก Start แต่ Blip เก่าไม่ได้ถูกจัดการตาม Lifecycle อาจเห็น Marker ซ้ำ

62. Minimap หายแต่ Blip Route ยังทำงานได้ไหม

องค์ประกอบเหล่านี้เกี่ยวข้องกันแต่ไม่เหมือนกัน

Radar Visibility อาจถูกปิดด้วย DISPLAY_RADAR ขณะที่ Blip/Route State ยังถูก Script จัดการอยู่.

ดังนั้นการเปิด Radar กลับอาจทำให้ Route เดิมกลับมามองเห็นได้

63. Minimap อยู่ผิดตำแหน่งหลังเปลี่ยน HUD

ตรวจว่า HUD ตัวใหม่เรียก

SET_MINIMAP_COMPONENT_POSITION

หรือไม่

Native นี้สามารถ Override Position/Size ของ Minimap Component ได้.

ถ้าปิด HUD Resource แล้ว Minimap กลับตำแหน่งเดิม นี่เป็นเบาะแสสำคัญ

64. Minimap ใหญ่เกินหลังเปลี่ยน HUD

ตรวจทั้ง

SET_BIGMAP_ACTIVE
SET_MINIMAP_COMPONENT_POSITION

เพราะตัวแรกเปลี่ยน Big Minimap State ส่วนตัวหลังเปลี่ยน Component Geometry.

65. Minimap Zoom ผิดหลัง Restart Resource

ถ้า Resource เคยตั้ง

SET_RADAR_ZOOM

แล้วไม่มี Initialization ที่ถูกต้องหลัง Restart Zoom อาจไม่ตรงตาม Design

ควร Restore Zoom State เมื่อ Resource เริ่มทำงานใหม่.

66. Big Map เปิดค้างหลัง Restart ได้ไหม

ควรตรวจ Big Map State ด้วย

FiveM มี IS_BIGMAP_ACTIVE สำหรับตรวจว่า Expanded Minimap เปิดอยู่หรือไม่.

จากนั้น Resource สามารถ Reset State ตามที่ต้องการ

67. Custom Minimap ต้องใช้ ESX ไหม

ไม่

Native เช่น

DISPLAY_RADAR
SET_RADAR_ZOOM
SET_BIGMAP_ACTIVE
ADD_BLIP_FOR_COORD

เป็น FiveM/GTA APIs ไม่ได้ขึ้นกับ ESX.

ESX อาจเกี่ยวข้องเฉพาะ Blip/Route ที่ขึ้นกับ Job หรือ Player Data

68. Custom Minimap ต้องใช้ QBCore ไหม

ไม่จำเป็นเช่นเดียวกัน

Minimap/Radar เป็นระบบของ Game/FiveM

Framework จะเกี่ยวข้องเมื่อ Logic เช่น

Police-only Blips
Job Routes
Garage Locations
Gang Zones

ดึงข้อมูลจาก Framework

69. Police-only Blip ควรทำอย่างไร

แนวคิดคือ

ตรวจ Job
↓
ถ้า Police
→ Create/Show Blip

ถ้าไม่ใช่
→ Remove/Hide Blip

ไม่จำเป็นต้องสร้าง Blip ให้ทุกคนแล้วซ่อนด้วย CSS เพราะ Blip เป็น Game Map Element ไม่ใช่ NUI Element

70. Minimap ไม่ใช่ NUI เสมอไป

GTA Minimap/Radar เป็น Native Game UI

แต่ Custom HUD รอบ Minimap อาจเป็น NUI

จึงมี Architecture เช่น

GTA Minimap
+
FiveM Native Position
+
NUI Border
+
NUI Compass

ถ้า Border หายแต่ Map ยังอยู่ ให้ตรวจ NUI

ถ้า Map หายแต่ Border ยังอยู่ ให้ตรวจ Radar Native

71. Minimap Border มีแต่แผนที่ข้างในหาย

นี่เป็นอาการที่แยกได้ดี

NUI Border
= ทำงาน

GTA Radar
= ไม่แสดง

ให้ตรวจ DisplayRadar ก่อน

ไม่ต้องแก้ Border CSS

72. แผนที่มีแต่ Border หาย

กรณีตรงข้าม

Radar = ปกติ
NUI Custom Border = หาย

ให้ตรวจ HUD/NUI Resource

อย่าแก้ DisplayRadar

73. Square Minimap มี Map แต่ Mask เพี้ยน

ตรวจ

SET_MINIMAP_CLIP_TYPE
Minimap Components
Mask
Blur
Custom Border

เพราะ FiveM รองรับการปรับ Clip Type ของ Minimap โดยตรง.

74. Minimap บน 21:9 ควรทดสอบไหม

ควร

โดยเฉพาะ Custom Minimap ที่มี NUI Border หรือ HUD Elements รอบข้าง

Cfx.re Cookbook สำหรับหา Minimap Screen Coordinates ถูกออกแบบให้คำนึงถึง Aspect Ratio/Safe Zone เพื่อใช้ Align Elements ให้เหมาะสม.

75. Minimap บน 4K ควรทดสอบอะไร

ตรวจ

ตำแหน่ง
ขนาด
NUI Border
Font
Compass
Street Name

ไม่ใช่เพียงว่า Map Render หรือไม่

HUD ที่ดูดีบน 1080p อาจมี Alignment ผิดบน Resolution อื่น

76. วิธี Debug FiveM Minimap หายแบบเร็วที่สุด

ขั้นที่ 1 — ทดสอบเปิด Radar

DisplayRadar(true)

FiveM ใช้ Native นี้ควบคุม Minimap/Radar.

ขั้นที่ 2 — ถ้ากลับมา

ค้นหา Resource ที่เรียก

DisplayRadar(false)

ขั้นที่ 3 — ถ้า Map ใหญ่ผิดปกติ

ตรวจ

SET_BIGMAP_ACTIVE

ขั้นที่ 4 — ถ้า Zoom ผิด

ตรวจ

SET_RADAR_ZOOM

ขั้นที่ 5 — ถ้าตำแหน่งผิด

ตรวจ

SET_MINIMAP_COMPONENT_POSITION

ขั้นที่ 6 — ถ้ารูปทรงผิด

ตรวจ

SET_MINIMAP_CLIP_TYPE

ขั้นที่ 7 — ถ้าเฉพาะ Marker หาย

ตรวจ Blip แทน Radar

ขั้นที่ 8 — ถ้า Route หาย

ตรวจ

SET_BLIP_ROUTE

ขั้นที่ 9 — ถ้า Border/HUD รอบ Map หาย

ตรวจ NUI Resource

ขั้นที่ 10 — A/B Test Resources

ปิด HUD/Minimap Resources ทีละตัวเพื่อหา Conflict

77. ตารางสรุปปัญหา FiveM Minimap

อาการจุดที่ควรตรวจ
Minimap หายทั้งหมดDISPLAY_RADAR
Minimap หายตอนเดินVehicle-only Logic
Minimap หายตอนขึ้นรถVehicle HUD State
Minimap หายหลัง RespawnDeath/Respawn State
Big Map ค้างSET_BIGMAP_ACTIVE
Zoom แปลกSET_RADAR_ZOOM
Map อยู่ผิดตำแหน่งMinimap Component Position
Square Minimap เพี้ยนClip Type / Mask
Border มีแต่ Map หายRadar State
Map มีแต่ Border หายNUI
Blip หายBlip Logic
Blip เห็น Map แต่ไม่เห็น MinimapDisplay/Short Range
Route ไม่ขึ้นSET_BLIP_ROUTE
Radius มีแต่ไม่มี IconRadius Blip ไม่มี Sprite
Ultrawide เบี้ยวAspect Ratio / NUI Alignment
Restart แล้ว Minimap ผิดInitialization State

78. Checklist FiveM Minimap

☐ DisplayRadar ถูก
☐ Big Map State ถูก
☐ Radar Zoom ถูก
☐ Clip Type ถูก
☐ Minimap Position ถูก
☐ Minimap Size ถูก
☐ Border ตรง
☐ Mask ตรง
☐ Blips ถูก
☐ Short Range ถูก
☐ Blip Display ถูก
☐ GPS Route ถูก
☐ Vehicle State ถูก
☐ Death/Respawn State ถูก
☐ Character Load State ถูก
☐ Resource Restart แล้ว Restore ถูก
☐ 16:9 ถูก
☐ 21:9 ถูก
☐ 4K ถูก

ตัวอย่าง Minimap เปิดเฉพาะตอนอยู่ในรถ

CreateThread(function()
local radarVisible = nil

while true do
local ped = PlayerPedId()
local shouldShow = IsPedInAnyVehicle(ped, false)

if shouldShow ~= radarVisible then
radarVisible = shouldShow
DisplayRadar(shouldShow)
end

Wait(250)
end
end)

แนวคิดสำคัญคือไม่จำเป็นต้องเรียก DisplayRadar ซ้ำตลอดหาก State ไม่เปลี่ยน

Native ที่ควบคุม Radar/Minimap คือ DISPLAY_RADAR.

ตัวอย่าง Toggle Big Minimap

local bigMap = false

RegisterCommand('bigmap', function()
bigMap = not bigMap

SetBigmapActive(
bigMap,
false
)
end)

SET_BIGMAP_ACTIVE ใช้ Toggle Expanded Minimap State.

ตัวอย่างสร้าง Blip พร้อม Route

local blip = AddBlipForCoord(
300.0,
-500.0,
30.0
)

SetBlipRoute(blip, true)

ADD_BLIP_FOR_COORD ใช้สร้าง Marker ที่ Coordinates และ SET_BLIP_ROUTE เปิด Route ไปยัง Blip.

Minimap ที่ดีควรออกแบบอย่างไร

สำหรับ Server Roleplay ควรกำหนด Ownership ให้ชัด

Minimap Visibility
→ Resource A

Minimap Position
→ Resource A

Speedometer
→ Resource B

Compass
→ Resource B

Job Blips
→ Resource C

หรือรวมระบบบางส่วนไว้ใน Resource เดียว

สิ่งสำคัญคืออย่าให้หลาย Resources ควบคุม

DisplayRadar
SetRadarZoom
SetBigmapActive

พร้อมกันโดยไม่มี State กลาง

อย่ามี Minimap Resources หลายตัวแข่งกัน

ตัวอย่าง

custom_hud
squaremap
vehicle_hud
cinematic

ต่างคนต่างเรียก

DisplayRadar
SetBigmapActive
SetMinimapComponentPosition

ผลคือ

บางครั้งขึ้น
บางครั้งหาย
Restart แล้วผิด
เข้า Vehicle แล้วเปลี่ยน

ควรเลือกผู้ควบคุมหลักให้ชัด

อย่าสร้าง Blip ใหม่ทุก Frame

Static Location ไม่ควรทำ

while true do
Wait(0)
AddBlipForCoord(...)
end

ให้สร้าง Blip หนึ่งครั้งและเก็บ Handle

เพราะ ADD_BLIP_FOR_COORD สร้าง Blip ใหม่ ไม่ใช่ Update Blip เดิม.

อย่าแก้ Minimap ด้วยการล้าง Cache เป็นอันดับแรก

หากปัญหาเกิดจาก

DisplayRadar(false)
SetBigmapActive ค้าง
SetRadarZoom ผิด
Position Override ผิด
Blip Display ผิด

การล้าง Cache ไม่แก้ Script Logic

ควรตรวจ Native State ก่อน

อย่าแก้ Blip หายด้วยการเปิด Radar อย่างเดียว

ถ้า Minimap แสดงถนนปกติแต่ Hospital Blip หาย

Radar ทำงานแล้ว

ให้ตรวจ

Blip ถูกสร้างไหม
Display Mode
Short Range
Alpha

แทน

FiveM มี Natives แยกสำหรับ Blip Visibility และ Range โดยตรง.

สูตรจำง่ายสำหรับ FiveM Minimap

RADAR
= เปิด/ปิด Minimap

ZOOM
= ระยะการมอง

BIG MAP
= Minimap แบบขยาย

BLIP
= Marker

ROUTE
= เส้นทาง GPS

ถ้าแยกห้าส่วนนี้ออกจากกันได้ การ Debug Minimap จะง่ายขึ้นมาก

สรุป FiveM Minimap คืออะไร

FiveM Minimap คือแผนที่ขนาดเล็กระหว่าง Gameplay ที่ใช้แสดงพื้นที่รอบผู้เล่น รวมถึง Blips และเส้นทาง Navigation โดย FiveM ใช้ Radar APIs ของ GTA สำหรับควบคุมระบบนี้

การเปิดหรือปิด Minimap ใช้

DISPLAY_RADAR

ซึ่ง Cfx.re ใช้ใน Official Tutorial สำหรับการปิด Minimap โดยตรง.

หากต้องการปรับ Zoom ใช้

SET_RADAR_ZOOM

โดย Parameter มีช่วง 0–200.

หากต้องการ Minimap แบบขยายใช้

SET_BIGMAP_ACTIVE

และสามารถตรวจ Expanded State ผ่าน IS_BIGMAP_ACTIVE.

หากต้องการเปลี่ยนตำแหน่งหรือขนาด Components ของ Minimap FiveM มี

SET_MINIMAP_COMPONENT_POSITION

สำหรับ Override Geometry ของ Minimap Components.

และหากต้องการ Square/Rectangular Minimap FiveM มี SET_MINIMAP_CLIP_TYPE สำหรับเปลี่ยนลักษณะ Clipping ระหว่าง Rounded และ Rectangular.

ส่วน Marker ต่าง ๆ บน Minimap คือ Blips ซึ่งสามารถสร้างจาก Coordinates หรือ Entity และกำหนดว่าจะให้แสดงบน Map/Minimap อย่างไรได้.

หากต้องการ GPS Route ไปยัง Blip ใช้

SET_BLIP_ROUTE

และสามารถ Clear Routes ด้วย CLEAR_ALL_BLIP_ROUTES.

ถ้า Minimap หายทั้งหมด ให้ตรวจ DISPLAY_RADAR

ถ้า Minimap ใหญ่ค้าง ให้ตรวจ SET_BIGMAP_ACTIVE

ถ้า Zoom ผิด ให้ตรวจ SET_RADAR_ZOOM

ถ้า ตำแหน่ง Minimap ผิด ให้ตรวจ SET_MINIMAP_COMPONENT_POSITION

ถ้า Map มีแต่ Marker หาย ให้แก้ Blip ไม่ใช่ Radar

ถ้า Border Custom หายแต่ Map ยังอยู่ ให้ตรวจ NUI

และถ้า HUD/Border รอบ Minimap ไม่ตรงบน 16:9, 21:9 หรือ Ultrawide ควรคำนวณ Alignment ตาม Screen/Aspect Ratio มากกว่าล็อกตำแหน่ง Pixel เดียว โดย Cfx.re มีแนวทางเฉพาะสำหรับหา Minimap Screen Coordinates เพื่อ Align กับ NUI.

แนวทางของ comsiam คือแยก Minimap ออกเป็น Radar Visibility → Zoom → Position → Blips → Route ก่อนแก้ปัญหา เพราะเมื่อรู้ว่าชั้นไหนเสีย จะไม่ต้องลบ HUD, เปลี่ยน Map หรือล้าง Cache ทั้งระบบโดยไม่จำเป็น

Comments

Popular posts from this blog

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

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

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