Map markers
Los Santos is an enormous map. If you tell the player "meet the contact at the docks", they will never find the exact container without guidance. GTA V uses two visual systems to direct players: Blips on the minimap, and Markers drawn directly in the 3D game world.
Minimap blips
A Blip is an icon placed on the radar and pause map. You can attach a blip to a static coordinate in the world or directly to a moving entity.
Creating and styling a blip
using GTA;
using GTA.Math;
Vector3 objectivePos = new Vector3(-150f, -960f, 30f);
// 1. Create blip at coordinates
Blip targetBlip = World.CreateBlip(objectivePos);
// 2. Customize appearance
targetBlip.Sprite = BlipSprite.Standard; // Circle icon
targetBlip.Color = BlipColor.Yellow;
targetBlip.Name = "Drop-off Point";
// 3. Enable in-game GPS route on the minimap
targetBlip.ShowRoute = true;
When attached to a moving vehicle or NPC:
// The blip automatically follows the ped wherever they walk
Blip guardBlip = guard.AddBlip();
guardBlip.Sprite = BlipSprite.Enemy;
guardBlip.Color = BlipColor.Red;
Deleting blips
Just like peds and vehicles, a blip is an engine resource with a handle. If you do not delete it when the objective is reached, it will stay on the player's radar forever:
if (targetBlip != null && targetBlip.Exists())
{
targetBlip.Delete();
}
In-world 3D markers
While a blip shows the general location on the minimap, a Marker shows the exact spot on the ground where the player must stand or park.
Because markers are drawn directly on the screen frame by frame, you call World.DrawMarker inside OnTick:
private void OnTick(object sender, EventArgs e)
{
if (!_missionActive)
{
return;
}
// Draw a translucent yellow vertical cylinder on the ground
World.DrawMarker(
MarkerType.VerticalCylinder,
_targetPosition - new Vector3(0f, 0f, 1f), // Offset down to meet asphalt
Vector3.Zero,
Vector3.Zero,
new Vector3(2.5f, 2.5f, 1.5f), // Diameter and height
System.Drawing.Color.FromArgb(180, 255, 235, 59) // Translucent yellow
);
}
When the player enters the cylinder (player.Position.DistanceTo(_targetPosition) < 2.5f), you consider the objective reached, delete the blip, and stop drawing the marker.
In the next lesson, we look at mission objectives: managing win, loss, and abandon states, showing subtitles, and awarding one-time rewards.