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

> Add Cayo Perico to FiveM: enforce game build 2189, enable the island with SetIslandHopperEnabled, show it on the minimap, then fix its water and paths.

Source: https://fam-tools.com/guides/fivem-cayo-perico · FAM Tools · published 2026-09-11 · updated 2026-09-11 · about 10 min

**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.

## Key points

- Needs **game build 2189+** (the Cayo Perico Heist build).
- `SetIslandHopperEnabled('HeistIsland', true)` loads the island.
- `SetToggleMinimapHeistIsland(true)` draws it on the minimap and pause map.
- `LoadGlobalWaterType(1)` switches to the water map that includes the island.
- Enable it near the island and switch back on the mainland.

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.

## Step 1: the game build

*server.cfg*

```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](https://fam-tools.com/guides/fivem-game-build-dlc).

## Step 2: loading the island

*client.lua*

```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](https://fam-tools.com/guides/brand-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](https://fam-tools.com/for/fivem-cayo-perico-map) — 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.

## 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](https://fam-tools.com/for/fivem-cayo-perico-map).

### 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.

## Related

- https://fam-tools.com/guides/fivem-game-build-dlc
- https://fam-tools.com/guides/gta-5-map-coordinates
- https://fam-tools.com/guides/fivem-pause-menu-map
- https://fam-tools.com/guides/brand-your-server-map
