A visual zone creation tool for FiveM featuring an interactive map interface, real-time 3D preview, and multiple export formats.
Quickly create zones using pre-built shape templates:
| Shape | Description |
|---|---|
| Rectangle | 4-point square/rectangular zone |
| Circle | 16-point circular approximation |
| Triangle | 3-point triangular zone |
| Pentagon | 5-point pentagonal zone |
| Hexagon | 6-point hexagonal zone |
| Star | 10-point star shape |
| L-Shape | 6-point L-shaped zone |
All templates support: - Drag to Position - Drag the center marker to reposition the shape - Scale Slider - Adjust the size from 5 to 3000 units - Rotation Slider - Rotate the shape from 0° to 360°
Each zone has configurable properties:
| Setting | Description |
|---|---|
| Name | Zone identifier (click pencil icon to rename) |
| Color | Automatic color assignment (8 colors cycle) |
| Visibility | Toggle zone display on/off |
| Ground Z | Base height of the zone (auto-calculate or manual) |
| Thickness | Vertical height of the zone |
| Tool | Shortcut | Description |
|---|---|---|
| Snap to Grid | G |
Snap points to 10-unit grid (shows grid overlay) |
| Show Distances | D |
Display distance labels between adjacent points |
| Undo | Ctrl+Z |
Undo last action |
| Redo | Ctrl+Y |
Redo last undone action |
| Search Location | Ctrl+F |
Jump to specific X, Y coordinates |
| Jump to Player | Button | Center map on your current position |
ox_lib is started before sd-zonecreatorsd-zonecreator to your resources folderensure sd-zonecreator to your server.cfgUse the command to open the zone creator interface:
/zonecreator
Click any of the export buttons to copy the zone data to your clipboard:
| Format | Description |
|---|---|
| PolyZone | Full PolyZone.Create code with all parameters |
| ox_lib | Full lib.zones.poly code for ox_lib |
| vec2 | List of vector2 coordinates (x, y) |
| vec3 | List of vector3 coordinates (x, y, z) |
When viewing a zone in 3D:
| Control | Action |
|---|---|
| W A S D | Move camera horizontally |
| Q / E | Move camera up / down |
| Mouse | Look around |
| Shift | Sprint (faster movement) |
| Arrow Up / Down | Adjust zone thickness |
| Backspace | Exit viewer and return to map |
local myZone = PolyZone:Create({
vector2(100.0, 200.0),
vector2(150.0, 200.0),
vector2(150.0, 250.0),
vector2(100.0, 250.0),
}, {
name = "myZone",
minZ = 25.0,
maxZ = 175.0,
})
local myZone = lib.zones.poly({
name = "myZone",
points = {
vec3(100.0, 200.0, 30.0),
vec3(150.0, 200.0, 30.0),
vec3(150.0, 250.0, 30.0),
vec3(100.0, 250.0, 30.0),
},
thickness = 150,
onEnter = function(self)
print('Entered', self.name)
end,
onExit = function(self)
print('Exited', self.name)
end,
})
vector2(100.0, 200.0),
vector2(150.0, 200.0),
vector2(150.0, 250.0),
vector2(100.0, 250.0),
vector3(100.0, 200.0, 30.0),
vector3(150.0, 200.0, 30.0),
vector3(150.0, 250.0, 30.0),
vector3(100.0, 250.0, 30.0),
| Shortcut | Action |
|---|---|
G |
Toggle snap to grid |
D |
Toggle distance labels |
Ctrl+Z |
Undo |
Ctrl+Y or Ctrl+Shift+Z |
Redo |
Ctrl+F |
Open search/jump to location |
Delete or Backspace |
Delete last point from active zone |
Escape |
Close zone creator |
| Shortcut | Action |
|---|---|
W A S D |
Move camera |
Q / E |
Move up / down |
Shift |
Sprint |
Arrow Up / Arrow Down |
Adjust thickness |
Backspace |
Exit viewer |
$ claude mcp add sd-zonecreator \
-- python -m otcore.mcp_server <graph>