Waypoints

Sleepless Waypoints

A 3D DUI waypoint and marker system for FiveM. Create customizable waypoints with support for different styles, icons, labels, and distance tracking.

Features

  • 📍 Two Waypoint Types - Small markers and checkpoint-style beacons
  • 🎨 Customizable Appearance - Colors, icons, labels, and sizes
  • 📏 Distance Display - Automatic distance tracking to waypoints
  • 🗺️ Map Waypoint Sync - Automatically creates a 3D marker at the player's map waypoint
  • 🖥️ Server-side Support - Create waypoints for specific players or globally from the server
  • Performance Optimized - Efficient rendering with distance-based culling

Dependencies

Installation

Download the Resource

Download a release (opens in a new tab) or build from source:

git clone https://github.com/Sleepless-Development/sleepless_waypoints.git
cd sleepless_waypoints/web
pnpm i
pnpm build

Add to Server

Place the sleepless_waypoints folder in your server's resources directory.

Configure Your Server

Add the following to your server.cfg:

ensure ox_lib
ensure sleepless_waypoints

Configure the Resource

Edit config.lua to customize waypoint defaults, DUI settings, and rendering options. See the Configuration page for details.

Quick Start

Create a Small Waypoint (Client)

local id = exports.sleepless_waypoints:create({
    coords = vec3(100.0, 200.0, 30.0),
    type = 'small',
    color = '#ff6b6b',
    icon = 'hand',
    size = 0.15,
    drawDistance = 100.0,
})

Create a Checkpoint Waypoint (Client)

local id = exports.sleepless_waypoints:create({
    coords = vec3(200.0, 300.0, 30.0),
    type = 'checkpoint',
    color = '#f5a623',
    label = 'DESTINATION',
    size = 1.0,
    drawDistance = 500.0,
    groundZ = 28.0,
})

Create a Server-side Waypoint

-- Send a waypoint to a specific player
local id = exports.sleepless_waypoints:create(targetPlayerId, {
    coords = vector3(200, 300, 30),
    type = 'checkpoint',
    color = '#4ecdc4',
    label = 'GO HERE',
    drawDistance = 500.0,
})
 
-- Create a global waypoint visible to all players
local id = exports.sleepless_waypoints:create(-1, {
    coords = vector3(0, 0, 72),
    type = 'checkpoint',
    color = '#9b59b6',
    label = 'EVENT LOCATION',
    drawDistance = 5000.0,
})

Waypoint Types

Small

A compact marker suitable for nearby points of interest. Displays an icon or image at the specified coordinates.

Checkpoint

A tall beacon-style marker visible from far distances. Features a vertical line extending from the ground with a label and distance display at the top.

See the Configuration page for the full WaypointData properties reference and default settings. See Client Exports and Server Exports for the complete API.

Support

If you need help or have questions: