Tutorial · Minimap Live Editor

How to Make a Custom FiveM Minimap (Step-by-Step)

You will end up with a drop-in FiveM resource that puts your own map art on the radar and the pause map, started with one ensure line.

Minimap Live Editor guide: a custom GTA V minimap made for a FiveM server

A FiveM custom minimap replaces the map art your players see on the radar and in the pause menu: gang territories, your own labels, a satellite or dark style, street names or postal codes. This tutorial first explains how a FiveM minimap is built (six texture tiles, a road layer, a Cayo Perico file and a small script). Then it shows two ways to make your own: by hand, or in your browser with the Minimap Live Editor.

The browser route needs a Discord account and a server you can restart, and one export a day is free. You don't need Photoshop, OpenIV or CodeWalker.

How the GTA V minimap works in FiveM

The map image isn't one picture. GTA V stores it as six square textures, each in its own texture dictionary (.ytd). They form a grid two tiles wide and three tiles tall. In each name the row comes first, then the column: minimap_sea_0_0 is the top-left tile and minimap_sea_2_1 the bottom-right one.

The full GTA V map in the Color style, from Paleto Bay in the north to the Los Santos port in the south
The Color base map in full. In the game files it is six square tiles: two across, three down.

Each tile covers 4,500 × 4,500 world units, and the top-left corner of tile 0_0 sits at world X -4140, Y 8400. The table shows which file holds each part of the map:

TileGrid spotWorld XWorld YDistricts labeled on it
minimap_sea_0_0Top left-4140 to 3608400 to 3900Paleto Bay, Paleto Forest, Chiliad Mountain State Wilderness
minimap_sea_0_1Top right360 to 48608400 to 3900Mount Chiliad, Mount Gordo
minimap_sea_1_0Middle left-4140 to 3603900 to -600Lago Zancudo, Chumash, Vinewood Hills, Rockford Hills
minimap_sea_1_1Middle right360 to 48603900 to -600Sandy Shores, Grand Senora Desert, Harmony, Tataviam Mountains
minimap_sea_2_0Bottom left-4140 to 360-600 to -5100Downtown, Del Perro, Vespucci, Los Santos International Airport
minimap_sea_2_1Bottom right360 to 4860-600 to -5100East Los Santos, Mirror Park, Palomino Highlands

Four tiles meet at world X 360, Y -600, between Downtown and Vinewood, so a zone in the city can span several files. Three more pieces complete a minimap:

  • The road layer. On the pause map, GTA V draws a vector road overlay from a grid of minimap_X_Y.ydd files. A custom map ships blank copies of them. Without the blanks, the stock roads are drawn on top of your art.
  • Cayo Perico. The island isn't part of the six tiles. Its map is a separate Scaleform file, int3232302352.gfx, and the resource's script shows it with a call it repeats every frame.
  • A small client script that sets the radar zoom and handles Cayo Perico and interiors.

What's inside a FiveM custom minimap resource

Here is the folder the editor exports for a project named "My RP map". A hand-made pack uses the same kinds of files.

my-rp-map/
  fxmanifest.lua
  config.lua
  map.lua
  postal.lua               (only with the postal script)
  postals.json             (only with the postal script)
  README.txt
  stream/fivem-tools.com/my-rp-map/
    ytd/  minimap_0_0.ytd ... minimap_2_1.ytd           the 6 tiles
          minimap_sea_0_0.ytd ... minimap_sea_2_1.ytd   the same 6 tiles
          minimap_lod_128.ytd                           LOD stub
    ydd/  minimap_0_2.ydd ... minimap_7_6.ydd           65 blank road files
    gfx/  int3232302352.gfx                             Cayo Perico map
FileCountWhat it does
fxmanifest.lua1Declares the game and loads the two client scripts.
config.lua, map.lua2Cayo Perico switch, interior maps and radar zoom.
minimap_R_C.ytd and minimap_sea_R_C.ytd12Your map. Each tile is written under both names as byte-identical files, and the texture inside is always named minimap_sea_R_C.
minimap_lod_128.ytd1A 275-byte low-detail stub, copied as is.
minimap_X_Y.ydd65Blank road-layer files of 461 bytes each.
int3232302352.gfx1The Cayo Perico map. Every export includes it.
postal.lua, postals.json0 or 2The /gps postal script and its data.
README.txt1Install steps and notes.

That's 83 files, or 85 with the postal script. The tiles are DXT5 (also called BC3) block-compressed by default, or uncompressed A8R8G8B8 if you choose Lossless. Each tile has a single mip level: the full-size image only, with no smaller copies.

The generated fxmanifest.lua is short:

game 'gta5'
fx_version 'cerulean'
author 'TeK - FiveM-Tools.com'
description 'Custom minimap - My RP map (generated by fivem-tools.com)'

client_scripts {
    'config.lua',
    'map.lua'
}

It has no data_file or this_is_a_map line. FiveM streams everything under stream/ on its own, the .gfx file included. For other kinds of resources, see our fxmanifest.lua templates, and read GTA V file formats explained for more on YTD and YDD files.

Option A: edit the minimap YTD tiles by hand

The classic route works, but every step is manual:

  1. Extract the six minimap_sea tiles from the game files with OpenIV or CodeWalker, and export each texture as an image.
  2. Edit all six in an image editor. Anything that crosses a tile edge, such as a zone or a label, has to line up exactly on both sides.
  3. Import each image back into its .ytd as DXT5, and keep the texture name minimap_sea_R_C.
  4. Add blank minimap_X_Y.ydd files so the stock road overlay doesn't cover your art.
  5. Write the fxmanifest.lua and a script for the radar zoom, Cayo Perico and interiors.
  6. For postal codes, add a postal script and its data. To restyle Cayo Perico, edit the bitmaps inside its .gfx file.

Each change to the art means repeating steps 2 and 3.

Option B: use a minimap editor in your browser

The Minimap Live Editor shows the six tiles as one 2048 × 3072 canvas, so nothing has to line up by hand. Sign in with Discord to open it.

1. Pick a base map or import yours

In the hub, type a project name, pick a card under "Start from a preset" and click "Create project". Choose the name with care: it becomes the resource folder, the ensure line and the zip name, and renaming later doesn't change them. It must start with a letter, so "My RP map" works and becomes my-rp-map.

PresetNative sizeLooks likeDefault Cayo style
Color3KAtlas style: green land, blue water, white roadsColor
Original4KDark land with light gray roadsOriginal
Past Gen4KPale gray-green land with dark roadsPast Gen
Satellite4KSatellite imagery with deep blue waterSatellite
Real Map4KPhoto-style terrainSatellite
Real Map Dawn4KPhoto-style terrain in low, warm lightSatellite

None of the presets has street names printed on it: the Street names layer adds them (step 5). Color is a 3K map, so a 4K export upscales its base.

To start from your current map instead, name the project and drop files in the box under "or import your own minimap" (up to 13 files of 50 MB each). Use PC Legacy .ytd tiles, or .png, .jpg or .webp frames named like the game tiles: minimap_sea_0_0 to minimap_sea_2_1, or minimap_0_0 to minimap_2_1. In a .ytd, the texture name inside decides where the tile goes.

Import all six, because a missing tile exports as a flat dark blue square. Gen9 (Enhanced) YTDs and BC7 textures aren't supported, and non-square images get stretched.

2. Draw gang zones, labels and images

  • Zone: click points on the map, then right-click or click the first point to close the shape. It fills with the Fill color (blue at 45% by default) and uses the stroke Color and Width for its outline.
  • Text: click the map to place a label, then set the font, size and outline. You can upload your own font (.ttf, .otf, .woff or .woff2, up to 5 MB).
  • Insert image: add a gang logo from a file or a URL (PNG, JPEG or WebP, up to 15 MB).
  • Line and Brush: straight lines (hold Shift to snap) and freehand strokes.
Minimap editor with three colored gang zones and gang logos over South Los Santos
Gang zones with logo images on the Color base map.

3. Restyle the map with filters

The Filters panel has 11 filter types: Hue, Saturation, Brightness, Contrast, Blur, Sepia, Grayscale, Invert, Vignette, Grain and Tint (Tint recolors the map but keeps its shading). You can also start from one of 8 looks: Post-apocalypse, Night ops, Noir, Vintage, Winter, Toxic, Inferno and Cyber. A look is only a stack of normal filters, so you can tweak each one.

Every filter has a scope. Tiles changes only the base map under your drawings. Whole map changes everything, your zones and text included. New filters start on Tiles.

Satellite minimap recolored magenta and green by the Toxic look, with the Map filters panel open
The Toxic look on the Satellite map: Hue, Saturation and Contrast on the tiles, a Vignette on the whole map.

4. Remove or replace parts of the base map

  • Fast Infill: paint over a building or a printed label, pick Smooth, Texture or Mirror, then click "Apply infill". The area is rebuilt from its surroundings.
  • Bucket: flood-fills an area of the map with the Fill color.
  • Image Patch: outline an area, download that piece of the map, edit it in any image tool and drop it back. It snaps into the exact spot.
Minimap editor with the Fast Infill tool and a red mask painted over a building on a dark map
Fast Infill on the Original map: the red area marks what should disappear.

5. Add street names and postal codes

Open Street names and turn on "Show street names" to add every street and district name of the map as one layer: 220 streets and 34 districts. You can switch between a Light and a Dark look, change size, outline and opacity, hide overlapping names, and rename or hide any single name.

Open Postals and turn on "Show postal codes" to print a whole postal set on the map and bundle a /gps command. The full walkthrough is in our FiveM postal map guide. Street names and postal codes work on the main map only, not on Cayo Perico.

6. Cayo Perico (Supporter beta)

Use the "Cayo Perico" switch at the bottom right of the canvas. Free accounts can look around but not edit. Supporters can draw, filter and patch the island, pick the Color, Original, Satellite or Past Gen style, and replace the water or island layer with their own image. Either way, every export includes a Cayo Perico map: the stock island in your project's Cayo style, or your edited one.

Export settings: resolution and quality

Click Export, pick a resolution and a quality, and confirm. The zip downloads on its own, and a failed export doesn't use up your daily export.

ResolutionPixels per tilePlanWorld units per pixelTexture data per tile (Standard / Lossless)
1K1024 × 1024Free4.41 MiB / 4 MiB
2K2048 × 2048Free2.24 MiB / 16 MiB
3K3072 × 3072Supporter1.59 MiB / 36 MiB
4K4096 × 4096Supporter1.116 MiB / 64 MiB

Texture data is the raw size of one tile's pixels: DXT5 stores 1 byte per pixel, A8R8G8B8 stores 4. Multiply by six for the whole map. The .ytd files on disk are usually smaller, since each is compressed inside, but the zip carries every tile twice.

Standard (DXT5) is the default and gives small files. Lossless keeps every pixel but has four times the texture data, so at 3K and 4K each tile is far over the 16 MiB per texture dictionary that Cfx.re forum guides aim for (see our YTD optimization guide). Lossless tiles haven't been tested in game, so try them on a test server first.

3K and 4K need Supporter, at $15/month. If the editor reports that an export is "over the 100 MB upload limit", lower the resolution: your drawings are uploaded as PNG images at the size you picked.

Minimap Live Editor

Pick a preset, draw your zones and labels, and export a ready FiveM resource. 1K and 2K exports are free once a day.

Open the Minimap Live Editor

Install and test the minimap on your server

  1. Unzip the download and copy the my-rp-map folder into your server's resources/ folder.
  2. Add this line to server.cfg: ensure my-rp-map
  3. Restart the server and join. Check the radar outdoors and indoors, and open the pause map.

Two settings live in config.lua. This is the whole file as exported:

Config = {}

-- Show the Cayo Perico blip and enable its minimap overlay
Config.EnableCayoMap = true

-- Interior map overrides
-- When inside a building, the minimap will switch to the matching interior view.
-- Add an entry per building: interiorId -> { name, x, y }
-- The interiorId is what GetInteriorFromPrimaryView() returns while inside that building.
Config.Interiors = {
    -- Example:
    -- [120834] = { name = 'ex_cardealer_01',  x = 210.0,   y = -1002.0 },
    -- [237378] = { name = 'p_hotel_imn_foyer', x = -1452.0, y = -250.0  },
}

map.lua reads these settings in a loop that runs every frame:

  • Outdoors, it sets the radar zoom to 1100. When Config.EnableCayoMap is true, it also calls SetRadarAsInteriorThisFrame('h4_fake_islandx', vec(4700.0, -5145.0), 0, 0) to show the Cayo Perico map.
  • Inside a building listed in Config.Interiors, it shows that interior's map.
  • Inside any other building, it sets the radar zoom to 0.

With Cayo Perico on, the script also places an invisible blip at (6500, -6500) to extend the map's cursor area. Set Config.EnableCayoMap = false to drop both the island overlay and the blip. To find an interior ID, add this command to any client script, stand inside the building and type /interiorid. The number appears in the F8 console.

RegisterCommand('interiorid', function()
    print(GetInteriorFromPrimaryView())
end, false)

Troubleshooting a custom minimap

ProblemLikely causeFix
The map still looks stockThe resource didn't start, or the folder name doesn't match the ensure lineCheck the server console at startup. The folder and the ensure line must match.
Stock roads show over your art on the pause mapThe blank .ydd files are missingKeep the ydd folder from the zip next to the ytd folder.
Parts of an old map still showAnother resource also streams minimap tilesRemove the old map pack from server.cfg.
The radar zoom keeps jumpingAnother script also sets the radar zoom every frameRemove one of the two zoom loops.
The radar changes zoom inside buildingsInteriors without an override get zoom 0Edit SetRadarZoom(0) in map.lua, or add the building to Config.Interiors for its interior map.
Cayo Perico is missingConfig.EnableCayoMap is set to falseSet it to true in config.lua and restart.
The map looks blurryA low export resolution: at 1K, one pixel covers about 4.4 world unitsExport at 2K, or at 3K or 4K as a Supporter.
One tile is flat dark blueAn imported project is missing that tileImport all six tiles and export again.

Limits to know

  • Free accounts get one export per day at 1K or 2K, with every drawing tool, the filters, street names and postal codes. Supporters add unlimited exports, 3K and 4K, and the Cayo Perico editor (beta).
  • Each account can keep 20 projects. Uploads count against your storage (250 MB free, 5 GB for Supporters); export zips don't.
  • The README in the export doesn't describe the postal script yet. The postal map guide covers the /gps command and the GetPostalCoords export.

Frequently asked questions

Is the FiveM minimap editor free?

Yes. After a Discord sign-in you can export one minimap a day at 1K or 2K, and the count resets at midnight UTC. Supporter ($15/month) adds unlimited exports, 3K and 4K exports and the Cayo Perico editor, which is in beta.

Can I edit the minimap my server already uses?

Yes, if its tiles are PC Legacy .ytd files or plain images. Start a project from your files instead of a preset: each tile lands in its slot by name, from minimap_sea_0_0 to minimap_sea_2_1. Gen9 (Enhanced) YTDs are rejected.

Can I make a satellite minimap with street names but no postals?

Yes. Start from the Satellite preset, then switch on "Show street names" in the Street names panel. Postal codes stay off unless you turn them on in the Postals panel. Both layers are for the main map: Cayo Perico gets neither.

Why do the stock roads still show over my custom map?

Your pack is probably missing the blank road files. GTA V draws its pause-map roads from minimap_X_Y.ydd drawables, and a custom map streams empty copies over them. The editor export ships 65 of them in its ydd folder: keep that folder next to the ytd folder.

Does a custom minimap work with ESX or QBCore?

Yes. The export is a standalone resource with its own small scripts, so it does not depend on a framework. Add ensure with the folder name to server.cfg and restart the server.

Try the Minimap Live Editor

Design your GTA V minimap live in the browser. Add gang zones, labels, images and custom tints, then export a drop-in FiveM resource in one click. Free every day, unlimited for Supporters.

Open the Minimap Live Editor