PiTyUs.Hire me

Assets & UI

Custom FiveM minimaps — how they work and how to install one

How the GTA V minimap is built from streamed tiles, installing a custom map, how postal codes work, and fixing blurry, missing or half-vanilla tiles.

Updated 8 min readBy PiTyUs · FiveM developer

How the GTA V minimap is built

The minimap you see in the corner and the full map on the pause screen are drawn from a grid of texture tiles that the game streams like any other asset. San Andreas is split into a matrix of images, each stored in a texture dictionary, plus a separate lower-resolution set used when the map is zoomed out.

  • Tiles are named systematically — a row/column scheme the game resolves by name.
  • Replacing the map means shipping texture dictionaries with those same names in your resource's stream folder.
  • Because names are global, two minimap resources will conflict. Run exactly one.
  • The LOD map is a separate, smaller set. Replacing only the detail tiles gives you a custom map that turns vanilla when the player zooms out.

01Installing a custom minimap

  1. Drop the resource folder into your resources directory.
  2. Add `ensure pityus_minimap` (or whatever the folder is called) to server.cfg.
  3. Disable or remove any other minimap resource. Two will fight and load order decides the winner.
  4. Restart the server fully — not just the resource — so the texture dictionaries are re-registered.
  5. Clear your client cache if you previously ran a different map. Cached tiles are the number one reason "it did not change".
Where the client cache livesbash
# FiveM
%localappdata%\FiveM\FiveM.app\data\cache

# delete the cache folder, not the whole FiveM.app

Postal codes: pixels plus a script

Postal-code maps are the standard in roleplay because they give players a shared vocabulary for locations — "meet me at 812" is faster than any street name. What people misunderstand is that the numbers on the map are baked into the texture. They are not data the game knows about.

  • The map texture shows the numbers. That alone gives players something to read off the screen.
  • A `/postal` command, a nearest-postal HUD element or a GPS waypoint by number needs a separate script with a coordinate list.
  • The script's postal list must match the map you installed. Mixing a map from one pack with the coordinates from another puts players in the wrong place, confidently.
  • Some servers prefer a clean map without postals for immersion. Both are valid — decide before you build the HUD around it.

Troubleshooting

SymptomCauseFix
Map did not change at allClient cache, or the resource is not startedClear the FiveM cache, confirm `ensure` in server.cfg, restart fully
Some tiles are vanilla, some customTwo minimap resources runningKeep one, remove the other
Blurry mapTexture dictionaries recompressed at a lower resolutionReinstall from the original pack; do not re-save the YTDs in a converter
Detail map is custom, zoomed-out map is vanillaLOD tiles not replacedInstall the pack's LOD dictionaries too
Black squares over waterMissing or mismatched alpha in the sea tilesUse a pack whose land and sea dictionaries come from the same source
Map is fine but the minimap shape is wrongA HUD resource is overriding the minimap maskCheck your HUD's minimap settings, not the map pack

Reshaping the minimap HUD

Changing the map image and changing the minimap frame are two different jobs. The square or circular minimap you see on modern roleplay servers comes from a HUD resource that swaps the mask and repositions the overlay — it has nothing to do with which tiles are streamed.

  • Square, circular and rectangular minimaps are all mask swaps plus scaleform positioning.
  • If you install a custom minimap and your HUD looks off, the HUD is what changed, not the map.
  • Keep the map style and the HUD style in the same visual language — a neon map inside a chrome frame looks accidental.

Making your own

Building a minimap from scratch means rendering the full San Andreas map at very high resolution, slicing it into the tile grid, converting each tile into a texture dictionary with the correct name, and producing a matching LOD set. It is genuinely a rendering pipeline, not an image edit.

  1. Start from a high-resolution base map with a clean alpha channel separating land from water.
  2. Apply your palette and any effects at full resolution — never upscale afterwards.
  3. Slice into the tile grid at the exact dimensions the game expects.
  4. Convert each tile to a YTD with the correct texture name and sensible compression.
  5. Render the LOD set from the same source so the two never disagree.
  6. Test at every zoom level in-game, including the pause map and the GPS route overlay.

Frequently asked questions

Why is my FiveM minimap not showing after installing a custom map?

Usually the client cache. Delete the FiveM cache folder and rejoin. If it still shows the old map, confirm the resource is started in server.cfg and that no second minimap resource is running.

How do postal codes work on a FiveM map?

The numbers are drawn into the map texture itself. For /postal commands or a nearest-postal HUD you also need a postal script whose coordinate list matches the map you installed.

Does a custom minimap affect server performance?

No. It is streamed client content of roughly 20 MB and costs no server milliseconds. Its only cost is a small amount of client memory and download on first join.

Can I have a custom minimap and a custom HUD?

Yes, and they are independent. The map tiles are streamed textures; the minimap shape and position come from your HUD resource. Just keep them stylistically consistent.

Need this built, not just explained?

Ten years of FiveM work, from Lua to NUI

Custom resources, React NUI, ESX / QBCore / Qbox integration, OneSync performance audits and security reviews — plus the websites and SEO around your server brand.

Related guides