> For the complete documentation index, see [llms.txt](https://nobit.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nobit.gitbook.io/docs/setting-up/blip-names.md).

# Blip names

How to make other scripts' blips show their real names instead of "Blip 52".

Blips from your other resources appear on the map on their own — you do not have to change anything for that. Their **names** are the one thing that does not come across, and they show up as `Blip 52`, `Blip 108` and so on.

## Why

GTA lets a script *set* a blip's label and never *get* it back. There is no native that reads a blip's name, for anyone — not for this resource and not for the script that created it. The name is written into the game's HUD and is gone.

So the name has to be handed over at the moment it is set. There are two ways to do that, and you will probably use both: the shim for resources you did not write, and the export for your own.

{% hint style="info" %}
This is cosmetic. An unnamed blip still shows on the map, still has the right icon and colour, and can still be routed to. It just reads `Blip 52` in the legend and on its card.
{% endhint %}

## The shim — for resources you did not write

`shim/blip_names.lua` records a resource's naming calls as they go past to the game. You add one line to that resource's manifest and change nothing else.

Open the other resource's `fxmanifest.lua` and put the shim **first** in its `client_scripts`, before its own files:

```lua
client_scripts {
    '@nobit_map/shim/blip_names.lua',
    'client.lua',
}
```

The `@` prefix is FiveM's way of loading a file out of another resource. Order matters: the shim has to be in place before anything names a blip, so it goes at the top of the list.

Optionally also declare the dependency, so the server starts the two in the right order:

```lua
dependency 'nobit_map'
```

Restart both resources. That resource's blips now carry their names.

### What this does to the resource

Nothing. Every naming function the shim wraps calls straight through to the original and returns exactly what it returned. If `nobit_map` is stopped or missing, the shim quietly does nothing — the resource still works.

### Do this per resource

There is no server-wide switch. Each resource whose blip names you want has to load the shim, so add the line to each one. Resources you do not touch keep the `Blip 52` fallback; nothing else about them changes.

## The export — for your own scripts

If you are writing the script, name the blip directly and skip the shim:

```lua
local blip = AddBlipForCoord(coords.x, coords.y, coords.z)
exports.nobit_map:SetNativeBlipTitle(blip, 'Pizza This')
```

You can read it back with `GetNativeBlipTitle(blip)`.

This also covers the case the shim cannot reach: a blip that was named before the shim loaded, or by code the shim does not see.

## When a name still does not appear

The shim is deliberately cautious. A confidently wrong name is worse than an obvious placeholder — `Owner:` where the game shows `Owner: Franklin` is the kind of mistake nobody notices — so where it cannot reproduce a name exactly, it reports nothing and the blip keeps its `Blip 52` fallback.

That happens when the name is built from something the shim cannot rebuild from Lua: a formatted time, a phone number, a website, a comma-separated number, or a hashed text label. It also happens for a name that splices in *another* blip's name, unless that blip was itself named through the shim.

In all of those cases, name the blip yourself with `SetNativeBlipTitle` and it will be exactly right.

## Checklist

* [ ] Shim line added to each resource whose blips you want named, **first** in its `client_scripts`
* [ ] Both resources restarted
* [ ] Your own scripts use `SetNativeBlipTitle`
* [ ] Anything still reading `Blip 52` named explicitly with the export


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://nobit.gitbook.io/docs/setting-up/blip-names.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
