Halloween Edition36 maps, limited runlimited runShop the drop
Minimapsintermediate10 min readupdated 11 Sept 2026

Adding Cayo Perico to a FiveM server, and to its minimap

The short answer

Enforce game build 2189 or newer (sv_enforceGameBuild 2189). Then, in a client script, enable the island with SetIslandHopperEnabled('HeistIsland', true), show it on the minimap with SetToggleMinimapHeistIsland(true), and set the island’s paths and water with SetAiGlobalPathNodesType(1) and LoadGlobalWaterType(1) — ideally only while the player is near the island.

Cayo Perico — the private island from the Cayo Perico Heist update — is in the game files of every modern GTA V install, but FiveM does not switch it on for you. With the right game build and a small client script, your server gets a whole second map: a drug lord’s compound, beaches, an airstrip and jungle roads.

Adding Cayo Perico to a FiveM server, and to its minimap — illustrated with a FiveM-compatible minimap render

#Step 1: the game build

server.cfg
sv_enforceGameBuild 2189   # or any newer build

Build 2189 is the Cayo Perico Heist update. Newer builds include it too. Changing the enforced build makes every player download that game version’s data on their next join — see game builds and DLC.

#Step 2: loading the island

client.lua
local ISLAND = vector2(4840.0, -5174.0)
local RANGE = 2000.0
local loaded = false

local function setIsland(on)
    SetIslandHopperEnabled('HeistIsland', on)
    SetToggleMinimapHeistIsland(on)
    SetAiGlobalPathNodesType(on and 1 or 0)
    LoadGlobalWaterType(on and 1 or 0)
    SetScenarioGroupEnabled('Heist_Island_Peds', on)
    loaded = on
end

CreateThread(function()
    while true do
        local p = GetEntityCoords(PlayerPedId())
        local near = #(vector2(p.x, p.y) - ISLAND) < RANGE
        if near ~= loaded then setIsland(near) end
        Wait(2000)
    end
end)

Switching by distance matters because the island’s water map and path nodes replace the mainland’s. With them active everywhere, AI traffic and water behave oddly on the mainland.

#The island on the minimap

SetToggleMinimapHeistIsland(true) swaps in the minimap data that includes Cayo Perico. The island sits far south-east of Los Santos, so on the pause map it appears in the ocean area — the same area many custom minimaps use for branding. If you use a custom minimap, check your branding does not overlap the island’s position; see branding your server map.

The island draws from its own Scaleform file rather than the mainland tiles, so a custom minimap replacement does not change it: the radar switches from your art to the stock Rockstar island the moment a player arrives. The matching island map is sold here as a Cayo Perico minimap add-on — the same palette, the same roads and labels, as a second drop-in resource.

#Roleplay uses

  • Cartel and smuggling storylines with boat and plane runs.
  • A luxury resort, private events or a VIP area.
  • Military or survival scenarios in the jungle.
  • Drug growing and processing locations far from the city.
Share this guideXRedditFacebook

Questions

How do I add Cayo Perico to FiveM?
Enforce game build 2189 or newer, then enable the island in a client script with SetIslandHopperEnabled('HeistIsland', true) and related natives.
Why is Cayo Perico not on my minimap?
Call SetToggleMinimapHeistIsland(true) while the island is active. If the island shows but still looks like stock GTA art next to a custom mainland map, that is expected — the island is a separate asset, and replacing it needs the Cayo Perico add-on.
Why is the water weird near Cayo Perico?
The island needs the alternate water map: LoadGlobalWaterType(1). Switch back to 0 on the mainland.
Which game build has Cayo Perico?
2189 (Cayo Perico Heist) and every newer build.

Ready to pick a map?

Twelve themes on three base map styles, $8 each, instant download.

Relevant to what you just read