# Config

```
Config = Config or {}

Config.ESXVersion = "new" -- "new" or "old"

Config.Debug = false

Config.RequiredItem = "tracker"

-- ============================================
-- MINIMAP BLIP SETTINGS
-- ============================================

Config.ShowMinimapBlips = true  -- Show blips on minimap (true/false)

Config.UpdateInterval = 500  -- Position update interval in milliseconds

Config.ShowOwnBlip = false

-- ============================================
-- BATTERY SYSTEM
-- ============================================

Config.BatterySystem = true

Config.BatteryItem = "tracker_battery"

Config.Battery = {
    maxCharge = 100,

    drainRate = 1.5, -- Normal 1.5

    warnings = {
        low = 40,
        critical = 20,
        urgent = 10
    },
    
    notifyTeamOnEmpty = true,  -- Notify team when battery runs out
    
    autoDisableOnEmpty = true  -- Auto disable tracker when battery is empty (HARDCODED - DO NOT CHANGE)
}

Config.WaterDamageEnabled = true

Config.DisableTrackerOnDeath = false  -- Enable automatic tracker shutdown on death

-- ============================================
-- HUD SETTINGS
-- ============================================

Config.HUD = {
    draggable = true,
    dragBorderColor = "rgba(0, 100, 200, 0.8)",
}

Config.Keys = {
    toggleDragMode = "L"  -- You can use: "P", "K", "L", "O", "U", and more
}

-- ============================================
-- VEHICLE BLIP MERGING
-- ============================================

Config.MergeVehicleBlips = true  -- Merge blips when multiple players are in the same vehicle

Config.ShowPlayerCountInMergedBlip = false  -- Show player count in merged blip name (if false, shows comma-separated names)

-- ============================================
-- TRACKER REMOVAL SYSTEM
-- ============================================

Config.TrackerRemovalEnabled = true  -- Enable tracker removal detection (when item is dropped/removed)

Config.TrackerRemovalBlipTime = 100  -- Time in seconds how long the "Last Position" blip stays visible

Config.TrackerRemovalBlipColor = 1  -- Last position blip Color
Config.TrackerRemovalBlipSprite = 84  -- Last position blip Style

Config.NotifyTeamOnRemoval = true  -- Notify team when tracker is removed/destroyed

Config.ShowLastPositionOnRemoval = true  -- Show last position blip when tracker is removed

Config.LastPositionBlipText = "Last Position: %s"  -- Last position blip text

-- ============================================
-- BLIP SETTINGS
-- ============================================

Config.BlipNameType = "character"  -- character or steam name

Config.BlipAlpha = 255
Config.BlipScale = 0.8

-- ============================================
-- JOB CONFIGURATION
-- ============================================

Config.Factions = {
    police = {
        enabled = true,
        color = 38,
        defaultSprite = 1,
        sprites = {
            foot = 1,
            car = 326,
            bike = 226,
            boat = 427,
            heli = 422,
            plane = 423
        }
    },
    ambulance = {
        enabled = true,
        color = 5,
        defaultSprite = 1,
        sprites = {
            foot = 1,
            car = 61,
            bike = 226,
            boat = 427,
            heli = 64,
            plane = 423
        }
    },
    mechanic = {
        enabled = true,
        color = 17,
        defaultSprite = 1,
        sprites = {
            foot = 1,
            car = 477,
            bike = 226,
            boat = 427,
            heli = 422,
            plane = 423
        }
    }
}

-- ============================================
-- NOTIFICATION SYSTEM
-- ============================================

Config.NotifyType = "esx" -- "esx" or "custom"

Config.CustomNotify = {
    event = 'YOUR::Notification',
	
    parameterOrder = {'type', 'title', 'text', 'time'}
}

Config.TextKeys = {
    title = 'title',
    text  = 'text',
    type  = 'type',
    time  = 'time'
}

-- ============================================
-- NOTIFICATION TEXTS
-- ============================================

Config.NotifyText = {
    self_on = {
        text = "GPS tracker is turned on.",
        type = "success",
        title = "Tracker",
        time = 5000
    },
    tracker_on_no_battery = {
        text = "⚠️ Tracker is ON but NOT sending! Battery empty - recharge to start transmitting.",
        type = "warning",
        title = "Tracker",
        time = 7000
    },
    self_off = {
        text = "GPS tracker has been turned off.",
        type = "error",
        title = "Tracker",
        time = 5000
    },
    other_on = {
        text = "%s has activated their tracker.",
        type = "info",
        title = "Tracker",
        time = 5000
    },
    other_off = {
        text = "%s has deactivated their tracker.",
        type = "error",
        title = "Tracker",
        time = 5000
    },
    no_job = {
        text = "Your job has no access to the GPS system.",
        type = "error",
        title = "Tracker",
        time = 5000
    },
    tracker_removed_self = {
        text = "Your tracker has been removed!",
        type = "error",
        title = "Tracker",
        time = 5000
    },
    tracker_removed_other = {
        text = "%s's tracker has been destroyed! Last known location: %s",
        type = "error",
        title = "Tracker Alarm",
        time = 8000
    },
    battery_low = {
        text = "Tracker battery low: %s%%",
        type = "warning",
        title = "Tracker",
        time = 5000
    },
    battery_critical = {
        text = "Tracker battery critical: %s%%",
        type = "error",
        title = "Tracker",
        time = 5000
    },
    battery_empty = {
        text = "Tracker battery empty! Tracker has been deactivated.",
        type = "error",
        title = "Tracker",
        time = 5000
    },
    battery_recharged = {
        text = "Tracker recharged: 100%%",
        type = "success",
        title = "Tracker",
        time = 5000
    },
    battery_already_full = {
        text = "Tracker is already fully charged!",
        type = "info",
        title = "Tracker",
        time = 5000
    },
    water_warning = {
        text = "⚠️ WARNING: Tracker is in water! %s seconds left until destruction!",
        type = "warning",
        title = "Tracker",
        time = 3000
    },
    water_damage_self = {
        text = "💧 Your tracker has been destroyed by water!",
        type = "error",
        title = "Tracker",
        time = 5000
    },
    tracker_not_active = {
        text = "Turn on the tracker first!",
        type = "error",
        title = "Tracker",
        time = 5000
    },
    water_damage_other = {
        text = "💧 %s's tracker has been destroyed by water! Last known location: %s",
        type = "error",
        title = "Tracker Alarm",
        time = 8000
    },
    battery_empty_other = {
        text = "🔋 %s's tracker battery died! Last known location: %s",
        type = "error",
        title = "Tracker Alarm",
        time = 8000
    },
    hud_drag_mode_on = {
        text = "HUD Drag Mode: ON - Move the tracker and press the key again to save",
        type = "info",
        title = "Tracker HUD",
        time = 5000
    },
    hud_drag_mode_off = {
        text = "HUD position saved!",
        type = "success",
        title = "Tracker HUD",
        time = 3000
    }
}

-- ============================================
-- VEHICLE DETECTION
-- ============================================

Config.VehicleClasses = {
    foot = -1,
    car = {0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 17, 18, 19, 20},
    bike = {8, 13},
    boat = {14},
    heli = {15},
    plane = {16}
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://c-service.gitbook.io/c-service-docs/c-jobgps/config.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
