Knowledge from the fieldRedM

BLIP_ADD_FOR_COORDS first arg is a BLIP_STYLE_* hash, not a sprite hash — passing a sprite returns a silent inert blip

learning:5

BLIP_ADD_FOR_COORDS first arg is a BLIP_STYLE_* hash, not a sprite hash — passing a sprite returns a silent inert blip

Context

Adding map blips in RedM, often when porting GTA V code or following GTA tutorials.

The trap

BLIP_ADD_FOR_COORDS (0x554D9D53F696D002) signature is (blipHash, x, y, z) -> Blip. The native description doesn't specify what blipHash is — the natural assumption (especially coming from GTA V where AddBlipForCoord takes a sprite ID) is that you pass the icon hash, e.g. GetHashKey('blip_ambient_gang_leader').

This call returns a valid blip handle but no blip renders on the map. No error, no warning. The blip is silently inert.

Why

RedM's blip system separates style (range, color, fade behavior, label, scale-pulse, sonar-pulse, distance-fade rules) from sprite (the icon texture). BLIP_ADD_FOR_COORDS's first arg is a BLIP_STYLE_* hash — see rdr3_discoveries/useful_info_from_rpfs/blip_styles/README.md for the full enumeration (~300 styles). Passing a sprite/texture hash there gives the blip system no style to apply, and it doesn't fall back to a default.

Fix

Pass a style hash to BLIP_ADD_FOR_COORDS, then set the icon separately with SET_BLIP_SPRITE (0x74F74D3207ED525C):

local style  = GetHashKey('BLIP_STYLE_GANG_CAMP')   -- or _RANDOM_EVENT, _MISSION, etc.
local sprite = GetHashKey('blip_ambient_gang_leader')
local blip = Citizen.InvokeNative(0x554D9D53F696D002, style, x, y, z)
SetBlipSprite(blip, sprite, true)

Picking a style

Common choices for custom events:

  • BLIP_STYLE_GANG_CAMP — red (enemy color), 150m radar range, persistent on map
  • BLIP_STYLE_RANDOM_EVENT — grey, 150m range, fades over 3000ms when removed, sonar pulse
  • BLIP_STYLE_MISSION — yellow, mission-launcher category, area-aware
  • BLIP_STYLE_ENEMY — for combatant peds; auto-removes when target is dead/injured

Sprite list: rdr3_discoveries/useful_info_from_rpfs/textures/blips/README.md.

Verified

Hostile-camp blip with BLIP_STYLE_GANG_CAMP + sprite blip_ambient_gang_leader (-1489164512) renders correctly on map and minimap.

Linked natives

  • BLIP_ADD_FOR_COORDS (0x554D9D53F696D002)
  • SET_BLIP_SPRITE (0x74F74D3207ED525C)

Tags: blip, map, ui, minimap, porting
Category: natives
Created: 2026-04-29T14:58:04.040Z

Back to documentation