Install & Configuration

📘 Overview

SwiftLink is an advanced FiveM speed camera and monitoring system. It automatically detects speeding vehicles, applies fines, and integrates with Discord for real-time law enforcement alerts. The system is fully configurable and built to work seamlessly with QB-Core and ox_lib.


🧰 Requirements

Before installation, make sure the following dependencies are installed and started before SwiftLink:


📦 Installation

Download the latest release or clone the repository:

https://github.com/1SwiftStudios1/SwiftLink/releases

2. Drag & Drop

Place the SwiftLink folder into your server’s resource directory:

/resources/

3. Add to server.cfg

Add the following line to your server configuration file:

ensure SwiftLink

Make sure ox_lib and qb-core are ensured before SwiftLink:

ensure qb-core
ensure ox_lib
ensure SwiftLink

4. Restart Your Server

Restart the server or use: (It is recommended you restart the server)

/refresh
/start SwiftLink

⚙️ Configuration

All settings are located in:

SwiftLink/config.lua

🖥️ Computer Access Points

Define where players can access the traffic monitoring interface (e.g. police stations, HQs, or monitoring centers).

Config.ComputerLocations = {
    { coords = vector3(-449.04, 6012.6, 31.72), range = 1.0 },
}

Tip: Add more entries by duplicating the format and changing coordinates.


📸 Speed Camera Locations

Each camera detects and fines speeding vehicles automatically.

Field
Description

name

Unique camera identifier

coords

Zone detection center

width

Lateral detection width

rotation

Facing direction (degrees)

propCoords

Physical camera pole/object position

speedLimit

Enforced speed limit

Example:

{ name = "1001", coords = vector3(522.62, 6551.89, 27.44), width = 42.0, rotation = 257.01, propCoords = vector3(522.62, 6551.89, 27.44), speedLimit = 40 },

Use the in-game command *copycamcoords to easily copy and paste formatted entries.


💰 Speeding Fines Configuration

Define how much players are fined based on how far over the speed limit they are traveling.

Config.MinimumOverSpeedForFine = 5
Config.SpeedingFines = {
    { minOver = 20, fine = 200, label = "20+ MPH over limit" },
    { minOver = 15, fine = 150, label = "15–19 MPH over limit" },
    { minOver = 10, fine = 100, label = "10–14 MPH over limit" },
    { minOver = 5,  fine = 50,  label = "5–9 MPH over limit"  },
}

⚙️ System Behavior

Control how SwiftLink behaves globally.

Config.SpeedUnit = "MPH"
Config.ExemptEmergencyVehicles = true
Config.EnableFlashEffect = true
Option
Description

SpeedUnit

Use "MPH" or "KMH"

ExemptEmergencyVehicles

Prevents emergency vehicles from being fined

EnableFlashEffect

Enables a flash when a player is caught speeding


🛠️ Developer & Admin Commands

These commands assist with development, debugging, and testing camera placement.

Config.Commands = {
    CreateCam = "*copycamcoords",
    ToggleDisplayCams = "*togglecamdisplay"
}
Command
Function

*copycamcoords

Copies your current position as a camera entry

*togglecamdisplay

Toggles visibility of camera markers on the map


📡 Discord Webhook Integration

SwiftLink can automatically send alerts to a Discord channel whenever a speeding violation is detected.

Config.DiscordWebhookName = "Los Santos Government | Traffic Camera Network"
Config.Webhooks = {
    Speeding = "https://discord.com/api/webhooks/your-webhook-url"
}

Tip: Use a dedicated webhook channel for traffic alerts to keep logs clean and organized.


🧪 Testing & Verification

  1. Start your server and ensure there are no console errors.

  2. Drive through a camera zone above the speed limit.

  3. Check for:

    • Flash effect (if enabled)

    • Fine applied via QB-Core bank system

    • Discord alert (if webhook configured)

If all three occur, SwiftLink is correctly installed and functioning.


🧩 Troubleshooting

Issue
Possible Cause
Solution

Cameras not triggering

ox_lib not running

Ensure ox_lib is started before SwiftLink

No fines applied

QB-Core integration issue

Verify player has valid PlayerData and a registered bank account

Discord alerts missing

Invalid or missing webhook URL

Double-check your webhook in config.lua

Commands not working

Typos or disabled admin permissions

Ensure commands match and you have permissions


📄 License & Credits

Developed by Swift Studios Built for QB-Core (More Frameworks To Come) © 2025 Swift Studios - All Rights Reserved

Last updated